From 17cfd85ecc473bd99897f54324de34332f55672d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Fri, 23 Jun 2023 21:11:30 +0800 Subject: [PATCH 001/199] Always use the cleanest examples. Move repetitive default into text explanation. P.S., maybe one day even consider changing the default +ellps=GRS80 to +ellps=WGS84... but no big deal... --- docs/source/apps/proj.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/apps/proj.rst b/docs/source/apps/proj.rst index 6f4a1866d5..ec08779660 100644 --- a/docs/source/apps/proj.rst +++ b/docs/source/apps/proj.rst @@ -192,13 +192,14 @@ The following script .. code-block:: console - proj +proj=utm +zone=12 +ellps=GRS80 -r < Date: Mon, 28 Aug 2023 12:38:30 +0200 Subject: [PATCH 002/199] JSON export: avoid non-significant decimal digits in version field (fixes #3863) --- src/iso19111/metadata.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/iso19111/metadata.cpp b/src/iso19111/metadata.cpp index 1b4f499add..ffccf2e357 100644 --- a/src/iso19111/metadata.cpp +++ b/src/iso19111/metadata.cpp @@ -1088,10 +1088,11 @@ void Identifier::_exportToWKT(WKTFormatter *formatter) const { formatter->addQuotedString(l_code); } if (!l_version.empty()) { - try { - (void)c_locale_stod(l_version); + bool isDouble = false; + (void)c_locale_stod(l_version, isDouble); + if (isDouble) { formatter->add(l_version); - } catch (const std::exception &) { + } else { formatter->addQuotedString(l_version); } } @@ -1140,16 +1141,17 @@ void Identifier::_exportToJSON(JSONFormatter *formatter) const { if (!l_version.empty()) { writer->AddObjKey("version"); - try { - const double dblVersion = c_locale_stod(l_version); + bool isDouble = false; + const double dblVersion = c_locale_stod(l_version, isDouble); + if (isDouble) { if (dblVersion >= std::numeric_limits::min() && dblVersion <= std::numeric_limits::max() && static_cast(dblVersion) == dblVersion) { writer->Add(static_cast(dblVersion)); } else { - writer->Add(dblVersion); + writer->Add(dblVersion, /*precision=*/15); } - } catch (const std::exception &) { + } else { writer->Add(l_version); } } From 83878d6ed55445acff156a2638e2c5645507f26c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 28 Aug 2023 14:57:35 +0200 Subject: [PATCH 003/199] JSON import: reduce number of significant decimal digits when parsing id.version field (fixes #3863, reworks previous commit) --- src/iso19111/io.cpp | 2 +- src/iso19111/metadata.cpp | 10 ++-------- src/proj_json_streaming_writer.cpp | 5 +++++ src/proj_json_streaming_writer.hpp | 1 + 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 3422b8b45f..75b4a15978 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -5981,7 +5981,7 @@ IdentifierNNPtr JSONParser::buildId(const json &j, bool removeInverseOf) { static_cast(dblVersion) == dblVersion) { version = internal::toString(static_cast(dblVersion)); } else { - version = internal::toString(dblVersion); + version = internal::toString(dblVersion, /*precision=*/15); } } else { throw ParsingException("Unexpected type for value of \"version\""); diff --git a/src/iso19111/metadata.cpp b/src/iso19111/metadata.cpp index ffccf2e357..4dd5129e63 100644 --- a/src/iso19111/metadata.cpp +++ b/src/iso19111/metadata.cpp @@ -1142,15 +1142,9 @@ void Identifier::_exportToJSON(JSONFormatter *formatter) const { if (!l_version.empty()) { writer->AddObjKey("version"); bool isDouble = false; - const double dblVersion = c_locale_stod(l_version, isDouble); + (void)c_locale_stod(l_version, isDouble); if (isDouble) { - if (dblVersion >= std::numeric_limits::min() && - dblVersion <= std::numeric_limits::max() && - static_cast(dblVersion) == dblVersion) { - writer->Add(static_cast(dblVersion)); - } else { - writer->Add(dblVersion, /*precision=*/15); - } + writer->AddUnquoted(l_version.c_str()); } else { writer->Add(l_version); } diff --git a/src/proj_json_streaming_writer.cpp b/src/proj_json_streaming_writer.cpp index 5263568924..a60522251b 100644 --- a/src/proj_json_streaming_writer.cpp +++ b/src/proj_json_streaming_writer.cpp @@ -219,6 +219,11 @@ void CPLJSonStreamingWriter::Add(const char *pszStr) { Print(FormatString(pszStr)); } +void CPLJSonStreamingWriter::AddUnquoted(const char *pszStr) { + EmitCommaIfNeeded(); + Print(pszStr); +} + void CPLJSonStreamingWriter::Add(GIntBig nVal) { EmitCommaIfNeeded(); Print(CPLSPrintf(CPL_FRMT_GIB, nVal)); diff --git a/src/proj_json_streaming_writer.hpp b/src/proj_json_streaming_writer.hpp index 796156640d..076d21f3b7 100644 --- a/src/proj_json_streaming_writer.hpp +++ b/src/proj_json_streaming_writer.hpp @@ -86,6 +86,7 @@ class CPL_DLL CPLJSonStreamingWriter { void Add(const std::string &str); void Add(const char *pszStr); + void AddUnquoted(const char *pszStr); void Add(bool bVal); void Add(int nVal) { Add(static_cast(nVal)); } void Add(unsigned int nVal) { Add(static_cast(nVal)); } From 6e98ed7cada45c6a449c674abd2f892cd65a3d5d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 31 Aug 2023 22:29:07 +0200 Subject: [PATCH 004/199] ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T --- data/ITRF2008 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/ITRF2008 b/data/ITRF2008 index bcb8561d61..bd5f7cee5e 100644 --- a/data/ITRF2008 +++ b/data/ITRF2008 @@ -42,7 +42,7 @@ +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector - +proj=helmert +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector + +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector @@ -75,7 +75,7 @@ +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector - +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector + +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector From 0f7751b2a90a002d8b79a649a20bebf82e1043d1 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 1 Sep 2023 12:00:48 +0200 Subject: [PATCH 005/199] Update website for 9.3.0 release --- docs/source/conf.py | 4 ++-- docs/source/download.rst | 10 +++++--- docs/source/news.rst | 49 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index a5b547f4d1..1a07df1294 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,10 +28,10 @@ version = "9.3" # The full project version, used as the replacement for |release| -release = "9.3.0-dev" +release = "9.3.0" # PROJ-data version -data_version = "1.14" +data_version = "1.15" today_date = date.today() # today_date = date(Y, M, D) # or use a specific date diff --git a/docs/source/download.rst b/docs/source/download.rst index b8cbf8c2ca..cd4cd16aef 100644 --- a/docs/source/download.rst +++ b/docs/source/download.rst @@ -26,8 +26,8 @@ Download Current Release -------------------------------------------------------------------------------- -* **2023-06-01** `proj-9.2.1.tar.gz`_ (`md5`_) -* **2023-06-01** `proj-data-1.14.tar.gz`_ +* **2023-09-01** `proj-9.3.0.tar.gz`_ (`md5`_) +* **2023-09-01** `proj-data-1.15.tar.gz`_ .. note:: @@ -40,6 +40,7 @@ Current Release Past Releases -------------------------------------------------------------------------------- +* **2023-06-01** `proj-9.2.1.tar.gz`_ * **2023-03-01** `proj-9.2.0.tar.gz`_ * **2022-12-01** `proj-9.1.1.tar.gz`_ * **2022-09-01** `proj-9.1.0.tar.gz`_ @@ -73,6 +74,7 @@ Past Releases * **2015-09-13** `proj-4.9.2.tar.gz`_ * **2015-03-04** `proj-4.9.1.tar.gz`_ +* **2023-06-01** `proj-data-1.14.tar.gz`_ * **2023-03-01** `proj-data-1.13.tar.gz`_ * **2022-12-01** `proj-data-1.12.tar.gz`_ * **2022-09-01** `proj-data-1.11.tar.gz`_ @@ -108,7 +110,8 @@ Past Releases * **2018-03-01** `proj-datumgrid-oceania-1.1.zip`_ * **2018-03-01** `proj-datumgrid-oceania-1.0.zip`_ -.. _`md5`: https://download.osgeo.org/proj/proj-9.2.1.tar.gz.md5 +.. _`md5`: https://download.osgeo.org/proj/proj-9.3.0.tar.gz.md5 +.. _`proj-9.3.0.tar.gz`: https://download.osgeo.org/proj/proj-9.3.0.tar.gz .. _`proj-9.2.1.tar.gz`: https://download.osgeo.org/proj/proj-9.2.1.tar.gz .. _`proj-9.2.0.tar.gz`: https://download.osgeo.org/proj/proj-9.2.0.tar.gz .. _`proj-9.1.1.tar.gz`: https://download.osgeo.org/proj/proj-9.1.1.tar.gz @@ -144,6 +147,7 @@ Past Releases .. _`proj-4.9.2.tar.gz`: https://download.osgeo.org/proj/proj-4.9.2.tar.gz .. _`proj-4.9.3.tar.gz`: https://download.osgeo.org/proj/proj-4.9.3.tar.gz +.. _`proj-data-1.15.tar.gz`: https://download.osgeo.org/proj/proj-data-1.15.tar.gz .. _`proj-data-1.14.tar.gz`: https://download.osgeo.org/proj/proj-data-1.14.tar.gz .. _`proj-data-1.13.tar.gz`: https://download.osgeo.org/proj/proj-data-1.13.tar.gz .. _`proj-data-1.12.tar.gz`: https://download.osgeo.org/proj/proj-data-1.12.tar.gz diff --git a/docs/source/news.rst b/docs/source/news.rst index 9bd3571a05..3ab4e4ae75 100644 --- a/docs/source/news.rst +++ b/docs/source/news.rst @@ -3,6 +3,53 @@ News ############################################################################### +9.3.0 Release Notes +++++++++++++++++++++ +*September 1st 2023* + +Updates +------- + +* Add C++ API to transform coordinate (`#3705 `_) + +* CMake: add ``PROJ_DB_CACHE_DIR`` (`#3711 `_) + +* Implement EPSG:1026 Mercator (Spherical) method (`#3741 `_) + +* CMake: remove useless cross-compiling related checks (`#3747 `_) + +* Add mapping of Equidistant Conic to new EPSG:1119 method (`#3812 `_) + +* Implement proposal001 from Planetary DWG from OGC (`#3816 `_) + +* Add option in :program:`proj` CLI to use a CRS (`#3825 `_) + +* :c:func:`proj_factors()`: make it work with projected CRS with non-metre unit and/or northing/easting axis order (`#3826 `_) + +* :envvar:`PROJ_DEBUG`: make ON an alias of 2, and OFF of 1 (`#3835 `_) + +* Database: update to EPSG 10.094 (`#3847 `_) + +Bug fixes +--------- + +* :cpp:func:`GeographicBoundingBox::intersection()`: avoid infinite recursion and stack overflow on invalid bounding boxes (`#3748 `_) + +* Various fixes related to concatenated operations (`#3820 `_) + +* Projected CRS identification: fix crash when the base CRS is a non-geographic geodetic CRS (`#3830 `_) + +* Avoid C++ exceptions to be thrown (and caught) when parsing strings like ``+proj=longlat +datum=WGS84 +type=crs`` (`#3834 `_) + +* BUG: Handle prefix whitespace when guessing WKT dialiect (`#3841 `_) + +* :c:func:`proj_alter_id()`: make it replace an existing ID instead of appending a new one (`#3846 `_) + +* bonne: fix inverse map projection computations when lat_1 < 0 (`#3849 `_) + +* WKT1 ESRI import/export: fix GCS name for EPSG:8353 S-JTSK_[JTSK03]_Krovak_East_North (`#3851 `_) + + 9.2.1 Release Notes ++++++++++++++++++++ *June 1st 2023* @@ -206,7 +253,7 @@ Bug fixes *December 1st 2022* Updates --------- +------- * Database: register ``at_bev_AT_GIS_GRID_2021_09_28`` grid (`#3442 `_) From c540bd2f2f3c7ae738ded5d8c0b3e6ac401320d4 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 1 Sep 2023 12:11:40 +0200 Subject: [PATCH 006/199] Bump version numbers in preparation for 9.4.0 release --- CMakeLists.txt | 2 +- docs/source/conf.py | 4 ++-- src/proj.h | 2 +- src/release.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c2b54d7b9..dcd5021c6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,7 +115,7 @@ message(STATUS "Configuring PROJ:") #PROJ version information ################################################################################ include(ProjVersion) -proj_version(MAJOR 9 MINOR 3 PATCH 0) +proj_version(MAJOR 9 MINOR 4 PATCH 0) set(PROJ_SOVERSION 25) set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}") diff --git a/docs/source/conf.py b/docs/source/conf.py index 1a07df1294..c39a5f0d0e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -25,10 +25,10 @@ author = "PROJ contributors" # The major project version, used as the replacement for |version| -version = "9.3" +version = "9.4" # The full project version, used as the replacement for |release| -release = "9.3.0" +release = "9.4.0-dev" # PROJ-data version data_version = "1.15" diff --git a/src/proj.h b/src/proj.h index 851940d832..20b24ddc18 100644 --- a/src/proj.h +++ b/src/proj.h @@ -174,7 +174,7 @@ extern "C" { /* The version numbers should be updated with every release! **/ #define PROJ_VERSION_MAJOR 9 -#define PROJ_VERSION_MINOR 3 +#define PROJ_VERSION_MINOR 4 #define PROJ_VERSION_PATCH 0 /* Note: the following 3 defines have been introduced in PROJ 8.0.1 */ diff --git a/src/release.cpp b/src/release.cpp index 5742f3b6a3..102c2d306c 100644 --- a/src/release.cpp +++ b/src/release.cpp @@ -8,6 +8,6 @@ char const pj_release[] = "Rel. " STR(PROJ_VERSION_MAJOR) "." STR( PROJ_VERSION_MINOR) "." STR(PROJ_VERSION_PATCH) ", " - "September 1st, 2023"; + "March 1st, 2024"; const char *pj_get_release() { return pj_release; } From a6b8135d58f281ba63d13ff1ce90b15ea815d364 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 1 Sep 2023 12:13:18 +0200 Subject: [PATCH 007/199] NN_NO_CHECK() macro: fix it to work with MSVC 2019 in /std:c++20 mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (fixes #3868) For some weird reason, the previous definition of the macro didn't work when used from lambdas. --- include/proj/util.hpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/include/proj/util.hpp b/include/proj/util.hpp index de7357a3c4..c5940c0148 100644 --- a/include/proj/util.hpp +++ b/include/proj/util.hpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #ifndef NS_PROJ @@ -203,10 +204,25 @@ using ::dropbox::oxygen::nn_static_pointer_cast; template using nn_shared_ptr = nn>; +// Possible implementation of C++14 std::remove_reference_t +// (cf https://en.cppreference.com/w/cpp/types/remove_cv) +template +using remove_reference_t = typename std::remove_reference::type; + +// Possible implementation of C++14 std::remove_cv_t +// (cf https://en.cppreference.com/w/cpp/types/remove_cv) +template using remove_cv_t = typename std::remove_cv::type; + +// Possible implementation of C++20 std::remove_cvref +// (cf https://en.cppreference.com/w/cpp/types/remove_cvref) +template struct remove_cvref { + typedef remove_cv_t> type; +}; + #define NN_NO_CHECK(p) \ - ::dropbox::oxygen::nn::type>::type>( \ - dropbox::oxygen::i_promise_i_checked_for_null, (p)) + ::dropbox::oxygen::nn< \ + typename ::NS_PROJ::util::remove_cvref::type>( \ + ::dropbox::oxygen::i_promise_i_checked_for_null, (p)) //! @endcond From 8490a5d680d434795c56d7425ae33733bb658c33 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 1 Sep 2023 12:14:07 +0200 Subject: [PATCH 008/199] windows.yml: test C++20 compilation --- .github/workflows/windows.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 5e1f4072f0..aeca8e698d 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -61,7 +61,9 @@ jobs: mkdir %PROJ_BUILD% cd %PROJ_BUILD% set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir - cmake -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -DBUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%" -DPROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% .. + # Not directly linked to BUILD_SHARED_LIBS, but a way to test different C++ standard versions + if "${{ env.BUILD_SHARED_LIBS }}"=="ON" (set EXTRA_CXX_FLAGS="/std:c++20") + cmake -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -DBUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX %EXTRA_CXX_FLAGS%" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%" -DPROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% .. ninja -v ninja install dir %PROJ_DIR%\bin From 8d52b30588f209e421fe6b2bb24d79127e183e5d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 1 Sep 2023 19:59:20 +0200 Subject: [PATCH 009/199] ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (fixes #3871) --- src/iso19111/io.cpp | 4 ++++ test/unit/test_io.cpp | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 75b4a15978..721addf972 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -1732,6 +1732,8 @@ PropertyMap &WKTParser::Private::buildProperties(const WKTNodeNNPtr &node, esriStyle_ = true; if (name == "GCS_WGS_1984") { name = "WGS 84"; + } else if (name == "GCS_unknown") { + name = "unknown"; } else { tableNameForAlias = "geodetic_crs"; } @@ -2376,6 +2378,8 @@ GeodeticReferenceFrameNNPtr WKTParser::Private::buildGeodeticReferenceFrame( name = "European Terrestrial Reference System 1989"; authNameFromAlias = Identifier::EPSG; codeFromAlias = "6258"; + } else if (name == "D_unknown") { + name = "unknown"; } else { tableNameForAlias = "geodetic_datum"; } diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 74bce25125..f878017d8c 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -833,6 +833,19 @@ TEST(wkt_parse, wkt1_non_conformant_inf_inverse_flattening) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt1_esri_GCS_unknown_D_unknown) { + auto obj = WKTParser().setStrict(false).createFromWKT( + "GEOGCS[\"GCS_unknown\",DATUM[\"D_unknown\"," + "SPHEROID[\"unknown\",6370997,0]]," + "PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + EXPECT_EQ(crs->nameStr(), "unknown"); + EXPECT_EQ(crs->datum()->nameStr(), "unknown"); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, wkt2_GEODCRS_EPSG_4326) { auto obj = WKTParser().createFromWKT("GEODCRS" + contentWKT2_EPSG_4326); auto crs = nn_dynamic_pointer_cast(obj); From 73e11c543a6c6ccc22165c684bbf373d88eb5ba3 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Sun, 3 Sep 2023 20:55:04 +1200 Subject: [PATCH 010/199] Update CITATION.cff --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 36fbb34734..1c36cadd6c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,8 +2,8 @@ cff-version: 1.2.0 message: Please cite this software using these metadata or in the CITATION file. type: software title: PROJ -version: 9.2.0 -date-released: 2023-03-01 +version: 9.3.0 +date-released: 2023-09-01 doi: 10.5281/zenodo.5884394 abstract: PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another. From 2e7ebe095d731790bb4f6e01495a1ecb1bc58e59 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 19:35:48 +0200 Subject: [PATCH 011/199] Improve debugging code --- .../operation/coordinateoperationfactory.cpp | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 2ee18660f9..b15cc47de9 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -1384,16 +1384,23 @@ struct FilterResults { } #if 0 - std::cerr << op->nameStr() << " "; - std::cerr << area << " "; - std::cerr << getAccuracy(op) << " "; - std::cerr << isPROJExportable << " "; - std::cerr << hasGrids << " "; - std::cerr << gridsAvailable << " "; - std::cerr << gridsKnown << " "; - std::cerr << stepCount << " "; - std::cerr << op->hasBallparkTransformation() << " "; - std::cerr << isNullTransformation(op->nameStr()) << " "; + std::cerr << "name=" << op->nameStr() << " "; + std::cerr << "area=" << area << " "; + std::cerr << "accuracy=" << getAccuracy(op) << " "; + std::cerr << "isPROJExportable=" << isPROJExportable << " "; + std::cerr << "hasGrids=" << hasGrids << " "; + std::cerr << "gridsAvailable=" << gridsAvailable << " "; + std::cerr << "gridsKnown=" << gridsKnown << " "; + std::cerr << "stepCount=" << stepCount << " "; + std::cerr << "projStepCount=" << projStepCount << " "; + std::cerr << "ballpark=" << op->hasBallparkTransformation() << " "; + std::cerr << "vertBallpark=" + << (op->nameStr().find( + BALLPARK_VERTICAL_TRANSFORMATION) != + std::string::npos) + << " "; + std::cerr << "isNull=" << isNullTransformation(op->nameStr()) + << " "; std::cerr << std::endl; #endif map[op.get()] = PrecomputedOpCharacteristics( From ed367b8b74e404d2f2d3fb5553ddaa03761c5833 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 19:36:54 +0200 Subject: [PATCH 012/199] CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (fixes #3854) --- .../operation/coordinateoperationfactory.cpp | 108 +++++++++++++++++- 1 file changed, 104 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index b15cc47de9..d4205c2ad8 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -2385,6 +2385,29 @@ struct MyPROJStringExportableHorizVerticalHorizPROJBased final MyPROJStringExportableHorizVerticalHorizPROJBased:: ~MyPROJStringExportableHorizVerticalHorizPROJBased() = default; +// --------------------------------------------------------------------------- + +struct MyPROJStringExportableHorizNullVertical final + : public io::IPROJStringExportable { + CoordinateOperationPtr horizTransform{}; + + MyPROJStringExportableHorizNullVertical( + const CoordinateOperationPtr &horizTransformIn) + : horizTransform(horizTransformIn) {} + + ~MyPROJStringExportableHorizNullVertical() override; + + void + // cppcheck-suppress functionStatic + _exportToPROJString(io::PROJStringFormatter *formatter) const override { + + horizTransform->_exportToPROJString(formatter); + } +}; + +MyPROJStringExportableHorizNullVertical:: + ~MyPROJStringExportableHorizNullVertical() = default; + //! @endcond } // namespace operation @@ -2395,6 +2418,7 @@ namespace dropbox{ namespace oxygen { template<> nn>::~nn() = default; template<> nn>::~nn() = default; template<> nn>::~nn() = default; +template<> nn>::~nn() = default; }} #endif @@ -2669,6 +2693,40 @@ static CoordinateOperationNNPtr createHorizVerticalHorizPROJBased( nullptr, accuracies, hasBallparkTransformation); } +// --------------------------------------------------------------------------- + +static CoordinateOperationNNPtr createHorizNullVerticalPROJBased( + const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const operation::CoordinateOperationNNPtr &horizTransform, + const operation::CoordinateOperationNNPtr &verticalTransform) { + + auto exportable = + util::nn_make_shared( + horizTransform); + + std::vector ops = {horizTransform, + verticalTransform}; + const std::string opName = computeConcatenatedName(ops); + + auto properties = util::PropertyMap(); + properties.set(common::IdentifiedObject::NAME_KEY, opName); + + bool emptyIntersection = false; + auto extent = getExtent(ops, false, emptyIntersection); + if (extent) { + properties.set(common::ObjectUsage::DOMAIN_OF_VALIDITY_KEY, + NN_NO_CHECK(extent)); + } + + const auto remarks = getRemarks(ops); + if (!remarks.empty()) { + properties.set(common::IdentifiedObject::REMARKS_KEY, remarks); + } + + return createPROJBased(properties, exportable, sourceCRS, targetCRS, + nullptr, {}, /*hasBallparkTransformation=*/true); +} + //! @endcond // --------------------------------------------------------------------------- @@ -4836,6 +4894,18 @@ void CoordinateOperationFactory::Private::createOperationsBoundToVert( // --------------------------------------------------------------------------- +static std::string +getBallparkTransformationVertToVert(const crs::CRSNNPtr &sourceCRS, + const crs::CRSNNPtr &targetCRS) { + auto name = buildTransfName(sourceCRS->nameStr(), targetCRS->nameStr()); + name += " ("; + name += BALLPARK_VERTICAL_TRANSFORMATION; + name += ')'; + return name; +} + +// --------------------------------------------------------------------------- + void CoordinateOperationFactory::Private::createOperationsVertToVert( const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, Private::Context &context, const crs::VerticalCRS *vertSrc, @@ -4881,10 +4951,8 @@ void CoordinateOperationFactory::Private::createOperationsVertToVert( : metadata::Extent::WORLD); if (!equivalentVDatum) { - auto name = buildTransfName(sourceCRS->nameStr(), targetCRS->nameStr()); - name += " ("; - name += BALLPARK_VERTICAL_TRANSFORMATION; - name += ')'; + const auto name = + getBallparkTransformationVertToVert(sourceCRS, targetCRS); auto conv = Transformation::createChangeVerticalUnit( map.set(common::IdentifiedObject::NAME_KEY, name), sourceCRS, targetCRS, @@ -6103,6 +6171,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } for (const auto &verticalTransform : verticalTransforms) { + auto interpolationGeogCRS = NN_NO_CHECK(srcGeog); auto interpTransformCRS = verticalTransform->interpolationCRS(); if (interpTransformCRS) { @@ -6145,6 +6214,37 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } } } + + if (verticalTransforms.size() == 1U && + verticalTransform->hasBallparkTransformation() && + context.context->getAuthorityFactory() && + dynamic_cast(componentsSrc[0].get()) && + dynamic_cast(componentsDst[0].get()) && + verticalTransform->nameStr() == + getBallparkTransformationVertToVert(componentsSrc[1], + componentsDst[1])) { + // e.g EPSG:3912+EPSG:5779 to EPSG:3794+EPSG:8690 + // "MGI 1901 / Slovene National Grid + SVS2000 height" to + // "Slovenia 1996 / Slovene National Grid + SVS2010 height" + // using the "D48/GK to D96/TM (xx)" family of horizontal + // transformatoins between the projected CRS + // Cf + // https://github.com/OSGeo/PROJ/issues/3854#issuecomment-1689964773 + // We restrict to a ballpark vertical transformation for now, + // but ideally we should deal with a regular vertical transformation + // but that would involve doing a transformation to its + // interpolation CRS and we don't have such cases for now. + + std::vector opsHoriz; + createOperationsFromDatabase( + componentsSrc[0], componentsDst[0], context, srcGeog.get(), + dstGeog.get(), srcGeog.get(), dstGeog.get(), + /*vertSrc=*/nullptr, /*vertDst=*/nullptr, opsHoriz); + for (const auto &opHoriz : opsHoriz) { + res.emplace_back(createHorizNullVerticalPROJBased( + sourceCRS, targetCRS, opHoriz, verticalTransform)); + } + } } if (verticalTransforms.empty()) { From 89943df4ad07c1b5b4da564ef5c2bb3c57770082 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 19:37:39 +0200 Subject: [PATCH 013/199] proj_crs_to_crs(): tune ordering of operations based on areas, and also for operations with unknown accuracy (fixes #3854) --- src/4D_api.cpp | 44 ++++++++++++++++++++++-------------------- src/iso19111/c_api.cpp | 3 ++- src/proj_internal.h | 10 ++++++---- test/cli/testvarious | 12 ++++++++++++ test/cli/tv_out.dist | 4 ++++ 5 files changed, 47 insertions(+), 26 deletions(-) diff --git a/src/4D_api.cpp b/src/4D_api.cpp index d112a657d0..6451a11971 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -322,22 +322,14 @@ int pj_get_suggested_operation(PJ_CONTEXT *, // onshore and offshore Tunisia area of uses, but is slightly // onshore. So in a general way, prefer a onshore area to a // offshore one. - if (iBest < 0 || (alt.accuracy >= 0 && - (alt.accuracy < bestAccuracy || - // If two operations have the same accuracy, use - // the one that is contained within a larger one - (alt.accuracy == bestAccuracy && - alt.minxSrc >= opList[iBest].minxSrc && - alt.minySrc >= opList[iBest].minySrc && - alt.maxxSrc <= opList[iBest].maxxSrc && - alt.maxySrc <= opList[iBest].maxySrc && - // check that this is not equality - !(alt.minxSrc == opList[iBest].minxSrc && - alt.minySrc == opList[iBest].minySrc && - alt.maxxSrc == opList[iBest].maxxSrc && - alt.maxySrc == opList[iBest].maxySrc) && - !opList[iBest].isPriorityOp)) && - !alt.isOffshore)) { + if (iBest < 0 || + (((alt.accuracy >= 0 && alt.accuracy < bestAccuracy) || + // If two operations have the same accuracy, use + // the one that has the smallest area + (alt.accuracy == bestAccuracy && + alt.pseudoArea < opList[iBest].pseudoArea && + !opList[iBest].isPriorityOp)) && + !alt.isOffshore)) { if (skipNonInstantiable && !alt.isInstantiable()) { continue; @@ -1713,6 +1705,16 @@ static PJ *add_coord_op_to_list( double maxxDst; double maxyDst; + double w = west_lon / 180 * M_PI; + double s = south_lat / 180 * M_PI; + double e = east_lon / 180 * M_PI; + double n = north_lat / 180 * M_PI; + if (w > e) { + e += 2 * M_PI; + } + // Integrate cos(lat) between south_lat and north_lat + const double pseudoArea = (e - w) * (std::sin(n) - std::sin(s)); + if (pjSrcGeocentricToLonLat) { minxSrc = west_lon; minySrc = south_lat; @@ -1740,8 +1742,8 @@ static PJ *add_coord_op_to_list( const double accuracy = proj_coordoperation_get_accuracy(op->ctx, op); altCoordOps.emplace_back( idxInOriginalList, minxSrc, minySrc, maxxSrc, maxySrc, minxDst, - minyDst, maxxDst, maxyDst, op, name, accuracy, isOffshore, - pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat); + minyDst, maxxDst, maxyDst, op, name, accuracy, pseudoArea, + isOffshore, pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat); op = nullptr; } return op; @@ -2987,13 +2989,13 @@ PJCoordOperation::PJCoordOperation( int idxInOriginalListIn, double minxSrcIn, double minySrcIn, double maxxSrcIn, double maxySrcIn, double minxDstIn, double minyDstIn, double maxxDstIn, double maxyDstIn, PJ *pjIn, const std::string &nameIn, - double accuracyIn, bool isOffshoreIn, const PJ *pjSrcGeocentricToLonLatIn, - const PJ *pjDstGeocentricToLonLatIn) + double accuracyIn, double pseudoAreaIn, bool isOffshoreIn, + const PJ *pjSrcGeocentricToLonLatIn, const PJ *pjDstGeocentricToLonLatIn) : idxInOriginalList(idxInOriginalListIn), minxSrc(minxSrcIn), minySrc(minySrcIn), maxxSrc(maxxSrcIn), maxySrc(maxySrcIn), minxDst(minxDstIn), minyDst(minyDstIn), maxxDst(maxxDstIn), maxyDst(maxyDstIn), pj(pjIn), name(nameIn), accuracy(accuracyIn), - isOffshore(isOffshoreIn), + pseudoArea(pseudoAreaIn), isOffshore(isOffshoreIn), isPriorityOp(isSpecialCaseForNAD83_to_NAD83HARN(name) || isSpecialCaseForGDA94_to_WGS84(name) || isSpecialCaseForWGS84_to_GDA2020(name)), diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index babdc67fc1..64da697f8f 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -9110,7 +9110,8 @@ PJ *proj_normalize_for_visualization(PJ_CONTEXT *ctx, const PJ *obj) { alt.idxInOriginalList, minxSrc, minySrc, maxxSrc, maxySrc, minxDst, minyDst, maxxDst, maxyDst, pjNormalized, co->nameStr(), alt.accuracy, - alt.isOffshore, alt.pjSrcGeocentricToLonLat, + alt.pseudoArea, alt.isOffshore, + alt.pjSrcGeocentricToLonLat, alt.pjDstGeocentricToLonLat); } } diff --git a/src/proj_internal.h b/src/proj_internal.h index 55abb8c115..409b1a5f32 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -342,6 +342,7 @@ struct PJCoordOperation { PJ *pj = nullptr; std::string name{}; double accuracy = -1.0; + double pseudoArea = 0.0; bool isOffshore = false; bool isPriorityOp = false; bool srcIsLonLatDegree = false; @@ -363,7 +364,7 @@ struct PJCoordOperation { double minySrcIn, double maxxSrcIn, double maxySrcIn, double minxDstIn, double minyDstIn, double maxxDstIn, double maxyDstIn, PJ *pjIn, const std::string &nameIn, - double accuracyIn, bool isOffshoreIn, + double accuracyIn, double pseudoAreaIn, bool isOffshoreIn, const PJ *pjSrcGeocentricToLonLatIn, const PJ *pjDstGeocentricToLonLatIn); @@ -376,7 +377,8 @@ struct PJCoordOperation { minyDst(other.minyDst), maxxDst(other.maxxDst), maxyDst(other.maxyDst), pj(proj_clone(ctx, other.pj)), name(std::move(other.name)), accuracy(other.accuracy), - isOffshore(other.isOffshore), isPriorityOp(other.isPriorityOp), + pseudoArea(other.pseudoArea), isOffshore(other.isOffshore), + isPriorityOp(other.isPriorityOp), srcIsLonLatDegree(other.srcIsLonLatDegree), srcIsLatLonDegree(other.srcIsLatLonDegree), dstIsLonLatDegree(other.dstIsLonLatDegree), @@ -396,8 +398,8 @@ struct PJCoordOperation { maxySrc(other.maxySrc), minxDst(other.minxDst), minyDst(other.minyDst), maxxDst(other.maxxDst), maxyDst(other.maxyDst), name(std::move(other.name)), - accuracy(other.accuracy), isOffshore(other.isOffshore), - isPriorityOp(other.isPriorityOp), + accuracy(other.accuracy), pseudoArea(other.pseudoArea), + isOffshore(other.isOffshore), isPriorityOp(other.isPriorityOp), srcIsLonLatDegree(other.srcIsLonLatDegree), srcIsLatLonDegree(other.srcIsLatLonDegree), dstIsLonLatDegree(other.dstIsLonLatDegree), diff --git a/test/cli/testvarious b/test/cli/testvarious index 3b3cc69110..ce50615ec4 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1320,6 +1320,18 @@ $EXE -d 3 EPSG:25831 EPSG:23031 -E >>${OUT} 2>&1 <> ${OUT} +echo "Test Similarity Transformation through CompoundCRS" >> ${OUT} +# Cf https://github.com/OSGeo/PROJ/issues/3854#issuecomment-1689964773 +# +$EXE -d 3 EPSG:3912 EPSG:3794 -E >>${OUT} 2>&1 <>${OUT} 2>&1 < Date: Sun, 3 Sep 2023 13:58:07 -0500 Subject: [PATCH 014/199] Doc updates from jidanni (#3858) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update nzmg.rst Here I am taking a guess at which grid this is referring to and thus trying to make it clearer. * Update transformation.rst Note: I have only mentioned that the +'s went away. Apparently the author is using +init files here, and showing only their contents. However even if the user placed the example snippets seen in the boxes into files in the current directory, there is no complete working example! I am saying that earlier in this book, the user was able to run the examples shown. But now if the user wishes to continue running them, he has to put the +'s back, or use some special syntax that you haven't shown yet in a complete working example! * Always use the cleanest examples. Move repetitive default into text explanation. P.S., maybe one day even consider changing the default +ellps=GRS80 to +ellps=WGS84... but no big deal... * Update docs/source/apps/proj.rst * Update x_0.rst These are meters and one cannot just use e.g., +units to change it. * Remove redundant optional default parameters! We get the exact same answer without the clutter that doesn't make things any more clearer. * 50 U.S. isn't grammatical P.S., perhaps add a reference to where this projection came from. * Remove parameter that is default anyway Make example less cluttered. * Update cart.rst Simplify via defaults. * Can remove default parameter. Shorten string by removing redundancies. * Update som.rst showing relation of the two lines Mentioning how the two lines are related. * Update rhealpix.rst Got rid of - default -f setting Eliminated ellipse emphasis and just used the default. * Update geoc.rst Defaults shown clear as day at the bottom of the page already. * Update topocentric.rst Wipe off items that aren't the focus of the issue and don't affect outcome here. * Update unitconvert.rst Use and explain defaults. One day this page should mention what the default time etc. units are too. * Update set.rst Simplify by removing default parameters. * Update push.rst Eliminate default reuse, getting same calculation. * Update xyzgridshift.rst Don't repeat defaults. * Update vertoffset.rst GRS80 already implied and documented. * Update hgridshift.rst Reduce chance of too wide example going off the screen! * Update geogoffset.rst Add '+' to match rest of book. * Update differences.rst Add actual EOF notation. * Update helmert.rst Reduce horizontal scrolling, at least on desktop. Also one day maybe add '+' before each... or maybe not. * Update defmodel.rst Example causes scrolling horizontally, even on desktop. * Update bertin1953.rst Remove src. * Update cass.rst - Less horizontal scrolling, which was seen even on desktop. - Zapped default meter parameter. * Update s2.rst Clean off testing residue. Perhaps one day also hyperlink "Quadrilateralized Spherical Cube" page. * Update tmerc.rst Trimming defaults reduces horizontal scrolling. * Update y_0.rst These are meters and one cannot just use e.g., +units to change it. * Update unitconvert.rst Mention defaults. I only listed the ones I know. The rest I didn't list. --------- Co-authored-by: 積丹尼 Dan Jacobson --- docs/source/apps/cct.rst | 2 -- docs/source/apps/proj.rst | 1 + docs/source/operations/conversions/cart.rst | 4 ++-- docs/source/operations/conversions/geoc.rst | 4 ++-- docs/source/operations/conversions/push.rst | 10 +++++----- docs/source/operations/conversions/set.rst | 2 +- .../operations/conversions/topocentric.rst | 6 +++--- .../operations/conversions/unitconvert.rst | 18 +++++++++--------- docs/source/operations/options/x_0.rst | 2 +- .../operations/projections/bertin1953.rst | 2 +- docs/source/operations/projections/cass.rst | 10 ++++++++-- docs/source/operations/projections/gall.rst | 4 ++-- docs/source/operations/projections/gs50.rst | 4 ++-- docs/source/operations/projections/healpix.rst | 2 +- docs/source/operations/projections/lsat.rst | 2 +- docs/source/operations/projections/nzmg.rst | 4 ++-- .../source/operations/projections/rhealpix.rst | 4 ++-- docs/source/operations/projections/s2.rst | 2 +- docs/source/operations/projections/som.rst | 2 +- docs/source/operations/projections/tmerc.rst | 4 ++-- .../operations/transformations/defmodel.rst | 3 ++- .../operations/transformations/geogoffset.rst | 6 +++--- .../operations/transformations/helmert.rst | 3 ++- .../operations/transformations/hgridshift.rst | 4 +++- .../operations/transformations/vertoffset.rst | 2 +- .../transformations/xyzgridshift.rst | 4 ++-- docs/source/usage/differences.rst | 10 ++++++---- docs/source/usage/transformation.rst | 4 +++- 28 files changed, 69 insertions(+), 56 deletions(-) diff --git a/docs/source/apps/cct.rst b/docs/source/apps/cct.rst index e2199510c8..71968c30c8 100644 --- a/docs/source/apps/cct.rst +++ b/docs/source/apps/cct.rst @@ -49,8 +49,6 @@ file referenced by the {object_reference} must contain a valid .. versionadded:: 8.0.0 - - Description *********** diff --git a/docs/source/apps/proj.rst b/docs/source/apps/proj.rst index 327cc393ce..9c3754a939 100644 --- a/docs/source/apps/proj.rst +++ b/docs/source/apps/proj.rst @@ -206,6 +206,7 @@ The following script EOF will perform UTM zone 12 forward projection. +The default +ellps=GRS80 is used as no +ellps was specified. The geographic values of this example are equivalent and meant as examples of various forms of DMS input. The x-y output data will appear as three lines of:: diff --git a/docs/source/operations/conversions/cart.rst b/docs/source/operations/conversions/cart.rst index 239b1772d1..0daca0b9ce 100644 --- a/docs/source/operations/conversions/cart.rst +++ b/docs/source/operations/conversions/cart.rst @@ -27,9 +27,9 @@ longitude=90, latitude=0 and the third axis (Z) points to the North pole. Usage ################################################################################ -Convert geodetic coordinates to GRS80 cartesian coordinates:: +Convert geodetic coordinates to cartesian (uses default +ellps=GRS80):: - echo 17.7562015132 45.3935192042 133.12 2017.8 | cct +proj=cart +ellps=GRS80 + echo 17.7562015132 45.3935192042 133.12 2017.8 | cct +proj=cart 4272922.1553 1368283.0597 4518261.3501 2017.8000 Parameters diff --git a/docs/source/operations/conversions/geoc.rst b/docs/source/operations/conversions/geoc.rst index 6ee32ea65d..bd12618e55 100644 --- a/docs/source/operations/conversions/geoc.rst +++ b/docs/source/operations/conversions/geoc.rst @@ -63,11 +63,11 @@ Usage Converting from geodetic latitude to geocentric latitude:: - +proj=geoc +ellps=GRS80 + +proj=geoc Converting from geocentric latitude to geodetic latitude:: - +proj=pipeline +step +proj=geoc +inv +ellps=GRS80 + +proj=pipeline +step +proj=geoc +inv Parameters ################################################################################ diff --git a/docs/source/operations/conversions/push.rst b/docs/source/operations/conversions/push.rst index a1f4423a74..a0dbed1ceb 100644 --- a/docs/source/operations/conversions/push.rst +++ b/docs/source/operations/conversions/push.rst @@ -46,10 +46,10 @@ operation but the vertical part is kept exactly as the input was. $ echo 12 56 12.3 2020 | cct +proj=pipeline \ +step +proj=push +v_3 \ - +step +proj=cart +ellps=GRS80 \ + +step +proj=cart \ +step +proj=helmert +x=3000 +y=1000 +z=2000 \ - +step +proj=cart +ellps=GRS80 +inv \ - +step +proj=pop +v_3 \ + +step +proj=cart +inv \ + +step +proj=pop +v_3 12.0056753463 55.9866540552 12.3000 2000.0000 @@ -58,9 +58,9 @@ Note that the third coordinate component in the output is the same as the input. The same transformation without the push and pop operations would look like this:: $ echo 12 56 12.3 2020 | cct +proj=pipeline \ - +step +proj=cart +ellps=GRS80 \ + +step +proj=cart \ +step +proj=helmert +x=3000 +y=1000 +z=2000 \ - +step +proj=cart +ellps=GRS80 +inv \ + +step +proj=cart +inv 12.0057 55.9867 3427.7404 2000.0000 diff --git a/docs/source/operations/conversions/set.rst b/docs/source/operations/conversions/set.rst index 635d08d32f..8c1d5418e8 100644 --- a/docs/source/operations/conversions/set.rst +++ b/docs/source/operations/conversions/set.rst @@ -47,7 +47,7 @@ the reverse direction. +step +proj=vgridshift +grids=nlgeo2018.gtx \ +step +proj=push +v_3 \ +step +proj=set +v_3=43 \ - +step +proj=cart +ellps=GRS80 \ + +step +proj=cart \ +step +proj=helmert +x=-565.7346 +y=-50.4058 +z=-465.2895 +rx=-0.395023 +ry=0.330776 +rz=-1.876073 +s=-4.07242 +convention=coordinate_frame +exact \ +step +proj=cart +inv +ellps=bessel \ +step +proj=hgridshift +inv +grids=rdcorr2018.gsb,null \ diff --git a/docs/source/operations/conversions/topocentric.rst b/docs/source/operations/conversions/topocentric.rst index 14019965d9..4c0d3d135b 100644 --- a/docs/source/operations/conversions/topocentric.rst +++ b/docs/source/operations/conversions/topocentric.rst @@ -57,7 +57,7 @@ Convert geocentric coordinates to topocentric coordinates, with the topocentric origin specified in geocentric coordinates:: echo 3771793.968 140253.342 5124304.349 2020 | \ - cct -d 3 +proj=topocentric +ellps=WGS84 +X_0=3652755.3058 +Y_0=319574.6799 +Z_0=5201547.3536 + cct -d 3 +proj=topocentric +X_0=3652755.3058 +Y_0=319574.6799 +Z_0=5201547.3536 -189013.869 -128642.040 -4220.171 2020.0000 @@ -65,8 +65,8 @@ Convert geographic coordinates to topocentric coordinates, with the topocentric origin specified in geographic coordinates:: echo 2.12955 53.80939444 73 2020 | cct -d 3 +proj=pipeline \ - +step +proj=cart +ellps=WGS84 \ - +step +proj=topocentric +ellps=WGS84 +lon_0=5 +lat_0=55 +h_0=200 + +step +proj=cart \ + +step +proj=topocentric +lon_0=5 +lat_0=55 +h_0=200 -189013.869 -128642.040 -4220.171 2020.0000 diff --git a/docs/source/operations/conversions/unitconvert.rst b/docs/source/operations/conversions/unitconvert.rst index 13ca922886..7de98b8dad 100644 --- a/docs/source/operations/conversions/unitconvert.rst +++ b/docs/source/operations/conversions/unitconvert.rst @@ -26,16 +26,16 @@ of that. Many North American systems are defined with coordinates in feet. For example in Vermont:: - +proj=pipeline - +step +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k_0=0.999964286 +x_0=500000.00001016 +y_0=0 - +step +proj=unitconvert +xy_in=m +xy_out=us-ft + +proj=pipeline \ + +step +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k_0=0.999964286 +x_0=500000.00001016 \ + +step +proj=unitconvert +xy_out=us-ft Often when working with GNSS data the timestamps are presented in GPS-weeks, but when the data transformed with the `helmert` operation timestamps are expected to be in units of decimalyears. This can be fixed with `unitconvert`:: - +proj=pipeline - +step +proj=unitconvert +t_in=gps_week +t_out=decimalyear + +proj=pipeline \ + +step +proj=unitconvert +t_in=gps_week +t_out=decimalyear \ +step +proj=helmert +epoch=2000.0 +t_obs=2017.5 ... Parameters @@ -44,16 +44,16 @@ Parameters .. option:: +xy_in= or Horizontal input units. See :ref:`distance_units` and :ref:`angular_units` - for a list of available units. `` is the conversion factor + for a list of available units. Default: meter. `` is the conversion factor from the input unit to metre for linear units, or to radian for angular - units. + units. Default if not given: meters. .. option:: +xy_out= or Horizontal output units. See :ref:`distance_units` and :ref:`angular_units` - for a list of available units. `` is the conversion factor + for a list of available units. Deault: meter. `` is the conversion factor from the output unit to metre for linear units, or to radian for angular - units. + units. Default if not given: meters. .. option:: +z_in= or diff --git a/docs/source/operations/options/x_0.rst b/docs/source/operations/options/x_0.rst index ed4020d842..b80787c90f 100644 --- a/docs/source/operations/options/x_0.rst +++ b/docs/source/operations/options/x_0.rst @@ -1,5 +1,5 @@ .. option:: +x_0= - False easting. + False easting, in meters. *Defaults to 0.0.* diff --git a/docs/source/operations/projections/bertin1953.rst b/docs/source/operations/projections/bertin1953.rst index 65afcf62e2..bbed0c80b0 100644 --- a/docs/source/operations/projections/bertin1953.rst +++ b/docs/source/operations/projections/bertin1953.rst @@ -44,7 +44,7 @@ Usage The Bertin 1953 projection has no special options. Its rotation parameters are fixed. Here is an example of a forward projection with scale 1:: - $ echo 122 47 | src/proj +proj=bertin1953 +R=1 + $ echo 122 47 | proj +proj=bertin1953 +R=1 0.72 0.73 Parameters diff --git a/docs/source/operations/projections/cass.rst b/docs/source/operations/projections/cass.rst index 073fe6cc7b..fb3b3576d4 100644 --- a/docs/source/operations/projections/cass.rst +++ b/docs/source/operations/projections/cass.rst @@ -40,12 +40,18 @@ The Cassini-Soldner was also used for the detailed mapping of many German states Example using EPSG 30200 (Trinidad 1903, units in clarke's links):: - $ echo 0.17453293 -1.08210414 | proj +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 + $ echo 0.17453293 -1.08210414 | proj +proj=cass \ + +lat_0=10.44166666666667 +lon_0=-61.33333333333334 \ + +x_0=86501.46392051999 +y_0=65379.0134283 \ + +a=6378293.645208759 +b=6356617.987679838 \ + +to_meter=0.201166195164 66644.94 82536.22 Example using EPSG 3068 (Soldner Berlin):: - $ echo 13.5 52.4 | proj +proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +units=m + $ echo 13.5 52.4 | proj +proj=cass \ + +lat_0=52.41864827777778 +lon_0=13.62720366666667 \ + +x_0=40000 +y_0=10000 +ellps=bessel 31343.05 7932.76 Options diff --git a/docs/source/operations/projections/gall.rst b/docs/source/operations/projections/gall.rst index ba83d45099..6ef99d0fcf 100644 --- a/docs/source/operations/projections/gall.rst +++ b/docs/source/operations/projections/gall.rst @@ -49,12 +49,12 @@ Unlike the Mercator, the Gall shows the poles as lines running across the top an Example using Gall Stereographic :: - $ echo 9 51 | proj +proj=gall +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m + $ echo 9 51 | proj +proj=gall 708432.90 5193386.36 Example using Gall Stereographic (Central meridian 90°W) :: - $ echo 9 51 | proj +proj=gall +lon_0=90w +x_0=0 +y_0=0 +ellps=WGS84 +units=m + $ echo 9 51 | proj +proj=gall +lon_0=90w 7792761.91 5193386.36 Parameters diff --git a/docs/source/operations/projections/gs50.rst b/docs/source/operations/projections/gs50.rst index a5694f9488..5378c25a89 100644 --- a/docs/source/operations/projections/gs50.rst +++ b/docs/source/operations/projections/gs50.rst @@ -1,7 +1,7 @@ .. _gs50: ******************************************************************************** -Modified Stereographic of 50 U.S. +Modified Stereographic of the 50 U.S. states ******************************************************************************** +---------------------+----------------------------------------------------------+ @@ -24,7 +24,7 @@ Modified Stereographic of 50 U.S. .. figure:: ./images/gs50.png :width: 500 px :align: center - :alt: Modified Stereographic of 50 U.S. + :alt: Modified Stereographic of the 50 U.S. states proj-string: ``+proj=gs50`` diff --git a/docs/source/operations/projections/healpix.rst b/docs/source/operations/projections/healpix.rst index 41bc10dbd7..ec00f90a5d 100644 --- a/docs/source/operations/projections/healpix.rst +++ b/docs/source/operations/projections/healpix.rst @@ -40,7 +40,7 @@ Usage To run a forward HEALPix projection on a unit sphere model, use the following command:: - proj +proj=healpix +lon_0=0 +a=1 -E < 55 12 > EOF 55 12 6115727.86 1553840.13 diff --git a/docs/source/operations/projections/s2.rst b/docs/source/operations/projections/s2.rst index 46ae715e81..e29ab65d23 100644 --- a/docs/source/operations/projections/s2.rst +++ b/docs/source/operations/projections/s2.rst @@ -82,7 +82,7 @@ Usage The following example uses S2 on the right face:: - echo 90 0 | ../bin/proj +proj=s2 +lat_0=0 +lon_0=90 +ellps=WGS84 +UVtoST=linear + echo 90 0 | proj +proj=s2 +lat_0=0 +lon_0=90 +ellps=WGS84 +UVtoST=linear 0.5 0.5 diff --git a/docs/source/operations/projections/som.rst b/docs/source/operations/projections/som.rst index 124fff9194..d3cf437786 100644 --- a/docs/source/operations/projections/som.rst +++ b/docs/source/operations/projections/som.rst @@ -40,7 +40,7 @@ satellite data to be represented accurately as a rectangular array. proj-string: ``+proj=som +inc_angle=98.303820000243860022 +ps_rev=0.06866666666666667 +asc_lon=64.412896137498847793`` - proj-string: ``+proj=som +inc_angle=1.7157253262878522r +ps_rev=0.06866666666666667 +asc_lon=1.1242171183417042r`` + (gives same results as: ``+proj=som +inc_angle=1.7157253262878522r +ps_rev=0.06866666666666667 +asc_lon=1.1242171183417042r``) Parameters ################################################################################ diff --git a/docs/source/operations/projections/tmerc.rst b/docs/source/operations/projections/tmerc.rst index 576ad32733..879f3bf398 100644 --- a/docs/source/operations/projections/tmerc.rst +++ b/docs/source/operations/projections/tmerc.rst @@ -64,12 +64,12 @@ The following table gives special cases of the Transverse Mercator projection. Example using Gauss-Kruger on Germany area (aka EPSG:31467) :: - $ echo 9 51 | proj +proj=tmerc +lat_0=0 +lon_0=9 +k_0=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m + $ echo 9 51 | proj +proj=tmerc +lon_0=9 +x_0=3500000 +ellps=bessel 3500000.00 5651505.56 Example using Gauss Boaga on Italy area (EPSG:3004) :: - $ echo 15 42 | proj +proj=tmerc +lat_0=0 +lon_0=15 +k_0=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m + $ echo 15 42 | proj +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=2520000 +ellps=intl 2520000.00 4649858.60 Parameters diff --git a/docs/source/operations/transformations/defmodel.rst b/docs/source/operations/transformations/defmodel.rst index 8d737e6e56..26c4bc38ba 100644 --- a/docs/source/operations/transformations/defmodel.rst +++ b/docs/source/operations/transformations/defmodel.rst @@ -62,4 +62,5 @@ Transforming a point with the LINZ NZGD2000 deformation model: :: - echo 166.7133850980 -44.5105886020 293.3700 2007.689 | cct +proj=defmodel +model=nzgd2000-20180701.json + echo 166.7133850980 -44.5105886020 293.3700 2007.689 | + cct +proj=defmodel +model=nzgd2000-20180701.json diff --git a/docs/source/operations/transformations/geogoffset.rst b/docs/source/operations/transformations/geogoffset.rst index 6ca4f64c83..a1e1c89ae0 100644 --- a/docs/source/operations/transformations/geogoffset.rst +++ b/docs/source/operations/transformations/geogoffset.rst @@ -39,15 +39,15 @@ Examples Geographic offset from the old Greek geographic 2D CRS to the newer GGRS87 CRS:: - proj=geogoffset dlon=0.28 dlat=-5.86 + +proj=geogoffset +dlon=0.28 +dlat=-5.86 Conversion from Tokyo + JSLD69 height to WGS 84:: - proj=geogoffset dlon=-13.97 dlat=7.94 dh=26.9 + +proj=geogoffset +dlon=-13.97 +dlat=7.94 +dh=26.9 Conversion from Baltic 1977 height to Black Sea height:: - proj=geogoffset dh=0.4 + +proj=geogoffset +dh=0.4 Parameters diff --git a/docs/source/operations/transformations/helmert.rst b/docs/source/operations/transformations/helmert.rst index 78f3621c9f..062d13e5ab 100644 --- a/docs/source/operations/transformations/helmert.rst +++ b/docs/source/operations/transformations/helmert.rst @@ -50,7 +50,8 @@ Transforming coordinates from NAD72 to NAD83 using the 4 parameter 2D Helmert: :: - proj=helmert convention=coordinate_frame x=-9597.3572 y=.6112 s=0.304794780637 theta=-1.244048 + proj=helmert convention=coordinate_frame x=-9597.3572 y=.6112 \ + s=0.304794780637 theta=-1.244048 Simplified transformations from ITRF2008/IGS08 to ETRS89 using 7 parameters: diff --git a/docs/source/operations/transformations/hgridshift.rst b/docs/source/operations/transformations/hgridshift.rst index 70aac061d3..5191f9c2b3 100644 --- a/docs/source/operations/transformations/hgridshift.rst +++ b/docs/source/operations/transformations/hgridshift.rst @@ -63,7 +63,9 @@ the coordinate is part of the coordinate tuple. Suppose we want to model the deformation of the 2008 earthquake in Iceland in a transformation of data from 2005 to 2009:: - echo 63.992 -21.014 10.0 2005.0 | cct +proj=hgridshift +grids=iceland2008.gsb +t_epoch=2008.4071 +t_final=2009.0 + echo 63.992 -21.014 10.0 2005.0 | + cct +proj=hgridshift +grids=iceland2008.gsb \ + +t_epoch=2008.4071 +t_final=2009.0 63.9920021 -21.0140013 10.0 2005.0 .. note:: diff --git a/docs/source/operations/transformations/vertoffset.rst b/docs/source/operations/transformations/vertoffset.rst index c9ea3aba45..8b6b571039 100644 --- a/docs/source/operations/transformations/vertoffset.rst +++ b/docs/source/operations/transformations/vertoffset.rst @@ -30,7 +30,7 @@ Examples Vertical offset from LN02 height to EVRF2000 height with horizontal coordinates in ETRS89:: +proj=vertoffset +lat_0=46.9166666666666666 +lon_0=8.183333333333334 \ - +dh=-0.245 +slope_lat=-0.210 +slope_lon=-0.032 +ellps=GRS80 + +dh=-0.245 +slope_lat=-0.210 +slope_lon=-0.032 Parameters ################################################################################ diff --git a/docs/source/operations/transformations/xyzgridshift.rst b/docs/source/operations/transformations/xyzgridshift.rst index ca3ca88127..86c971e16d 100644 --- a/docs/source/operations/transformations/xyzgridshift.rst +++ b/docs/source/operations/transformations/xyzgridshift.rst @@ -45,8 +45,8 @@ NTF to RGF93 transformation using :file:`gr3df97a.tif` grid +proj=pipeline +step +proj=push +v_3 +step +proj=cart +ellps=clrk80ign - +step +proj=xyzgridshift +grids=gr3df97a.tif +grid_ref=output_crs +ellps=GRS80 - +step +proj=cart +ellps=GRS80 +inv + +step +proj=xyzgridshift +grids=gr3df97a.tif +grid_ref=output_crs + +step +proj=cart +inv +step +proj=pop +v_3 Parameters diff --git a/docs/source/usage/differences.rst b/docs/source/usage/differences.rst index 3bc2f54ddf..1b20d71841 100644 --- a/docs/source/usage/differences.rst +++ b/docs/source/usage/differences.rst @@ -37,19 +37,21 @@ PROJ 5, this was handled incorrectly when a custom central meridian was set with :option:`+lon_0`. This caused a change in sign on the resulting easting as seen below:: - $ proj +proj=merc +lon_0=110 + $ proj +proj=merc +lon_0=110 < Date: Sun, 3 Sep 2023 21:48:14 +0200 Subject: [PATCH 015/199] Doc: add source_file extension (borrowed from GDAL, credits to @dbaston) --- docs/source/_extensions/source_file.py | 33 ++++++++++++++++++++++++++ docs/source/conf.py | 6 +++++ 2 files changed, 39 insertions(+) create mode 100644 docs/source/_extensions/source_file.py diff --git a/docs/source/_extensions/source_file.py b/docs/source/_extensions/source_file.py new file mode 100644 index 0000000000..6ecd45338d --- /dev/null +++ b/docs/source/_extensions/source_file.py @@ -0,0 +1,33 @@ +import os + +from docutils import nodes + + +def source_file(name, rawtext, text, lineno, inliner, options={}, content=[]): + app = inliner.document.settings.env.app + + rootdir = app.config.source_file_root + fname = text + + if not os.path.exists(os.path.join(rootdir, fname)): + inliner.reporter.warning( + f"Referenced source file {fname} not found", line=lineno + ) + + ref_node = nodes.reference( + rawtext, + os.path.basename(fname), + refuri=app.config.source_file_url_template.format(fname), + **options, + ) + + return [ref_node], [] + + +def setup(app): + app.add_config_value("source_file_root", None, "html") + app.add_config_value("source_file_url_template", None, "html") + + app.add_role("source_file", source_file) + + return {"parallel_read_safe": True, "parallel_write_safe": True} diff --git a/docs/source/conf.py b/docs/source/conf.py index c39a5f0d0e..e6dba875fc 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,6 +51,7 @@ "redirects", "replacements", "program_with_link", + "source_file", ] # File extensions of source files @@ -261,3 +262,8 @@ False, ), ] + +# -- Source file links ------------------------------------------ + +source_file_root = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir) +source_file_url_template = "https://github.com/OSGeo/PROJ/blob/master/{}" From f39b406b5806811cd093f6e8333463d67d109c95 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 21:48:46 +0200 Subject: [PATCH 016/199] Doc: projections.rst: document Order of applications of parameters (fixes #3875) --- docs/source/usage/projections.rst | 77 +++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/docs/source/usage/projections.rst b/docs/source/usage/projections.rst index 68b94d2211..e4a4ca9fce 100644 --- a/docs/source/usage/projections.rst +++ b/docs/source/usage/projections.rst @@ -23,17 +23,17 @@ documenting the individual :doc:`projections<../operations/projections/index>`. +ellps Ellipsoid name (see ``proj -le``) +k Scaling factor (deprecated) +k_0 Scaling factor - +lat_0 Latitude of origin - +lon_0 Central meridian + +lat_0 Latitude of origin (in degree if no angular unit specified) + +lon_0 Central meridian (in degree if no angular unit specified) +lon_wrap Center longitude to use for wrapping (see below) +over Allow longitude output outside -180 to 180 range, disables wrapping (see below) +pm Alternate prime meridian (typically a city name, see below) +proj Projection name (see ``proj -l``) - +units meters, US survey feet, etc. - +vunits vertical units. - +x_0 False easting - +y_0 False northing + +units Horizontal coordinate system units (meters, US survey feet, etc.) + +vunits Vertical coordinate system units. + +x_0 False easting (always in meters) + +y_0 False northing (always in meters) ========== ================================================================ In the sections below most of the parameters are explained in details. @@ -43,13 +43,16 @@ In the sections below most of the parameters are explained in details. Units +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Horizontal units can be specified using the ``+units`` keyword with a symbolic -name for a unit (i.e. ``us-ft``). Alternatively the translation to meters can be +Horizontal coordinate system units can be specified using the ``+units`` keyword +with a symbolic me for a unit (i.e. ``us-ft``). +Alternatively the translation to meters can be specified with the ``+to_meter`` keyword (i.e. 0.304800609601219 for US feet). The ``-lu`` argument to :program:`cs2cs` or :program:`proj` can be used to list symbolic unit names. The default unit for projected coordinates is the meter. A few special projections deviate from this behavior, most notably the latlong pseudo-projection that returns degrees. +Note that this does *not* affect the units of linear parameters such as ``+x_0`` +or ``+y_0`` which should always be specified in degree Vertical (Z) units can be specified using the ``+vunits`` keyword with a symbolic name for a unit (i.e. ``us-ft``). Alternatively the translation to @@ -62,15 +65,15 @@ vertical units will default to be the same as the horizontal coordinates. :program:`proj` does not handle vertical units at all and hence the ``+vto_meter`` argument will be ignored. -Scaling of output units can be done by applying the ``+k_0`` argument. The -returned coordinates are scaled by the value assigned with the ``+k_0`` -parameter. +Scaling of output units can be done by applying the ``+k_0`` argument (unitless). +The returned coordinates are scaled by the value assigned with the ``+k_0`` +parameter. This parameter is only used by projections that mention using it, +and its exact effect is projection dependent. -Input units for parameters that can be understood to be either decimal degrees or -radians are interpreted to be decimal degrees by convention. - -Explicit specification of input units can be accomplished by adding the appropriate -suffix to input values. +Input units for angular parameters (``+lon_0``, ``+lat_0``, etc.) are +interpreted to be decimal degrees by convention. +Explicit specification of input angular units can be accomplished by adding the +appropriate ruffix to input values. +----------------+---------------------+ @@ -117,9 +120,17 @@ to a straight line, ``+over`` will have no effect or will not lead to expected results. The ``+lon_wrap`` option can be used to provide an alternative means of doing -longitude wrapping within ``pj_transform()``. The argument to this option is a +longitude wrapping. It has only effect with operations that output angular +coordinates, such as ``+proj=longlat`` The argument to this option is a center longitude. So ``+lon_wrap=180`` means wrap longitudes in the range 0 to -360. Note that ``+over`` does **not** disable ``+lon_wrap``. +360. + +:: + + $ echo -1 0 cs2cs +proj=longlat +to +proj=longlat +lon_wrap=180 + 359dE 0dN 0.000 + +Note that ``+over`` does **not** disable ``+lon_wrap``. Prime Meridian +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -129,8 +140,8 @@ meridian of the declared coordinate system and that of greenwich. A prime meridian is declared using the "pm" parameter, and may be assigned a symbolic name, or the longitude of the alternative prime meridian relative to greenwich. -Currently prime meridian declarations are only utilized by the -``pj_transform()`` API call, not the ``pj_inv()`` and ``pj_fwd()`` calls. +Currently prime meridian declarations are not used by the ``pj_inv()`` and +``pj_fwd()`` calls. Consequently the user utility :program:`cs2cs` does honour prime meridians but the :program:`proj` user utility ignores them. @@ -193,3 +204,29 @@ They can be combined in +axis in forms like: The ``+axis`` argument does not work with the :program:`proj` command line utility. + + +Order of applications of parameters ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +In the forward direction (from geodetic to projected coordinates), steps +are performed in the following order: + +- subtracting prime meridian (``+pm``) to input coordinate longitude +- subtracting central meridian (``+lon_0``) to input coordinate longitude +- normalizing input coordinate longitude to [-180, 180], unless ``+over`` is + specified +- application of map projection formula on a spheroid of radius 1 and with + the eccentricity of the target spheroid specified. Includes taking into account + projection parameters such as ``+k_0``, ``+lat_0``, and other projection specific + parameters +- scaling of output x, y values by the semimajor axis +- addition of false easting ``+x_0`` to x and false northing ``+y_0`` to y +- scaling of output x, y by the output horizontal unit (``+units`` / ``+to_meter``) +- scaling of output z by the output vertical unit (``+vunits`` / ``+vto_meter``) +- application of axis orientation and order (``+axis``) + +This is implemented mostly in :source_file:`src/fwd.cpp` + +For the reverse direction (from projected coordinates to geodetic coordinates), +reverse steps are performed in the reverse order. From b2435aa4e00fc3045f27b549b61001b56322de00 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 22:12:41 +0200 Subject: [PATCH 017/199] cs2cs: fix handling of input coordinates in grad (fixes #3800) --- src/apps/cs2cs.cpp | 8 ++++---- test/cli/testvarious | 6 ++++++ test/cli/tv_out.dist | 3 +++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index d4485fbe5b..f115e1ea20 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -171,7 +171,7 @@ static void process(FILE *fid) if (data.u != HUGE_VAL) { - if (srcIsLongLat) { + if (srcIsLongLat && fabs(srcToRadians - M_PI / 180) < 1e-10) { /* dmstor gives values to radians. Convert now to the SRS unit */ data.u /= srcToRadians; @@ -922,10 +922,10 @@ int main(int argc, char **argv) { } /* set input formatting control */ - if (!srcIsLongLat) - informat = strtod; - else { + if (srcIsLongLat && fabs(srcToRadians - M_PI / 180) < 1e-10) informat = dmstor; + else { + informat = strtod; } if (!destIsLongLat && !oform) diff --git a/test/cli/testvarious b/test/cli/testvarious index 3b3cc69110..97d14f67af 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -120,6 +120,12 @@ $EXE +proj=utm +zone=11 +datum=WGS84 +pm=3 \ 500000 3000000 EOF echo "##############################################################" >> ${OUT} +echo Test input in grad >> ${OUT} +# +$EXE EPSG:4807 EPSG:27572 -E >>${OUT} <> ${OUT} echo Test geocentric x/y/z generation. >> ${OUT} # $EXE +proj=latlong +datum=WGS84 \ diff --git a/test/cli/tv_out.dist b/test/cli/tv_out.dist index 9836ca8b8e..aa03a575f4 100644 --- a/test/cli/tv_out.dist +++ b/test/cli/tv_out.dist @@ -31,6 +31,9 @@ Test support for the lon_wrap switch. Test simple prime meridian handling within a projection. 500000 3000000 113dW 27d7'20.891"N 0.000 ############################################################## +Test input in grad +64.44444444 2.9586342556 760724.02 3457334.86 0.00 +############################################################## Test geocentric x/y/z generation. 0d00'00.001"W 0d00'00.001"N 0.0 6378137.00 -0.03 0.03 0d00'00.001"W 0d00'00.001"N 10.0 6378147.00 -0.03 0.03 From 87ae4381913ec6b34f3e35b387721bd9b820faa3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 22:14:38 +0200 Subject: [PATCH 018/199] Fix GIGS 5102.2 (fixes #3800) --- test/CMakeLists.txt | 2 +- test/gigs/{5102.2.gie.failing => 5102.2.gie} | 34 ++++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) rename test/gigs/{5102.2.gie.failing => 5102.2.gie} (84%) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 52fe455758..f41f664ce6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -72,7 +72,7 @@ proj_add_gie_test("GIGS-5101.4-jhs-etmerc" "gigs/5101.4-jhs-etmerc.gie") # Same as above, but using etmerc instead of tmerc #proj_add_gie_test("GIGS-5101.4-jhs" "gigs/5101.4-jhs.gie") proj_add_gie_test("GIGS-5102.1" "gigs/5102.1.gie") -#proj_add_gie_test("GIGS-5102.2" "gigs/5102.2.gie") +proj_add_gie_test("GIGS-5102.2" "gigs/5102.2.gie") proj_add_gie_test("GIGS-5103.1" "gigs/5103.1.gie") proj_add_gie_test("GIGS-5103.2" "gigs/5103.2.gie") proj_add_gie_test("GIGS-5103.3" "gigs/5103.3.gie") diff --git a/test/gigs/5102.2.gie.failing b/test/gigs/5102.2.gie similarity index 84% rename from test/gigs/5102.2.gie.failing rename to test/gigs/5102.2.gie index db812dbde1..d41280e1d4 100644 --- a/test/gigs/5102.2.gie.failing +++ b/test/gigs/5102.2.gie @@ -1,14 +1,20 @@ -------------------------------------------------------------------------------- Test 5102 (part 2), Lambert Conic Conformal (1SP), v2-0_2011-06-28. - -------------------------------------------------------------------------------- - + + +use_proj4_init_rules true -------------------------------------------------------------------------------- -operation +proj=pipeline - +step +init=epsg:4807 +inv +# We need to add this grad->rad step as +init=epsg:4807 assumes +# degrees (if front operation), or radians (if non-front), as this was the case +# in PROJ < 6 era +# Note: "cs2cs EPSG:4807 EPSG:27572" does the right job. +operation +proj=pipeline \ + +step +proj=unitconvert +xy_in=grad +xy_out=rad \ + +step +init=epsg:4807 +inv \ +step +init=epsg:27572 -------------------------------------------------------------------------------- tolerance 0.03 m @@ -88,9 +94,13 @@ accept 9.6253009222 58.8888888889 expect 1183926.705 2923124.876 -------------------------------------------------------------------------------- -operation +proj=pipeline - +step +init=epsg:27572 +inv - +step +init=epsg:4807 +# We need to add this rad->grad step as +init=epsg:4807 assumes +# degrees (if last operation), or radians (if non-last), as this was the case +# in PROJ < 6 era +operation +proj=pipeline \ + +step +init=epsg:27572 +inv \ + +step +init=epsg:4807 \ + +step +proj=unitconvert +xy_in=rad +xy_out=grad -------------------------------------------------------------------------------- tolerance 0.03 m accept 760724.023 3457334.864 @@ -169,8 +179,12 @@ accept 1183926.705 2923124.876 expect 9.6253009222 58.8888888889 -------------------------------------------------------------------------------- -operation +proj=pipeline - +step +init=epsg:4807 +inv +# We need to add this grad->rad step as +init=epsg:4807 assumes +# degrees (if front operation), or radians (if non-front), as this was the case +# in PROJ < 6 era +operation +proj=pipeline \ + +step +proj=unitconvert +xy_in=grad +xy_out=rad \ + +step +init=epsg:4807 +inv \ +step +init=epsg:27572 -------------------------------------------------------------------------------- tolerance 0.006 m @@ -249,4 +263,4 @@ tolerance 0.006 m accept 9.6253009222 58.8888888889 roundtrip 1000 - + From ea1a88513f681253a96b14c7639f21b556aa75c0 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 23:18:52 +0200 Subject: [PATCH 019/199] isEquivalentTo(): make a datum name 'unknown' equivalent to another one Fixes https://lists.osgeo.org/pipermail/proj/2023-September/011126.html --- src/iso19111/crs.cpp | 50 +++++++++++-------- src/iso19111/datum.cpp | 3 ++ .../operation/coordinateoperationfactory.cpp | 35 ++++++++----- test/unit/test_datum.cpp | 22 ++++++++ 4 files changed, 76 insertions(+), 34 deletions(-) diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index fc42bc29ab..7af6194125 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -636,16 +636,18 @@ CRSNNPtr CRS::createBoundCRSToWGS84IfPossible( auto geogCRS = extractGeographicCRS(); auto hubCRS = util::nn_static_pointer_cast(GeographicCRS::EPSG_4326); if (geodCRS && !geogCRS) { - if (geodCRS->_isEquivalentTo(GeographicCRS::EPSG_4978.get(), + if (geodCRS->datumNonNull(dbContext)->nameStr() != "unknown" && + geodCRS->_isEquivalentTo(GeographicCRS::EPSG_4978.get(), util::IComparable::Criterion::EQUIVALENT, dbContext)) { return thisAsCRS; } hubCRS = util::nn_static_pointer_cast(GeodeticCRS::EPSG_4978); } else if (!geogCRS || - geogCRS->_isEquivalentTo( - GeographicCRS::EPSG_4326.get(), - util::IComparable::Criterion::EQUIVALENT, dbContext)) { + (geogCRS->datumNonNull(dbContext)->nameStr() != "unknown" && + geogCRS->_isEquivalentTo( + GeographicCRS::EPSG_4326.get(), + util::IComparable::Criterion::EQUIVALENT, dbContext))) { return thisAsCRS; } else { geodCRS = geogCRS; @@ -2432,7 +2434,7 @@ void GeodeticCRS::addDatumInfoToPROJString( const auto &nadgrids = formatter->getHDatumExtension(); const auto l_datum = datumNonNull(formatter->databaseContext()); if (formatter->getCRSExport() && TOWGS84Params.empty() && - nadgrids.empty()) { + nadgrids.empty() && l_datum->nameStr() != "unknown") { if (l_datum->_isEquivalentTo( datum::GeodeticReferenceFrame::EPSG_6326.get(), util::IComparable::Criterion::EQUIVALENT)) { @@ -4846,22 +4848,28 @@ ProjectedCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const { const auto addCRS = [&](const ProjectedCRSNNPtr &crs, const bool eqName, bool hasNonMatchingId) { const auto &l_unit = cs->axisList()[0]->unit(); - if (_isEquivalentTo(crs.get(), - util::IComparable::Criterion:: - EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, - dbContext) || - (l_implicitCS && - l_unit._isEquivalentTo( - crs->coordinateSystem()->axisList()[0]->unit(), - util::IComparable::Criterion::EQUIVALENT) && - l_baseCRS->_isEquivalentTo( - crs->baseCRS().get(), - util::IComparable::Criterion:: - EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, - dbContext) && - derivingConversionRef()->_isEquivalentTo( - crs->derivingConversionRef().get(), - util::IComparable::Criterion::EQUIVALENT, dbContext))) { + if ((_isEquivalentTo(crs.get(), + util::IComparable::Criterion:: + EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, + dbContext) || + (l_implicitCS && + l_unit._isEquivalentTo( + crs->coordinateSystem()->axisList()[0]->unit(), + util::IComparable::Criterion::EQUIVALENT) && + l_baseCRS->_isEquivalentTo( + crs->baseCRS().get(), + util::IComparable::Criterion:: + EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, + dbContext) && + derivingConversionRef()->_isEquivalentTo( + crs->derivingConversionRef().get(), + util::IComparable::Criterion::EQUIVALENT, dbContext))) && + !((baseCRS()->datumNonNull(dbContext)->nameStr() == "unknown" && + crs->baseCRS()->datumNonNull(dbContext)->nameStr() != + "unknown") || + (baseCRS()->datumNonNull(dbContext)->nameStr() != "unknown" && + crs->baseCRS()->datumNonNull(dbContext)->nameStr() == + "unknown"))) { if (crs->nameStr() == thisName) { res.clear(); res.emplace_back(crs, hasNonMatchingId ? 70 : 100); diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 777addd22c..2957b99ace 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -1547,6 +1547,9 @@ bool GeodeticReferenceFrame::_isEquivalentTo( bool GeodeticReferenceFrame::hasEquivalentNameToUsingAlias( const IdentifiedObject *other, const io::DatabaseContextPtr &dbContext) const { + if (nameStr() == "unknown" || other->nameStr() == "unknown") { + return true; + } if (dbContext) { if (!identifiers().empty()) { const auto &id = identifiers().front(); diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 2ee18660f9..85e9b11b15 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -1939,6 +1939,20 @@ findCandidateGeodCRSForDatum(const io::AuthorityFactoryPtr &authFactory, //! @cond Doxygen_Suppress +static bool +isSameGeodeticDatum(const datum::GeodeticReferenceFrameNNPtr &datum1, + const datum::GeodeticReferenceFrameNNPtr &datum2, + const io::DatabaseContextPtr &dbContext) { + if (datum1->nameStr() == "unknown" && datum2->nameStr() != "unknown") + return false; + if (datum2->nameStr() == "unknown" && datum1->nameStr() != "unknown") + return false; + return datum1->_isEquivalentTo( + datum2.get(), util::IComparable::Criterion::EQUIVALENT, dbContext); +} + +// --------------------------------------------------------------------------- + // Look in the authority registry for operations from sourceCRS to targetCRS // using an intermediate pivot std::vector @@ -1978,10 +1992,7 @@ CoordinateOperationFactory::Private::findsOpsInRegistryWithIntermediate( candidateSrcGeod->datumNonNull(dbContext); const auto dstDatum = geodDst->datumNonNull(dbContext); const bool sameGeodeticDatum = - srcDatum->_isEquivalentTo( - dstDatum.get(), - util::IComparable::Criterion::EQUIVALENT, - dbContext); + isSameGeodeticDatum(srcDatum, dstDatum, dbContext); if (sameGeodeticDatum) { continue; } @@ -2133,9 +2144,8 @@ createBallparkGeographicOffset(const crs::CRSNNPtr &sourceCRS, dynamic_cast(targetCRS.get()); const bool isSameDatum = geogSrc && geogDst && - geogSrc->datumNonNull(dbContext)->_isEquivalentTo( - geogDst->datumNonNull(dbContext).get(), - util::IComparable::Criterion::EQUIVALENT, dbContext); + isSameGeodeticDatum(geogSrc->datumNonNull(dbContext), + geogDst->datumNonNull(dbContext), dbContext); auto name = buildOpName(isSameDatum ? NULL_GEOGRAPHIC_OFFSET : BALLPARK_GEOGRAPHIC_OFFSET, @@ -2706,9 +2716,9 @@ CoordinateOperationFactory::Private::createOperationsGeogToGeog( const auto dbContext = authFactory ? authFactory->databaseContext().as_nullable() : nullptr; - const bool sameDatum = geogSrc->datumNonNull(dbContext)->_isEquivalentTo( - geogDst->datumNonNull(dbContext).get(), - util::IComparable::Criterion::EQUIVALENT, dbContext); + const bool sameDatum = + isSameGeodeticDatum(geogSrc->datumNonNull(dbContext), + geogDst->datumNonNull(dbContext), dbContext); // Do the CRS differ by their axis order ? bool axisReversal2D = false; @@ -3610,9 +3620,8 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( const auto srcDatum = geodSrc->datumNonNull(dbContext); const auto dstDatum = geodDst->datumNonNull(dbContext); - sameGeodeticDatum = srcDatum->_isEquivalentTo( - dstDatum.get(), util::IComparable::Criterion::EQUIVALENT, - dbContext); + + sameGeodeticDatum = isSameGeodeticDatum(srcDatum, dstDatum, dbContext); if (res.empty() && !sameGeodeticDatum && !context.inCreateOperationsWithDatumPivotAntiRecursion) { diff --git a/test/unit/test_datum.cpp b/test/unit/test_datum.cpp index 423438cca1..df0596af92 100644 --- a/test/unit/test_datum.cpp +++ b/test/unit/test_datum.cpp @@ -289,6 +289,28 @@ TEST(datum, datum_with_ANCHOREPOCH) { // --------------------------------------------------------------------------- +TEST(datum, unknown_datum) { + auto datum = GeodeticReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "my_datum"), + Ellipsoid::GRS1980, optional(), optional(), + PrimeMeridian::GREENWICH); + auto unknown_datum = GeodeticReferenceFrame::create( + PropertyMap().set(IdentifiedObject::NAME_KEY, "unknown"), + Ellipsoid::GRS1980, optional(), optional(), + PrimeMeridian::GREENWICH); + + EXPECT_FALSE(datum->isEquivalentTo(unknown_datum.get(), + IComparable::Criterion::STRICT)); + EXPECT_TRUE(datum->isEquivalentTo(unknown_datum.get(), + IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(unknown_datum->isEquivalentTo(datum.get(), + IComparable::Criterion::STRICT)); + EXPECT_TRUE(unknown_datum->isEquivalentTo( + datum.get(), IComparable::Criterion::EQUIVALENT)); +} + +// --------------------------------------------------------------------------- + TEST(datum, dynamic_geodetic_reference_frame) { auto drf = DynamicGeodeticReferenceFrame::create( PropertyMap().set(IdentifiedObject::NAME_KEY, "test"), Ellipsoid::WGS84, From b10ac5e7b93f1e3ae80092b682cc821be1901f8e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 3 Sep 2023 23:36:40 +0200 Subject: [PATCH 020/199] Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major axis A (and non-zero inv flattening) isn't equivalent to a sphere of radius A... or to another ellipsoid of same semi-major axis but defined from a semi-minor axis and not inverse flattening Discovered when debugging corner cases of https://github.com/OSGeo/PROJ/pull/3879 ... --- src/iso19111/datum.cpp | 2 +- test/unit/test_datum.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 777addd22c..4e3b472768 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -1156,7 +1156,7 @@ bool Ellipsoid::_isEquivalentTo(const util::IComparable *other, } } else { - if (!otherEllipsoid->computeSemiMinorAxis()._isEquivalentTo( + if (!computeSemiMinorAxis()._isEquivalentTo( otherEllipsoid->computeSemiMinorAxis(), criterion)) { return false; } diff --git a/test/unit/test_datum.cpp b/test/unit/test_datum.cpp index 423438cca1..b06d5dbc19 100644 --- a/test/unit/test_datum.cpp +++ b/test/unit/test_datum.cpp @@ -124,6 +124,12 @@ TEST(datum, ellipsoid_from_inverse_flattening) { EXPECT_FALSE(Ellipsoid::WGS84->isEquivalentTo( Ellipsoid::GRS1980.get(), IComparable::Criterion::EQUIVALENT)); + + auto sphere = Ellipsoid::createSphere(PropertyMap(), Length(6378137)); + EXPECT_FALSE(Ellipsoid::WGS84->isEquivalentTo( + sphere.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_FALSE(sphere->isEquivalentTo(Ellipsoid::WGS84.get(), + IComparable::Criterion::EQUIVALENT)); } // --------------------------------------------------------------------------- From 3606ddb6896b031f50de2e2c33d46b41b0152a5f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 11 Aug 2023 17:06:38 +0200 Subject: [PATCH 021/199] PointMotionOperation: implement constructor, import/export WKT and PROJJSON, and instanciation from database --- include/proj/coordinateoperation.hpp | 50 +++- include/proj/internal/io_internal.hpp | 13 +- scripts/reference_exported_symbols.txt | 4 + src/iso19111/factory.cpp | 20 ++ src/iso19111/io.cpp | 93 ++++++- src/iso19111/operation/parammappings.cpp | 16 ++ src/iso19111/operation/singleoperation.cpp | 303 ++++++++++++++++++++- src/iso19111/static.cpp | 1 + src/proj_constants.h | 10 + test/unit/test_factory.cpp | 52 ++++ test/unit/test_io.cpp | 126 +++++++++ 11 files changed, 670 insertions(+), 18 deletions(-) diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 158df31d20..923ded9011 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -389,6 +389,7 @@ class PROJ_GCC_DLL GeneralParameterValue : public util::BaseObject, friend class Conversion; friend class SingleOperation; + friend class PointMotionOperation; PROJ_INTERNAL virtual void _exportToWKT(io::WKTFormatter *formatter, const MethodMapping *mapping) const = 0; // throw(io::FormattingException) @@ -1765,8 +1766,55 @@ class PROJ_GCC_DLL PointMotionOperation : public SingleOperation { PROJ_DLL ~PointMotionOperation() override; //! @endcond + PROJ_DLL CoordinateOperationNNPtr inverse() const override; + + PROJ_DLL static PointMotionOperationNNPtr + create(const util::PropertyMap &properties, const crs::CRSNNPtr &crsIn, + const OperationMethodNNPtr &methodIn, + const std::vector &values, + const std::vector + &accuracies); // throw InvalidOperation + + PROJ_DLL static PointMotionOperationNNPtr + create(const util::PropertyMap &propertiesOperation, + const crs::CRSNNPtr &crsIn, + const util::PropertyMap &propertiesOperationMethod, + const std::vector ¶meters, + const std::vector &values, + const std::vector + &accuracies); // throw InvalidOperation + + PROJ_DLL PointMotionOperationNNPtr substitutePROJAlternativeGridNames( + io::DatabaseContextNNPtr databaseContext) const; + + PROJ_PRIVATE : + //! @cond Doxygen_Suppress + PROJ_INTERNAL PointMotionOperationNNPtr + shallowClone() const; + + PROJ_INTERNAL void _exportToPROJString(io::PROJStringFormatter *formatter) + const override; // throw(FormattingException) + + PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) + const override; // throw(io::FormattingException) + + PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter) + const override; // throw(FormattingException) + + //! @endcond + + protected: + PROJ_INTERNAL PointMotionOperation( + const crs::CRSNNPtr &crsIn, const OperationMethodNNPtr &methodIn, + const std::vector &values, + const std::vector &accuracies); + PROJ_INTERNAL PointMotionOperation(const PointMotionOperation &other); + INLINED_MAKE_SHARED + + PROJ_INTERNAL CoordinateOperationNNPtr _shallowClone() const override; + private: - PointMotionOperation(const PointMotionOperation &) = delete; + PointMotionOperation &operator=(const PointMotionOperation &) = delete; }; // --------------------------------------------------------------------------- diff --git a/include/proj/internal/io_internal.hpp b/include/proj/internal/io_internal.hpp index 4973f6870f..96d939fe84 100644 --- a/include/proj/internal/io_internal.hpp +++ b/include/proj/internal/io_internal.hpp @@ -137,12 +137,13 @@ class WKTConstants { static const std::string BASEPARAMCRS; static const std::string BASETIMECRS; static const std::string VERSION; - static const std::string GEOIDMODEL; // WKT2-2019 - static const std::string COORDINATEMETADATA; // WKT2-2019 - static const std::string EPOCH; // WKT2-2019 - static const std::string AXISMINVALUE; // WKT2-2019 - static const std::string AXISMAXVALUE; // WKT2-2019 - static const std::string RANGEMEANING; // WKT2-2019 + static const std::string GEOIDMODEL; // WKT2-2019 + static const std::string COORDINATEMETADATA; // WKT2-2019 + static const std::string EPOCH; // WKT2-2019 + static const std::string AXISMINVALUE; // WKT2-2019 + static const std::string AXISMAXVALUE; // WKT2-2019 + static const std::string RANGEMEANING; // WKT2-2019 + static const std::string POINTMOTIONOPERATION; // WKT2-2019 // WKT2 alternate (longer or shorter) static const std::string GEODETICCRS; diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index f9e94e1c58..37444da6a4 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -713,7 +713,11 @@ osgeo::proj::operation::ParameterValue::stringValue() const osgeo::proj::operation::ParameterValue::type() const osgeo::proj::operation::ParameterValue::value() const osgeo::proj::operation::ParameterValue::valueFile() const +osgeo::proj::operation::PointMotionOperation::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&, std::vector >, std::allocator > > > const&, std::vector >, std::allocator > > > const&) +osgeo::proj::operation::PointMotionOperation::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn > const&, osgeo::proj::util::PropertyMap const&, std::vector >, std::allocator > > > const&, std::vector >, std::allocator > > > const&, std::vector >, std::allocator > > > const&) +osgeo::proj::operation::PointMotionOperation::inverse() const osgeo::proj::operation::PointMotionOperation::~PointMotionOperation() +osgeo::proj::operation::PointMotionOperation::substitutePROJAlternativeGridNames(dropbox::oxygen::nn >) const osgeo::proj::operation::SingleOperation::createPROJBased(osgeo::proj::util::PropertyMap const&, std::string const&, std::shared_ptr const&, std::shared_ptr const&, std::vector >, std::allocator > > > const&) osgeo::proj::operation::SingleOperation::gridsNeeded(std::shared_ptr const&, bool) const osgeo::proj::operation::SingleOperation::method() const diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 6473f1caab..6a45b012c8 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -6082,6 +6082,26 @@ operation::CoordinateOperationNNPtr AuthorityFactory::createCoordinateOperation( accuracies.emplace_back( metadata::PositionalAccuracy::create(accuracy)); } + + // A bit fragile to detect the operation type with the method name, + // but not worth changing the database model + if (starts_with(method_name, "Point motion")) { + if (!sourceCRS->isEquivalentTo(targetCRS.get())) { + throw operation::InvalidOperation( + "source_crs and target_crs should be the same for a " + "PointMotionOperation"); + } + + auto pmo = operation::PointMotionOperation::create( + props, sourceCRS, propsMethod, parameters, values, + accuracies); + if (usePROJAlternativeGridNames) { + return pmo->substitutePROJAlternativeGridNames( + d->context()); + } + return pmo; + } + auto transf = operation::Transformation::create( props, sourceCRS, targetCRS, interpolationCRS, propsMethod, parameters, values, accuracies); diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 721addf972..9310226db5 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -1479,6 +1479,9 @@ struct WKTParser::Private { TransformationNNPtr buildCoordinateOperation(const WKTNodeNNPtr &node); + PointMotionOperationNNPtr + buildPointMotionOperation(const WKTNodeNNPtr &node); + ConcatenatedOperationNNPtr buildConcatenatedOperation(const WKTNodeNNPtr &node); @@ -3622,6 +3625,47 @@ WKTParser::Private::buildCoordinateOperation(const WKTNodeNNPtr &node) { // --------------------------------------------------------------------------- +PointMotionOperationNNPtr +WKTParser::Private::buildPointMotionOperation(const WKTNodeNNPtr &node) { + const auto *nodeP = node->GP(); + auto &methodNode = nodeP->lookForChild(WKTConstants::METHOD); + if (isNull(methodNode)) { + ThrowMissing(WKTConstants::METHOD); + } + if (methodNode->GP()->childrenSize() == 0) { + ThrowNotEnoughChildren(WKTConstants::METHOD); + } + + auto &sourceCRSNode = nodeP->lookForChild(WKTConstants::SOURCECRS); + if (sourceCRSNode->GP()->childrenSize() != 1) { + ThrowMissing(WKTConstants::SOURCECRS); + } + auto sourceCRS = buildCRS(sourceCRSNode->GP()->children()[0]); + if (!sourceCRS) { + throw ParsingException("Invalid content in SOURCECRS node"); + } + + std::vector parameters; + std::vector values; + auto defaultLinearUnit = UnitOfMeasure::NONE; + auto defaultAngularUnit = UnitOfMeasure::NONE; + consumeParameters(node, false, parameters, values, defaultLinearUnit, + defaultAngularUnit); + + std::vector accuracies; + auto &accuracyNode = nodeP->lookForChild(WKTConstants::OPERATIONACCURACY); + if (/*!isNull(accuracyNode) && */ accuracyNode->GP()->childrenSize() == 1) { + accuracies.push_back(PositionalAccuracy::create( + stripQuotes(accuracyNode->GP()->children()[0]))); + } + + return PointMotionOperation::create( + buildProperties(node), NN_NO_CHECK(sourceCRS), + buildProperties(methodNode), parameters, values, accuracies); +} + +// --------------------------------------------------------------------------- + ConcatenatedOperationNNPtr WKTParser::Private::buildConcatenatedOperation(const WKTNodeNNPtr &node) { @@ -5601,6 +5645,11 @@ BaseObjectNNPtr WKTParser::Private::build(const WKTNodeNNPtr &node) { buildConcatenatedOperation(node)); } + if (ci_equal(name, WKTConstants::POINTMOTIONOPERATION)) { + return util::nn_static_pointer_cast( + buildPointMotionOperation(node)); + } + if (ci_equal(name, WKTConstants::ID) || ci_equal(name, WKTConstants::AUTHORITY)) { return util::nn_static_pointer_cast( @@ -5658,6 +5707,7 @@ class JSONParser { CompoundCRSNNPtr buildCompoundCRS(const json &j); BoundCRSNNPtr buildBoundCRS(const json &j); TransformationNNPtr buildTransformation(const json &j); + PointMotionOperationNNPtr buildPointMotionOperation(const json &j); ConcatenatedOperationNNPtr buildConcatenatedOperation(const json &j); CoordinateMetadataNNPtr buildCoordinateMetadata(const json &j); @@ -6217,6 +6267,9 @@ BaseObjectNNPtr JSONParser::create(const json &j) if (type == "Transformation") { return buildTransformation(j); } + if (type == "PointMotionOperation") { + return buildPointMotionOperation(j); + } if (type == "ConcatenatedOperation") { return buildConcatenatedOperation(j); } @@ -6581,6 +6634,43 @@ TransformationNNPtr JSONParser::buildTransformation(const json &j) { // --------------------------------------------------------------------------- +PointMotionOperationNNPtr JSONParser::buildPointMotionOperation(const json &j) { + + auto sourceCRS = buildCRS(getObject(j, "source_crs")); + auto methodJ = getObject(j, "method"); + auto parametersJ = getArray(j, "parameters"); + std::vector parameters; + std::vector values; + for (const auto ¶m : parametersJ) { + if (!param.is_object()) { + throw ParsingException( + "Unexpected type for a \"parameters\" child"); + } + parameters.emplace_back( + OperationParameter::create(buildProperties(param))); + if (param.contains("value")) { + auto v = param["value"]; + if (v.is_string()) { + values.emplace_back( + ParameterValue::createFilename(v.get())); + continue; + } + } + values.emplace_back(ParameterValue::create(getMeasure(param))); + } + std::vector accuracies; + if (j.contains("accuracy")) { + accuracies.push_back( + PositionalAccuracy::create(getString(j, "accuracy"))); + } + + return PointMotionOperation::create(buildProperties(j), sourceCRS, + buildProperties(methodJ), parameters, + values, accuracies); +} + +// --------------------------------------------------------------------------- + ConcatenatedOperationNNPtr JSONParser::buildConcatenatedOperation(const json &j) { @@ -8075,7 +8165,8 @@ WKTParser::guessDialect(const std::string &inputWkt) noexcept { &WKTConstants::DYNAMIC, &WKTConstants::FRAMEEPOCH, &WKTConstants::MODEL, &WKTConstants::VELOCITYGRID, &WKTConstants::ENSEMBLE, &WKTConstants::DERIVEDPROJCRS, &WKTConstants::BASEPROJCRS, - &WKTConstants::GEOGRAPHICCRS, &WKTConstants::TRF, &WKTConstants::VRF}; + &WKTConstants::GEOGRAPHICCRS, &WKTConstants::TRF, &WKTConstants::VRF, + &WKTConstants::POINTMOTIONOPERATION}; for (const auto &pointerKeyword : wkt2_2019_only_keywords) { auto pos = ci_find(wkt, *pointerKeyword); diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 30f32dd935..1f1515ad2a 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -1006,6 +1006,8 @@ const struct MethodNameCode methodNameCodes[] = { METHOD_NAME_CODE(NADCON5_3D), METHOD_NAME_CODE(VERTCON), METHOD_NAME_CODE(GEOCENTRIC_TRANSLATION_BY_GRID_INTERPOLATION_IGN), + // PointMotionOperation + METHOD_NAME_CODE(POINT_MOTION_BY_GRID_CANADA_NTV2_VEL), }; const MethodNameCode *getMethodNameCodes(size_t &nElts) { @@ -1089,6 +1091,8 @@ const struct ParamNameCode paramNameCodes[] = { PARAM_NAME_CODE(INCLINATION_IN_LONGITUDE), PARAM_NAME_CODE(EPSG_CODE_FOR_HORIZONTAL_CRS), PARAM_NAME_CODE(EPSG_CODE_FOR_INTERPOLATION_CRS), + // Parameters of point motion operations + PARAM_NAME_CODE(POINT_MOTION_VELOCITY_GRID_FILE), }; const ParamNameCode *getParamNameCodes(size_t &nElts) { @@ -1385,6 +1389,14 @@ static const ParamMapping paramVerticalOffsetFile = { static const ParamMapping *const paramsVERTCON[] = {¶mVerticalOffsetFile, nullptr}; +static const ParamMapping paramPointMotiionVelocityGridFile = { + EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, nullptr, + common::UnitOfMeasure::Type::NONE, nullptr}; + +static const ParamMapping *const paramsPointMotionOperationByVelocityGrid[] = { + ¶mPointMotiionVelocityGridFile, nullptr}; + static const ParamMapping paramSouthPoleLatGRIB = { PROJ_WKT2_NAME_PARAMETER_SOUTH_POLE_LATITUDE_GRIB_CONVENTION, 0, nullptr, common::UnitOfMeasure::Type::ANGULAR, nullptr}; @@ -1572,6 +1584,10 @@ static const MethodMapping otherMethodMappings[] = { nullptr, paramsVERTCON}, {EPSG_NAME_METHOD_VERTCON_OLDNAME, EPSG_CODE_METHOD_VERTCON, nullptr, nullptr, nullptr, paramsVERTCON}, + + {EPSG_NAME_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL, + EPSG_CODE_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL, nullptr, nullptr, + nullptr, paramsPointMotionOperationByVelocityGrid}, }; const MethodMapping *getOtherMethodMappings(size_t &nElts) { diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 89ae015150..385ac93336 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2082,7 +2082,7 @@ const std::string &Transformation::getHeightToGeographic3DFilename() const { //! @cond Doxygen_Suppress static util::PropertyMap -createSimilarPropertiesTransformation(TransformationNNPtr obj) { +createSimilarPropertiesOperation(const CoordinateOperationNNPtr &obj) { util::PropertyMap map; // The domain(s) are unchanged @@ -2257,7 +2257,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( } else { return Transformation::create( - createSimilarPropertiesTransformation(self), l_sourceCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, l_targetCRS, l_interpolationCRS, methodProperties, parameters, values, l_accuracies); } @@ -2269,7 +2269,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( l_accuracies) ->inverseAsTransformation(); } else { - return createNTv1(createSimilarPropertiesTransformation(self), + return createNTv1(createSimilarPropertiesOperation(self), l_sourceCRS, l_targetCRS, projFilename, l_accuracies); } @@ -2282,7 +2282,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( ->inverseAsTransformation(); } else { return Transformation::createNTv2( - createSimilarPropertiesTransformation(self), l_sourceCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, l_targetCRS, projFilename, l_accuracies); } } else if (projGridFormat == "CTable2") { @@ -2304,7 +2304,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( } else { return Transformation::create( - createSimilarPropertiesTransformation(self), l_sourceCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, l_targetCRS, l_interpolationCRS, methodProperties, parameters, values, l_accuracies); } @@ -2361,8 +2361,8 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( #endif { return Transformation::create( - createSimilarPropertiesTransformation(self), - l_sourceCRS, l_targetCRS, l_interpolationCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, + l_targetCRS, l_interpolationCRS, createSimilarPropertiesMethod(method()), parameters, {ParameterValue::createFilename(projFilename)}, coordinateOperationAccuracies()); @@ -2402,7 +2402,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( std::vector{createOpParamNameEPSGCode( EPSG_CODE_PARAMETER_GEOCENTRIC_TRANSLATION_FILE)}; return Transformation::create( - createSimilarPropertiesTransformation(self), l_sourceCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, l_targetCRS, l_interpolationCRS, createSimilarPropertiesMethod(method()), parameters, {ParameterValue::createFilename(projFilename)}, @@ -2458,8 +2458,8 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( ->inverseAsTransformation(); } else { return Transformation::create( - createSimilarPropertiesTransformation(self), - l_sourceCRS, l_targetCRS, l_interpolationCRS, + createSimilarPropertiesOperation(self), l_sourceCRS, + l_targetCRS, l_interpolationCRS, createSimilarPropertiesMethod(method()), parameters, {ParameterValue::createFilename(projFilename)}, coordinateOperationAccuracies()); @@ -4125,6 +4125,289 @@ PointMotionOperation::~PointMotionOperation() = default; // --------------------------------------------------------------------------- +/** \brief Instantiate a point motion operation from a vector of + * GeneralParameterValue. + * + * @param properties See \ref general_properties. At minimum the name should be + * defined. + * @param crsIn Source and target CRS. + * @param methodIn Operation method. + * @param values Vector of GeneralOperationParameterNNPtr. + * @param accuracies Vector of positional accuracy (might be empty). + * @return new PointMotionOperation. + * @throws InvalidOperation + */ +PointMotionOperationNNPtr PointMotionOperation::create( + const util::PropertyMap &properties, const crs::CRSNNPtr &crsIn, + const OperationMethodNNPtr &methodIn, + const std::vector &values, + const std::vector &accuracies) { + if (methodIn->parameters().size() != values.size()) { + throw InvalidOperation( + "Inconsistent number of parameters and parameter values"); + } + auto pmo = PointMotionOperation::nn_make_shared( + crsIn, methodIn, values, accuracies); + pmo->assignSelf(pmo); + pmo->setProperties(properties); + return pmo; +} + +// --------------------------------------------------------------------------- + +/** \brief Instantiate a point motion operation and its OperationMethod. + * + * @param propertiesOperation The \ref general_properties of the + * PointMotionOperation. + * At minimum the name should be defined. + * @param crsIn Source and target CRS. + * @param propertiesOperationMethod The \ref general_properties of the + * OperationMethod. + * At minimum the name should be defined. + * @param parameters Vector of parameters of the operation method. + * @param values Vector of ParameterValueNNPtr. Constraint: + * values.size() == parameters.size() + * @param accuracies Vector of positional accuracy (might be empty). + * @return new PointMotionOperation. + * @throws InvalidOperation + */ +PointMotionOperationNNPtr PointMotionOperation::create( + const util::PropertyMap &propertiesOperation, const crs::CRSNNPtr &crsIn, + const util::PropertyMap &propertiesOperationMethod, + const std::vector ¶meters, + const std::vector &values, + const std::vector + &accuracies) // throw InvalidOperation +{ + OperationMethodNNPtr op( + OperationMethod::create(propertiesOperationMethod, parameters)); + + if (parameters.size() != values.size()) { + throw InvalidOperation( + "Inconsistent number of parameters and parameter values"); + } + std::vector generalParameterValues; + generalParameterValues.reserve(values.size()); + for (size_t i = 0; i < values.size(); i++) { + generalParameterValues.push_back( + OperationParameterValue::create(parameters[i], values[i])); + } + return create(propertiesOperation, crsIn, op, generalParameterValues, + accuracies); +} + +// --------------------------------------------------------------------------- + +PointMotionOperation::PointMotionOperation( + const crs::CRSNNPtr &crsIn, const OperationMethodNNPtr &methodIn, + const std::vector &values, + const std::vector &accuracies) + : SingleOperation(methodIn) { + setParameterValues(values); + setCRSs(crsIn, crsIn, nullptr); + setAccuracies(accuracies); +} + +// --------------------------------------------------------------------------- + +PointMotionOperation::PointMotionOperation(const PointMotionOperation &other) + : CoordinateOperation(other), SingleOperation(other) {} + +// --------------------------------------------------------------------------- + +CoordinateOperationNNPtr PointMotionOperation::inverse() const { + return NN_NO_CHECK(std::dynamic_pointer_cast( + shared_from_this().as_nullable())); +} + +// --------------------------------------------------------------------------- + +/** \brief Return an equivalent transformation to the current one, but using + * PROJ alternative grid names. + */ +PointMotionOperationNNPtr +PointMotionOperation::substitutePROJAlternativeGridNames( + io::DatabaseContextNNPtr databaseContext) const { + auto self = NN_NO_CHECK(std::dynamic_pointer_cast( + shared_from_this().as_nullable())); + + const auto &l_method = method(); + const int methodEPSGCode = l_method->getEPSGCode(); + + std::string filename; + if (methodEPSGCode == + EPSG_CODE_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL) { + const auto &fileParameter = + parameterValue(EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE); + if (fileParameter && + fileParameter->type() == ParameterValue::Type::FILENAME) { + filename = fileParameter->valueFile(); + } + } + + std::string projFilename; + std::string projGridFormat; + bool inverseDirection = false; + if (!filename.empty() && + databaseContext->lookForGridAlternative( + filename, projFilename, projGridFormat, inverseDirection)) { + + if (filename == projFilename) { + return self; + } + + auto l_sourceCRS = NN_NO_CHECK(sourceCRS()); + auto parameters = + std::vector{createOpParamNameEPSGCode( + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE)}; + return PointMotionOperation::create( + createSimilarPropertiesOperation(self), l_sourceCRS, + createSimilarPropertiesMethod(method()), parameters, + {ParameterValue::createFilename(projFilename)}, + coordinateOperationAccuracies()); + } + + return self; +} + +// --------------------------------------------------------------------------- + +//! @cond Doxygen_Suppress + +PointMotionOperationNNPtr PointMotionOperation::shallowClone() const { + auto pmo = + PointMotionOperation::nn_make_shared(*this); + pmo->assignSelf(pmo); + pmo->setCRSs(this, false); + return pmo; +} + +CoordinateOperationNNPtr PointMotionOperation::_shallowClone() const { + return util::nn_static_pointer_cast(shallowClone()); +} + +// --------------------------------------------------------------------------- + +void PointMotionOperation::_exportToWKT(io::WKTFormatter *formatter) const { + if (formatter->version() != io::WKTFormatter::Version::WKT2 || + !formatter->use2019Keywords()) { + throw io::FormattingException( + "Transformation can only be exported to WKT2:2019"); + } + + formatter->startNode(io::WKTConstants::POINTMOTIONOPERATION, + !identifiers().empty()); + + formatter->addQuotedString(nameStr()); + + const auto &version = operationVersion(); + if (version.has_value()) { + formatter->startNode(io::WKTConstants::VERSION, false); + formatter->addQuotedString(*version); + formatter->endNode(); + } + + auto l_sourceCRS = sourceCRS(); + assert(l_sourceCRS); + const bool canExportCRSId = + !(formatter->idOnTopLevelOnly() && formatter->topLevelHasId()); + + const bool hasDomains = !domains().empty(); + if (hasDomains) { + formatter->pushDisableUsage(); + } + + formatter->startNode(io::WKTConstants::SOURCECRS, false); + if (canExportCRSId && !l_sourceCRS->identifiers().empty()) { + // fake that top node has no id, so that the sourceCRS id is + // considered + formatter->pushHasId(false); + l_sourceCRS->_exportToWKT(formatter); + formatter->popHasId(); + } else { + l_sourceCRS->_exportToWKT(formatter); + } + formatter->endNode(); + + if (hasDomains) { + formatter->popDisableUsage(); + } + + const auto &l_method = method(); + l_method->_exportToWKT(formatter); + + for (const auto ¶mValue : parameterValues()) { + paramValue->_exportToWKT(formatter, nullptr); + } + + if (!coordinateOperationAccuracies().empty()) { + formatter->startNode(io::WKTConstants::OPERATIONACCURACY, false); + formatter->add(coordinateOperationAccuracies()[0]->value()); + formatter->endNode(); + } + + ObjectUsage::baseExportToWKT(formatter); + formatter->endNode(); +} + +// --------------------------------------------------------------------------- + +void PointMotionOperation::_exportToPROJString( + io::PROJStringFormatter * /*formatter*/) const // throw(FormattingException) +{ + throw io::FormattingException( + "CoordinateOperationNNPtr::_exportToPROJString() unimplemented"); +} + +// --------------------------------------------------------------------------- + +void PointMotionOperation::_exportToJSON( + io::JSONFormatter *formatter) const // throw(FormattingException) +{ + auto writer = formatter->writer(); + auto objectContext(formatter->MakeObjectContext("PointMotionOperation", + !identifiers().empty())); + + writer->AddObjKey("name"); + auto l_name = nameStr(); + if (l_name.empty()) { + writer->Add("unnamed"); + } else { + writer->Add(l_name); + } + + writer->AddObjKey("source_crs"); + formatter->setAllowIDInImmediateChild(); + sourceCRS()->_exportToJSON(formatter); + + writer->AddObjKey("method"); + formatter->setOmitTypeInImmediateChild(); + formatter->setAllowIDInImmediateChild(); + method()->_exportToJSON(formatter); + + writer->AddObjKey("parameters"); + { + auto parametersContext(writer->MakeArrayContext(false)); + for (const auto &genOpParamvalue : parameterValues()) { + formatter->setAllowIDInImmediateChild(); + formatter->setOmitTypeInImmediateChild(); + genOpParamvalue->_exportToJSON(formatter); + } + } + + if (!coordinateOperationAccuracies().empty()) { + writer->AddObjKey("accuracy"); + writer->Add(coordinateOperationAccuracies()[0]->value()); + } + + ObjectUsage::baseExportToJSON(formatter); +} + +//! @endcond + +// --------------------------------------------------------------------------- + } // namespace operation NS_PROJ_END diff --git a/src/iso19111/static.cpp b/src/iso19111/static.cpp index c9a029e934..3c4c8ddced 100644 --- a/src/iso19111/static.cpp +++ b/src/iso19111/static.cpp @@ -284,6 +284,7 @@ DEFINE_WKT_CONSTANT(EPOCH); DEFINE_WKT_CONSTANT(AXISMINVALUE); DEFINE_WKT_CONSTANT(AXISMAXVALUE); DEFINE_WKT_CONSTANT(RANGEMEANING); +DEFINE_WKT_CONSTANT(POINTMOTIONOPERATION); DEFINE_WKT_CONSTANT(GEODETICCRS); DEFINE_WKT_CONSTANT(GEODETICDATUM); diff --git a/src/proj_constants.h b/src/proj_constants.h index 9b93aef360..5d082ee7cb 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -581,6 +581,16 @@ /* ------------------------------------------------------------------------ */ +#define EPSG_NAME_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL \ + "Point motion by grid (Canada NTv2_Vel)" +#define EPSG_CODE_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL 1070 + +#define EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE 1050 +#define EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE \ + "Point motion velocity grid file" + +/* ------------------------------------------------------------------------ */ + #define PROJ_WKT2_NAME_METHOD_HEIGHT_TO_GEOG3D \ "GravityRelatedHeight to Geographic3D" diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 1b261945e7..dc7359bfb2 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -1368,6 +1368,58 @@ TEST(factory, AuthorityFactory_createCoordinateOperation_conversion) { // --------------------------------------------------------------------------- +TEST(factory, + AuthorityFactory_createCoordinateOperation_point_motion_operation) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto op = factory->createCoordinateOperation("9483", false); + auto pmo = nn_dynamic_pointer_cast(op); + ASSERT_TRUE(pmo != nullptr); + auto expected = + "POINTMOTIONOPERATION[\"Canada velocity grid v7\",\n" + " VERSION[\"NRC-Can cvg7.0\"],\n" + " SOURCECRS[\n" + " GEOGCRS[\"NAD83(CSRS)v7\",\n" + " DATUM[\"North American Datum of 1983 (CSRS) version 7\",\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",8254]]],\n" + " METHOD[\"Point motion by grid (Canada NTv2_Vel)\",\n" + " ID[\"EPSG\",1070]],\n" + " PARAMETERFILE[\"Point motion velocity grid " + "file\",\"NAD83v70VG.gvb\"],\n" + " OPERATIONACCURACY[0.01],\n" + " USAGE[\n" + " SCOPE[\"Change of coordinate epoch for points referenced to " + "NAD83(CSRS)v7.\"],\n" + " AREA[\"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.\"],\n" + " BBOX[38.21,-141.01,86.46,-40.73]],\n" + " ID[\"EPSG\",9483],\n" + " REMARK[\"File initially published with name cvg70.cvb, later " + "renamed to NAD83v70VG.gvb with no change of content.\"]]"; + + EXPECT_EQ( + pmo->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), + expected); +} + +// --------------------------------------------------------------------------- + TEST(factory, AuthorityFactory_getAuthorityCodes) { auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); { diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index f878017d8c..1288fa9113 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -16883,3 +16883,129 @@ TEST(io, EXTENSION_PROJ4) { EXPECT_EQ(crs3->exportToPROJString(PROJStringFormatter::create().get()), "+proj=utm +datum=NAD27 +zone=11 +over +type=crs"); } + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, PointMotionOperation) { + auto wkt = + "POINTMOTIONOPERATION[\"Canada velocity grid v7\",\n" + " SOURCECRS[\n" + " GEOGCRS[\"NAD83(CSRS)v7\",\n" + " DATUM[\"North American Datum of 1983 (CSRS) version 7\",\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",8254]]],\n" + " METHOD[\"Point motion by grid (Canada NTv2_Vel)\",\n" + " ID[\"EPSG\",1070]],\n" + " PARAMETERFILE[\"Point motion velocity grid file\",\"foo.tif\"],\n" + " OPERATIONACCURACY[0.01],\n" + " USAGE[\n" + " SCOPE[\"scope\"],\n" + " AREA[\"area\"],\n" + " BBOX[38.21,-141.01,86.46,-40.73]],\n" + " ID[\"DERIVED_FROM(EPSG)\",9483],\n" + " REMARK[\"remark.\"]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto pmo = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(pmo != nullptr); + EXPECT_EQ( + pmo->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), + wkt); +} + +// --------------------------------------------------------------------------- + +TEST(json_import, PointMotionOperation) { + auto json = + "{\n" + " \"$schema\": \"foo\",\n" + " \"type\": \"PointMotionOperation\",\n" + " \"name\": \"Canada velocity grid v7\",\n" + " \"source_crs\": {\n" + " \"type\": \"GeographicCRS\",\n" + " \"name\": \"NAD83(CSRS)v7\",\n" + " \"datum\": {\n" + " \"type\": \"GeodeticReferenceFrame\",\n" + " \"name\": \"North American Datum of 1983 (CSRS) version 7\",\n" + " \"ellipsoid\": {\n" + " \"name\": \"GRS 1980\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257222101\n" + " }\n" + " },\n" + " \"coordinate_system\": {\n" + " \"subtype\": \"ellipsoidal\",\n" + " \"axis\": [\n" + " {\n" + " \"name\": \"Geodetic latitude\",\n" + " \"abbreviation\": \"Lat\",\n" + " \"direction\": \"north\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Geodetic longitude\",\n" + " \"abbreviation\": \"Lon\",\n" + " \"direction\": \"east\",\n" + " \"unit\": \"degree\"\n" + " },\n" + " {\n" + " \"name\": \"Ellipsoidal height\",\n" + " \"abbreviation\": \"h\",\n" + " \"direction\": \"up\",\n" + " \"unit\": \"metre\"\n" + " }\n" + " ]\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 8254\n" + " }\n" + " },\n" + " \"method\": {\n" + " \"name\": \"Point motion by grid (Canada NTv2_Vel)\",\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 1070\n" + " }\n" + " },\n" + " \"parameters\": [\n" + " {\n" + " \"name\": \"Point motion velocity grid file\",\n" + " \"value\": \"foo.tif\"\n" + " }\n" + " ],\n" + " \"accuracy\": \"0.01\",\n" + " \"scope\": \"scope\",\n" + " \"area\": \"area\",\n" + " \"bbox\": {\n" + " \"south_latitude\": 38.21,\n" + " \"west_longitude\": -141.01,\n" + " \"north_latitude\": 86.46,\n" + " \"east_longitude\": -40.73\n" + " },\n" + " \"id\": {\n" + " \"authority\": \"DERIVED_FROM(EPSG)\",\n" + " \"code\": 9483\n" + " },\n" + " \"remarks\": \"remark.\"\n" + "}"; + auto obj = createFromUserInput(json, nullptr); + auto pmo = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(pmo != nullptr); + EXPECT_EQ(pmo->exportToJSON(&(JSONFormatter::create()->setSchema("foo"))), + json); +} From 2ef8221ba608a2e4cf16b3e074ee24c655d1157e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 17 Aug 2023 16:05:09 +0200 Subject: [PATCH 022/199] Add AuthorityFactory::createGeodeticCRSFromDatum() utility class, adapted/moved from coordinateoperationfactory logic --- include/proj/io.hpp | 5 ++ src/iso19111/factory.cpp | 48 ++++++++++++++ .../operation/coordinateoperationfactory.cpp | 63 ++++--------------- 3 files changed, 65 insertions(+), 51 deletions(-) diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 26ac8612f4..c3ef43c924 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -1244,6 +1244,11 @@ class PROJ_GCC_DLL AuthorityFactory { const std::string &datum_code, const std::string &geodetic_crs_type) const; + PROJ_INTERNAL std::list + createGeodeticCRSFromDatum(const datum::GeodeticReferenceFrameNNPtr &datum, + const std::string &preferredAuthName, + const std::string &geodetic_crs_type) const; + PROJ_INTERNAL std::list createVerticalCRSFromDatum(const std::string &datum_auth_name, const std::string &datum_code) const; diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 6a45b012c8..09c84e7b4b 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -9092,6 +9092,54 @@ std::list AuthorityFactory::createGeodeticCRSFromDatum( // --------------------------------------------------------------------------- +//! @cond Doxygen_Suppress +std::list AuthorityFactory::createGeodeticCRSFromDatum( + const datum::GeodeticReferenceFrameNNPtr &datum, + const std::string &preferredAuthName, + const std::string &geodetic_crs_type) const { + std::list candidates; + const auto &ids = datum->identifiers(); + const auto &datumName = datum->nameStr(); + if (!ids.empty()) { + for (const auto &id : ids) { + const auto &authName = *(id->codeSpace()); + const auto &code = id->code(); + if (!authName.empty()) { + const auto tmpFactory = + (preferredAuthName == authName) + ? create(databaseContext(), authName) + : NN_NO_CHECK(d->getSharedFromThis()); + auto l_candidates = tmpFactory->createGeodeticCRSFromDatum( + authName, code, geodetic_crs_type); + for (const auto &candidate : l_candidates) { + candidates.emplace_back(candidate); + } + } + } + } else if (datumName != "unknown" && datumName != "unnamed") { + auto matches = createObjectsFromName( + datumName, + {io::AuthorityFactory::ObjectType::GEODETIC_REFERENCE_FRAME}, false, + 2); + if (matches.size() == 1) { + const auto &match = matches.front(); + if (datum->_isEquivalentTo(match.get(), + util::IComparable::Criterion::EQUIVALENT, + databaseContext().as_nullable()) && + !match->identifiers().empty()) { + return createGeodeticCRSFromDatum( + util::nn_static_pointer_cast( + match), + preferredAuthName, geodetic_crs_type); + } + } + } + return candidates; +} +//! @endcond + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress std::list AuthorityFactory::createVerticalCRSFromDatum( const std::string &datum_auth_name, const std::string &datum_code) const { diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 0b21343ca9..7b8d854657 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -1893,53 +1893,16 @@ CoordinateOperationFactory::Private::findOpsInRegistryDirectTo( // --------------------------------------------------------------------------- -static std::vector +static std::list findCandidateGeodCRSForDatum(const io::AuthorityFactoryPtr &authFactory, const crs::GeodeticCRS *crs, - const datum::GeodeticReferenceFrame *datum) { - std::vector candidates; - assert(datum); - const auto &ids = datum->identifiers(); - const auto &datumName = datum->nameStr(); - if (!ids.empty()) { - for (const auto &id : ids) { - const auto &authName = *(id->codeSpace()); - const auto &code = id->code(); - if (!authName.empty()) { - const auto crsIds = crs->identifiers(); - const auto tmpFactory = - (crsIds.size() == 1 && - *(crsIds.front()->codeSpace()) == authName) - ? io::AuthorityFactory::create( - authFactory->databaseContext(), authName) - .as_nullable() - : authFactory; - auto l_candidates = tmpFactory->createGeodeticCRSFromDatum( - authName, code, std::string()); - for (const auto &candidate : l_candidates) { - candidates.emplace_back(candidate); - } - } - } - } else if (datumName != "unknown" && datumName != "unnamed") { - auto matches = authFactory->createObjectsFromName( - datumName, - {io::AuthorityFactory::ObjectType::GEODETIC_REFERENCE_FRAME}, false, - 2); - if (matches.size() == 1) { - const auto &match = matches.front(); - if (datum->_isEquivalentTo( - match.get(), util::IComparable::Criterion::EQUIVALENT, - authFactory->databaseContext().as_nullable()) && - !match->identifiers().empty()) { - return findCandidateGeodCRSForDatum( - authFactory, crs, - dynamic_cast( - match.get())); - } - } - } - return candidates; + const datum::GeodeticReferenceFrameNNPtr &datum) { + std::string preferredAuthName; + const auto crsIds = crs->identifiers(); + if (crsIds.size() == 1) + preferredAuthName = *(crsIds.front()->codeSpace()); + return authFactory->createGeodeticCRSFromDatum(datum, preferredAuthName, + std::string()); } // --------------------------------------------------------------------------- @@ -1985,7 +1948,7 @@ CoordinateOperationFactory::Private::findsOpsInRegistryWithIntermediate( if (geodSrc) { const auto dbContext = authFactory->databaseContext().as_nullable(); const auto candidatesSrcGeod(findCandidateGeodCRSForDatum( - authFactory, geodSrc, geodSrc->datumNonNull(dbContext).get())); + authFactory, geodSrc, geodSrc->datumNonNull(dbContext))); std::vector res; for (const auto &candidateSrcGeod : candidatesSrcGeod) { if (candidateSrcGeod->coordinateSystem()->axisList().size() == @@ -3040,11 +3003,9 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( const auto &dbContext = authFactory->databaseContext(); const auto candidatesSrcGeod(findCandidateGeodCRSForDatum( - authFactory, geodSrc, - geodSrc->datumNonNull(dbContext.as_nullable()).get())); + authFactory, geodSrc, geodSrc->datumNonNull(dbContext.as_nullable()))); const auto candidatesDstGeod(findCandidateGeodCRSForDatum( - authFactory, geodDst, - geodDst->datumNonNull(dbContext.as_nullable()).get())); + authFactory, geodDst, geodDst->datumNonNull(dbContext.as_nullable()))); const bool sourceAndTargetAre3D = geodSrc->coordinateSystem()->axisList().size() == 3 && @@ -4192,7 +4153,7 @@ void CoordinateOperationFactory::Private:: const auto &dbContext = authFactory->databaseContext(); const auto candidatesSrcGeod(findCandidateGeodCRSForDatum( authFactory, geogSrcIn, - geogSrcIn->datumNonNull(dbContext).get())); + geogSrcIn->datumNonNull(dbContext))); for (const auto &candidate : candidatesSrcGeod) { auto geogCandidate = util::nn_dynamic_pointer_cast( From e27c8a2604056d5585c39a7737153c566b265624 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 10:52:16 +0200 Subject: [PATCH 023/199] Add AuthorityFactory::getPointMotionOperationsFor() and allow a CoordinateMetadata to be built for CRS that are not officially dynamic but have a PointMotionOperation --- include/proj/coordinates.hpp | 7 +++ include/proj/io.hpp | 8 ++++ scripts/reference_exported_symbols.txt | 3 ++ src/apps/projinfo.cpp | 5 +++ src/iso19111/coordinates.cpp | 61 +++++++++++++++++++++++++- src/iso19111/factory.cpp | 49 +++++++++++++++++++++ src/iso19111/io.cpp | 3 +- test/unit/test_coordinates.cpp | 29 ++++++++++++ test/unit/test_factory.cpp | 12 +++++ 9 files changed, 174 insertions(+), 3 deletions(-) diff --git a/include/proj/coordinates.hpp b/include/proj/coordinates.hpp index 87ca479e3a..d5350c06c5 100644 --- a/include/proj/coordinates.hpp +++ b/include/proj/coordinates.hpp @@ -74,6 +74,13 @@ class PROJ_GCC_DLL CoordinateMetadata : public util::BaseObject, PROJ_DLL static CoordinateMetadataNNPtr create(const crs::CRSNNPtr &crsIn); PROJ_DLL static CoordinateMetadataNNPtr create(const crs::CRSNNPtr &crsIn, double coordinateEpochAsDecimalYear); + PROJ_DLL static CoordinateMetadataNNPtr + create(const crs::CRSNNPtr &crsIn, double coordinateEpochAsDecimalYear, + const io::DatabaseContextPtr &dbContext); + + PROJ_DLL CoordinateMetadataNNPtr + promoteTo3D(const std::string &newName, + const io::DatabaseContextPtr &dbContext) const; PROJ_PRIVATE : //! @cond Doxygen_Suppress diff --git a/include/proj/io.hpp b/include/proj/io.hpp index c3ef43c924..4e949de911 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -126,6 +126,10 @@ using ConversionNNPtr = util::nn; class CoordinateOperation; using CoordinateOperationPtr = std::shared_ptr; using CoordinateOperationNNPtr = util::nn; + +class PointMotionOperation; +using PointMotionOperationPtr = std::shared_ptr; +using PointMotionOperationNNPtr = util::nn; } // namespace operation /** osgeo.proj.io namespace. @@ -1292,6 +1296,10 @@ class PROJ_GCC_DLL AuthorityFactory { bool approximateMatch = true, size_t limitResultCount = 0) const; + PROJ_FOR_TEST std::vector + getPointMotionOperationsFor(const crs::GeodeticCRSNNPtr &crs, + bool usePROJAlternativeGridNames) const; + //! @endcond protected: diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index 37444da6a4..fdabf46139 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -97,7 +97,9 @@ osgeo::proj::coordinates::CoordinateMetadata::coordinateEpoch() const osgeo::proj::coordinates::CoordinateMetadata::~CoordinateMetadata() osgeo::proj::coordinates::CoordinateMetadata::create(dropbox::oxygen::nn > const&) osgeo::proj::coordinates::CoordinateMetadata::create(dropbox::oxygen::nn > const&, double) +osgeo::proj::coordinates::CoordinateMetadata::create(dropbox::oxygen::nn > const&, double, std::shared_ptr const&) osgeo::proj::coordinates::CoordinateMetadata::crs() const +osgeo::proj::coordinates::CoordinateMetadata::promoteTo3D(std::string const&, std::shared_ptr const&) const osgeo::proj::crs::BoundCRS::baseCRS() const osgeo::proj::crs::BoundCRS::baseCRSWithCanonicalBoundCRS() const osgeo::proj::crs::BoundCRS::~BoundCRS() @@ -376,6 +378,7 @@ osgeo::proj::io::AuthorityFactory::getCRSInfoList() const osgeo::proj::io::AuthorityFactory::getDescriptionText(std::string const&) const osgeo::proj::io::AuthorityFactory::getGeoidModels(std::string const&) const osgeo::proj::io::AuthorityFactory::getOfficialNameFromAlias(std::string const&, std::string const&, std::string const&, bool, std::string&, std::string&, std::string&) const +osgeo::proj::io::AuthorityFactory::getPointMotionOperationsFor(dropbox::oxygen::nn > const&, bool) const osgeo::proj::io::AuthorityFactory::getUnitList() const osgeo::proj::io::AuthorityFactory::identifyBodyFromSemiMajorAxis(double, double) const osgeo::proj::io::AuthorityFactory::listAreaOfUseFromName(std::string const&, bool) const diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index d076237518..3b6276e49f 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -404,6 +404,11 @@ static BaseObjectNNPtr buildObject( auto crs = std::dynamic_pointer_cast(obj); if (crs) { obj = crs->promoteTo3D(std::string(), dbContext).as_nullable(); + } else { + auto cm = std::dynamic_pointer_cast(obj); + if (cm) { + obj = cm->promoteTo3D(std::string(), dbContext).as_nullable(); + } } } diff --git a/src/iso19111/coordinates.cpp b/src/iso19111/coordinates.cpp index 1986cd1660..c00f70eb77 100644 --- a/src/iso19111/coordinates.cpp +++ b/src/iso19111/coordinates.cpp @@ -115,9 +115,41 @@ CoordinateMetadataNNPtr CoordinateMetadata::create(const crs::CRSNNPtr &crsIn) { CoordinateMetadataNNPtr CoordinateMetadata::create(const crs::CRSNNPtr &crsIn, double coordinateEpochIn) { + return create(crsIn, coordinateEpochIn, nullptr); +} + +// --------------------------------------------------------------------------- + +/** \brief Instantiate a CoordinateMetadata from a dynamic CRS and an associated + * coordinate epoch. + * + * @param crsIn a dynamic CRS + * @param coordinateEpochIn coordinate epoch expressed in decimal year. + * @param dbContext Database context (may be null) + * @return new CoordinateMetadata. + * @throw util::Exception if crsIn is a static CRS. + */ +CoordinateMetadataNNPtr +CoordinateMetadata::create(const crs::CRSNNPtr &crsIn, double coordinateEpochIn, + const io::DatabaseContextPtr &dbContext) { + if (!crsIn->isDynamic(/*considerWGS84AsDynamic=*/true)) { - throw util::Exception( - "Coordinate epoch should not be provided for a static CRS"); + bool ok = false; + if (dbContext) { + auto geodCrs = crsIn->extractGeodeticCRS(); + if (geodCrs) { + auto factory = io::AuthorityFactory::create( + NN_NO_CHECK(dbContext), std::string()); + ok = !factory + ->getPointMotionOperationsFor(NN_NO_CHECK(geodCrs), + false) + .empty(); + } + } + if (!ok) { + throw util::Exception( + "Coordinate epoch should not be provided for a static CRS"); + } } auto coordinateMetadata( @@ -178,6 +210,31 @@ double CoordinateMetadata::coordinateEpochAsDecimalYear() PROJ_PURE_DEFN { // --------------------------------------------------------------------------- +/** \brief Return a variant of this CoordinateMetadata "promoted" to a 3D one, + * if not already the case. + * + * @param newName Name of the new underlying CRS. If empty, nameStr() will be + * used. + * @param dbContext Database context to look for potentially already registered + * 3D CRS. May be nullptr. + * @return a new CoordinateMetadata object promoted to 3D, or the current one if + * already 3D or not applicable. + */ +CoordinateMetadataNNPtr +CoordinateMetadata::promoteTo3D(const std::string &newName, + const io::DatabaseContextPtr &dbContext) const { + auto crs = d->crs_->promoteTo3D(newName, dbContext); + auto coordinateMetadata( + d->coordinateEpoch_.has_value() + ? CoordinateMetadata::nn_make_shared( + crs, coordinateEpochAsDecimalYear()) + : CoordinateMetadata::nn_make_shared(crs)); + coordinateMetadata->assignSelf(coordinateMetadata); + return coordinateMetadata; +} + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress void CoordinateMetadata::_exportToWKT(io::WKTFormatter *formatter) const { if (formatter->version() != io::WKTFormatter::Version::WKT2 || diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 09c84e7b4b..fae6cf28a9 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -9635,6 +9635,55 @@ AuthorityFactory::getTransformationsForGeoid( return res; } + +// --------------------------------------------------------------------------- + +std::vector +AuthorityFactory::getPointMotionOperationsFor( + const crs::GeodeticCRSNNPtr &crs, bool usePROJAlternativeGridNames) const { + std::vector res; + const auto crsList = + createGeodeticCRSFromDatum(crs->datumNonNull(d->context()), + /* preferredAuthName = */ std::string(), + /* geodetic_crs_type = */ std::string()); + if (crsList.empty()) + return res; + std::string sql("SELECT auth_name, code FROM coordinate_operation_view " + "WHERE source_crs_auth_name = target_crs_auth_name AND " + "source_crs_code = target_crs_code AND deprecated = 0 AND " + "("); + bool addOr = false; + ListOfParams params; + for (const auto &candidateCrs : crsList) { + if (addOr) + sql += " OR "; + addOr = true; + sql += "(source_crs_auth_name = ? AND source_crs_code = ?)"; + const auto &ids = candidateCrs->identifiers(); + params.emplace_back(*(ids[0]->codeSpace())); + params.emplace_back(ids[0]->code()); + } + sql += ")"; + if (d->hasAuthorityRestriction()) { + sql += " AND auth_name = ?"; + params.emplace_back(d->authority()); + } + + auto sqlRes = d->run(sql, params); + for (const auto &row : sqlRes) { + const auto &auth_name = row[0]; + const auto &code = row[1]; + auto pmo = + util::nn_dynamic_pointer_cast( + d->createFactory(auth_name)->createCoordinateOperation( + code, usePROJAlternativeGridNames)); + if (pmo) { + res.emplace_back(NN_NO_CHECK(pmo)); + } + } + return res; +} + //! @endcond // --------------------------------------------------------------------------- diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 9310226db5..5b7ba867f4 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -7880,7 +7880,8 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, throw ParsingException("non-numeric value after @"); } try { - return CoordinateMetadata::create(NN_NO_CHECK(crs), epoch); + return CoordinateMetadata::create(NN_NO_CHECK(crs), epoch, + dbContext); } catch (const std::exception &e) { throw ParsingException( std::string( diff --git a/test/unit/test_coordinates.cpp b/test/unit/test_coordinates.cpp index d722fb8705..c9ab5b2dd4 100644 --- a/test/unit/test_coordinates.cpp +++ b/test/unit/test_coordinates.cpp @@ -196,3 +196,32 @@ TEST(coordinateMetadata, dynamic_crs) { EXPECT_NEAR(coordinateMetadataFromJson->coordinateEpochAsDecimalYear(), 2023.5, 1e-10); } + +// --------------------------------------------------------------------------- + +TEST(coordinateMetadata, crs_with_point_motion_operation_and_promote_to_3D) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + { + // "NAD83(CSRS)v7" + auto crs = factory->createCoordinateReferenceSystem("8255"); + EXPECT_THROW(CoordinateMetadata::create(crs, 2023.5), Exception); + EXPECT_NO_THROW(CoordinateMetadata::create(crs, 2023.5, dbContext)); + auto cm = CoordinateMetadata::create(crs, 2023.5, dbContext) + ->promoteTo3D(std::string(), dbContext); + EXPECT_TRUE(cm->crs()->isEquivalentTo( + crs->promoteTo3D(std::string(), dbContext).get())); + EXPECT_TRUE(cm->coordinateEpoch().has_value()); + EXPECT_NEAR(cm->coordinateEpochAsDecimalYear(), 2023.5, 1e-10); + } + { + auto crs = factory->createCoordinateReferenceSystem("4267"); + EXPECT_THROW(CoordinateMetadata::create(crs, 2023.5, dbContext), + Exception); + auto cm = CoordinateMetadata::create(crs)->promoteTo3D(std::string(), + dbContext); + EXPECT_TRUE(cm->crs()->isEquivalentTo( + crs->promoteTo3D(std::string(), dbContext).get())); + EXPECT_TRUE(!cm->coordinateEpoch().has_value()); + } +} diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index dc7359bfb2..bfc183f3af 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -4704,4 +4704,16 @@ TEST(factory, ogc_crs) { // --------------------------------------------------------------------------- +TEST(factory, getPointMotionOperationsFor) { + auto ctxt = DatabaseContext::create(); + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + // "NAD83(CSRS)v7" + auto crs = factory->createGeodeticCRS("8255"); + auto opList = factory->getPointMotionOperationsFor(crs, false); + ASSERT_TRUE(!opList.empty()); + EXPECT_EQ(opList.front()->identifiers().front()->code(), "9483"); +} + +// --------------------------------------------------------------------------- + } // namespace From d683fcf069c5bf23a6508a8e678ebb1e48cb5326 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 19:23:16 +0200 Subject: [PATCH 024/199] proj_crs_promote_to_3D(): make it work on CoordinateMetadata as well --- src/iso19111/c_api.cpp | 50 ++++++++++++++++++++++++++++++---------- test/unit/test_c_api.cpp | 29 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 12 deletions(-) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 64da697f8f..b23a7bb9ee 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -4155,18 +4155,44 @@ PJ *proj_crs_promote_to_3D(PJ_CONTEXT *ctx, const char *crs_3D_name, } auto cpp_2D_crs = dynamic_cast(crs_2D->iso_obj.get()); if (!cpp_2D_crs) { - proj_log_error(ctx, __FUNCTION__, "crs_2D is not a CRS"); - return nullptr; - } - try { - auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); - return pj_obj_create( - ctx, cpp_2D_crs->promoteTo3D(crs_3D_name ? std::string(crs_3D_name) - : cpp_2D_crs->nameStr(), - dbContext)); - } catch (const std::exception &e) { - proj_log_error(ctx, __FUNCTION__, e.what()); - return nullptr; + auto coordinateMetadata = + dynamic_cast(crs_2D->iso_obj.get()); + if (!coordinateMetadata) { + proj_log_error(ctx, __FUNCTION__, + "crs_2D is not a CRS or a CoordinateMetadata"); + return nullptr; + } + + try { + auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); + auto crs = coordinateMetadata->crs(); + auto crs_3D = crs->promoteTo3D( + crs_3D_name ? std::string(crs_3D_name) : crs->nameStr(), + dbContext); + if (coordinateMetadata->coordinateEpoch().has_value()) { + return pj_obj_create( + ctx, CoordinateMetadata::create( + crs_3D, + coordinateMetadata->coordinateEpochAsDecimalYear(), + dbContext)); + } else { + return pj_obj_create(ctx, CoordinateMetadata::create(crs_3D)); + } + } catch (const std::exception &e) { + proj_log_error(ctx, __FUNCTION__, e.what()); + return nullptr; + } + } else { + try { + auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); + return pj_obj_create(ctx, cpp_2D_crs->promoteTo3D( + crs_3D_name ? std::string(crs_3D_name) + : cpp_2D_crs->nameStr(), + dbContext)); + } catch (const std::exception &e) { + proj_log_error(ctx, __FUNCTION__, e.what()); + return nullptr; + } } } diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index de460cdc43..a8fefd6ff0 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -4983,6 +4983,35 @@ TEST_F(CApi, proj_crs_promote_to_3D) { // --------------------------------------------------------------------------- +TEST_F(CApi, proj_crs_promote_to_3D_on_coordinate_metadata) { + + auto cm_crs2D = proj_create(m_ctxt, "ITRF2014@2010.0"); + ObjectKeeper keeper_cm_crs2D(cm_crs2D); + EXPECT_NE(cm_crs2D, nullptr); + + auto cm_crs3D = proj_crs_promote_to_3D(m_ctxt, nullptr, cm_crs2D); + ObjectKeeper keeper_cm_crs3D(cm_crs3D); + EXPECT_NE(cm_crs3D, nullptr); + + EXPECT_NEAR(proj_coordinate_metadata_get_epoch(m_ctxt, cm_crs3D), 2010.0, + 1e-10); + + auto crs3D = proj_get_source_crs(m_ctxt, cm_crs3D); + ObjectKeeper keeper_crs3D(crs3D); + EXPECT_NE(crs3D, nullptr); + + auto cs = proj_crs_get_coordinate_system(m_ctxt, crs3D); + ASSERT_NE(cs, nullptr); + ObjectKeeper keeperCs(cs); + EXPECT_EQ(proj_cs_get_axis_count(m_ctxt, cs), 3); + + auto code = proj_get_id_code(crs3D, 0); + ASSERT_TRUE(code != nullptr); + EXPECT_EQ(code, std::string("7912")); +} + +// --------------------------------------------------------------------------- + TEST_F(CApi, proj_crs_demote_to_2D) { auto crs3D = From 627d94255888bd2ea536abe91583c966f9deedc7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 13:32:54 +0200 Subject: [PATCH 025/199] createFromUserInput(): allow 'EPSG:XXXX @ YYYY' --- src/iso19111/io.cpp | 83 +++++++++++++++++++++++++------------------ test/unit/test_io.cpp | 8 +++++ 2 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 5b7ba867f4..8b27310f24 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -7328,11 +7328,53 @@ static BaseObjectNNPtr createFromURNPart(const DatabaseContextPtr &dbContext, static BaseObjectNNPtr createFromUserInput(const std::string &text, const DatabaseContextPtr &dbContext, bool usePROJ4InitRules, - PJ_CONTEXT *ctx) { + PJ_CONTEXT *ctx, + bool ignoreCoordinateEpoch) { std::size_t idxFirstCharNotSpace = text.find_first_not_of(" \t\r\n"); if (idxFirstCharNotSpace > 0 && idxFirstCharNotSpace != std::string::npos) { return createFromUserInput(text.substr(idxFirstCharNotSpace), dbContext, - usePROJ4InitRules, ctx); + usePROJ4InitRules, ctx, + ignoreCoordinateEpoch); + } + + // Parse strings like "ITRF2014 @ 2025.0" + const auto posAt = text.find('@'); + if (!ignoreCoordinateEpoch && posAt != std::string::npos) { + + // Try first as if belonged to the name + try { + return createFromUserInput(text, dbContext, usePROJ4InitRules, ctx, + /* ignoreCoordinateEpoch = */ true); + } catch (...) { + } + + std::string leftPart = text.substr(0, posAt); + while (!leftPart.empty() && leftPart.back() == ' ') + leftPart.resize(leftPart.size() - 1); + const auto nonSpacePos = text.find_first_not_of(' ', posAt + 1); + if (nonSpacePos != std::string::npos) { + auto obj = + createFromUserInput(leftPart, dbContext, usePROJ4InitRules, ctx, + /* ignoreCoordinateEpoch = */ true); + auto crs = nn_dynamic_pointer_cast(obj); + if (crs) { + double epoch; + try { + epoch = c_locale_stod(text.substr(nonSpacePos)); + } catch (const std::exception &) { + throw ParsingException("non-numeric value after @"); + } + try { + return CoordinateMetadata::create(NN_NO_CHECK(crs), epoch, + dbContext); + } catch (const std::exception &e) { + throw ParsingException( + std::string( + "CoordinateMetadata::create() failed with: ") + + e.what()); + } + } + } } if (!text.empty() && text[0] == '{') { @@ -7861,37 +7903,6 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, } } - // Parse strings like "ITRF2014 @ 2025.0" - const auto posAt = text.find('@'); - if (posAt != std::string::npos) { - std::string leftPart = text.substr(0, posAt); - while (!leftPart.empty() && leftPart.back() == ' ') - leftPart.resize(leftPart.size() - 1); - const auto nonSpacePos = text.find_first_not_of(' ', posAt + 1); - if (nonSpacePos != std::string::npos) { - auto obj = createFromUserInput(leftPart, dbContext, - usePROJ4InitRules, ctx); - auto crs = nn_dynamic_pointer_cast(obj); - if (crs) { - double epoch; - try { - epoch = c_locale_stod(text.substr(nonSpacePos)); - } catch (const std::exception &) { - throw ParsingException("non-numeric value after @"); - } - try { - return CoordinateMetadata::create(NN_NO_CHECK(crs), epoch, - dbContext); - } catch (const std::exception &e) { - throw ParsingException( - std::string( - "CoordinateMetadata::create() failed with: ") + - e.what()); - } - } - } - } - throw ParsingException("unrecognized format / unknown name"); } //! @endcond @@ -7952,7 +7963,8 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, BaseObjectNNPtr createFromUserInput(const std::string &text, const DatabaseContextPtr &dbContext, bool usePROJ4InitRules) { - return createFromUserInput(text, dbContext, usePROJ4InitRules, nullptr); + return createFromUserInput(text, dbContext, usePROJ4InitRules, nullptr, + /* ignoreCoordinateEpoch = */ false); } // --------------------------------------------------------------------------- @@ -8005,7 +8017,8 @@ BaseObjectNNPtr createFromUserInput(const std::string &text, PJ_CONTEXT *ctx) { } } catch (const std::exception &) { } - return createFromUserInput(text, dbContext, false, ctx); + return createFromUserInput(text, dbContext, false, ctx, + /* ignoreCoordinateEpoch = */ false); } // --------------------------------------------------------------------------- diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 1288fa9113..36bb1a39e0 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -12689,6 +12689,14 @@ TEST(io, createFromUserInput) { ASSERT_TRUE(coordinateMetadata != nullptr); EXPECT_EQ(coordinateMetadata->coordinateEpochAsDecimalYear(), 2025.1); } + + { + auto obj = createFromUserInput("EPSG:9000 @ 2025.1", dbContext); + auto coordinateMetadata = + nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(coordinateMetadata != nullptr); + EXPECT_EQ(coordinateMetadata->coordinateEpochAsDecimalYear(), 2025.1); + } } // --------------------------------------------------------------------------- From 419cf4d6e16b9a1a7d96e22ea2c71f4f2c5fd801 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 6 Sep 2023 13:36:31 +0200 Subject: [PATCH 026/199] Use single implementation of getRoundedEpochInDecimalYear() --- include/proj/internal/internal.hpp | 3 +++ src/iso19111/coordinates.cpp | 11 ----------- src/iso19111/datum.cpp | 11 ----------- src/iso19111/internal.cpp | 12 ++++++++++++ 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/include/proj/internal/internal.hpp b/include/proj/internal/internal.hpp index 6a7b912573..6d6bedff0f 100644 --- a/include/proj/internal/internal.hpp +++ b/include/proj/internal/internal.hpp @@ -181,6 +181,9 @@ std::string concat(const std::string &, const std::string &, const char *) = delete; std::string concat(const std::string &, const std::string &, const std::string &) = delete; + +double getRoundedEpochInDecimalYear(double year); + } // namespace internal NS_PROJ_END diff --git a/src/iso19111/coordinates.cpp b/src/iso19111/coordinates.cpp index c00f70eb77..a51763d88e 100644 --- a/src/iso19111/coordinates.cpp +++ b/src/iso19111/coordinates.cpp @@ -182,17 +182,6 @@ CoordinateMetadata::coordinateEpoch() PROJ_PURE_DEFN { // --------------------------------------------------------------------------- -// Avoid rounding issues due to year -> second (SI unit) -> year roundtrips -static double getRoundedEpochInDecimalYear(double year) { - // Try to see if the value is close to xxxx.yyy decimal year. - if (std::fabs(1000 * year - std::round(1000 * year)) <= 1e-3) { - year = std::round(1000 * year) / 1000.0; - } - return year; -} - -// --------------------------------------------------------------------------- - /** \brief Get the coordinate epoch associated with this CoordinateMetadata * object, as decimal year. * diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 86e9e929ce..91b5b8468d 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -120,17 +120,6 @@ void Datum::Private::exportAnchorDefinition(io::WKTFormatter *formatter) const { // --------------------------------------------------------------------------- -// Avoid rounding issues due to year -> second (SI unit) -> year roundtrips -static double getRoundedEpochInDecimalYear(double year) { - // Try to see if the value is close to xxxx.yyy decimal year. - if (std::fabs(1000 * year - std::round(1000 * year)) <= 1e-3) { - year = std::round(1000 * year) / 1000.0; - } - return year; -} - -// --------------------------------------------------------------------------- - void Datum::Private::exportAnchorEpoch(io::WKTFormatter *formatter) const { if (anchorEpoch->has_value()) { formatter->startNode(io::WKTConstants::ANCHOREPOCH, false); diff --git a/src/iso19111/internal.cpp b/src/iso19111/internal.cpp index 2ebf60dd8a..c6ba11c73b 100644 --- a/src/iso19111/internal.cpp +++ b/src/iso19111/internal.cpp @@ -32,6 +32,7 @@ #include "proj/internal/internal.hpp" +#include #include #include #ifdef _MSC_VER @@ -395,6 +396,17 @@ std::string concat(const char *a, const std::string &b, const char *c) { // --------------------------------------------------------------------------- +// Avoid rounding issues due to year -> second (SI unit) -> year roundtrips +double getRoundedEpochInDecimalYear(double year) { + // Try to see if the value is close to xxxx.yyy decimal year. + if (std::fabs(1000 * year - std::round(1000 * year)) <= 1e-3) { + year = std::round(1000 * year) / 1000.0; + } + return year; +} + +// --------------------------------------------------------------------------- + } // namespace internal NS_PROJ_END From a53a5a107fd611fde17c0bae2d4a29d3e208b7b5 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 17:59:17 +0200 Subject: [PATCH 027/199] createOperations(): use point motion operations for change of epoch between CoordinateMetadata --- include/proj/coordinateoperation.hpp | 11 + scripts/reference_exported_symbols.txt | 2 + src/iso19111/c_api.cpp | 12 +- .../operation/coordinateoperationfactory.cpp | 178 +++++++++++++--- src/iso19111/operation/singleoperation.cpp | 182 ++++++++++++++++- src/iso19111/operation/transformation.cpp | 2 +- test/unit/test_operation.cpp | 66 ++++++ test/unit/test_operationfactory.cpp | 192 ++++++++++++++++++ 8 files changed, 604 insertions(+), 41 deletions(-) diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 923ded9011..dc7b43a862 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1766,6 +1766,8 @@ class PROJ_GCC_DLL PointMotionOperation : public SingleOperation { PROJ_DLL ~PointMotionOperation() override; //! @endcond + PROJ_DLL const crs::CRSNNPtr &sourceCRS() PROJ_PURE_DECL; + PROJ_DLL CoordinateOperationNNPtr inverse() const override; PROJ_DLL static PointMotionOperationNNPtr @@ -1792,6 +1794,10 @@ class PROJ_GCC_DLL PointMotionOperation : public SingleOperation { PROJ_INTERNAL PointMotionOperationNNPtr shallowClone() const; + PROJ_INTERNAL PointMotionOperationNNPtr + cloneWithEpochs(const common::DataEpoch &sourceEpoch, + const common::DataEpoch &targetEpoch) const; + PROJ_INTERNAL void _exportToPROJString(io::PROJStringFormatter *formatter) const override; // throw(FormattingException) @@ -2097,6 +2103,11 @@ class PROJ_GCC_DLL CoordinateOperationFactory { const coordinates::CoordinateMetadataNNPtr &targetCoordinateMetadata, const CoordinateOperationContextNNPtr &context) const; + PROJ_DLL std::vector createOperations( + const coordinates::CoordinateMetadataNNPtr &sourceCoordinateMetadata, + const coordinates::CoordinateMetadataNNPtr &targetCoordinateMetadata, + const CoordinateOperationContextNNPtr &context) const; + PROJ_DLL static CoordinateOperationFactoryNNPtr create(); protected: diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index fdabf46139..7d83d4c00e 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -665,6 +665,7 @@ osgeo::proj::operation::CoordinateOperation::coordinateTransformer(pj_ctx*) cons osgeo::proj::operation::CoordinateOperationFactory::~CoordinateOperationFactory() osgeo::proj::operation::CoordinateOperationFactory::create() osgeo::proj::operation::CoordinateOperationFactory::createOperation(dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&) const +osgeo::proj::operation::CoordinateOperationFactory::createOperations(dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&, dropbox::oxygen::nn > > const&) const osgeo::proj::operation::CoordinateOperationFactory::createOperations(dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&, dropbox::oxygen::nn > > const&) const osgeo::proj::operation::CoordinateOperationFactory::createOperations(dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&, dropbox::oxygen::nn > > const&) const osgeo::proj::operation::CoordinateOperationFactory::createOperations(dropbox::oxygen::nn > const&, dropbox::oxygen::nn > const&, dropbox::oxygen::nn > > const&) const @@ -720,6 +721,7 @@ osgeo::proj::operation::PointMotionOperation::create(osgeo::proj::util::Property osgeo::proj::operation::PointMotionOperation::create(osgeo::proj::util::PropertyMap const&, dropbox::oxygen::nn > const&, osgeo::proj::util::PropertyMap const&, std::vector >, std::allocator > > > const&, std::vector >, std::allocator > > > const&, std::vector >, std::allocator > > > const&) osgeo::proj::operation::PointMotionOperation::inverse() const osgeo::proj::operation::PointMotionOperation::~PointMotionOperation() +osgeo::proj::operation::PointMotionOperation::sourceCRS() const osgeo::proj::operation::PointMotionOperation::substitutePROJAlternativeGridNames(dropbox::oxygen::nn >) const osgeo::proj::operation::SingleOperation::createPROJBased(osgeo::proj::util::PropertyMap const&, std::string const&, std::shared_ptr const&, std::shared_ptr const&, std::vector >, std::allocator > > > const&) osgeo::proj::operation::SingleOperation::gridsNeeded(std::shared_ptr const&, bool) const diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index b23a7bb9ee..acfe952e24 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -208,13 +208,15 @@ PJ *pj_obj_create(PJ_CONTEXT *ctx, const BaseObjectNNPtr &objIn) { pj->iso_obj = objIn; pj->iso_obj_is_coordinate_operation = true; auto sourceEpoch = coordop->sourceCoordinateEpoch(); + auto targetEpoch = coordop->targetCoordinateEpoch(); if (sourceEpoch.has_value()) { - pj->hasCoordinateEpoch = true; - pj->coordinateEpoch = - sourceEpoch->coordinateEpoch().convertToUnit( - common::UnitOfMeasure::YEAR); + if (!targetEpoch.has_value()) { + pj->hasCoordinateEpoch = true; + pj->coordinateEpoch = + sourceEpoch->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR); + } } else { - auto targetEpoch = coordop->targetCoordinateEpoch(); if (targetEpoch.has_value()) { pj->hasCoordinateEpoch = true; pj->coordinateEpoch = diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 7b8d854657..4be2542e06 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -549,6 +549,7 @@ struct CoordinateOperationFactory::Private { bool inCreateOperationsGeogToVertWithIntermediateVert = false; bool skipHorizontalTransformation = false; int nRecLevelCreateOperations = 0; + int ignoreCoordinateEpochCounter = 0; std::map, std::list>> cacheNameToCRS{}; @@ -624,7 +625,7 @@ struct CoordinateOperationFactory::Private { const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, Private::Context &context, const crs::GeodeticCRS *geodSrc, const crs::GeodeticCRS *geodDst, - std::vector &res); + std::vector &res, bool forceBallpark); static void createOperationsFromSphericalPlanetocentric( const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, @@ -705,7 +706,7 @@ struct CoordinateOperationFactory::Private { std::vector &res, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, Private::Context &context, const crs::GeographicCRS *geogSrc, - const crs::GeographicCRS *geogDst); + const crs::GeographicCRS *geogDst, bool forceBallpark); static void createOperationsWithDatumPivot( std::vector &res, @@ -719,6 +720,17 @@ struct CoordinateOperationFactory::Private { static void setCRSs(CoordinateOperation *co, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS); + + struct CoordinateEpochIgnorer { + Context &context; + + explicit CoordinateEpochIgnorer(Context &contextIn) + : context(contextIn) { + ++context.ignoreCoordinateEpochCounter; + } + + ~CoordinateEpochIgnorer() { --context.ignoreCoordinateEpochCounter; } + }; }; //! @endcond @@ -2103,17 +2115,16 @@ CoordinateOperationFactory::Private::findsOpsInRegistryWithIntermediate( // --------------------------------------------------------------------------- //! @cond Doxygen_Suppress -static TransformationNNPtr -createBallparkGeographicOffset(const crs::CRSNNPtr &sourceCRS, - const crs::CRSNNPtr &targetCRS, - const io::DatabaseContextPtr &dbContext) { +static TransformationNNPtr createBallparkGeographicOffset( + const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const io::DatabaseContextPtr &dbContext, bool forceBallpark) { const crs::GeographicCRS *geogSrc = dynamic_cast(sourceCRS.get()); const crs::GeographicCRS *geogDst = dynamic_cast(targetCRS.get()); const bool isSameDatum = - geogSrc && geogDst && + !forceBallpark && geogSrc && geogDst && isSameGeodeticDatum(geogSrc->datumNonNull(dbContext), geogDst->datumNonNull(dbContext), dbContext); @@ -2447,9 +2458,12 @@ createGeodToGeodPROJBased(const crs::CRSNNPtr &geodSrc, util::nn_dynamic_pointer_cast(geodSrc), util::nn_dynamic_pointer_cast(geodDst)); - auto properties = util::PropertyMap().set( - common::IdentifiedObject::NAME_KEY, - buildTransfName(geodSrc->nameStr(), geodDst->nameStr())); + auto properties = + util::PropertyMap() + .set(common::IdentifiedObject::NAME_KEY, + buildTransfName(geodSrc->nameStr(), geodDst->nameStr())) + .set(common::ObjectUsage::DOMAIN_OF_VALIDITY_KEY, + metadata::Extent::WORLD); return createPROJBased(properties, exportable, geodSrc, geodDst, nullptr, {}, false); } @@ -2710,7 +2724,8 @@ std::vector CoordinateOperationFactory::Private::createOperationsGeogToGeog( std::vector &res, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, Private::Context &context, - const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst) { + const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst, + bool forceBallpark) { assert(sourceCRS.get() == geogSrc); assert(targetCRS.get() == geogDst); @@ -2745,6 +2760,7 @@ CoordinateOperationFactory::Private::createOperationsGeogToGeog( authFactory ? authFactory->databaseContext().as_nullable() : nullptr; const bool sameDatum = + !forceBallpark && isSameGeodeticDatum(geogSrc->datumNonNull(dbContext), geogDst->datumNonNull(dbContext), dbContext); @@ -2840,8 +2856,8 @@ CoordinateOperationFactory::Private::createOperationsGeogToGeog( metadata::Extent::WORLD), datum, dstCS)); - steps.emplace_back( - createBallparkGeographicOffset(sourceCRS, interm_crs, dbContext)); + steps.emplace_back(createBallparkGeographicOffset( + sourceCRS, interm_crs, dbContext, forceBallpark)); steps.emplace_back(Transformation::createLongitudeRotation( util::PropertyMap() @@ -2876,10 +2892,10 @@ CoordinateOperationFactory::Private::createOperationsGeogToGeog( metadata::Extent::WORLD), sourceCRS, interm_crs, offset_pm)); steps.emplace_back(createBallparkGeographicOffset( - interm_crs, targetCRS, dbContext)); + interm_crs, targetCRS, dbContext, forceBallpark)); } else { steps.emplace_back(createBallparkGeographicOffset( - sourceCRS, targetCRS, dbContext)); + sourceCRS, targetCRS, dbContext, forceBallpark)); } } @@ -3379,7 +3395,7 @@ CoordinateOperationFactory::Private::createOperations( // Special case if both CRS are geodetic if (geodSrc && geodDst && !derivedSrc && !derivedDst) { createOperationsGeodToGeod(sourceCRS, targetCRS, context, geodSrc, - geodDst, res); + geodDst, res, /*forceBallpark=*/false); return res; } @@ -3590,6 +3606,75 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( return true; } + // Use PointMotionOperations if appropriate and available + if (geodSrc && geodDst && context.ignoreCoordinateEpochCounter == 0 && + context.context->getSourceCoordinateEpoch().has_value() && + context.context->getTargetCoordinateEpoch().has_value() && + !context.context->getSourceCoordinateEpoch() + ->coordinateEpoch() + ._isEquivalentTo(context.context->getTargetCoordinateEpoch() + ->coordinateEpoch())) { + CoordinateEpochIgnorer guard(context); + + const auto pmoSrc = + context.context->getAuthorityFactory()->getPointMotionOperationsFor( + NN_NO_CHECK( + util::nn_dynamic_pointer_cast(sourceCRS)), + true); + if (!pmoSrc.empty()) { + const auto pmoDst = + context.context->getAuthorityFactory() + ->getPointMotionOperationsFor( + NN_NO_CHECK( + util::nn_dynamic_pointer_cast( + targetCRS)), + true); + if (pmoDst.size() == pmoSrc.size()) { + bool ok = true; + for (size_t i = 0; i < pmoSrc.size(); ++i) { + if (pmoSrc[i]->_isEquivalentTo(pmoDst[i].get())) { + auto pmo = pmoSrc[i]->cloneWithEpochs( + *(context.context->getSourceCoordinateEpoch()), + *(context.context->getTargetCoordinateEpoch())); + std::vector ops; + if (!pmo->sourceCRS()->_isEquivalentTo( + sourceCRS.get(), + util::IComparable::Criterion::EQUIVALENT)) { + auto tmp = createOperations( + sourceCRS, pmo->sourceCRS(), context); + assert(!tmp.empty()); + ops.emplace_back(tmp.front()); + } + ops.emplace_back(pmo); + // pmo->sourceCRS() == pmo->targetCRS() by definition + if (!pmo->sourceCRS()->_isEquivalentTo( + targetCRS.get(), + util::IComparable::Criterion::EQUIVALENT)) { + auto tmp = createOperations(pmo->sourceCRS(), + targetCRS, context); + assert(!tmp.empty()); + ops.emplace_back(tmp.front()); + } + res.emplace_back( + ConcatenatedOperation::createComputeMetadata( + ops, disallowEmptyIntersection)); + } else { + ok = false; + break; + } + } + if (ok) { + std::vector resTmp; + createOperationsGeodToGeod(sourceCRS, targetCRS, context, + geodSrc, geodDst, resTmp, + /*forceBallpark=*/true); + res.insert(res.end(), resTmp.begin(), resTmp.end()); + return true; + } + } + } + } + bool resFindDirectNonEmptyBeforeFiltering = false; res = findOpsInRegistryDirect(sourceCRS, targetCRS, context, resFindDirectNonEmptyBeforeFiltering); @@ -3812,7 +3897,7 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid( opsUnitConvert, tmpCRSWithSrcZ, NN_NO_CHECK(op->sourceCRS()), context, dynamic_cast(tmpCRSWithSrcZ.get()), - opSourceCRSGeog); + opSourceCRSGeog, /*forceBallpark=*/false); assert(opsUnitConvert.size() == 1); opPtr = opsUnitConvert.front().as_nullable(); } @@ -4102,7 +4187,7 @@ std::vector CoordinateOperationFactory::Private:: NN_NO_CHECK(op->sourceCRS()), context, dynamic_cast( tmpCRSWithSrcZ.get()), - tmpCRS); + tmpCRS, /*forceBallpark=*/false); assert(opsUnitConvert.size() == 1); auto concat = ConcatenatedOperation::createComputeMetadata( {opsUnitConvert.front(), op}, disallowEmptyIntersection); @@ -4200,8 +4285,8 @@ void CoordinateOperationFactory::Private:: void CoordinateOperationFactory::Private::createOperationsGeodToGeod( const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, Private::Context &context, const crs::GeodeticCRS *geodSrc, - const crs::GeodeticCRS *geodDst, - std::vector &res) { + const crs::GeodeticCRS *geodDst, std::vector &res, + bool forceBallpark) { ENTER_FUNCTION(); @@ -4236,7 +4321,7 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( if (geogSrc && geogDst) { createOperationsGeogToGeog(res, sourceCRS, targetCRS, context, geogSrc, - geogDst); + geogDst, forceBallpark); return; } @@ -4261,8 +4346,14 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( // Same datum ? if (IsSameDatum()) { - res.emplace_back( - Conversion::createGeographicGeocentric(sourceCRS, targetCRS)); + if (forceBallpark) { + auto op = createGeodToGeodPROJBased(sourceCRS, targetCRS); + op->setHasBallparkTransformation(true); + res.emplace_back(op); + } else { + res.emplace_back(Conversion::createGeographicGeocentric( + sourceCRS, targetCRS)); + } } else if (isSrcGeocentric && geogDst) { #if 0 // The below logic was used between PROJ >= 6.0 and < 9.2 @@ -4317,7 +4408,7 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( // Apply previous case in reverse way std::vector resTmp; createOperationsGeodToGeod(targetCRS, sourceCRS, context, geodDst, - geodSrc, resTmp); + geodSrc, resTmp, forceBallpark); resTmp = applyInverse(resTmp); res.insert(res.end(), resTmp.begin(), resTmp.end()); } @@ -4326,9 +4417,10 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( } if (isSrcGeocentric && isTargetGeocentric) { - if (sourceCRS->_isEquivalentTo( - targetCRS.get(), util::IComparable::Criterion::EQUIVALENT) || - IsSameDatum()) { + if (!forceBallpark && + (sourceCRS->_isEquivalentTo( + targetCRS.get(), util::IComparable::Criterion::EQUIVALENT) || + IsSameDatum())) { std::string name(NULL_GEOCENTRIC_TRANSLATION); name += " from "; name += sourceCRS->nameStr(); @@ -5562,6 +5654,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( std::map cacheHorizToInterpAndInterpToTarget; + CoordinateEpochIgnorer guard(context); for (const auto &verticalTransform : verticalTransforms) { #ifdef TRACE_CREATE_OPERATIONS ENTER_BLOCK("Considering vertical transform " + @@ -6167,6 +6260,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( compSrc0BoundCrs->hubCRS())); } } + CoordinateEpochIgnorer guard(context); auto opSrcCRSToGeogCRS = createOperations(componentsSrc[0], interpolationGeogCRS, context); auto opGeogCRStoDstCRS = @@ -6531,6 +6625,36 @@ CoordinateOperationFactory::createOperations( // --------------------------------------------------------------------------- +/** \brief Find a list of CoordinateOperation from a source coordinate metadata + * to a target coordinate metadata. + * + * Both source_crs and target_crs can be a CoordinateMetadata + * with an associated coordinate epoch, to perform changes of coordinate epochs. + * Note however than this is in practice limited to use of velocity grids inside + * the same dynamic CRS. + * + * @param sourceCoordinateMetadata source CoordinateMetadata. + * @param targetCoordinateMetadata target CoordinateMetadata. + * @param context Search context. + * @return a list + * @since 9.4 + */ +std::vector +CoordinateOperationFactory::createOperations( + const coordinates::CoordinateMetadataNNPtr &sourceCoordinateMetadata, + const coordinates::CoordinateMetadataNNPtr &targetCoordinateMetadata, + const CoordinateOperationContextNNPtr &context) const { + auto newContext = context->clone(); + newContext->setSourceCoordinateEpoch( + sourceCoordinateMetadata->coordinateEpoch()); + newContext->setTargetCoordinateEpoch( + targetCoordinateMetadata->coordinateEpoch()); + return createOperations(sourceCoordinateMetadata->crs(), + targetCoordinateMetadata->crs(), newContext); +} + +// --------------------------------------------------------------------------- + /** \brief Instantiate a CoordinateOperationFactory. */ CoordinateOperationFactoryNNPtr CoordinateOperationFactory::create() { diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 385ac93336..cd34d73b10 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -4150,6 +4150,25 @@ PointMotionOperationNNPtr PointMotionOperation::create( crsIn, methodIn, values, accuracies); pmo->assignSelf(pmo); pmo->setProperties(properties); + + const std::string l_name = pmo->nameStr(); + auto pos = l_name.find(" from epoch "); + if (pos != std::string::npos) { + pos += strlen(" from epoch "); + const auto pos2 = l_name.find(" to epoch ", pos); + if (pos2 != std::string::npos) { + const double sourceYear = std::stod(l_name.substr(pos, pos2 - pos)); + const double targetYear = + std::stod(l_name.substr(pos2 + strlen(" to epoch "))); + pmo->setSourceCoordinateEpoch( + util::optional(common::DataEpoch( + common::Measure(sourceYear, common::UnitOfMeasure::YEAR)))); + pmo->setTargetCoordinateEpoch( + util::optional(common::DataEpoch( + common::Measure(targetYear, common::UnitOfMeasure::YEAR)))); + } + } + return pmo; } @@ -4216,8 +4235,33 @@ PointMotionOperation::PointMotionOperation(const PointMotionOperation &other) // --------------------------------------------------------------------------- CoordinateOperationNNPtr PointMotionOperation::inverse() const { - return NN_NO_CHECK(std::dynamic_pointer_cast( - shared_from_this().as_nullable())); + auto inverse = shallowClone(); + if (sourceCoordinateEpoch().has_value()) { + // Switch source and target epochs + inverse->setSourceCoordinateEpoch(targetCoordinateEpoch()); + inverse->setTargetCoordinateEpoch(sourceCoordinateEpoch()); + + auto l_name = inverse->nameStr(); + auto pos = l_name.find(" from epoch "); + if (pos != std::string::npos) + l_name.resize(pos); + + const double sourceYear = getRoundedEpochInDecimalYear( + inverse->sourceCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + const double targetYear = getRoundedEpochInDecimalYear( + inverse->targetCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + + l_name += " from epoch "; + l_name += toString(sourceYear); + l_name += " to epoch "; + l_name += toString(targetYear); + util::PropertyMap newProperties; + newProperties.set(IdentifiedObject::NAME_KEY, l_name); + inverse->setProperties(newProperties); + } + return inverse; } // --------------------------------------------------------------------------- @@ -4257,12 +4301,11 @@ PointMotionOperation::substitutePROJAlternativeGridNames( return self; } - auto l_sourceCRS = NN_NO_CHECK(sourceCRS()); auto parameters = std::vector{createOpParamNameEPSGCode( EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE)}; return PointMotionOperation::create( - createSimilarPropertiesOperation(self), l_sourceCRS, + createSimilarPropertiesOperation(self), sourceCRS(), createSimilarPropertiesMethod(method()), parameters, {ParameterValue::createFilename(projFilename)}, coordinateOperationAccuracies()); @@ -4273,6 +4316,16 @@ PointMotionOperation::substitutePROJAlternativeGridNames( // --------------------------------------------------------------------------- +/** \brief Return the source crs::CRS of the operation. + * + * @return the source CRS. + */ +const crs::CRSNNPtr &PointMotionOperation::sourceCRS() PROJ_PURE_DEFN { + return CoordinateOperation::getPrivate()->strongRef_->sourceCRS_; +} + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress PointMotionOperationNNPtr PointMotionOperation::shallowClone() const { @@ -4289,6 +4342,41 @@ CoordinateOperationNNPtr PointMotionOperation::_shallowClone() const { // --------------------------------------------------------------------------- +PointMotionOperationNNPtr PointMotionOperation::cloneWithEpochs( + const common::DataEpoch &sourceEpoch, + const common::DataEpoch &targetEpoch) const { + auto pmo = + PointMotionOperation::nn_make_shared(*this); + + pmo->assignSelf(pmo); + pmo->setCRSs(this, false); + + pmo->setSourceCoordinateEpoch( + util::optional(sourceEpoch)); + pmo->setTargetCoordinateEpoch( + util::optional(targetEpoch)); + + const double sourceYear = getRoundedEpochInDecimalYear( + sourceEpoch.coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + const double targetYear = getRoundedEpochInDecimalYear( + targetEpoch.coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + + auto l_name = nameStr(); + l_name += " from epoch "; + l_name += toString(sourceYear); + l_name += " to epoch "; + l_name += toString(targetYear); + util::PropertyMap newProperties; + newProperties.set(IdentifiedObject::NAME_KEY, l_name); + pmo->setProperties(newProperties); + + return pmo; +} + +// --------------------------------------------------------------------------- + void PointMotionOperation::_exportToWKT(io::WKTFormatter *formatter) const { if (formatter->version() != io::WKTFormatter::Version::WKT2 || !formatter->use2019Keywords()) { @@ -4309,7 +4397,6 @@ void PointMotionOperation::_exportToWKT(io::WKTFormatter *formatter) const { } auto l_sourceCRS = sourceCRS(); - assert(l_sourceCRS); const bool canExportCRSId = !(formatter->idOnTopLevelOnly() && formatter->topLevelHasId()); @@ -4354,10 +4441,89 @@ void PointMotionOperation::_exportToWKT(io::WKTFormatter *formatter) const { // --------------------------------------------------------------------------- void PointMotionOperation::_exportToPROJString( - io::PROJStringFormatter * /*formatter*/) const // throw(FormattingException) + io::PROJStringFormatter *formatter) const // throw(FormattingException) { - throw io::FormattingException( - "CoordinateOperationNNPtr::_exportToPROJString() unimplemented"); + if (formatter->convention() == + io::PROJStringFormatter::Convention::PROJ_4) { + throw io::FormattingException( + "PointMotionOperation cannot be exported as a PROJ.4 string"); + } + + const int methodEPSGCode = method()->getEPSGCode(); + if (methodEPSGCode == + EPSG_CODE_METHOD_POINT_MOTION_BY_GRID_CANADA_NTV2_VEL) { + if (!sourceCoordinateEpoch().has_value()) { + throw io::FormattingException( + "CoordinateOperationNNPtr::_exportToPROJString() unimplemented " + "when source coordinate epoch is missing"); + } + if (!targetCoordinateEpoch().has_value()) { + throw io::FormattingException( + "CoordinateOperationNNPtr::_exportToPROJString() unimplemented " + "when target coordinate epoch is missing"); + } + + auto l_sourceCRS = dynamic_cast(sourceCRS().get()); + + if (!l_sourceCRS->isGeocentric()) { + formatter->startInversion(); + l_sourceCRS->_exportToPROJString(formatter); + formatter->stopInversion(); + + formatter->addStep("cart"); + l_sourceCRS->ellipsoid()->_exportToPROJString(formatter); + } else { + formatter->startInversion(); + l_sourceCRS->addGeocentricUnitConversionIntoPROJString(formatter); + formatter->stopInversion(); + } + + const double sourceYear = getRoundedEpochInDecimalYear( + sourceCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + const double targetYear = getRoundedEpochInDecimalYear( + targetCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)); + + formatter->addStep("set"); + formatter->addParam("v_4", sourceYear); + formatter->addParam("omit_fwd"); + + formatter->addStep("deformation"); + formatter->addParam("dt", targetYear - sourceYear); + const auto &fileParameter = + parameterValue(EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE); + if (fileParameter && + fileParameter->type() == ParameterValue::Type::FILENAME) { + formatter->addParam("grids", fileParameter->valueFile()); + } else { + throw io::FormattingException( + "CoordinateOperationNNPtr::_exportToPROJString(): missing " + "velocity grid file parameter"); + } + l_sourceCRS->ellipsoid()->_exportToPROJString(formatter); + + formatter->addStep("set"); + formatter->addParam("v_4", targetYear); + formatter->addParam("omit_inv"); + + if (!l_sourceCRS->isGeocentric()) { + formatter->startInversion(); + formatter->addStep("cart"); + l_sourceCRS->ellipsoid()->_exportToPROJString(formatter); + formatter->stopInversion(); + + l_sourceCRS->_exportToPROJString(formatter); + } else { + l_sourceCRS->addGeocentricUnitConversionIntoPROJString(formatter); + } + + } else { + throw io::FormattingException( + "CoordinateOperationNNPtr::_exportToPROJString() unimplemented for " + "this method"); + } } // --------------------------------------------------------------------------- diff --git a/src/iso19111/operation/transformation.cpp b/src/iso19111/operation/transformation.cpp index d660e269d8..22569c5a5f 100644 --- a/src/iso19111/operation/transformation.cpp +++ b/src/iso19111/operation/transformation.cpp @@ -1851,7 +1851,7 @@ void Transformation::_exportToPROJString( return; } - throw io::FormattingException("Unimplemented"); + throw io::FormattingException("Unimplemented " + nameStr()); } } // namespace operation diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index 98fbd2c490..59f6a745e1 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -5777,3 +5777,69 @@ TEST(operation, export_of_boundCRS_with_proj_string_method) { "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg"); } + +// --------------------------------------------------------------------------- + +TEST(operation, PointMotionOperation_with_epochs) { + auto wkt = + "POINTMOTIONOPERATION[\"Canada velocity grid v7 from epoch 2010 to " + "epoch 2002\",\n" + " SOURCECRS[\n" + " GEOGCRS[\"NAD83(CSRS)v7\",\n" + " DATUM[\"North American Datum of 1983 (CSRS) version 7\",\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",8254]]],\n" + " METHOD[\"Point motion by grid (Canada NTv2_Vel)\",\n" + " ID[\"EPSG\",1070]],\n" + " PARAMETERFILE[\"Point motion velocity grid " + "file\",\"ca_nrc_NAD83v70VG.tif\"],\n" + " OPERATIONACCURACY[0.01],\n" + " ID[\"DERIVED_FROM(EPSG)\",9483],\n" + " REMARK[\"File initially published with name cvg70.cvb, later " + "renamed to NAD83v70VG.gvb with no change of content.\"]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto pmo = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(pmo != nullptr); + EXPECT_EQ(pmo->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_fwd " + "+step +proj=deformation +dt=-8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ(pmo->inverse()->nameStr(), + "Canada velocity grid v7 from epoch 2002 to epoch 2010"); + EXPECT_EQ( + pmo->inverse()->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); +} diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 9b67342a63..9b6b0e293b 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -37,6 +37,7 @@ #include "proj/common.hpp" #include "proj/coordinateoperation.hpp" +#include "proj/coordinates.hpp" #include "proj/coordinatesystem.hpp" #include "proj/crs.hpp" #include "proj/datum.hpp" @@ -52,6 +53,7 @@ #include using namespace osgeo::proj::common; +using namespace osgeo::proj::coordinates; using namespace osgeo::proj::crs; using namespace osgeo::proj::cs; using namespace osgeo::proj::datum; @@ -9307,3 +9309,193 @@ TEST(operation, "+step +proj=affine +xoff=20 " "+step +proj=axisswap +order=2,1"); } + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_point_motion_operation_geog2D) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "NAD83(CSRS)v7" + auto crs = factory->createCoordinateReferenceSystem("8255"); + auto crs_2002 = CoordinateMetadata::create(crs, 2002.0, dbContext); + auto crs_2010 = CoordinateMetadata::create(crs, 2010.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2002, crs_2010, ctxt); + ASSERT_EQ(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); + EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +} + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_point_motion_operation_geog3D) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "NAD83(CSRS)v7" + auto crs = factory->createCoordinateReferenceSystem("8254"); + auto crs_2002 = CoordinateMetadata::create(crs, 2002.0, dbContext); + auto crs_2010 = CoordinateMetadata::create(crs, 2010.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2002, crs_2010, ctxt); + ASSERT_EQ(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); + EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +} + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_point_motion_operation_geocentric) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "NAD83(CSRS)v7" + auto crs = factory->createCoordinateReferenceSystem("8253"); + auto crs_2002 = CoordinateMetadata::create(crs, 2002.0, dbContext); + auto crs_2010 = CoordinateMetadata::create(crs, 2010.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2002, crs_2010, ctxt); + ASSERT_EQ(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_inv"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); + EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +} + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_point_motion_operation_geocentric_to_geog3D) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "NAD83(CSRS)v7" + auto crs_geocentric = factory->createCoordinateReferenceSystem("8253"); + auto crs_2002 = + CoordinateMetadata::create(crs_geocentric, 2002.0, dbContext); + auto crs_geog3d = factory->createCoordinateReferenceSystem("8254"); + auto crs_2010 = CoordinateMetadata::create(crs_geog3d, 2010.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2002, crs_2010, ctxt); + ASSERT_EQ(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2010 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); + EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); +} + +// --------------------------------------------------------------------------- + +TEST(operation, + createOperation_point_motion_operation_NAD83_CSRS_v7_TO_ITRF2014) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "NAD83(CSRS)v7" + auto sourceCRS = factory->createCoordinateReferenceSystem("8254"); + auto crs_2002 = CoordinateMetadata::create(sourceCRS, 2002.0, dbContext); + // ITRF2014 + auto targetCRS = factory->createCoordinateReferenceSystem("7912"); + auto crs_2005 = CoordinateMetadata::create(targetCRS, 2005.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2002, crs_2005, ctxt); + ASSERT_EQ(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_fwd " + "+step +proj=deformation +dt=3 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2005 +omit_inv " + "+step +inv +proj=helmert " + "+x=1.0053 +y=-1.90921 +z=-0.54157 +rx=-0.02678138 " + "+ry=0.00042027 +rz=-0.01093206 +s=0.00036891 +dx=0.00079 +dy=-0.0006 " + "+dz=-0.00144 +drx=-6.667e-05 +dry=0.00075744 +drz=5.133e-05 " + "+ds=-7.201e-05 +t_epoch=2010 +convention=position_vector " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); + EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +} From 26936c1fbbe46d12256a0ce82277be8e28976abc Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 18:00:08 +0200 Subject: [PATCH 028/199] proj_create_operations(): allow CoordinateMetadata <--> CoordinateMetadata transformations --- .../development/reference/functions.rst | 18 ++++++++++++---- src/iso19111/c_api.cpp | 21 ++++++++----------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/docs/source/development/reference/functions.rst b/docs/source/development/reference/functions.rst index 533a9942b0..8adb5c0279 100644 --- a/docs/source/development/reference/functions.rst +++ b/docs/source/development/reference/functions.rst @@ -139,8 +139,13 @@ paragraph for more details. - more generally any string accepted by :c:func:`proj_create` representing a CRS - Starting with PROJ 9.2, source_crs or target_crs can be a CoordinateMetadata - with an associated coordinate epoch (but only one of them, not both). + Starting with PROJ 9.2, source_crs (exclusively) or target_crs can be a CoordinateMetadata + with an associated coordinate epoch. + + Starting with PROJ 9.4, both source_crs and target_crs can be a CoordinateMetadata + with an associated coordinate epoch, to perform changes of coordinate epochs. + Note however than this is in practice limited to use of velocity grids inside + the same dynamic CRS. An "area of use" can be specified in area. When it is supplied, the more accurate transformation between two given systems can be chosen. @@ -185,8 +190,13 @@ paragraph for more details. This is the same as :c:func:`proj_create_crs_to_crs` except that the source and target CRS are passed as PJ* objects which must be of the CRS variety. - Starting with PROJ 9.2, source_crs or target_crs can be a CoordinateMetadata - with an associated coordinate epoch (but only one of them, not both). + Starting with PROJ 9.2, source_crs (exclusively) or target_crs can be a CoordinateMetadata + with an associated coordinate epoch. + + Starting with PROJ 9.4, both source_crs and target_crs can be a CoordinateMetadata + with an associated coordinate epoch, to perform changes of coordinate epochs. + Note however than this is in practice limited to use of velocity grids inside + the same dynamic CRS. :param `options`: a list of NUL terminated options, or NULL. diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index acfe952e24..a033b8c400 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -8468,22 +8468,19 @@ proj_create_operations(PJ_CONTEXT *ctx, const PJ *source_crs, } } - if (sourceCoordinateMetadata != nullptr && - targetCoordinateMetadata != nullptr) { - proj_log_error(ctx, __FUNCTION__, - "CoordinateMetadata with epoch to CoordinateMetadata " - "with epoch not supported currently"); - return nullptr; - } - try { auto factory = CoordinateOperationFactory::create(); std::vector objects; auto ops = sourceCoordinateMetadata != nullptr - ? factory->createOperations( - NN_NO_CHECK(sourceCoordinateMetadata), - NN_NO_CHECK(targetCRS), - operationContext->operationContext) + ? (targetCoordinateMetadata != nullptr + ? factory->createOperations( + NN_NO_CHECK(sourceCoordinateMetadata), + NN_NO_CHECK(targetCoordinateMetadata), + operationContext->operationContext) + : factory->createOperations( + NN_NO_CHECK(sourceCoordinateMetadata), + NN_NO_CHECK(targetCRS), + operationContext->operationContext)) : targetCoordinateMetadata != nullptr ? factory->createOperations( NN_NO_CHECK(sourceCRS), From a9716560f089e3d0f99dfe71504f3c042b0e2d69 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 18:00:15 +0200 Subject: [PATCH 029/199] projinfo: allow CoordinateMetadata <--> CoordinateMetadata transformations --- src/apps/projinfo.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index 3b6276e49f..2e47e1070e 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -879,14 +879,6 @@ static void outputOperations( } } - if (sourceCoordinateMetadata != nullptr && - targetCoordinateMetadata != nullptr) { - std::cerr << "CoordinateMetadata with epoch to CoordinateMetadata " - "with epoch not supported currently." - << std::endl; - std::exit(1); - } - // TODO: handle promotion of CoordinateMetadata if (sourceCRS && targetCRS && dbContext && !promoteTo3D) { // Auto-promote source/target CRS if it is specified by its name, @@ -927,6 +919,12 @@ static void outputOperations( const auto createOperations = [&]() { if (sourceCoordinateMetadata) { + if (targetCoordinateMetadata) { + return CoordinateOperationFactory::create() + ->createOperations( + NN_NO_CHECK(sourceCoordinateMetadata), + NN_NO_CHECK(targetCoordinateMetadata), ctxt); + } return CoordinateOperationFactory::create()->createOperations( NN_NO_CHECK(sourceCoordinateMetadata), NN_NO_CHECK(targetCRS), ctxt); From 284d15ef7d5c80509364fc299d63f14208ef684b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 21:28:39 +0200 Subject: [PATCH 030/199] Database: add 'CGVD28 height to CGVD2013a(2010) height' with NAD83(CSRS)v7 as interpolation CRS --- data/sql/commit.sql | 6 +++++- data/sql/customizations.sql | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data/sql/commit.sql b/data/sql/commit.sql index e76135e768..9e8f777bb2 100644 --- a/data/sql/commit.sql +++ b/data/sql/commit.sql @@ -73,7 +73,11 @@ FOR EACH ROW BEGIN AND g1.source_crs_code = g2.source_crs_code AND g1.target_crs_auth_name = g2.target_crs_auth_name AND g1.target_crs_code = g2.target_crs_code - WHERE g1.auth_name = 'PROJ' AND g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG' AND g2.deprecated = 0) + WHERE g1.auth_name = 'PROJ' AND g1.code NOT LIKE '%_RESTRICTED_TO_VERTCRS%' AND g2.auth_name = 'EPSG' AND g2.deprecated = 0 AND ( + (g1.interpolation_crs_auth_name IS NULL AND g2.interpolation_crs_auth_name IS NULL) OR + (g1.interpolation_crs_auth_name IS NOT NULL AND g2.interpolation_crs_auth_name IS NOT NULL AND + g1.interpolation_crs_auth_name = g2.interpolation_crs_auth_name AND + g1.interpolation_crs_code = g2.interpolation_crs_code))) OR EXISTS (SELECT 1 FROM grid_transformation g1 JOIN grid_transformation g2 ON g1.source_crs_auth_name = g2.target_crs_auth_name diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql index b209b636a5..9c5093c445 100644 --- a/data/sql/customizations.sql +++ b/data/sql/customizations.sql @@ -188,6 +188,12 @@ INSERT INTO usage SELECT scope_code FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '9123'; +-- Duplicate EPSG:10015 with NAD83(CSRS)v7 as interpolation CRS +INSERT INTO "grid_transformation" VALUES +('PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8255','NR-Can HT2 2010',0); + +INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1133'); + -- Define the allowed authorities, and their precedence, when researching a -- coordinate operation From 4ac2cfb25e3c613bb0f0853ba7ec9f7df690776e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 22:01:44 +0200 Subject: [PATCH 031/199] projinfo: add --s_epoch and --t_epoch --- docs/source/apps/projinfo.rst | 17 +++++++++- src/apps/projinfo.cpp | 62 +++++++++++++++++++++++----------- test/cli/testprojinfo | 3 ++ test/cli/testprojinfo_out.dist | 4 +++ 4 files changed, 66 insertions(+), 20 deletions(-) diff --git a/docs/source/apps/projinfo.rst b/docs/source/apps/projinfo.rst index eee0985fbd..76ee6803aa 100644 --- a/docs/source/apps/projinfo.rst +++ b/docs/source/apps/projinfo.rst @@ -34,7 +34,8 @@ Synopsis | --searchpaths | --remote-data | | --list-crs [list-crs-filter] | | --dump-db-structure [{object_definition} | {object_reference}] | - | {object_definition} | {object_reference} | (-s {srs_def} -t {srs_def}) + | {object_definition} | {object_reference} | + | [--s_epoch {epoch}] -t {srs_def} [--t_epoch {epoch}]) | where {object_definition} or {srs_def} is one of the possibilities accepted @@ -356,6 +357,20 @@ The following control parameters can appear in any order: Display information regarding if :ref:`network` is enabled, and the related URL. +.. option:: --s_epoch + + .. versionadded:: 9.4 + + Epoch of coordinates in the source CRS, as decimal year. + Only applies to a dynamic CRS. + +.. option:: --t_epoch + + .. versionadded:: 9.4 + + Epoch of coordinates in the target CRS, as decimal year. + Only applies to a dynamic CRS. + Examples ******** diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index 2e47e1070e..f1d5ed401f 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -119,8 +119,10 @@ struct OutputOptions { << " --dump-db-structure [{object_definition} | " "{object_reference}] |" << std::endl - << " {object_definition} | {object_reference} | " - "(-s {srs_def} -t {srs_def})" + << " {object_definition} | {object_reference} |" + << std::endl + << " (-s {srs_def} [--s_epoch {epoch}] " + "-t {srs_def} [--t_epoch {epoch}])" << std::endl; std::cerr << std::endl; std::cerr << "-o: formats is a comma separated combination of: " @@ -256,8 +258,8 @@ static ExtentPtr makeBboxFilter(DatabaseContextPtr dbContext, static BaseObjectNNPtr buildObject( DatabaseContextPtr dbContext, const std::string &user_string, - const std::string &kind, const std::string &context, - bool buildBoundCRSToWGS84, + const std::string &epoch, const std::string &kind, + const std::string &context, bool buildBoundCRSToWGS84, CoordinateOperationContext::IntermediateCRSUse allowUseIntermediateCRS, bool promoteTo3D, bool normalizeAxisOrder, bool quiet) { BaseObjectPtr obj; @@ -419,6 +421,19 @@ static BaseObjectNNPtr buildObject( } } + if (!epoch.empty()) { + auto crs = std::dynamic_pointer_cast(obj); + if (crs) { + obj = CoordinateMetadata::create(NN_NO_CHECK(crs), std::stod(epoch), + dbContext) + .as_nullable(); + } else { + std::cerr << context << ": applying epoch to a non-CRS object" + << std::endl; + std::exit(1); + } + } + return NN_NO_CHECK(obj); } @@ -827,7 +842,8 @@ static bool is3DCRS(const CRSPtr &crs) { static void outputOperations( DatabaseContextPtr dbContext, const std::string &sourceCRSStr, - const std::string &targetCRSStr, const ExtentPtr &bboxFilter, + const std::string &sourceEpoch, const std::string &targetCRSStr, + const std::string &targetEpoch, const ExtentPtr &bboxFilter, CoordinateOperationContext::SpatialCriterion spatialCriterion, bool spatialCriterionExplicitlySpecified, CoordinateOperationContext::SourceTargetCRSExtentUse crsExtentUse, @@ -837,10 +853,10 @@ static void outputOperations( const std::string &authority, bool usePROJGridAlternatives, bool showSuperseded, bool promoteTo3D, bool normalizeAxisOrder, double minimumAccuracy, const OutputOptions &outputOpt, bool summary) { - auto sourceObj = - buildObject(dbContext, sourceCRSStr, "crs", "source CRS", false, - CoordinateOperationContext::IntermediateCRSUse::NEVER, - promoteTo3D, normalizeAxisOrder, outputOpt.quiet); + auto sourceObj = buildObject( + dbContext, sourceCRSStr, sourceEpoch, "crs", "source CRS", false, + CoordinateOperationContext::IntermediateCRSUse::NEVER, promoteTo3D, + normalizeAxisOrder, outputOpt.quiet); auto sourceCRS = nn_dynamic_pointer_cast(sourceObj); CoordinateMetadataPtr sourceCoordinateMetadata; if (!sourceCRS) { @@ -858,10 +874,10 @@ static void outputOperations( } } - auto targetObj = - buildObject(dbContext, targetCRSStr, "crs", "target CRS", false, - CoordinateOperationContext::IntermediateCRSUse::NEVER, - promoteTo3D, normalizeAxisOrder, outputOpt.quiet); + auto targetObj = buildObject( + dbContext, targetCRSStr, targetEpoch, "crs", "target CRS", false, + CoordinateOperationContext::IntermediateCRSUse::NEVER, promoteTo3D, + normalizeAxisOrder, outputOpt.quiet); auto targetCRS = nn_dynamic_pointer_cast(targetObj); CoordinateMetadataPtr targetCoordinateMetadata; if (!targetCRS) { @@ -1023,7 +1039,9 @@ int main(int argc, char **argv) { std::string user_string; bool user_string_specified = false; std::string sourceCRSStr; + std::string sourceEpoch; std::string targetCRSStr; + std::string targetEpoch; bool outputSwitchSpecified = false; OutputOptions outputOpt; std::string objectKind; @@ -1196,9 +1214,15 @@ int main(int argc, char **argv) { } else if ((arg == "-s" || arg == "--source-crs") && i + 1 < argc) { i++; sourceCRSStr = argv[i]; + } else if (arg == "--s_epoch" && i + 1 < argc) { + i++; + sourceEpoch = argv[i]; } else if ((arg == "-t" || arg == "--target-crs") && i + 1 < argc) { i++; targetCRSStr = argv[i]; + } else if (arg == "--t_epoch" && i + 1 < argc) { + i++; + targetEpoch = argv[i]; } else if (arg == "-q" || arg == "--quiet") { outputOpt.quiet = true; } else if (arg == "--c-ify") { @@ -1577,10 +1601,10 @@ int main(int argc, char **argv) { if (!user_string.empty()) { try { - auto obj(buildObject(dbContext, user_string, objectKind, - "input string", buildBoundCRSToWGS84, - allowUseIntermediateCRS, promoteTo3D, - normalizeAxisOrder, outputOpt.quiet)); + auto obj(buildObject( + dbContext, user_string, std::string(), objectKind, + "input string", buildBoundCRSToWGS84, allowUseIntermediateCRS, + promoteTo3D, normalizeAxisOrder, outputOpt.quiet)); if (guessDialect) { auto dialect = WKTParser().guessDialect(user_string); std::cout << "Guessed WKT dialect: "; @@ -1674,8 +1698,8 @@ int main(int argc, char **argv) { } else { auto bboxFilter = makeBboxFilter(dbContext, bboxStr, area, true); try { - outputOperations(dbContext, sourceCRSStr, targetCRSStr, bboxFilter, - spatialCriterion, + outputOperations(dbContext, sourceCRSStr, sourceEpoch, targetCRSStr, + targetEpoch, bboxFilter, spatialCriterion, spatialCriterionExplicitlySpecified, crsExtentUse, gridAvailabilityUse, allowUseIntermediateCRS, pivots, authority, usePROJGridAlternatives, diff --git a/test/cli/testprojinfo b/test/cli/testprojinfo index 509099e66f..77a33b2e62 100755 --- a/test/cli/testprojinfo +++ b/test/cli/testprojinfo @@ -390,6 +390,9 @@ echo 'Testing EPSG:9945 -o PROJ -q' >> ${OUT} $EXE EPSG:9945 -o PROJ -q >> ${OUT} echo "" >>${OUT} +echo 'Testing -s "NAD83(CSRS)v7" --s_epoch 1997 -t "NAD83(CSRS)v7" --t_epoch 2010 --summary --hide-ballpark' >> ${OUT} +$EXE -s "NAD83(CSRS)v7" --s_epoch 1997 -t "NAD83(CSRS)v7" --t_epoch 2010 --summary --hide-ballpark >> ${OUT} +echo "" >>${OUT} # do 'diff' with distribution results echo "diff ${OUT} with testprojinfo_out.dist" diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index 27852870d8..ff56c23196 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -1697,3 +1697,7 @@ EPSG:2154 "RGF93 v1 / Lambert-93" Testing EPSG:9945 -o PROJ -q +proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=500000 +y_0=-4000000 +ellps=bessel +towgs84=521.748,229.489,590.921,4.029,4.488,-15.521,-9.78 +units=m +no_defs +type=crs +Testing -s "NAD83(CSRS)v7" --s_epoch 1997 -t "NAD83(CSRS)v7" --t_epoch 2010 --summary --hide-ballpark +Candidate operations found: 1 +unknown id, Null geographic offset from NAD83(CSRS)v7 (geog2D) to NAD83(CSRS)v7 (geog3D) + Canada velocity grid v7 from epoch 1997 to epoch 2010 + Null geographic offset from NAD83(CSRS)v7 (geog3D) to NAD83(CSRS)v7 (geog2D), 0.01 m, 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. + From 9983c6ef088c05f4f6b635c4eec5cbd331dbb635 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 18 Aug 2023 22:21:45 +0200 Subject: [PATCH 032/199] cs2cs: add --s_epoch and --t_epoch --- docs/source/apps/cs2cs.rst | 15 +++++++ scripts/reference_exported_symbols.txt | 1 + src/apps/cs2cs.cpp | 55 ++++++++++++++++++++++++++ src/iso19111/c_api.cpp | 30 ++++++++++++++ src/proj.h | 3 ++ test/cli/testvarious | 14 +++++++ test/cli/tv_out.dist | 6 +++ 7 files changed, 124 insertions(+) diff --git a/docs/source/apps/cs2cs.rst b/docs/source/apps/cs2cs.rst index ece14b4860..4e6221dcbb 100644 --- a/docs/source/apps/cs2cs.rst +++ b/docs/source/apps/cs2cs.rst @@ -15,6 +15,7 @@ Synopsis | [[--area ] | [--bbox ]] | [--authority ] [--3d] | [--accuracy ] [--only-best[=yes|=no]] [--no-ballpark] + | [--s_epoch {epoch}] [--t_epoch {epoch}] | ([*+opt[=arg]* ...] [+to *+opt[=arg]* ...] | {source_crs} {target_crs}) | file ... @@ -224,6 +225,20 @@ The following control parameters can appear in any order: transformations. Starting with PROJ 9.1, both CRS need to be 3D for vertical transformation to possibly happen. +.. option:: --s_epoch + + .. versionadded:: 9.4 + + Epoch of coordinates in the source CRS, as decimal year. + Only applies to a dynamic CRS. + +.. option:: --t_epoch + + .. versionadded:: 9.4 + + Epoch of coordinates in the target CRS, as decimal year. + Only applies to a dynamic CRS. + .. only:: man The *+opt* run-line arguments are associated with cartographic diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index 7d83d4c00e..f667fbf5c3 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -876,6 +876,7 @@ proj_context_use_proj4_init_rules proj_convert_conversion_to_other_method proj_coord proj_coord_error() +proj_coordinate_metadata_create proj_coordinate_metadata_get_epoch proj_coordoperation_create_inverse proj_coordoperation_get_accuracy diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index d4485fbe5b..8d76828e7f 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -82,6 +82,7 @@ static const char *usage = " [--authority {name}] [--3d]\n" " [--accuracy {accuracy}] [--only-best[=yes|=no]] " "[--no-ballpark]\n" + " [--s_epoch {epoch}] [--t_epoch {epoch}]\n" " [+opt[=arg] ...] [+to +opt[=arg] ...] [file ...]\n"; static double (*informat)(const char *, @@ -424,6 +425,8 @@ int main(int argc, char **argv) { bool onlyBestSet = false; bool errorIfBestTransformationNotAvailable = false; bool promoteTo3D = false; + std::string sourceEpoch; + std::string targetEpoch; /* process run line arguments */ while (--argc > 0) { /* collect run line arguments */ @@ -493,6 +496,22 @@ int main(int argc, char **argv) { errorIfBestTransformationNotAvailable = false; } else if (strcmp(*argv, "--3d") == 0) { promoteTo3D = true; + } else if (strcmp(*argv, "--s_epoch") == 0) { + ++argv; + --argc; + if (argc == 0) { + emess(1, "missing argument for --s_epoch"); + std::exit(1); + } + sourceEpoch = *argv; + } else if (strcmp(*argv, "--t_epoch") == 0) { + ++argv; + --argc; + if (argc == 0) { + emess(1, "missing argument for --t_epoch"); + std::exit(1); + } + targetEpoch = *argv; } else if (**argv == '-') { for (arg = *argv;;) { switch (*++arg) { @@ -873,6 +892,42 @@ int main(int argc, char **argv) { } } + if (!sourceEpoch.empty()) { + PJ *srcMetadata = nullptr; + double sourceEpochDbl; + try { + sourceEpochDbl = c_locale_stod(sourceEpoch); + } catch (const std::exception &e) { + sourceEpochDbl = 0; + emess(3, e.what()); + } + srcMetadata = + proj_coordinate_metadata_create(nullptr, src, sourceEpochDbl); + if (!srcMetadata) { + emess(3, "cannot instantiate source coordinate system"); + } + proj_destroy(src); + src = srcMetadata; + } + + if (!targetEpoch.empty()) { + PJ *dstMetadata = nullptr; + double targetEpochDbl; + try { + targetEpochDbl = c_locale_stod(targetEpoch); + } catch (const std::exception &e) { + targetEpochDbl = 0; + emess(3, e.what()); + } + dstMetadata = + proj_coordinate_metadata_create(nullptr, dst, targetEpochDbl); + if (!dstMetadata) { + emess(3, "cannot instantiate target coordinate system"); + } + proj_destroy(dst); + dst = dstMetadata; + } + std::string authorityOption; /* keep this variable in this outer scope ! */ std::string accuracyOption; /* keep this variable in this outer scope ! */ std::vector options; diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index a033b8c400..82eb3e6267 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -9566,6 +9566,36 @@ proj_get_geoid_models_from_database(PJ_CONTEXT *ctx, const char *auth_name, // --------------------------------------------------------------------------- +/** \brief Instanciate a CoordinateMetadata object + * + * @since 9.4 + */ + +PJ *proj_coordinate_metadata_create(PJ_CONTEXT *ctx, const PJ *crs, + double epoch) { + SANITIZE_CTX(ctx); + if (!crs) { + proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE); + proj_log_error(ctx, __FUNCTION__, "missing required input"); + return nullptr; + } + auto crsCast = std::dynamic_pointer_cast(crs->iso_obj); + if (!crsCast) { + proj_log_error(ctx, __FUNCTION__, "Object is not a CRS"); + return nullptr; + } + try { + auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); + return pj_obj_create(ctx, CoordinateMetadata::create( + NN_NO_CHECK(crsCast), epoch, dbContext)); + } catch (const std::exception &e) { + proj_log_debug(ctx, __FUNCTION__, e.what()); + return nullptr; + } +} + +// --------------------------------------------------------------------------- + /** \brief Return the coordinate epoch associated with a CoordinateMetadata. * * It may return a NaN value if there is no associated coordinate epoch. diff --git a/src/proj.h b/src/proj.h index 20b24ddc18..9a48de9fa5 100644 --- a/src/proj.h +++ b/src/proj.h @@ -1491,6 +1491,9 @@ PJ PROJ_DLL *proj_concatoperation_get_step(PJ_CONTEXT *ctx, const PJ *concatoperation, int i_step); +PJ PROJ_DLL *proj_coordinate_metadata_create(PJ_CONTEXT *ctx, const PJ *crs, + double epoch); + double PROJ_DLL proj_coordinate_metadata_get_epoch(PJ_CONTEXT *ctx, const PJ *obj); diff --git a/test/cli/testvarious b/test/cli/testvarious index ce50615ec4..c2aad17756 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1332,6 +1332,20 @@ $EXE -d 3 EPSG:3912+EPSG:5779 EPSG:3794+EPSG:8690 -E >>${OUT} 2>&1 <> ${OUT} +echo "Test --s_epoch" >> ${OUT} +# +$EXE -d 8 --s_epoch 2022 "ITRF2014" "GDA2020" -E >>${OUT} 2>&1 <> ${OUT} +echo "Test --t_epoch" >> ${OUT} +# +$EXE -d 8 --t_epoch 2022 "GDA2020" "ITRF2014" -E >>${OUT} 2>&1 < Date: Mon, 21 Aug 2023 12:32:23 +0200 Subject: [PATCH 033/199] Database: add a 'coordinate_metadata' table and a AuthorityFactory::createCoordinateMetadata() method Bump database layout version to 1.3 --- data/sql/metadata.sql | 2 +- data/sql/proj_db_table_defs.sql | 28 ++++++++++ include/proj/io.hpp | 11 ++++ scripts/reference_exported_symbols.txt | 1 + src/iso19111/factory.cpp | 58 +++++++++++++++++++- test/cli/testprojinfo_out.dist | 2 +- test/unit/test_factory.cpp | 74 ++++++++++++++++++++++++++ 7 files changed, 173 insertions(+), 3 deletions(-) diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index e26b4c380a..97c77a265f 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -7,7 +7,7 @@ -- DATABASE_LAYOUT_VERSION_MINOR constants in src/iso19111/factory.cpp must be -- updated as well. INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); -INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 2); +INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.094'); INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-08-08'); diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index b377199edd..dd24fd7e9a 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -777,6 +777,34 @@ FOR EACH ROW BEGIN WHERE EXISTS (SELECT 1 FROM vertical_crs WHERE vertical_crs.auth_name = NEW.vertical_crs_auth_name AND vertical_crs.code = NEW.vertical_crs_code AND vertical_crs.deprecated != 0) AND NEW.deprecated = 0; END; +CREATE TABLE coordinate_metadata( + auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1), + code INTEGER_OR_TEXT NOT NULL CHECK (length(code) >= 1), + description TEXT, + crs_auth_name TEXT, + crs_code INTEGER_OR_TEXT, + crs_text_definition TEXT, -- WKT string or PROJJSON string. Mutually exclusive with (crs_auth_name, crs_code) + coordinate_epoch DOUBLE, -- may be NULL + deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)), + CONSTRAINT pk_coordinate_metadata PRIMARY KEY (auth_name, code) +) WITHOUT ROWID; + +CREATE TRIGGER coordinate_metadata_insert_trigger +BEFORE INSERT ON coordinate_metadata +FOR EACH ROW BEGIN + SELECT RAISE(ABORT, 'insert on coordinate_metadata violates constraint: (crs_auth_name, crs_code) must already exist in crs_view') + WHERE NOT EXISTS ( + SELECT 1 FROM crs_view WHERE + NEW.crs_auth_name IS NOT NULL AND + crs_view.auth_name = NEW.crs_auth_name AND + crs_view.code = NEW.crs_code + UNION ALL SELECT 1 WHERE NEW.crs_auth_name IS NULL); + SELECT RAISE(ABORT, 'insert on coordinate_metadata violates constraint: (crs_auth_name, crs_code) and crs_text_definition are mutually exclusive') + WHERE NEW.crs_auth_name IS NOT NULL AND NEW.crs_text_definition IS NOT NULL; + SELECT RAISE(ABORT, 'insert on coordinate_metadata violates constraint: one of (crs_auth_name, crs_code) or crs_text_definition must be set') + WHERE NEW.crs_auth_name IS NULL AND NEW.crs_text_definition IS NULL; +END; + CREATE TABLE coordinate_operation_method( auth_name TEXT NOT NULL CHECK (length(auth_name) >= 1), code INTEGER_OR_TEXT NOT NULL CHECK (length(code) >= 1), diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 4e949de911..1ca6501fe7 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -118,6 +118,14 @@ using CompoundCRSPtr = std::shared_ptr; using CompoundCRSNNPtr = util::nn; } // namespace crs +namespace coordinates { +class CoordinateMetadata; +/** Shared pointer of CoordinateMetadata */ +using CoordinateMetadataPtr = std::shared_ptr; +/** Non-null shared pointer of CoordinateMetadata */ +using CoordinateMetadataNNPtr = util::nn; +} // namespace coordinates + namespace operation { class Conversion; using ConversionPtr = std::shared_ptr; @@ -1038,6 +1046,9 @@ class PROJ_GCC_DLL AuthorityFactory { PROJ_DLL crs::CRSNNPtr createCoordinateReferenceSystem(const std::string &code) const; + PROJ_DLL coordinates::CoordinateMetadataNNPtr + createCoordinateMetadata(const std::string &code) const; + PROJ_DLL operation::CoordinateOperationNNPtr createCoordinateOperation(const std::string &code, bool usePROJAlternativeGridNames) const; diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index f667fbf5c3..2a08322f9d 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -348,6 +348,7 @@ osgeo::proj::io::AuthorityFactory::~AuthorityFactory() osgeo::proj::io::AuthorityFactory::CelestialBodyInfo::CelestialBodyInfo() osgeo::proj::io::AuthorityFactory::createCompoundCRS(std::string const&) const osgeo::proj::io::AuthorityFactory::createConversion(std::string const&) const +osgeo::proj::io::AuthorityFactory::createCoordinateMetadata(std::string const&) const osgeo::proj::io::AuthorityFactory::createCoordinateOperation(std::string const&, bool) const osgeo::proj::io::AuthorityFactory::createCoordinateReferenceSystem(std::string const&) const osgeo::proj::io::AuthorityFactory::createCoordinateSystem(std::string const&) const diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index fae6cf28a9..7b722aa20a 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -32,6 +32,7 @@ #include "proj/common.hpp" #include "proj/coordinateoperation.hpp" +#include "proj/coordinates.hpp" #include "proj/coordinatesystem.hpp" #include "proj/crs.hpp" #include "proj/datum.hpp" @@ -118,7 +119,7 @@ namespace io { constexpr int DATABASE_LAYOUT_VERSION_MAJOR = 1; // If the code depends on the new additions, then DATABASE_LAYOUT_VERSION_MINOR // must be incremented. -constexpr int DATABASE_LAYOUT_VERSION_MINOR = 2; +constexpr int DATABASE_LAYOUT_VERSION_MINOR = 3; constexpr size_t N_MAX_PARAMS = 7; @@ -5666,6 +5667,61 @@ AuthorityFactory::createCoordinateReferenceSystem(const std::string &code, // --------------------------------------------------------------------------- +/** \brief Returns a coordinates::CoordinateMetadata from the specified code. + * + * @param code Object code allocated by authority. + * @return object. + * @throw NoSuchAuthorityCodeException + * @throw FactoryException + * @since 9.4 + */ + +coordinates::CoordinateMetadataNNPtr +AuthorityFactory::createCoordinateMetadata(const std::string &code) const { + auto res = d->runWithCodeParam( + "SELECT crs_auth_name, crs_code, crs_text_definition, coordinate_epoch " + "FROM coordinate_metadata WHERE auth_name = ? AND code = ?", + code); + if (res.empty()) { + throw NoSuchAuthorityCodeException("coordinate_metadata not found", + d->authority(), code); + } + try { + const auto &row = res.front(); + const auto &crs_auth_name = row[0]; + const auto &crs_code = row[1]; + const auto &crs_text_definition = row[2]; + const auto &coordinate_epoch = row[3]; + + auto l_context = d->context(); + DatabaseContext::Private::RecursionDetector detector(l_context); + auto crs = + !crs_auth_name.empty() + ? d->createFactory(crs_auth_name) + ->createCoordinateReferenceSystem(crs_code) + .as_nullable() + : util::nn_dynamic_pointer_cast( + createFromUserInput(crs_text_definition, l_context)); + if (!crs) { + throw FactoryException( + std::string("cannot build CoordinateMetadata ") + + d->authority() + ":" + code + ": cannot build CRS"); + } + if (coordinate_epoch.empty()) { + return coordinates::CoordinateMetadata::create(NN_NO_CHECK(crs)); + } else { + return coordinates::CoordinateMetadata::create( + NN_NO_CHECK(crs), c_locale_stod(coordinate_epoch), + l_context.as_nullable()); + } + } catch (const std::exception &ex) { + throw buildFactoryException("CoordinateMetadata", d->authority(), code, + ex); + } +} + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress static util::PropertyMap createMapNameEPSGCode(const std::string &name, diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index ff56c23196..a22c9196e7 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -1593,7 +1593,7 @@ CREATE TABLE unit_of_measure( Testing projinfo --dump-db-structure --output-id HOBU:XXXX EPSG:4326 | tail -n 4 INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MAJOR',1); -INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',2); +INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',3); INSERT INTO geodetic_crs VALUES('HOBU','XXXX','WGS 84','','geographic 2D','EPSG','6422','EPSG','6326',NULL,0); INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_CRS_XXXX','geodetic_crs','HOBU','XXXX','EPSG','1262','EPSG','1183'); diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index bfc183f3af..dbcdb93e1c 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -32,6 +32,7 @@ #include "proj/common.hpp" #include "proj/coordinateoperation.hpp" +#include "proj/coordinates.hpp" #include "proj/coordinatesystem.hpp" #include "proj/crs.hpp" #include "proj/datum.hpp" @@ -3090,6 +3091,79 @@ TEST_F(FactoryWithTmpDatabase, custom_projected_crs) { // --------------------------------------------------------------------------- +TEST_F(FactoryWithTmpDatabase, CoordinateMetadata) { + createStructure(); + populateWithFakeEPSG(); + + ASSERT_TRUE(execute("INSERT INTO coordinate_metadata " + "VALUES('TEST_NS','TEST','my desc','EPSG',4326," + "NULL,2020.1,0);")) + << last_error(); + + const std::string wkt = + "GEOGCRS[\"WGS 84\",\n" + " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n" + " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G730)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G873)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G2139)\"],\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ENSEMBLEACCURACY[2.0]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,2],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " USAGE[\n" + " SCOPE[\"Horizontal component of 3D system.\"],\n" + " AREA[\"World.\"],\n" + " BBOX[-90,-180,90,180]],\n" + " ID[\"EPSG\",4326]]"; + ASSERT_TRUE(execute("INSERT INTO coordinate_metadata " + "VALUES('TEST_NS','TEST2','my desc',NULL,NULL," + "'" + + wkt + "',2021.1,0);")) + << last_error(); + + ASSERT_TRUE(execute("INSERT INTO coordinate_metadata " + "VALUES('TEST_NS','TEST_NO_EPOCH','my desc'," + "'EPSG',4326,NULL,NULL,0);")) + << last_error(); + + auto dbContext = DatabaseContext::create(m_ctxt); + auto factoryEPSG = AuthorityFactory::create(dbContext, "EPSG"); + auto crs_4326 = factoryEPSG->createCoordinateReferenceSystem("4326"); + auto factory = AuthorityFactory::create(dbContext, "TEST_NS"); + { + auto cm = factory->createCoordinateMetadata("TEST"); + EXPECT_TRUE(cm->crs()->isEquivalentTo(crs_4326.get())); + EXPECT_TRUE(cm->coordinateEpoch().has_value()); + EXPECT_NEAR(cm->coordinateEpochAsDecimalYear(), 2020.1, 1e-10); + } + { + auto cm = factory->createCoordinateMetadata("TEST2"); + EXPECT_TRUE(cm->crs()->isEquivalentTo( + crs_4326.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_TRUE(cm->coordinateEpoch().has_value()); + EXPECT_NEAR(cm->coordinateEpochAsDecimalYear(), 2021.1, 1e-10); + } + { + auto cm = factory->createCoordinateMetadata("TEST_NO_EPOCH"); + EXPECT_TRUE(cm->crs()->isEquivalentTo(crs_4326.get())); + EXPECT_FALSE(cm->coordinateEpoch().has_value()); + } +} + +// --------------------------------------------------------------------------- + TEST(factory, attachExtraDatabases_none) { auto ctxt = DatabaseContext::create(std::string(), {}); auto factory = AuthorityFactory::create(ctxt, "EPSG"); From ded4eccffe72587a9b143bad7fb36fff0816bbde Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 12:36:37 +0200 Subject: [PATCH 034/199] WKT/PROJJSON importer: allow to build CoordinateMetadata with CRS like NAD83(CSRS)v7 --- src/iso19111/io.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 8b27310f24..0e9144acd5 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -5407,13 +5407,14 @@ WKTParser::Private::buildCoordinateMetadata(const WKTNodeNNPtr &node) { if (epochChildren.empty()) { ThrowMissing(WKTConstants::EPOCH); } + double coordinateEpoch; try { - const double coordinateEpoch = asDouble(epochChildren[0]); - return CoordinateMetadata::create(NN_NO_CHECK(crs), - coordinateEpoch); + coordinateEpoch = asDouble(epochChildren[0]); } catch (const std::exception &) { throw ParsingException("Invalid EPOCH node"); } + return CoordinateMetadata::create(NN_NO_CHECK(crs), coordinateEpoch, + dbContext_); } return CoordinateMetadata::create(NN_NO_CHECK(crs)); @@ -6715,8 +6716,8 @@ CoordinateMetadataNNPtr JSONParser::buildCoordinateMetadata(const json &j) { if (j.contains("coordinateEpoch")) { auto jCoordinateEpoch = j["coordinateEpoch"]; if (jCoordinateEpoch.is_number()) { - return CoordinateMetadata::create(crs, - jCoordinateEpoch.get()); + return CoordinateMetadata::create( + crs, jCoordinateEpoch.get(), dbContext_); } throw ParsingException( "Unexpected type for value of \"coordinateEpoch\""); From f4716110cf9fde1c12cf71ac00930cd7f3ffe19e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 12:44:53 +0200 Subject: [PATCH 035/199] createFromUserInput(): make it recognize urn:ogc:def:coordinateMetadata:AUTH_NAME::CODE syntax --- docs/source/apps/projinfo.rst | 2 ++ src/iso19111/io.cpp | 10 ++++++++++ test/unit/test_factory.cpp | 10 ++++++++++ 3 files changed, 22 insertions(+) diff --git a/docs/source/apps/projinfo.rst b/docs/source/apps/projinfo.rst index 76ee6803aa..eb64774da7 100644 --- a/docs/source/apps/projinfo.rst +++ b/docs/source/apps/projinfo.rst @@ -55,6 +55,8 @@ Synopsis e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)": "urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031" (*added in 6.2*) + - Extension of OGC URN for CoordinateMetadata. + e.g. "urn:ogc:def:CoordinateMetadata:NRCAN::NAD83_CSRS_1997_MTM11_HT2_1997" - a OGC URN combining references for concatenated operations (e.g. "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618") - a PROJJSON string. The jsonschema is at https://proj.org/schemas/v0.4/projjson.schema.json (*added in 6.2*) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 0e9144acd5..be2d10f036 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -7300,6 +7300,10 @@ static BaseObjectNNPtr createFromURNPart(const DatabaseContextPtr &dbContext, if (type == "meridian") { return factory->createPrimeMeridian(code); } + // Extension of OGC URN syntax to CoordinateMetadata + if (type == "coordinateMetadata") { + return factory->createCoordinateMetadata(code); + } throw ParsingException(concat("unhandled object type: ", type)); } catch (...) { if (version.empty()) { @@ -7931,6 +7935,9 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, * e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)" * "urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031" * + *
  • Extension of OGC URN for CoordinateMetadata. + * e.g. + * "urn:ogc:def:coordinateMetadata:NRCAN::NAD83_CSRS_1997_MTM11_HT2_1997"
  • *
  • OGC URN combining references for concatenated operations * e.g. * "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618"
  • @@ -7990,6 +7997,9 @@ BaseObjectNNPtr createFromUserInput(const std::string &text, * e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)" * "urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031" * + *
  • Extension of OGC URN for CoordinateMetadata. + * e.g. + * "urn:ogc:def:coordinateMetadata:NRCAN::NAD83_CSRS_1997_MTM11_HT2_1997"
  • *
  • OGC URN combining references for concatenated operations * e.g. * "urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618"
  • diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index dbcdb93e1c..f2a4d96371 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -51,6 +51,7 @@ #endif using namespace osgeo::proj::common; +using namespace osgeo::proj::coordinates; using namespace osgeo::proj::crs; using namespace osgeo::proj::cs; using namespace osgeo::proj::datum; @@ -3160,6 +3161,15 @@ TEST_F(FactoryWithTmpDatabase, CoordinateMetadata) { EXPECT_TRUE(cm->crs()->isEquivalentTo(crs_4326.get())); EXPECT_FALSE(cm->coordinateEpoch().has_value()); } + { + auto obj = createFromUserInput( + "urn:ogc:def:coordinateMetadata:TEST_NS::TEST", dbContext, true); + auto cm = dynamic_cast(obj.get()); + ASSERT_TRUE(cm != nullptr); + EXPECT_TRUE(cm->crs()->isEquivalentTo(crs_4326.get())); + EXPECT_TRUE(cm->coordinateEpoch().has_value()); + EXPECT_NEAR(cm->coordinateEpochAsDecimalYear(), 2020.1, 1e-10); + } } // --------------------------------------------------------------------------- From cd0805e3f4561227a96a7e35e4a96805b236bb3f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 16:05:11 +0200 Subject: [PATCH 036/199] createOperations(): take into account GEOIDMODEL[] referenced by ID --- .../operation/coordinateoperationfactory.cpp | 13 +++- test/unit/test_operationfactory.cpp | 71 +++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 4be2542e06..1f3466d627 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -4045,8 +4045,19 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid( const auto &models = vertDst->geoidModel(); for (const auto &model : models) { const auto &modelName = model->nameStr(); + const auto &modelIds = model->identifiers(); const auto transformations = - starts_with(modelName, "PROJ ") + !modelIds.empty() + ? std::vector< + CoordinateOperationNNPtr>{io::AuthorityFactory::create( + authFactory + ->databaseContext(), + *(modelIds[0] + ->codeSpace())) + ->createCoordinateOperation( + modelIds[0]->code(), + true)} + : starts_with(modelName, "PROJ ") ? std::vector< CoordinateOperationNNPtr>{getProjGeoidTransformation( model, modelName.substr(strlen("PROJ ")))} diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 9b6b0e293b..c175f07ccb 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -7218,6 +7218,77 @@ TEST(operation, // --------------------------------------------------------------------------- +TEST(operation, compoundCRS_of_vertCRS_with_geoid_model_by_id_to_geogCRS) { + auto authFactory = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto wkt = + "COMPOUNDCRS[\"NAD83(CSRS) / MTM zone 7 + CGVD28 height\",\n" + " PROJCRS[\"NAD83(CSRS) / MTM zone 7\",\n" + " BASEGEOGCRS[\"NAD83(CSRS)\",\n" + " DATUM[\"North American Datum of 1983 (CSRS)\",\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]]],\n" + " CONVERSION[\"MTM zone 7\",\n" + " METHOD[\"Transverse Mercator\",\n" + " ID[\"EPSG\",9807]],\n" + " PARAMETER[\"Latitude of natural origin\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8801]],\n" + " PARAMETER[\"Longitude of natural origin\",-70.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8802]],\n" + " PARAMETER[\"Scale factor at natural origin\",0.9999,\n" + " SCALEUNIT[\"unity\",1],\n" + " ID[\"EPSG\",8805]],\n" + " PARAMETER[\"False easting\",304800,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",0,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"easting (E(X))\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " AXIS[\"northing (N(Y))\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " VERTCRS[\"CGVD28 height\",\n" + " VDATUM[\"Canadian Geodetic Vertical Datum of 1928\"],\n" + " CS[vertical,1],\n" + " AXIS[\"gravity-related height (H)\",up,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " GEOIDMODEL[\"HT2_2002v70\",\n" + " ID[\"EPSG\",9985]],\n" + " ID[\"EPSG\",5713]]]"; + auto srcObj = + createFromUserInput(wkt, authFactory->databaseContext(), false); + auto src = nn_dynamic_pointer_cast(srcObj); + ASSERT_TRUE(src != nullptr); + auto dst = + authFactory->createCoordinateReferenceSystem("4955")->promoteTo3D( + std::string(), authFactory->databaseContext()); // NAD83(CSRS) 3d + + auto list = CoordinateOperationFactory::create()->createOperations( + NN_NO_CHECK(src), dst, ctxt); + ASSERT_TRUE(!list.empty()); + EXPECT_EQ(list[0]->nameStr(), + "Inverse of MTM zone 7 + " + "Ballpark geographic offset from NAD83(CSRS) to NAD83(CSRS)v4 + " + "Inverse of NAD83(CSRS)v4 to CGVD28 height (1) + " + "Ballpark geographic offset from NAD83(CSRS)v4 to NAD83(CSRS)"); +} + +// --------------------------------------------------------------------------- + TEST(operation, compoundCRS_of_bound_horizCRS_and_bound_vertCRS_to_geogCRS) { auto authFactory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); From 9ef831843cdf0e5f24e3fe548af2dbbd76040f9a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 18:08:28 +0200 Subject: [PATCH 037/199] Database: add a NRCAN authority with CoordinateMetadata records --- data/sql/nrcan.sql | 105 +++++ data/sql_filelist.cmake | 1 + scripts/build_nrcan.py | 876 +++++++++++++++++++++++++++++++++++++++ test/unit/test_c_api.cpp | 8 +- 4 files changed, 987 insertions(+), 3 deletions(-) create mode 100644 data/sql/nrcan.sql create mode 100755 scripts/build_nrcan.py diff --git a/data/sql/nrcan.sql b/data/sql/nrcan.sql new file mode 100644 index 0000000000..a500f2e4fb --- /dev/null +++ b/data/sql/nrcan.sql @@ -0,0 +1,105 @@ +--- This file has been generated by scripts/build_nrcan.py. DO NOT EDIT ! + +INSERT INTO "grid_transformation" VALUES('NRCAN','HT2_1997_NAD83CSRSV7','NAD83(CSRS)v7 to CGVD28 height',NULL,'EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','8254','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_1997.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can CGG2000',0); +INSERT INTO "usage" VALUES('NRCAN','USAGE_HT2_1997_NAD83CSRSV7','grid_transformation','NRCAN','HT2_1997_NAD83CSRSV7','EPSG','1289','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('NRCAN','HT2_2002_NAD83CSRSV7','NAD83(CSRS)v7 to CGVD28 height',NULL,'EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','8254','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_2002v70.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can CGG2000 2002',0); +INSERT INTO "usage" VALUES('NRCAN','USAGE_HT2_2002_NAD83CSRSV7','grid_transformation','NRCAN','HT2_2002_NAD83CSRSV7','EPSG','1289','EPSG','1133'); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM1_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 1", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 1", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -53, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 1 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland - onshore east of 54\u00b030''W.", "bbox": {"south_latitude": 46.56, "west_longitude": -54.5, "north_latitude": 49.89, "east_longitude": -52.54}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM2_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 2", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 2", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -56, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 2 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland and Labrador between 57\u00b030''W and 54\u00b030''W.", "bbox": {"south_latitude": 46.81, "west_longitude": -57.5, "north_latitude": 54.71, "east_longitude": -54.49}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM3_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 3", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 3", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -58.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 3 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland west of 57\u00b030''W.", "bbox": {"south_latitude": 47.5, "west_longitude": -59.48, "north_latitude": 50.54, "east_longitude": -57.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM4_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 4", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 4", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -61.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 4 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador between 63\u00b0W and 60\u00b0W.", "bbox": {"south_latitude": 52, "west_longitude": -63, "north_latitude": 58.92, "east_longitude": -60}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM5_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 5", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 5", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -64.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 5 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - 66\u00b0W to 63\u00b0W.", "bbox": {"south_latitude": 51.58, "west_longitude": -66, "north_latitude": 60.52, "east_longitude": -63}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM6_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 6", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 6", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -67.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 6 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - west of 66\u00b0W.", "bbox": {"south_latitude": 52.05, "west_longitude": -67.81, "north_latitude": 55.34, "east_longitude": -66}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM7_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 7", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -70.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 7 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Quebec - between 72\u00b0W and 69\u00b0W.", "bbox": {"south_latitude": 45.01, "west_longitude": -72, "north_latitude": 61.8, "east_longitude": -69}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM8_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 8", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -73.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 8 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - east of 75\u00b0W.", "bbox": {"south_latitude": 44.98, "west_longitude": -75, "north_latitude": 45.65, "east_longitude": -74.35}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM9_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 9", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -76.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 9 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 78\u00b0W and 75\u00b0W.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 46.25, "east_longitude": -75}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM10_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 10", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -79.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 10 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 81\u00b0W and 78\u00b0W: south of 46\u00b0N in area to west of 80\u00b015''W, south of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W, entire province between 79\u00b030''W and 78\u00b0W.", "bbox": {"south_latitude": 42.26, "west_longitude": -81, "north_latitude": 47.33, "east_longitude": -77.99}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM11_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 11", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -82.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 11 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - south of 46\u00b0N and west of 81\u00b0W.", "bbox": {"south_latitude": 41.67, "west_longitude": -83.6, "north_latitude": 46, "east_longitude": -81}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM12_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 12", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 12 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 82\u00b030''W and 79\u00b030''W: north of 46\u00b0N in area between 82\u00b030''W and 80\u00b015''W, north of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W.", "bbox": {"south_latitude": 46, "west_longitude": -82.5, "north_latitude": 55.21, "east_longitude": -79.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM13_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 13", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -84, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 13 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 85\u00b030''W and 82\u00b030''W and north of 46\u00b0N.", "bbox": {"south_latitude": 46, "west_longitude": -85.5, "north_latitude": 55.59, "east_longitude": -82.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM14_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 14", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 14 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 88\u00b030''W and 85\u00b030''W.", "bbox": {"south_latitude": 47.17, "west_longitude": -88.5, "north_latitude": 56.7, "east_longitude": -85.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM15_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 15", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -90, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 15 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 91\u00b030''W and 88\u00b030''W.", "bbox": {"south_latitude": 47.97, "west_longitude": -91.5, "north_latitude": 56.9, "east_longitude": -88.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM16_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 16", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 16 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 94\u00b030''W and 91\u00b030''W.", "bbox": {"south_latitude": 48.06, "west_longitude": -94.5, "north_latitude": 55.2, "east_longitude": -91.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM17_HT2_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 17", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -96, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_1997", "id": {"authority": "NRCAN", "code": "HT2_1997_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 17 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - west of 94\u00b030''W.", "bbox": {"south_latitude": 48.69, "west_longitude": -95.16, "north_latitude": 53.24, "east_longitude": -94.5}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM1_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 1", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 1", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -53, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 1 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland - onshore east of 54\u00b030''W.", "bbox": {"south_latitude": 46.56, "west_longitude": -54.5, "north_latitude": 49.89, "east_longitude": -52.54}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM2_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 2", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 2", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -56, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 2 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland and Labrador between 57\u00b030''W and 54\u00b030''W.", "bbox": {"south_latitude": 46.81, "west_longitude": -57.5, "north_latitude": 54.71, "east_longitude": -54.49}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM3_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 3", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 3", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -58.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 3 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland west of 57\u00b030''W.", "bbox": {"south_latitude": 47.5, "west_longitude": -59.48, "north_latitude": 50.54, "east_longitude": -57.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM4_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 4", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 4", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -61.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 4 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador between 63\u00b0W and 60\u00b0W.", "bbox": {"south_latitude": 52, "west_longitude": -63, "north_latitude": 58.92, "east_longitude": -60}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM5_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 5", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 5", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -64.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 5 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - 66\u00b0W to 63\u00b0W.", "bbox": {"south_latitude": 51.58, "west_longitude": -66, "north_latitude": 60.52, "east_longitude": -63}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM6_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 6", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 6", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -67.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 6 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - west of 66\u00b0W.", "bbox": {"south_latitude": 52.05, "west_longitude": -67.81, "north_latitude": 55.34, "east_longitude": -66}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM7_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 7", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -70.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 7 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Quebec - between 72\u00b0W and 69\u00b0W.", "bbox": {"south_latitude": 45.01, "west_longitude": -72, "north_latitude": 61.8, "east_longitude": -69}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM8_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 8", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -73.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 8 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - east of 75\u00b0W.", "bbox": {"south_latitude": 44.98, "west_longitude": -75, "north_latitude": 45.65, "east_longitude": -74.35}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM9_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 9", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -76.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 9 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 78\u00b0W and 75\u00b0W.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 46.25, "east_longitude": -75}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM10_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 10", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -79.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 10 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 81\u00b0W and 78\u00b0W: south of 46\u00b0N in area to west of 80\u00b015''W, south of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W, entire province between 79\u00b030''W and 78\u00b0W.", "bbox": {"south_latitude": 42.26, "west_longitude": -81, "north_latitude": 47.33, "east_longitude": -77.99}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM11_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 11", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -82.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 11 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - south of 46\u00b0N and west of 81\u00b0W.", "bbox": {"south_latitude": 41.67, "west_longitude": -83.6, "north_latitude": 46, "east_longitude": -81}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM12_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 12", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 12 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 82\u00b030''W and 79\u00b030''W: north of 46\u00b0N in area between 82\u00b030''W and 80\u00b015''W, north of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W.", "bbox": {"south_latitude": 46, "west_longitude": -82.5, "north_latitude": 55.21, "east_longitude": -79.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM13_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 13", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -84, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 13 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 85\u00b030''W and 82\u00b030''W and north of 46\u00b0N.", "bbox": {"south_latitude": 46, "west_longitude": -85.5, "north_latitude": 55.59, "east_longitude": -82.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM14_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 14", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 14 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 88\u00b030''W and 85\u00b030''W.", "bbox": {"south_latitude": 47.17, "west_longitude": -88.5, "north_latitude": 56.7, "east_longitude": -85.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM15_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 15", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -90, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 15 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 91\u00b030''W and 88\u00b030''W.", "bbox": {"south_latitude": 47.97, "west_longitude": -91.5, "north_latitude": 56.9, "east_longitude": -88.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM16_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 16", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 16 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 94\u00b030''W and 91\u00b030''W.", "bbox": {"south_latitude": 48.06, "west_longitude": -94.5, "north_latitude": 55.2, "east_longitude": -91.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM17_HT2_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 17", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -96, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2002", "id": {"authority": "NRCAN", "code": "HT2_2002_NAD83CSRSV7"}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 17 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - west of 94\u00b030''W.", "bbox": {"south_latitude": 48.69, "west_longitude": -95.16, "north_latitude": 53.24, "east_longitude": -94.5}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM1_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 1", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 1", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -53, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 1 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland - onshore east of 54\u00b030''W.", "bbox": {"south_latitude": 46.56, "west_longitude": -54.5, "north_latitude": 49.89, "east_longitude": -52.54}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM2_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 2", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 2", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -56, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 2 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland and Labrador between 57\u00b030''W and 54\u00b030''W.", "bbox": {"south_latitude": 46.81, "west_longitude": -57.5, "north_latitude": 54.71, "east_longitude": -54.49}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM3_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 3", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 3", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -58.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 3 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Newfoundland west of 57\u00b030''W.", "bbox": {"south_latitude": 47.5, "west_longitude": -59.48, "north_latitude": 50.54, "east_longitude": -57.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM4_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 4", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 4", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -61.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 4 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador between 63\u00b0W and 60\u00b0W.", "bbox": {"south_latitude": 52, "west_longitude": -63, "north_latitude": 58.92, "east_longitude": -60}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM5_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 5", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 5", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -64.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 5 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - 66\u00b0W to 63\u00b0W.", "bbox": {"south_latitude": 51.58, "west_longitude": -66, "north_latitude": 60.52, "east_longitude": -63}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM6_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 6", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 6", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -67.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 6 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Labrador - west of 66\u00b0W.", "bbox": {"south_latitude": 52.05, "west_longitude": -67.81, "north_latitude": 55.34, "east_longitude": -66}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM7_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 7", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -70.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 7 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Quebec - between 72\u00b0W and 69\u00b0W.", "bbox": {"south_latitude": 45.01, "west_longitude": -72, "north_latitude": 61.8, "east_longitude": -69}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM8_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 8", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -73.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 8 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - east of 75\u00b0W.", "bbox": {"south_latitude": 44.98, "west_longitude": -75, "north_latitude": 45.65, "east_longitude": -74.35}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM9_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 9", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -76.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 9 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 78\u00b0W and 75\u00b0W.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 46.25, "east_longitude": -75}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM10_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 10", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -79.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 10 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 81\u00b0W and 78\u00b0W: south of 46\u00b0N in area to west of 80\u00b015''W, south of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W, entire province between 79\u00b030''W and 78\u00b0W.", "bbox": {"south_latitude": 42.26, "west_longitude": -81, "north_latitude": 47.33, "east_longitude": -77.99}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM11_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 11", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -82.5, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 11 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - south of 46\u00b0N and west of 81\u00b0W.", "bbox": {"south_latitude": 41.67, "west_longitude": -83.6, "north_latitude": 46, "east_longitude": -81}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM12_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 12", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 12 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 82\u00b030''W and 79\u00b030''W: north of 46\u00b0N in area between 82\u00b030''W and 80\u00b015''W, north of 47\u00b0N in area between 80\u00b015''W and 79\u00b030''W.", "bbox": {"south_latitude": 46, "west_longitude": -82.5, "north_latitude": 55.21, "east_longitude": -79.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM13_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 13", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -84, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 13 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 85\u00b030''W and 82\u00b030''W and north of 46\u00b0N.", "bbox": {"south_latitude": 46, "west_longitude": -85.5, "north_latitude": 55.59, "east_longitude": -82.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM14_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 14", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 14 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 88\u00b030''W and 85\u00b030''W.", "bbox": {"south_latitude": 47.17, "west_longitude": -88.5, "north_latitude": 56.7, "east_longitude": -85.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM15_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 15", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -90, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 15 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 91\u00b030''W and 88\u00b030''W.", "bbox": {"south_latitude": 47.97, "west_longitude": -91.5, "north_latitude": 56.9, "east_longitude": -88.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM16_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 16", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 16 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - between 94\u00b030''W and 91\u00b030''W.", "bbox": {"south_latitude": 48.06, "west_longitude": -94.5, "north_latitude": 55.2, "east_longitude": -91.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM17_HT2_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / MTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "MTM zone 17", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -96, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9999, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 304800, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD28 height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 1928"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "geoid_model": {"name": "HT2_2010", "id": {"authority": "EPSG", "code": 9987}}, "id": {"authority": "EPSG", "code": 5713}}], "name": "NAD83(CSRS)v7 / MTM zone 17 + CGVD28 height", "scope": "Engineering survey, topographic mapping.", "area": "Canada - Ontario - west of 94\u00b030''W.", "bbox": {"south_latitude": 48.69, "west_longitude": -95.16, "north_latitude": 53.24, "east_longitude": -94.5}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM7_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 7N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -141, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 7 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada west of 138\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Yukon.", "bbox": {"south_latitude": 52.05, "west_longitude": -141.01, "north_latitude": 72.53, "east_longitude": -138}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM8_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 8N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -135, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 8 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM9_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 9N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -129, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 9 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM10_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 10N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -123, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 10 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 126\u00b0W and 120\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.13, "west_longitude": -126, "north_latitude": 81.8, "east_longitude": -120}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM11_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 11N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -117, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 11 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 120\u00b0W and 114\u00b0W onshore and offshore - Alberta, British Columbia, Northwest Territories, Nunavut.", "bbox": {"south_latitude": 48.99, "west_longitude": -120, "north_latitude": 83.5, "east_longitude": -114}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM12_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 12N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -111, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 12 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 114\u00b0W and 108\u00b0W onshore and offshore - Alberta, Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -114, "north_latitude": 84, "east_longitude": -108}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM13_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 13N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -105, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 13 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 108\u00b0W and 102\u00b0W onshore and offshore - Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -108, "north_latitude": 84, "east_longitude": -102}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM14_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 14N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -99, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 14 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 102\u00b0W and 96\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -102, "north_latitude": 84, "east_longitude": -96}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM15_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 15N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 15 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 96\u00b0W and 90\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 48.03, "west_longitude": -96, "north_latitude": 84, "east_longitude": -90}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM16_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 16N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 16 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 90\u00b0W and 84\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 46.11, "west_longitude": -90, "north_latitude": 84, "east_longitude": -84}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM17_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 17N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 17 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 84\u00b0W and 78\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 41.67, "west_longitude": -84, "north_latitude": 84, "east_longitude": -78}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM18_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 18", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 18N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -75, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 18 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 78\u00b0W and 72\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 84, "east_longitude": -72}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM19_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 19", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 19N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -69, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 19 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 72\u00b0W and 66\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Quebec.", "bbox": {"south_latitude": 40.8, "west_longitude": -72, "north_latitude": 84, "east_longitude": -66}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM20_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 20", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 20N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -63, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 20 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 66\u00b0W and 60\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Prince Edward Island, Quebec.", "bbox": {"south_latitude": 40.04, "west_longitude": -66, "north_latitude": 84, "east_longitude": -60}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM21_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 21", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 21N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -57, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 21 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 60\u00b0W and 54\u00b0W - Newfoundland and Labrador; Nunavut; Quebec.", "bbox": {"south_latitude": 38.56, "west_longitude": -60, "north_latitude": 84, "east_longitude": -54}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM22_CGVD2013_1997', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 22", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 22N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -51, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(1997) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20035}}], "name": "NAD83(CSRS)v7 / UTM zone 22 + CGVD2013a(1997) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 54\u00b0W and 48\u00b0W onshore and offshore - Newfoundland and Labrador.", "bbox": {"south_latitude": 39.5, "west_longitude": -54, "north_latitude": 57.65, "east_longitude": -47.99}}', 1997.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM7_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 7N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -141, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 7 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada west of 138\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Yukon.", "bbox": {"south_latitude": 52.05, "west_longitude": -141.01, "north_latitude": 72.53, "east_longitude": -138}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM8_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 8N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -135, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 8 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM9_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 9N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -129, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 9 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM10_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 10N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -123, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 10 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 126\u00b0W and 120\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.13, "west_longitude": -126, "north_latitude": 81.8, "east_longitude": -120}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM11_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 11N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -117, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 11 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 120\u00b0W and 114\u00b0W onshore and offshore - Alberta, British Columbia, Northwest Territories, Nunavut.", "bbox": {"south_latitude": 48.99, "west_longitude": -120, "north_latitude": 83.5, "east_longitude": -114}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM12_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 12N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -111, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 12 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 114\u00b0W and 108\u00b0W onshore and offshore - Alberta, Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -114, "north_latitude": 84, "east_longitude": -108}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM13_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 13N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -105, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 13 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 108\u00b0W and 102\u00b0W onshore and offshore - Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -108, "north_latitude": 84, "east_longitude": -102}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM14_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 14N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -99, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 14 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 102\u00b0W and 96\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -102, "north_latitude": 84, "east_longitude": -96}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM15_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 15N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 15 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 96\u00b0W and 90\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 48.03, "west_longitude": -96, "north_latitude": 84, "east_longitude": -90}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM16_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 16N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 16 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 90\u00b0W and 84\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 46.11, "west_longitude": -90, "north_latitude": 84, "east_longitude": -84}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM17_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 17N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 17 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 84\u00b0W and 78\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 41.67, "west_longitude": -84, "north_latitude": 84, "east_longitude": -78}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM18_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 18", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 18N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -75, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 18 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 78\u00b0W and 72\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 84, "east_longitude": -72}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM19_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 19", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 19N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -69, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 19 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 72\u00b0W and 66\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Quebec.", "bbox": {"south_latitude": 40.8, "west_longitude": -72, "north_latitude": 84, "east_longitude": -66}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM20_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 20", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 20N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -63, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 20 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 66\u00b0W and 60\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Prince Edward Island, Quebec.", "bbox": {"south_latitude": 40.04, "west_longitude": -66, "north_latitude": 84, "east_longitude": -60}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM21_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 21", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 21N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -57, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 21 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 60\u00b0W and 54\u00b0W - Newfoundland and Labrador; Nunavut; Quebec.", "bbox": {"south_latitude": 38.56, "west_longitude": -60, "north_latitude": 84, "east_longitude": -54}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM22_CGVD2013_2002', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 22", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 22N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -51, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2002) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 20034}}], "name": "NAD83(CSRS)v7 / UTM zone 22 + CGVD2013a(2002) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 54\u00b0W and 48\u00b0W onshore and offshore - Newfoundland and Labrador.", "bbox": {"south_latitude": 39.5, "west_longitude": -54, "north_latitude": 57.65, "east_longitude": -47.99}}', 2002.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM7_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 7", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 7N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -141, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 7 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada west of 138\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Yukon.", "bbox": {"south_latitude": 52.05, "west_longitude": -141.01, "north_latitude": 72.53, "east_longitude": -138}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM8_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 8", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 8N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -135, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 8 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM9_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 9", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 9N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -129, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 9 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 138\u00b0W and 132\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.06, "west_longitude": -138, "north_latitude": 79.42, "east_longitude": -132}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM10_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 10", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 10N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -123, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 10 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 126\u00b0W and 120\u00b0W, onshore and offshore south of 84\u00b0N - British Columbia, Northwest Territories, Yukon.", "bbox": {"south_latitude": 48.13, "west_longitude": -126, "north_latitude": 81.8, "east_longitude": -120}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM11_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 11", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 11N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -117, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 11 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 120\u00b0W and 114\u00b0W onshore and offshore - Alberta, British Columbia, Northwest Territories, Nunavut.", "bbox": {"south_latitude": 48.99, "west_longitude": -120, "north_latitude": 83.5, "east_longitude": -114}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM12_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 12", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 12N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -111, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 12 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 114\u00b0W and 108\u00b0W onshore and offshore - Alberta, Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -114, "north_latitude": 84, "east_longitude": -108}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM13_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 13", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 13N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -105, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 13 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 108\u00b0W and 102\u00b0W onshore and offshore - Northwest Territories, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -108, "north_latitude": 84, "east_longitude": -102}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM14_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 14", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 14N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -99, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 14 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 102\u00b0W and 96\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Saskatchewan.", "bbox": {"south_latitude": 48.99, "west_longitude": -102, "north_latitude": 84, "east_longitude": -96}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM15_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 15", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 15N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -93, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 15 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 96\u00b0W and 90\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 48.03, "west_longitude": -96, "north_latitude": 84, "east_longitude": -90}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM16_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 16", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 16N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -87, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 16 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 90\u00b0W and 84\u00b0W, onshore and offshore south of 84\u00b0N - Manitoba, Nunavut, Ontario.", "bbox": {"south_latitude": 46.11, "west_longitude": -90, "north_latitude": 84, "east_longitude": -84}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM17_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 17", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 17N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -81, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 17 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 84\u00b0W and 78\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 41.67, "west_longitude": -84, "north_latitude": 84, "east_longitude": -78}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM18_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 18", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 18N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -75, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 18 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 78\u00b0W and 72\u00b0W, onshore and offshore south of 84\u00b0N - Nunavut, Ontario and Quebec.", "bbox": {"south_latitude": 43.63, "west_longitude": -78, "north_latitude": 84, "east_longitude": -72}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM19_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 19", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 19N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -69, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 19 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 72\u00b0W and 66\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Quebec.", "bbox": {"south_latitude": 40.8, "west_longitude": -72, "north_latitude": 84, "east_longitude": -66}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM20_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 20", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 20N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -63, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 20 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 66\u00b0W and 60\u00b0W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Prince Edward Island, Quebec.", "bbox": {"south_latitude": 40.04, "west_longitude": -66, "north_latitude": 84, "east_longitude": -60}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM21_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 21", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 21N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -57, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 21 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 60\u00b0W and 54\u00b0W - Newfoundland and Labrador; Nunavut; Quebec.", "bbox": {"south_latitude": 38.56, "west_longitude": -60, "north_latitude": 84, "east_longitude": -54}}', 2010.0, 0); +INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM22_CGVD2013_2010', NULL, NULL, NULL, '{"type": "CompoundCRS", "components": [{"type": "ProjectedCRS", "name": "NAD83(CSRS)v7 / UTM zone 22", "base_crs": {"name": "NAD83(CSRS)v7", "datum": {"type": "GeodeticReferenceFrame", "name": "North American Datum of 1983 (CSRS) version 7", "ellipsoid": {"name": "GRS 1980", "semi_major_axis": 6378137, "inverse_flattening": 298.257222101}}, "coordinate_system": {"subtype": "ellipsoidal", "axis": [{"name": "Geodetic latitude", "abbreviation": "Lat", "direction": "north", "unit": "degree"}, {"name": "Geodetic longitude", "abbreviation": "Lon", "direction": "east", "unit": "degree"}]}}, "conversion": {"name": "UTM zone 22N", "method": {"name": "Transverse Mercator", "id": {"authority": "EPSG", "code": 9807}}, "parameters": [{"name": "Latitude of natural origin", "value": 0, "unit": "degree", "id": {"authority": "EPSG", "code": 8801}}, {"name": "Longitude of natural origin", "value": -51, "unit": "degree", "id": {"authority": "EPSG", "code": 8802}}, {"name": "Scale factor at natural origin", "value": 0.9996, "unit": "unity", "id": {"authority": "EPSG", "code": 8805}}, {"name": "False easting", "value": 500000, "unit": "metre", "id": {"authority": "EPSG", "code": 8806}}, {"name": "False northing", "value": 0, "unit": "metre", "id": {"authority": "EPSG", "code": 8807}}]}, "coordinate_system": {"subtype": "Cartesian", "axis": [{"name": "Easting", "abbreviation": "E(X)", "direction": "east", "unit": "metre"}, {"name": "Northing", "abbreviation": "N(Y)", "direction": "north", "unit": "metre"}]}}, {"type": "VerticalCRS", "name": "CGVD2013a(2010) height", "datum": {"type": "VerticalReferenceFrame", "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010"}, "coordinate_system": {"subtype": "vertical", "axis": [{"name": "Gravity-related height", "abbreviation": "H", "direction": "up", "unit": "metre"}]}, "id": {"authority": "EPSG", "code": 9245}}], "name": "NAD83(CSRS)v7 / UTM zone 22 + CGVD2013a(2010) height", "scope": "Engineering survey, topographic mapping.", "area": "Canada between 54\u00b0W and 48\u00b0W onshore and offshore - Newfoundland and Labrador.", "bbox": {"south_latitude": 39.5, "west_longitude": -54, "north_latitude": 57.65, "east_longitude": -47.99}}', 2010.0, 0); diff --git a/data/sql_filelist.cmake b/data/sql_filelist.cmake index 8a1c066d96..b88451ecdb 100644 --- a/data/sql_filelist.cmake +++ b/data/sql_filelist.cmake @@ -35,6 +35,7 @@ set(SQL_FILES "${SQL_DIR}/ignf.sql" "${SQL_DIR}/nkg.sql" "${SQL_DIR}/iau.sql" + "${SQL_DIR}/nrcan.sql" "${SQL_DIR}/grid_alternatives.sql" "${SQL_DIR}/grid_alternatives_generated_noaa.sql" "${SQL_DIR}/nadcon5_concatenated_operations.sql" diff --git a/scripts/build_nrcan.py b/scripts/build_nrcan.py new file mode 100755 index 0000000000..b813fb5814 --- /dev/null +++ b/scripts/build_nrcan.py @@ -0,0 +1,876 @@ +#!/usr/bin/env python +############################################################################### +# $Id$ +# +# Project: PROJ +# Purpose: Build NRCan specific definitions +# Author: Even Rouault +# +############################################################################### +# Copyright (c) 2023, Even Rouault +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +############################################################################### + +import json +import os + + +def MTM_NAD83CSRSv7(zone): + longitude = { + 1: -53, + 2: -56, + 3: -58.5, + 4: -61.5, + 5: -64.5, + 6: -67.5, + 7: -70.5, + 8: -73.5, + 9: -76.5, + 10: -79.5, + 11: -82.5, + 12: -81, + 13: -84, + 14: -87, + 15: -90, + 16: -93, + 17: -96 + } + return { + "type": "ProjectedCRS", + "name": "NAD83(CSRS)v7 / MTM zone " + str(zone), + "base_crs": { + "name": "NAD83(CSRS)v7", + "datum": { + "type": "GeodeticReferenceFrame", + "name": "North American Datum of 1983 (CSRS) version 7", + "ellipsoid": { + "name": "GRS 1980", + "semi_major_axis": 6378137, + "inverse_flattening": 298.257222101 + } + }, + "coordinate_system": { + "subtype": "ellipsoidal", + "axis": [ + { + "name": "Geodetic latitude", + "abbreviation": "Lat", + "direction": "north", + "unit": "degree" + }, + { + "name": "Geodetic longitude", + "abbreviation": "Lon", + "direction": "east", + "unit": "degree" + } + ] + } + }, + "conversion": { + "name": "MTM zone " + str(zone), + "method": { + "name": "Transverse Mercator", + "id": { + "authority": "EPSG", + "code": 9807 + } + }, + "parameters": [ + { + "name": "Latitude of natural origin", + "value": 0, + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8801 + } + }, + { + "name": "Longitude of natural origin", + "value": longitude[zone], + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8802 + } + }, + { + "name": "Scale factor at natural origin", + "value": 0.9999, + "unit": "unity", + "id": { + "authority": "EPSG", + "code": 8805 + } + }, + { + "name": "False easting", + "value": 304800, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8806 + } + }, + { + "name": "False northing", + "value": 0, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8807 + } + } + ] + }, + "coordinate_system": { + "subtype": "Cartesian", + "axis": [ + { + "name": "Easting", + "abbreviation": "E(X)", + "direction": "east", + "unit": "metre" + }, + { + "name": "Northing", + "abbreviation": "N(Y)", + "direction": "north", + "unit": "metre" + } + ] + } + } + + +def UTM_NAD83CSRSv7(zone): + return { + "type": "ProjectedCRS", + "name": "NAD83(CSRS)v7 / UTM zone " + str(zone), + "base_crs": { + "name": "NAD83(CSRS)v7", + "datum": { + "type": "GeodeticReferenceFrame", + "name": "North American Datum of 1983 (CSRS) version 7", + "ellipsoid": { + "name": "GRS 1980", + "semi_major_axis": 6378137, + "inverse_flattening": 298.257222101 + } + }, + "coordinate_system": { + "subtype": "ellipsoidal", + "axis": [ + { + "name": "Geodetic latitude", + "abbreviation": "Lat", + "direction": "north", + "unit": "degree" + }, + { + "name": "Geodetic longitude", + "abbreviation": "Lon", + "direction": "east", + "unit": "degree" + } + ] + } + }, + "conversion": { + "name": "UTM zone " + str(zone) + "N", + "method": { + "name": "Transverse Mercator", + "id": { + "authority": "EPSG", + "code": 9807 + } + }, + "parameters": [ + { + "name": "Latitude of natural origin", + "value": 0, + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8801 + } + }, + { + "name": "Longitude of natural origin", + "value": -183 + zone * 6, + "unit": "degree", + "id": { + "authority": "EPSG", + "code": 8802 + } + }, + { + "name": "Scale factor at natural origin", + "value": 0.9996, + "unit": "unity", + "id": { + "authority": "EPSG", + "code": 8805 + } + }, + { + "name": "False easting", + "value": 500000, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8806 + } + }, + { + "name": "False northing", + "value": 0, + "unit": "metre", + "id": { + "authority": "EPSG", + "code": 8807 + } + } + ] + + }, + "coordinate_system": { + "subtype": "Cartesian", + "axis": [ + { + "name": "Easting", + "abbreviation": "E(X)", + "direction": "east", + "unit": "metre" + }, + { + "name": "Northing", + "abbreviation": "N(Y)", + "direction": "north", + "unit": "metre" + } + ] + } + } + + +def vert_crs_CGVD28(geoid_model_name, geoid_model_authority, geoid_model_code): + return { + "type": "VerticalCRS", + "name": "CGVD28 height", + "datum": { + "type": "VerticalReferenceFrame", + "name": "Canadian Geodetic Vertical Datum of 1928" + }, + "coordinate_system": { + "subtype": "vertical", + "axis": [ + { + "name": "Gravity-related height", + "abbreviation": "H", + "direction": "up", + "unit": "metre" + } + ] + }, + "geoid_model": { + "name": geoid_model_name, + "id": { + "authority": geoid_model_authority, + "code": geoid_model_code + } + }, + "id": { + "authority": "EPSG", + "code": 5713 + } + } + + +def vert_crs_CGVD28_HT2_1997(): + return vert_crs_CGVD28("HT2_1997", "NRCAN", "HT2_1997_NAD83CSRSV7") + + +def vert_crs_CGVD28_HT2_2002(): + return vert_crs_CGVD28("HT2_2002", "NRCAN", "HT2_2002_NAD83CSRSV7") + + +def vert_crs_CGVD28_HT2_2010(): + return vert_crs_CGVD28("HT2_2010", "EPSG", 9987) + + +def vert_crs_CGVD2013a_1997(): + return { + "type": "VerticalCRS", + "name": "CGVD2013a(1997) height", + "datum": { + "type": "VerticalReferenceFrame", + "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997" + }, + "coordinate_system": { + "subtype": "vertical", + "axis": [ + { + "name": "Gravity-related height", + "abbreviation": "H", + "direction": "up", + "unit": "metre" + } + ] + }, + "id": { + "authority": "EPSG", + "code": 20035 + } + } + + +def vert_crs_CGVD2013a_2002(): + return { + "type": "VerticalCRS", + "name": "CGVD2013a(2002) height", + "datum": { + "type": "VerticalReferenceFrame", + "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002" + }, + "coordinate_system": { + "subtype": "vertical", + "axis": [ + { + "name": "Gravity-related height", + "abbreviation": "H", + "direction": "up", + "unit": "metre" + } + ] + }, + "id": { + "authority": "EPSG", + "code": 20034 + } + } + + +def vert_crs_CGVD2013a_2010(): + return { + "type": "VerticalCRS", + "name": "CGVD2013a(2010) height", + "datum": { + "type": "VerticalReferenceFrame", + "name": "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010" + }, + "coordinate_system": { + "subtype": "vertical", + "axis": [ + { + "name": "Gravity-related height", + "abbreviation": "H", + "direction": "up", + "unit": "metre" + } + ] + }, + "id": { + "authority": "EPSG", + "code": 9245 + } + } + + +usages_MTM = { + 1: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Newfoundland - onshore east of 54°30'W.", + "bbox": { + "south_latitude": 46.56, + "west_longitude": -54.5, + "north_latitude": 49.89, + "east_longitude": -52.54 + }, + }, + 2: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Newfoundland and Labrador between 57°30'W and 54°30'W.", + "bbox": { + "south_latitude": 46.81, + "west_longitude": -57.5, + "north_latitude": 54.71, + "east_longitude": -54.49 + }, + + }, + 3: + { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Newfoundland west of 57°30'W.", + "bbox": { + "south_latitude": 47.5, + "west_longitude": -59.48, + "north_latitude": 50.54, + "east_longitude": -57.5 + }, + }, + 4: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Labrador between 63°W and 60°W.", + "bbox": { + "south_latitude": 52, + "west_longitude": -63, + "north_latitude": 58.92, + "east_longitude": -60 + }, + }, + 5: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Labrador - 66°W to 63°W.", + "bbox": { + "south_latitude": 51.58, + "west_longitude": -66, + "north_latitude": 60.52, + "east_longitude": -63 + }, + }, + 6: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Labrador - west of 66°W.", + "bbox": { + "south_latitude": 52.05, + "west_longitude": -67.81, + "north_latitude": 55.34, + "east_longitude": -66 + }, + }, + 7: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Quebec - between 72°W and 69°W.", + "bbox": { + "south_latitude": 45.01, + "west_longitude": -72, + "north_latitude": 61.8, + "east_longitude": -69 + }, + + }, + 8: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - east of 75°W.", + "bbox": { + "south_latitude": 44.98, + "west_longitude": -75, + "north_latitude": 45.65, + "east_longitude": -74.35 + }, + }, + 9: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 78°W and 75°W.", + "bbox": { + "south_latitude": 43.63, + "west_longitude": -78, + "north_latitude": 46.25, + "east_longitude": -75 + }, + }, + 10: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 81°W and 78°W: south of 46°N in area to west of 80°15'W, south of 47°N in area between 80°15'W and 79°30'W, entire province between 79°30'W and 78°W.", + "bbox": { + "south_latitude": 42.26, + "west_longitude": -81, + "north_latitude": 47.33, + "east_longitude": -77.99 + }, + }, + 11: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - south of 46°N and west of 81°W.", + "bbox": { + "south_latitude": 41.67, + "west_longitude": -83.6, + "north_latitude": 46, + "east_longitude": -81 + }, + }, + 12: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 82°30'W and 79°30'W: north of 46°N in area between 82°30'W and 80°15'W, north of 47°N in area between 80°15'W and 79°30'W.", + "bbox": { + "south_latitude": 46, + "west_longitude": -82.5, + "north_latitude": 55.21, + "east_longitude": -79.5 + }, + }, + 13: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 85°30'W and 82°30'W and north of 46°N.", + "bbox": { + "south_latitude": 46, + "west_longitude": -85.5, + "north_latitude": 55.59, + "east_longitude": -82.5 + }, + }, + 14: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 88°30'W and 85°30'W.", + "bbox": { + "south_latitude": 47.17, + "west_longitude": -88.5, + "north_latitude": 56.7, + "east_longitude": -85.5 + }, + + }, + 15: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 91°30'W and 88°30'W.", + "bbox": { + "south_latitude": 47.97, + "west_longitude": -91.5, + "north_latitude": 56.9, + "east_longitude": -88.5 + }, + }, + 16: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - between 94°30'W and 91°30'W.", + "bbox": { + "south_latitude": 48.06, + "west_longitude": -94.5, + "north_latitude": 55.2, + "east_longitude": -91.5 + }, + }, + 17: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada - Ontario - west of 94°30'W.", + "bbox": { + "south_latitude": 48.69, + "west_longitude": -95.16, + "north_latitude": 53.24, + "east_longitude": -94.5 + }, + }, +} + +usages_UTM = { + 7: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada west of 138°W, onshore and offshore south of 84°N - British Columbia, Yukon.", + "bbox": { + "south_latitude": 52.05, + "west_longitude": -141.01, + "north_latitude": 72.53, + "east_longitude": -138 + }, + }, + 8: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 138°W and 132°W, onshore and offshore south of 84°N - British Columbia, Northwest Territories, Yukon.", + "bbox": { + "south_latitude": 48.06, + "west_longitude": -138, + "north_latitude": 79.42, + "east_longitude": -132 + }, + }, + 9: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 138°W and 132°W, onshore and offshore south of 84°N - British Columbia, Northwest Territories, Yukon.", + "bbox": { + "south_latitude": 48.06, + "west_longitude": -138, + "north_latitude": 79.42, + "east_longitude": -132 + }, + }, + 10: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 126°W and 120°W, onshore and offshore south of 84°N - British Columbia, Northwest Territories, Yukon.", + "bbox": { + "south_latitude": 48.13, + "west_longitude": -126, + "north_latitude": 81.8, + "east_longitude": -120 + }, + }, + 11: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 120°W and 114°W onshore and offshore - Alberta, British Columbia, Northwest Territories, Nunavut.", + "bbox": { + "south_latitude": 48.99, + "west_longitude": -120, + "north_latitude": 83.5, + "east_longitude": -114 + }, + }, + 12: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 114°W and 108°W onshore and offshore - Alberta, Northwest Territories, Nunavut, Saskatchewan.", + "bbox": { + "south_latitude": 48.99, + "west_longitude": -114, + "north_latitude": 84, + "east_longitude": -108 + }, + }, + 13: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 108°W and 102°W onshore and offshore - Northwest Territories, Nunavut, Saskatchewan.", + "bbox": { + "south_latitude": 48.99, + "west_longitude": -108, + "north_latitude": 84, + "east_longitude": -102 + }, + }, + 14: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 102°W and 96°W, onshore and offshore south of 84°N - Manitoba, Nunavut, Saskatchewan.", + "bbox": { + "south_latitude": 48.99, + "west_longitude": -102, + "north_latitude": 84, + "east_longitude": -96 + }, + }, + 15: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 96°W and 90°W, onshore and offshore south of 84°N - Manitoba, Nunavut, Ontario.", + "bbox": { + "south_latitude": 48.03, + "west_longitude": -96, + "north_latitude": 84, + "east_longitude": -90 + }, + }, + 16: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 90°W and 84°W, onshore and offshore south of 84°N - Manitoba, Nunavut, Ontario.", + "bbox": { + "south_latitude": 46.11, + "west_longitude": -90, + "north_latitude": 84, + "east_longitude": -84 + }, + }, + 17: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 84°W and 78°W, onshore and offshore south of 84°N - Nunavut, Ontario and Quebec.", + "bbox": { + "south_latitude": 41.67, + "west_longitude": -84, + "north_latitude": 84, + "east_longitude": -78 + }, + }, + 18: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 78°W and 72°W, onshore and offshore south of 84°N - Nunavut, Ontario and Quebec.", + "bbox": { + "south_latitude": 43.63, + "west_longitude": -78, + "north_latitude": 84, + "east_longitude": -72 + }, + }, + 19: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 72°W and 66°W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Quebec.", + "bbox": { + "south_latitude": 40.8, + "west_longitude": -72, + "north_latitude": 84, + "east_longitude": -66 + }, + }, + 20: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 66°W and 60°W onshore and offshore - New Brunswick, Labrador, Nova Scotia, Nunavut, Prince Edward Island, Quebec.", + "bbox": { + "south_latitude": 40.04, + "west_longitude": -66, + "north_latitude": 84, + "east_longitude": -60 + }, + }, + 21: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 60°W and 54°W - Newfoundland and Labrador; Nunavut; Quebec.", + "bbox": { + "south_latitude": 38.56, + "west_longitude": -60, + "north_latitude": 84, + "east_longitude": -54 + }, + }, + 22: { + "scope": "Engineering survey, topographic mapping.", + "area": "Canada between 54°W and 48°W onshore and offshore - Newfoundland and Labrador.", + "bbox": { + "south_latitude": 39.5, + "west_longitude": -54, + "north_latitude": 57.65, + "east_longitude": -47.99 + }, + } +} + + +def compound_crs_MTM_HT_1997(zone): + j = { + "type": "CompoundCRS", + "components": [ + MTM_NAD83CSRSv7(zone), + vert_crs_CGVD28_HT2_1997() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_MTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +def compound_crs_MTM_HT_2002(zone): + j = { + "type": "CompoundCRS", + "components": [ + MTM_NAD83CSRSv7(zone), + vert_crs_CGVD28_HT2_2002() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_MTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +def compound_crs_MTM_HT_2010(zone): + j = { + "type": "CompoundCRS", + "components": [ + MTM_NAD83CSRSv7(zone), + vert_crs_CGVD28_HT2_2010() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_MTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +def compound_crs_UTM_CGVD2013_1997(zone): + j = { + "type": "CompoundCRS", + "components": [ + UTM_NAD83CSRSv7(zone), + vert_crs_CGVD2013a_1997() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_UTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +def compound_crs_UTM_CGVD2013_2002(zone): + j = { + "type": "CompoundCRS", + "components": [ + UTM_NAD83CSRSv7(zone), + vert_crs_CGVD2013a_2002() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_UTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +def compound_crs_UTM_CGVD2013_2010(zone): + j = { + "type": "CompoundCRS", + "components": [ + UTM_NAD83CSRSv7(zone), + vert_crs_CGVD2013a_2010() + ] + } + j["name"] = j["components"][0]["name"] + " + " + j["components"][1]["name"] + usage = usages_UTM[zone] + for key in usage: + j[key] = usage[key] + return j + + +script_dir_name = os.path.dirname(os.path.realpath(__file__)) +sql_dir_name = os.path.join(os.path.dirname(script_dir_name), 'data', 'sql') + +all_sql = [] +all_sql.append("""INSERT INTO "grid_transformation" VALUES('NRCAN','HT2_1997_NAD83CSRSV7','NAD83(CSRS)v7 to CGVD28 height',NULL,'EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','8254','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_1997.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can CGG2000',0);""") +all_sql.append("""INSERT INTO "usage" VALUES('NRCAN','USAGE_HT2_1997_NAD83CSRSV7','grid_transformation','NRCAN','HT2_1997_NAD83CSRSV7','EPSG','1289','EPSG','1133');""") + +all_sql.append("""INSERT INTO "grid_transformation" VALUES('NRCAN','HT2_2002_NAD83CSRSV7','NAD83(CSRS)v7 to CGVD28 height',NULL,'EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','8254','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_2002v70.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can CGG2000 2002',0);""") +all_sql.append("""INSERT INTO "usage" VALUES('NRCAN','USAGE_HT2_2002_NAD83CSRSV7','grid_transformation','NRCAN','HT2_2002_NAD83CSRSV7','EPSG','1289','EPSG','1133');""") + +for zone in range(1, 17+1): + projjson = json.dumps(compound_crs_MTM_HT_1997(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_MTM{zone}_HT2_1997', NULL, NULL, NULL, '{projjson}', 1997.0, 0);""") + +for zone in range(1, 17+1): + projjson = json.dumps(compound_crs_MTM_HT_2002(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_MTM{zone}_HT2_2002', NULL, NULL, NULL, '{projjson}', 2002.0, 0);""") + +for zone in range(1, 17+1): + projjson = json.dumps(compound_crs_MTM_HT_2010(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_MTM{zone}_HT2_2010', NULL, NULL, NULL, '{projjson}', 2010.0, 0);""") + +for zone in range(7, 22+1): + projjson = json.dumps( + compound_crs_UTM_CGVD2013_1997(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_1997_UTM{zone}_CGVD2013_1997', NULL, NULL, NULL, '{projjson}', 1997.0, 0);""") + +for zone in range(7, 22+1): + projjson = json.dumps( + compound_crs_UTM_CGVD2013_2002(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2002_UTM{zone}_CGVD2013_2002', NULL, NULL, NULL, '{projjson}', 2002.0, 0);""") + +for zone in range(7, 22+1): + projjson = json.dumps( + compound_crs_UTM_CGVD2013_2010(zone)).replace("'", "''") + all_sql.append( + f"""INSERT INTO coordinate_metadata VALUES('NRCAN', 'NAD83_CSRS_2010_UTM{zone}_CGVD2013_2010', NULL, NULL, NULL, '{projjson}', 2010.0, 0);""") + +f = open(os.path.join(sql_dir_name, 'nrcan') + '.sql', 'wb') +f.write("--- This file has been generated by scripts/build_nrcan.py. DO NOT EDIT !\n\n".encode('UTF-8')) +for sql in all_sql: + f.write((sql + '\n').encode('UTF-8')) +f.close() diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index a8fefd6ff0..a618172b77 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -1445,10 +1445,12 @@ TEST_F(CApi, proj_get_authorities_from_database) { ASSERT_TRUE(list[4] != nullptr); EXPECT_EQ(list[4], std::string("NKG")); ASSERT_TRUE(list[5] != nullptr); - EXPECT_EQ(list[5], std::string("OGC")); + EXPECT_EQ(list[5], std::string("NRCAN")); ASSERT_TRUE(list[6] != nullptr); - EXPECT_EQ(list[6], std::string("PROJ")); - EXPECT_EQ(list[7], nullptr); + EXPECT_EQ(list[6], std::string("OGC")); + ASSERT_TRUE(list[7] != nullptr); + EXPECT_EQ(list[7], std::string("PROJ")); + EXPECT_EQ(list[8], nullptr); } // --------------------------------------------------------------------------- From 9bfb7cbe8dda88855c33777c99dd812bcb638fa3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 21 Aug 2023 18:38:55 +0200 Subject: [PATCH 038/199] createOperations(): compoundToCompound: tune behaviour with point motion operation --- .../operation/coordinateoperationfactory.cpp | 48 ++++++++++++++++++- test/unit/test_operationfactory.cpp | 36 ++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 1f3466d627..6cd4c72421 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -5931,6 +5931,52 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( return; } + // Use PointMotionOperations if appropriate and available + const auto &authFactory = context.context->getAuthorityFactory(); + if (authFactory && context.ignoreCoordinateEpochCounter == 0 && + context.context->getSourceCoordinateEpoch().has_value() && + context.context->getTargetCoordinateEpoch().has_value() && + !context.context->getSourceCoordinateEpoch() + ->coordinateEpoch() + ._isEquivalentTo(context.context->getTargetCoordinateEpoch() + ->coordinateEpoch()) && + srcGeog->_isEquivalentTo(dstGeog.get(), + util::IComparable::Criterion::EQUIVALENT)) { + const auto pmoSrc = authFactory->getPointMotionOperationsFor( + NN_NO_CHECK(srcGeog), true); + if (!pmoSrc.empty()) { + auto geog3D = srcGeog->promoteTo3D( + std::string(), authFactory->databaseContext().as_nullable()); + auto pmoOps = createOperations(geog3D, geog3D, context); + CoordinateEpochIgnorer guard(context); + auto opsFirst = createOperations(sourceCRS, geog3D, context); + auto opsLast = createOperations(geog3D, targetCRS, context); + for (const auto &opFirst : opsFirst) { + if (!opFirst->hasBallparkTransformation()) { + for (const auto &opMiddle : pmoOps) { + if (!opMiddle->hasBallparkTransformation()) { + for (const auto &opLast : opsLast) { + if (!opLast->hasBallparkTransformation()) { + try { + res.emplace_back( + ConcatenatedOperation:: + createComputeMetadata( + {opFirst, opMiddle, opLast}, + disallowEmptyIntersection)); + } catch (const std::exception &) { + } + } + } + } + } + } + } + if (!res.empty()) { + return; + } + } + } + // Deal with "+proj=something +geoidgrids +nadgrids/+towgs84" to // "+proj=something +geoidgrids +nadgrids/+towgs84", using WGS 84 as an // intermediate. @@ -5949,7 +5995,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( util::IComparable::Criterion::EQUIVALENT) && !comp1SrcBound->isEquivalentTo( comp1DstBound, util::IComparable::Criterion::EQUIVALENT)) { - const auto &authFactory = context.context->getAuthorityFactory(); auto dbContext = authFactory ? authFactory->databaseContext().as_nullable() : nullptr; @@ -5984,7 +6029,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( // the 2 vertical CRS, then try through intermediate geographic CRS if (verticalTransforms.size() == 1 && verticalTransforms.front()->hasBallparkTransformation()) { - const auto &authFactory = context.context->getAuthorityFactory(); auto dbContext = authFactory ? authFactory->databaseContext().as_nullable() : nullptr; diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index c175f07ccb..6277b220aa 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9570,3 +9570,39 @@ TEST(operation, EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=noop"); } + +// --------------------------------------------------------------------------- + +TEST(operation, + createOperation_compound_to_compound_with_point_motion_operation) { + auto dbContext = DatabaseContext::create(); + auto factoryNRCAN = AuthorityFactory::create(dbContext, "NRCAN"); + auto sourceCM = + factoryNRCAN->createCoordinateMetadata("NAD83_CSRS_1997_MTM7_HT2_1997"); + auto targetCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_2010_UTM19_CGVD2013_2010"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCM, targetCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_HT2_1997.tif +multiplier=1 " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=1997 +omit_fwd " + "+step +proj=deformation +dt=13 +grids=ca_nrc_NAD83v70VG.tif " + "+step +proj=set +v_4=2010 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " + "+multiplier=1 " + "+step +proj=utm +zone=19 +ellps=GRS80"); +} From 6018751b79ad504a79d6b47850354f6a979dd10a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 29 Aug 2023 20:12:03 +0200 Subject: [PATCH 039/199] CoordinateOperationFactory: make sure to preserve interpolation CRS when substituting source/target CRS --- src/iso19111/operation/coordinateoperationfactory.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 6cd4c72421..643e2c31ac 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -2928,17 +2928,19 @@ static bool hasIdentifiers(const CoordinateOperationNNPtr &op) { void CoordinateOperationFactory::Private::setCRSs( CoordinateOperation *co, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS) { - co->setCRSs(sourceCRS, targetCRS, nullptr); + const auto &interpolationCRS = co->interpolationCRS(); + co->setCRSs(sourceCRS, targetCRS, interpolationCRS); auto invCO = dynamic_cast(co); if (invCO) { - invCO->forwardOperation()->setCRSs(targetCRS, sourceCRS, nullptr); + invCO->forwardOperation()->setCRSs(targetCRS, sourceCRS, + interpolationCRS); } auto transf = dynamic_cast(co); if (transf) { transf->inverseAsTransformation()->setCRSs(targetCRS, sourceCRS, - nullptr); + interpolationCRS); } auto concat = dynamic_cast(co); From 140b9914e8ffedcaf2635803ed817c3221194d41 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 7 Sep 2023 11:13:02 +0200 Subject: [PATCH 040/199] GeographicCRS::_isEquivalentTo(): follow-up fix for #3879 to avoid behaviour breakage in GDAL --- src/iso19111/crs.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 7af6194125..9d04844961 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -3137,12 +3137,20 @@ bool GeographicCRS::_isEquivalentTo( const auto standardCriterion = getStandardCriterion(criterion); if (GeodeticCRS::_isEquivalentToNoTypeCheck(other, standardCriterion, dbContext)) { + // Make sure GeoPackage "Undefined geographic SRS" != EPSG:4326 + const auto otherGeogCRS = dynamic_cast(other); + if ((nameStr() == "Undefined geographic SRS" || + otherGeogCRS->nameStr() == "Undefined geographic SRS") && + otherGeogCRS->nameStr() != nameStr()) { + return false; + } return true; } if (criterion != util::IComparable::Criterion::EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS) { return false; } + const auto axisOrder = coordinateSystem()->axisOrder(); if (axisOrder == cs::EllipsoidalCS::AxisOrder::LONG_EAST_LAT_NORTH || axisOrder == cs::EllipsoidalCS::AxisOrder::LAT_NORTH_LONG_EAST) { From 2297392e62b281517f758508519b908235ab4d4f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 8 Sep 2023 11:50:56 +0200 Subject: [PATCH 041/199] proj.db opening: allow opening with a URI (typically for memvfs) (fixes #3887) --- src/iso19111/factory.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 6473f1caab..298a0322c8 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -330,10 +330,10 @@ std::shared_ptr SQLiteHandle::open(PJ_CONTEXT *ctx, } sqlite3 *sqlite_handle = nullptr; // SQLITE_OPEN_FULLMUTEX as this will be used from concurrent threads - if (sqlite3_open_v2(path.c_str(), &sqlite_handle, - SQLITE_OPEN_READONLY | SQLITE_OPEN_FULLMUTEX, - vfsName.empty() ? nullptr : vfsName.c_str()) != - SQLITE_OK || + if (sqlite3_open_v2( + path.c_str(), &sqlite_handle, + SQLITE_OPEN_READONLY | SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_URI, + vfsName.empty() ? nullptr : vfsName.c_str()) != SQLITE_OK || !sqlite_handle) { if (sqlite_handle != nullptr) { sqlite3_close(sqlite_handle); From baa4c61c1d71ff9286227d618b120a1ab6e95f9c Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 10 Sep 2023 16:16:32 +0200 Subject: [PATCH 042/199] setargv.obj is not available on uwp --- src/apps/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/apps/CMakeLists.txt b/src/apps/CMakeLists.txt index cdd85bd36b..5c63cab787 100644 --- a/src/apps/CMakeLists.txt +++ b/src/apps/CMakeLists.txt @@ -37,10 +37,12 @@ if(NOT MSVC) else() + if(NOT WINDOWS_STORE) # Linking to setargv.obj enables wildcard globbing for the # command line utilities, when compiling with MSVC # https://docs.microsoft.com/cpp/c-language/expanding-wildcard-arguments set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} setargv.obj") + endif() endif() From 502c99d321defa4849974513a3ae31a89d4ff478 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 29 Aug 2023 20:34:37 +0200 Subject: [PATCH 043/199] Implement 'Geographic3D Offset by velocity grid (NRCan byn)' transformation method (e.g for NAD83(CSRS)v7 to NAD83(CSRS)v3) --- data/sql/grid_transformation.sql | 22 +++ scripts/build_db.py | 5 +- src/iso19111/operation/singleoperation.cpp | 183 +++++++++++++++++++++ src/proj_constants.h | 5 + test/unit/test_operationfactory.cpp | 33 ++++ 5 files changed, 246 insertions(+), 2 deletions(-) diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 6548902e31..14949d9ca1 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1440,6 +1440,22 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10114','CGVD28 height to CGVD20 INSERT INTO "usage" VALUES('EPSG','18322','grid_transformation','EPSG','10114','EPSG','1061','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10115','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v6 as interpolation CRS, but NAD83(CSRS)v7 (code 8255) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); INSERT INTO "usage" VALUES('EPSG','18323','grid_transformation','EPSG','10115','EPSG','1061','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10119','NAD83(CSRS)v4 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18201','grid_transformation','EPSG','10119','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10120','NAD83(CSRS)v4 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18210','grid_transformation','EPSG','10120','EPSG','1061','EPSG','1274'); +INSERT INTO "grid_transformation" VALUES('EPSG','10121','NAD83(CSRS)v6 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8251','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18203','grid_transformation','EPSG','10121','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10122','NAD83(CSRS)v6 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8251','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18351','grid_transformation','EPSG','10122','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10123','NAD83(CSRS)v6 to NAD83(CSRS)v4 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8251','EPSG','8244',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18259','grid_transformation','EPSG','10123','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10124','NAD83(CSRS)v7 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8254','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18206','grid_transformation','EPSG','10124','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10125','NAD83(CSRS)v7 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8254','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18207','grid_transformation','EPSG','10125','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10126','NAD83(CSRS)v7 to NAD83(CSRS)v4 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8254','EPSG','8244',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','18350','grid_transformation','EPSG','10126','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10128','NAD83(CSRS)v4 to NAD83(CSRS)v4 + CGVD2013a(2002) height (1)','Reversible alternative to NAD83(CSRS)v4 to CGVD2013a(2002) height (1) (code 10110).','EPSG','1090','Geog3D to Geog2D+GravityRelatedHeight (NRCan byn)','EPSG','8244','EPSG','20037',0.05,'EPSG','8666','Geoid (height correction) model file','CGG2013an83.byn',NULL,NULL,NULL,NULL,'EPSG','8246','NR-Can CGG2013a 2002',0); INSERT INTO "usage" VALUES('EPSG','18287','grid_transformation','EPSG','10128','EPSG','1061','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','10129','NAD83(CSRS)v3 to NAD83(CSRS)v3 + CGVD2013a(1997) height (1)','Reversible alternative to NAD83(CSRS)v3 to CGVD2013a(1997) height (1) (code 10111).','EPSG','1090','Geog3D to Geog2D+GravityRelatedHeight (NRCan byn)','EPSG','8239','EPSG','20038',0.05,'EPSG','8666','Geoid (height correction) model file','CGG2013an83.byn',NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can CGG2013a 1997',0); @@ -1546,6 +1562,12 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10417','NAD83(CSRS)v8 to CGVD20 INSERT INTO "usage" VALUES('EPSG','20252','grid_transformation','EPSG','10417','EPSG','1061','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10418','NAD83(CSRS)v8 to CGVD28 height (1)','Valid at epoch 2010.0. Hybrid geoid model, grid derived at epoch 1997.0 through NAD83(CSRS)v3 (CT code 9983) and then modified to include correction for propagation of height between 1997.0 and 2010.0 derived from the Canada velocity grid v7.0.','EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','10413','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_2010v70.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC-Can CGG2000 2010',0); INSERT INTO "usage" VALUES('EPSG','20137','grid_transformation','EPSG','10418','EPSG','1289','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10421','NAD83(CSRS)v8 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','10413','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','10414','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','20188','grid_transformation','EPSG','10421','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10422','NAD83(CSRS)v8 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','10413','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','10414','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','20189','grid_transformation','EPSG','10422','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10423','NAD83(CSRS)v8 to NAD83(CSRS)v4 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','10413','EPSG','8244',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can cvg70',0); +INSERT INTO "usage" VALUES('EPSG','20190','grid_transformation','EPSG','10423','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10469','ETRS89 to COV23-IRF (1)','In conjunction with the COV23-TM map projection (code 10470) applied to COV23-IRF (code 10468), emulates the COV23 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines COV23-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','10468',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-COV23-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'CCC-Gbr COV23 OSNet2009',0); INSERT INTO "usage" VALUES('EPSG','20323','grid_transformation','EPSG','10469','EPSG','4743','EPSG','1141'); INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0); diff --git a/scripts/build_db.py b/scripts/build_db.py index 1109ca4f58..0462dbabf5 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -692,7 +692,7 @@ def fill_helmert_transformation(proj_db_cursor): '?,?,?, ?, ?,?,?, ?,?, ?,?, ?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?, ?,?,?,?,?, ?,?)', arg) def fill_grid_transformation(proj_db_cursor): - proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical Offset by Grid Interpolation%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)'))") + proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical Offset by Grid Interpolation%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)', 'Geographic3D Offset by velocity grid (NRCan byn)'))") for (code, name, method_code, method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, deprecated, remarks) in proj_db_cursor.fetchall(): expected_order = 1 max_n_params = 3 if method_name == 'Geocentric translation by Grid Interpolation (IGN)' else 2 @@ -775,12 +775,13 @@ def fill_grid_transformation(proj_db_cursor): # 1105: Geog3D to Geog2D+GravityRelatedHeight (ITAL2005) # 1110: Geog3D to Geog2D+Depth (Gravsoft) # 1112: Vertical Offset by Grid Interpolation (NRCan byn) + # 1114: Geographic3D Offset by velocity grid (NRCan byn) # 1115: Geog3D to Geog2D+Depth (txt) # 1118: Geog3D to Geog2D+GravityRelatedHeight (ISG) # 1122: Geog3D to Geog2D+Depth (gtx) # WARNING: update Transformation::isGeographic3DToGravityRelatedHeight() # in src/iso19111/operation/singleoperation.cpp if adding new methods - elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1115, 1118, 1122) and n_params == 2: + elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1114, 1115, 1118, 1122) and n_params == 2: assert param_code[1] == 1048, (code, method_code, param_code[1]) interpolation_crs_auth_name = EPSG_AUTHORITY interpolation_crs_code = str(int(param_value[1])) # needed to avoid codes like XXXX.0 diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index cd34d73b10..5d55cbdf0e 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -1963,6 +1963,34 @@ _getGeocentricTranslationFilename(const SingleOperation *op, // --------------------------------------------------------------------------- +//! @cond Doxygen_Suppress +static const std::string & +_getGeographic3DOffsetByVelocityGridFilename(const SingleOperation *op, + bool allowInverse) { + + const auto &l_method = op->method(); + const auto &methodName = l_method->nameStr(); + if (l_method->getEPSGCode() == + EPSG_CODE_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN || + (allowInverse && + ci_equal( + methodName, + INVERSE_OF + + EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN))) { + const auto &fileParameter = op->parameterValue( + EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE); + if (fileParameter && + fileParameter->type() == ParameterValue::Type::FILENAME) { + return fileParameter->valueFile(); + } + } + return nullString; +} +//! @endcond + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress static const std::string & _getHeightToGeographic3DFilename(const SingleOperation *op, bool allowInverse) { @@ -2410,6 +2438,45 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( } } + const auto &geographic3DOffsetByVelocityGridFilename = + _getGeographic3DOffsetByVelocityGridFilename(this, false); + if (!geographic3DOffsetByVelocityGridFilename.empty()) { + if (databaseContext->lookForGridAlternative( + geographic3DOffsetByVelocityGridFilename, projFilename, + projGridFormat, inverseDirection)) { + + if (inverseDirection) { + throw util::UnsupportedOperationException( + "Inverse direction for " + "Geographic3DOFffsetByVelocityGrid not supported"); + } + + if (geographic3DOffsetByVelocityGridFilename == projFilename) { + return self; + } + + const auto l_sourceCRSNull = sourceCRS(); + const auto l_targetCRSNull = targetCRS(); + if (l_sourceCRSNull == nullptr) { + throw util::UnsupportedOperationException("Missing sourceCRS"); + } + if (l_targetCRSNull == nullptr) { + throw util::UnsupportedOperationException("Missing targetCRS"); + } + auto l_sourceCRS = NN_NO_CHECK(l_sourceCRSNull); + auto l_targetCRS = NN_NO_CHECK(l_targetCRSNull); + auto parameters = + std::vector{createOpParamNameEPSGCode( + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE)}; + return Transformation::create( + createSimilarPropertiesOperation(self), l_sourceCRS, + l_targetCRS, l_interpolationCRS, + createSimilarPropertiesMethod(method()), parameters, + {ParameterValue::createFilename(projFilename)}, + coordinateOperationAccuracies()); + } + } + if (methodEPSGCode == EPSG_CODE_METHOD_VERTCON || isRegularVerticalGridMethod(methodEPSGCode)) { auto fileParameter = @@ -3837,6 +3904,122 @@ bool SingleOperation::exportToPROJStringGeneric( return true; } + const auto &geographic3DOffsetByVelocityGridFilename = + _getGeographic3DOffsetByVelocityGridFilename(this, true); + if (!geographic3DOffsetByVelocityGridFilename.empty()) { + auto sourceCRSGeog = + dynamic_cast(sourceCRS().get()); + if (!sourceCRSGeog) { + throw io::FormattingException( + concat("Can apply ", methodName, " only to GeographicCRS")); + } + + auto targetCRSGeog = + dynamic_cast(targetCRS().get()); + if (!targetCRSGeog) { + throw io::FormattingException( + concat("Can apply ", methodName, " only to GeographicCRS")); + } + + const auto &interpCRS = interpolationCRS(); + if (!interpCRS) { + throw io::FormattingException( + "InterpolationCRS required " + "for" + " " EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN); + } + const bool interpIsSrc = interpCRS->_isEquivalentTo( + sourceCRS()->demoteTo2D(std::string(), nullptr).get(), + util::IComparable::Criterion::EQUIVALENT); + const bool interpIsTarget = interpCRS->_isEquivalentTo( + targetCRS()->demoteTo2D(std::string(), nullptr).get(), + util::IComparable::Criterion::EQUIVALENT); + if (!interpIsSrc && !interpIsTarget) { + throw io::FormattingException( + "For" + " " EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN + ", interpolation CRS should be the source or target CRS"); + } + + formatter->startInversion(); + sourceCRSGeog->addAngularUnitConvertAndAxisSwap(formatter); + formatter->stopInversion(); + + if (isMethodInverseOf) { + formatter->startInversion(); + } + + const bool addPushPopV3 = + ((sourceCRSGeog && + sourceCRSGeog->coordinateSystem()->axisList().size() == 2) || + (targetCRSGeog && + targetCRSGeog->coordinateSystem()->axisList().size() == 2)); + + if (addPushPopV3) { + formatter->addStep("push"); + formatter->addParam("v_3"); + } + + formatter->addStep("cart"); + sourceCRSGeog->ellipsoid()->_exportToPROJString(formatter); + + formatter->addStep("deformation"); + auto srcName = sourceCRS()->nameStr(); + auto dstName = targetCRS()->nameStr(); + const struct { + const char *name; + double epoch; + } realizationEpochs[] = { + {"NAD83(CSRS)v2", 1997.0}, {"NAD83(CSRS)v3", 1997.0}, + {"NAD83(CSRS)v4", 2002.0}, {"NAD83(CSRS)v5", 2006.0}, + {"NAD83(CSRS)v6", 2010.0}, {"NAD83(CSRS)v7", 2010.0}, + {"NAD83(CSRS)v8", 2010.0}, + }; + double sourceYear = 0.0; + double targetYear = 0.0; + for (const auto &iter : realizationEpochs) { + if (iter.name == srcName) + sourceYear = iter.epoch; + if (iter.name == dstName) + targetYear = iter.epoch; + } + if (sourceYear == 0.0) { + throw io::FormattingException( + "For" + " " EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN + ", missing epoch for source CRS"); + } + if (targetYear == 0.0) { + throw io::FormattingException( + "For" + " " EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN + ", missing epoch for target CRS"); + } + formatter->addParam("dt", targetYear - sourceYear); + formatter->addParam("grids", geographic3DOffsetByVelocityGridFilename); + (interpIsTarget ? targetCRSGeog : sourceCRSGeog) + ->ellipsoid() + ->_exportToPROJString(formatter); + + formatter->startInversion(); + formatter->addStep("cart"); + targetCRSGeog->ellipsoid()->_exportToPROJString(formatter); + formatter->stopInversion(); + + if (addPushPopV3) { + formatter->addStep("pop"); + formatter->addParam("v_3"); + } + + if (isMethodInverseOf) { + formatter->stopInversion(); + } + + targetCRSGeog->addAngularUnitConvertAndAxisSwap(formatter); + + return true; + } + const auto &heightFilename = _getHeightToGeographic3DFilename(this, true); if (!heightFilename.empty()) { auto l_targetCRS = targetCRS(); diff --git a/src/proj_constants.h b/src/proj_constants.h index 5d082ee7cb..45b14280fb 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -589,6 +589,11 @@ #define EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE \ "Point motion velocity grid file" +/* ------------------------------------------------------------------------ */ +#define EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN \ + "Geographic3D Offset by velocity grid (NRCan byn)" +#define EPSG_CODE_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN 1114 + /* ------------------------------------------------------------------------ */ #define PROJ_WKT2_NAME_METHOD_HEIGHT_TO_GEOG3D \ diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 6277b220aa..6e16ad2cbc 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9600,9 +9600,42 @@ TEST(operation, "+step +proj=cart +ellps=GRS80 " "+step +proj=set +v_4=1997 +omit_fwd " "+step +proj=deformation +dt=13 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " "+step +proj=set +v_4=2010 +omit_inv " "+step +inv +proj=cart +ellps=GRS80 " "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " "+multiplier=1 " "+step +proj=utm +zone=19 +ellps=GRS80"); } + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_Geographic3D_Offset_by_velocity_grid) { + auto dbContext = DatabaseContext::create(); + auto factoryEPSG = AuthorityFactory::create(dbContext, "EPSG"); + auto sourceCRS = + factoryEPSG->createCoordinateReferenceSystem("8254"); // NAD83(CSRS)v7 + auto targetCRS = + factoryEPSG->createCoordinateReferenceSystem("8239"); // NAD83(CSRS)v3 + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCRS, targetCRS, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=deformation +dt=-13 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); +} From d1b58d9a9473e494b1c1c92cb4bc85468296ebcb Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 29 Aug 2023 21:21:17 +0200 Subject: [PATCH 044/199] CoordinateOperationFactory::Private::createOperationsWithDatumPivot(): use candidateSrcGeod and candidateDstGeod of same type in priority --- .../operation/coordinateoperationfactory.cpp | 54 ++++++++++++++++--- test/unit/test_operationfactory.cpp | 30 +++++++++++ 2 files changed, 76 insertions(+), 8 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 643e2c31ac..ac8e790f24 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -109,6 +109,17 @@ namespace operation { static std::string objectAsStr(const common::IdentifiedObject *obj) { std::string ret(obj->nameStr()); const auto &ids = obj->identifiers(); + if (const auto *geogCRS = dynamic_cast(obj)) { + if (geogCRS->coordinateSystem()->axisList().size() == 3U) + ret += " (geographic3D)"; + else + ret += " (geographic2D)"; + } + if (const auto *geodCRS = dynamic_cast(obj)) { + if (geodCRS->isGeocentric()) { + ret += " (geocentric)"; + } + } if (!ids.empty()) { ret += " ("; ret += (*ids[0]->codeSpace()) + ":" + ids[0]->code(); @@ -3174,12 +3185,16 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( // If RGF93GEO is returned before then we go through WGS84 and use // instead a Helmert transformation. // - // Actually, in the general case, we do the lookup in 2 passes with the 2 + // Actually, in the general case, we do the lookup in 3 passes with the 2 // above steps in each pass: // - one first pass where we only consider direct transformations (no // other intermediate CRS) // - a second pass where we allow transformation through another - // intermediate CRS. + // intermediate CRS, but we make sure the candidate geodetic CRS are of + // the same type + // - a third where we allow transformation through another + // intermediate CRS, where the candidate geodetic CRS are of different + // type. // ... but when transforming between 2 IGNF CRS, we do just one single pass // by allowing directly all transformation. There is no strong reason for // that particular case, except that otherwise we'd get different results @@ -3195,22 +3210,45 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( const auto &ids = crs->identifiers(); return !ids.empty() && *(ids.front()->codeSpace()) == "IGNF"; }; - const int nIters = (isIGNF(sourceCRS) && isIGNF(targetCRS)) ? 1 : 2; + const int nIters = (isIGNF(sourceCRS) && isIGNF(targetCRS)) ? 1 : 3; + + const auto getType = [](const crs::GeodeticCRSNNPtr &crs) { + if (auto geogCRS = + dynamic_cast(crs.get())) { + if (geogCRS->coordinateSystem()->axisList().size() == 3) + return 1; + return 0; + } + return 2; + }; + for (int iter = 0; iter < nIters; ++iter) { - const bool useOnlyDirectRegistryOp = (iter == 0 && nIters == 2); + const bool useOnlyDirectRegistryOp = (iter == 0 && nIters == 3); for (const auto &candidateSrcGeod : candidatesSrcGeod) { if (candidateSrcGeod->nameStr() == sourceCRS->nameStr()) { + const auto typeSource = + (iter >= 1) ? getType(candidateSrcGeod) : -1; auto sourceSrcGeodModified(sourceAndTargetAre3D ? candidateSrcGeod->promoteTo3D( std::string(), dbContext) : candidateSrcGeod); for (const auto &candidateDstGeod : candidatesDstGeod) { if (candidateDstGeod->nameStr() == targetCRS->nameStr()) { + if (iter == 1) { + if (typeSource != getType(candidateDstGeod)) { + continue; + } + } else if (iter == 2) { + if (typeSource == getType(candidateDstGeod)) { + continue; + } + } #ifdef TRACE_CREATE_OPERATIONS - ENTER_BLOCK("try " + objectAsStr(sourceCRS.get()) + - "->" + objectAsStr(candidateSrcGeod.get()) + - "->" + objectAsStr(candidateDstGeod.get()) + - "->" + objectAsStr(targetCRS.get()) + ")"); + ENTER_BLOCK("iter=" + toString(iter) + ", try " + + objectAsStr(sourceCRS.get()) + "->" + + objectAsStr(candidateSrcGeod.get()) + "->" + + objectAsStr(candidateDstGeod.get()) + "->" + + objectAsStr(targetCRS.get()) + ")"); #endif const auto opsFirst = createOperations( sourceCRS, sourceSrcGeodModified, context); diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 6e16ad2cbc..4cbfc3abfb 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9639,3 +9639,33 @@ TEST(operation, createOperation_Geographic3D_Offset_by_velocity_grid) { "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " "+step +proj=axisswap +order=2,1"); } + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_test_createOperationsWithDatumPivot_iter_1) { + // Test + // CoordinateOperationFactory::Private::createOperationsWithDatumPivot() + // iter=1, ie getType(candidateSrcGeod) == getType(candidateDstGeod) + auto dbContext = DatabaseContext::create(); + auto factoryEPSG = AuthorityFactory::create(dbContext, "EPSG"); + // NAD83(CSRS)v2 (2D) + auto sourceCRS = factoryEPSG->createCoordinateReferenceSystem("8237"); + // NAD83(CSRS)v3 (2D) + auto targetCRS = factoryEPSG->createCoordinateReferenceSystem("8240"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + // Do *NOT* set SpatialCriterion::PARTIAL_INTERSECTION, otherwise we'd + // get the direct operations + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCRS, targetCRS, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_STREQ(list[0]->nameStr().c_str(), + "Inverse of NAD83(CSRS)v8 to NAD83(CSRS)v2 (1) + " + "NAD83(CSRS)v8 to NAD83(CSRS)v3 (1)"); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +} From 0ba3c09b6af89f27756abdb9005a48dcb98cdbd8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 29 Aug 2023 23:34:24 +0200 Subject: [PATCH 045/199] createOperations(): compoundToCompound: tune behaviour when one of the vertical CRS has a geoid model --- .../operation/coordinateoperationfactory.cpp | 30 +++++-- test/unit/test_operationfactory.cpp | 88 +++++++++++++++++++ 2 files changed, 109 insertions(+), 9 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index ac8e790f24..65ddbbc6fc 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -6057,18 +6057,30 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } std::vector verticalTransforms; - if (componentsSrc.size() >= 2 && componentsSrc[1]->extractVerticalCRS() && - componentsDst[1]->extractVerticalCRS()) { - if (!componentsSrc[1]->_isEquivalentTo(componentsDst[1].get())) { - verticalTransforms = - createOperations(componentsSrc[1], componentsDst[1], context); + bool bTryThroughIntermediateGeogCRS = false; + if (componentsSrc.size() >= 2) { + const auto vertSrc = componentsSrc[1]->extractVerticalCRS(); + const auto vertDst = componentsDst[1]->extractVerticalCRS(); + if (vertSrc && vertDst && + !componentsSrc[1]->_isEquivalentTo(componentsDst[1].get())) { + if (!vertSrc->geoidModel().empty() || + !vertDst->geoidModel().empty()) { + // If we have a geoid model, force using through it + bTryThroughIntermediateGeogCRS = true; + } else { + verticalTransforms = createOperations( + componentsSrc[1], componentsDst[1], context); + // If we didn't find a non-ballpark transformation between + // the 2 vertical CRS, then try through intermediate geographic + // CRS + bTryThroughIntermediateGeogCRS = + (verticalTransforms.size() == 1 && + verticalTransforms.front()->hasBallparkTransformation()); + } } } - // If we didn't find a non-ballpark transformation between - // the 2 vertical CRS, then try through intermediate geographic CRS - if (verticalTransforms.size() == 1 && - verticalTransforms.front()->hasBallparkTransformation()) { + if (bTryThroughIntermediateGeogCRS) { auto dbContext = authFactory ? authFactory->databaseContext().as_nullable() : nullptr; diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 4cbfc3abfb..ee622d2395 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9610,6 +9610,94 @@ TEST(operation, // --------------------------------------------------------------------------- +TEST( + operation, + createOperation_compound_to_compound_with_Geographic3D_Offset_by_velocity_grid) { + auto dbContext = DatabaseContext::create(); + auto wkt = + "COMPOUNDCRS[\"NAD83(CSRS)v3 / MTM zone 7 + CGVD28 height\",\n" + " PROJCRS[\"NAD83(CSRS)v3 / MTM zone 7\",\n" + " BASEGEOGCRS[\"NAD83(CSRS)v3\",\n" + " DATUM[\"North American Datum of 1983 (CSRS) version 3\",\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " ID[\"EPSG\",8240]],\n" + " CONVERSION[\"MTM zone 7\",\n" + " METHOD[\"Transverse Mercator\",\n" + " ID[\"EPSG\",9807]],\n" + " PARAMETER[\"Latitude of natural origin\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8801]],\n" + " PARAMETER[\"Longitude of natural origin\",-70.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8802]],\n" + " PARAMETER[\"Scale factor at natural origin\",0.9999,\n" + " SCALEUNIT[\"unity\",1],\n" + " ID[\"EPSG\",8805]],\n" + " PARAMETER[\"False easting\",304800,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",0,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"easting (E(X))\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " AXIS[\"northing (N(Y))\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]]],\n" + " VERTCRS[\"CGVD28 height\",\n" + " VDATUM[\"Canadian Geodetic Vertical Datum of 1928\"],\n" + " CS[vertical,1],\n" + " AXIS[\"gravity-related height (H)\",up,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " GEOIDMODEL[\"HT2_1997\",\n" + " ID[\"EPSG\",9983]],\n" + " ID[\"EPSG\",5713]]]"; + auto objSrc = WKTParser().createFromWKT(wkt); + auto src = nn_dynamic_pointer_cast(objSrc); + ASSERT_TRUE(src != nullptr); + + auto objDest = createFromUserInput( + "NAD83(CSRS)v7 / UTM zone 19 + CGVD2013a(2010) height", dbContext); + auto dst = nn_dynamic_pointer_cast(objDest); + ASSERT_TRUE(dst != nullptr); + + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + NN_NO_CHECK(src), NN_NO_CHECK(dst), ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + // Very similar output pipeline as + // createOperation_compound_to_compound_with_point_motion_operation + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_HT2_1997.tif +multiplier=1 " + "+step +proj=cart +ellps=GRS80 " + "+step +inv +proj=deformation +dt=-13 " + "+grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " + "+multiplier=1 " + "+step +proj=utm +zone=19 +ellps=GRS80"); +} + +// --------------------------------------------------------------------------- + TEST(operation, createOperation_Geographic3D_Offset_by_velocity_grid) { auto dbContext = DatabaseContext::create(); auto factoryEPSG = AuthorityFactory::create(dbContext, "EPSG"); From b50b522bb7ec88b39fbd314c26134b3c1ae2fbc4 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 5 Sep 2023 18:28:21 +0200 Subject: [PATCH 046/199] createOperations(): pass coordinate epochs internally in a cleaner way --- .../operation/coordinateoperationfactory.cpp | 765 +++++++++++------- test/unit/test_operationfactory.cpp | 4 +- 2 files changed, 475 insertions(+), 294 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 65ddbbc6fc..7d0147cf9b 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -560,7 +560,6 @@ struct CoordinateOperationFactory::Private { bool inCreateOperationsGeogToVertWithIntermediateVert = false; bool skipHorizontalTransformation = false; int nRecLevelCreateOperations = 0; - int ignoreCoordinateEpochCounter = 0; std::map, std::list>> cacheNameToCRS{}; @@ -573,7 +572,10 @@ struct CoordinateOperationFactory::Private { static std::vector createOperations(const crs::CRSNNPtr &sourceCRS, - const crs::CRSNNPtr &targetCRS, Context &context); + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, + Context &context); private: static constexpr bool disallowEmptyIntersection = true; @@ -602,7 +604,10 @@ struct CoordinateOperationFactory::Private { std::vector &res); static bool createOperationsFromDatabase( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeodeticCRS *geodSrc, const crs::GeodeticCRS *geodDst, const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst, const crs::VerticalCRS *vertSrc, @@ -617,7 +622,10 @@ struct CoordinateOperationFactory::Private { static std::vector createOperationsGeogToVertWithIntermediateVert( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, const crs::VerticalCRS *vertDst, Context &context); static std::vector @@ -626,7 +634,10 @@ struct CoordinateOperationFactory::Private { Context &context); static void createOperationsFromDatabaseWithVertCRS( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst, const crs::VerticalCRS *vertSrc, const crs::VerticalCRS *vertDst, @@ -639,7 +650,10 @@ struct CoordinateOperationFactory::Private { std::vector &res, bool forceBallpark); static void createOperationsFromSphericalPlanetocentric( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeodeticCRS *geodSrc, std::vector &res); @@ -650,7 +664,10 @@ struct CoordinateOperationFactory::Private { std::vector &res); static void createOperationsDerivedTo( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::DerivedCRS *derivedSrc, std::vector &res); @@ -673,7 +690,10 @@ struct CoordinateOperationFactory::Private { std::vector &res); static void createOperationsVertToGeog( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::VerticalCRS *vertSrc, const crs::GeographicCRS *geogDst, std::vector &res); @@ -691,18 +711,28 @@ struct CoordinateOperationFactory::Private { std::vector &res); static void createOperationsCompoundToGeog( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::CompoundCRS *compoundSrc, const crs::GeographicCRS *geogDst, std::vector &res); - static void createOperationsToGeod( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, - Private::Context &context, const crs::GeodeticCRS *geodDst, - std::vector &res); + static void + createOperationsToGeod(const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, + Private::Context &context, + const crs::GeodeticCRS *geodDst, + std::vector &res); static void createOperationsCompoundToCompound( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::CompoundCRS *compoundSrc, const crs::CompoundCRS *compoundDst, std::vector &res); @@ -721,7 +751,10 @@ struct CoordinateOperationFactory::Private { static void createOperationsWithDatumPivot( std::vector &res, - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, const crs::GeodeticCRS *geodSrc, const crs::GeodeticCRS *geodDst, Context &context); @@ -731,17 +764,6 @@ struct CoordinateOperationFactory::Private { static void setCRSs(CoordinateOperation *co, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS); - - struct CoordinateEpochIgnorer { - Context &context; - - explicit CoordinateEpochIgnorer(Context &contextIn) - : context(contextIn) { - ++context.ignoreCoordinateEpochCounter; - } - - ~CoordinateEpochIgnorer() { --context.ignoreCoordinateEpochCounter; } - }; }; //! @endcond @@ -1996,7 +2018,9 @@ CoordinateOperationFactory::Private::findsOpsInRegistryWithIntermediate( useCreateBetweenGeodeticCRSWithDatumBasedIntermediates); if (!opsWithIntermediate.empty()) { const auto opsFirst = createOperations( - sourceCRS, candidateSrcGeod, context); + sourceCRS, util::optional(), + candidateSrcGeod, + util::optional(), context); for (const auto &opFirst : opsFirst) { for (const auto &opSecond : opsWithIntermediate) { try { @@ -3004,8 +3028,11 @@ static bool hasResultSetOnlyResultsWithPROJStep( void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( std::vector &res, const crs::CRSNNPtr &sourceCRS, - const crs::CRSNNPtr &targetCRS, const crs::GeodeticCRS *geodSrc, - const crs::GeodeticCRS *geodDst, Private::Context &context) { + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, + const crs::GeodeticCRS *geodSrc, const crs::GeodeticCRS *geodDst, + Private::Context &context) { #ifdef TRACE_CREATE_OPERATIONS ENTER_BLOCK("createOperationsWithDatumPivot(" + @@ -3046,125 +3073,158 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( bool isNullFirst, bool useOnlyDirectRegistryOp) { bool resNonEmptyBeforeFiltering; + + // Deal with potential epoch change + std::vector opsEpochChange; + if (sourceEpoch.has_value() && targetEpoch.has_value() && + !sourceEpoch->coordinateEpoch()._isEquivalentTo( + targetEpoch->coordinateEpoch())) { + const auto pmo = + context.context->getAuthorityFactory() + ->getPointMotionOperationsFor( + NN_NO_CHECK( + util::nn_dynamic_pointer_cast( + candidateSrcGeod)), + true); + if (!pmo.empty()) { + opsEpochChange = + createOperations(candidateSrcGeod, sourceEpoch, + candidateSrcGeod, targetEpoch, context); + } + } + const auto opsSecond = useOnlyDirectRegistryOp ? findOpsInRegistryDirect(candidateSrcGeod, candidateDstGeod, context, resNonEmptyBeforeFiltering) - : createOperations(candidateSrcGeod, candidateDstGeod, context); + : createOperations(candidateSrcGeod, targetEpoch, + candidateDstGeod, targetEpoch, context); const auto opsThird = createOperations( sourceAndTargetAre3D ? candidateDstGeod->promoteTo3D(std::string(), dbContext) : candidateDstGeod, - targetCRS, context); + targetEpoch, targetCRS, targetEpoch, context); assert(!opsThird.empty()); const CoordinateOperationNNPtr &opThird(opsThird[0]); - for (auto &opSecond : opsSecond) { - // Check that it is not a transformation synthetized by - // ourselves - if (!hasIdentifiers(opSecond)) { - continue; - } - // And even if it is a referenced transformation, check that - // it is not a trivial one - auto so = dynamic_cast(opSecond.get()); - if (so && isAxisOrderReversal(so->method()->getEPSGCode())) { - continue; - } + for (size_t iEpochChange = 0; + iEpochChange < std::max(1, opsEpochChange.size()); + ++iEpochChange) { + for (auto &opSecond : opsSecond) { + // Check that it is not a transformation synthetized by + // ourselves + if (!hasIdentifiers(opSecond)) { + continue; + } + // And even if it is a referenced transformation, check that + // it is not a trivial one + auto so = dynamic_cast(opSecond.get()); + if (so && isAxisOrderReversal(so->method()->getEPSGCode())) { + continue; + } - std::vector subOps; - const bool isNullThird = isNullTransformation(opThird->nameStr()); - CoordinateOperationNNPtr opSecondCloned( - (isNullFirst || isNullThird || sourceAndTargetAre3D) - ? opSecond->shallowClone() - : opSecond); - if (isNullFirst || isNullThird) { - if (opSecondCloned->identifiers().size() == 1 && - (*opSecondCloned->identifiers()[0]->codeSpace()) - .find("DERIVED_FROM") == std::string::npos) { - { - util::PropertyMap map; - addModifiedIdentifier(map, opSecondCloned.get(), false, - true); - opSecondCloned->setProperties(map); - } - auto invCO = dynamic_cast( - opSecondCloned.get()); - if (invCO) { - auto invCOForward = invCO->forwardOperation().get(); - if (invCOForward->identifiers().size() == 1 && - (*invCOForward->identifiers()[0]->codeSpace()) - .find("DERIVED_FROM") == - std::string::npos) { + std::vector subOps; + const bool isNullThird = + isNullTransformation(opThird->nameStr()); + CoordinateOperationNNPtr opSecondCloned( + (isNullFirst || isNullThird || sourceAndTargetAre3D) + ? opSecond->shallowClone() + : opSecond); + if (isNullFirst || isNullThird) { + if (opSecondCloned->identifiers().size() == 1 && + (*opSecondCloned->identifiers()[0]->codeSpace()) + .find("DERIVED_FROM") == std::string::npos) { + { util::PropertyMap map; - addModifiedIdentifier(map, invCOForward, false, - true); - invCOForward->setProperties(map); + addModifiedIdentifier(map, opSecondCloned.get(), + false, true); + opSecondCloned->setProperties(map); + } + auto invCO = dynamic_cast( + opSecondCloned.get()); + if (invCO) { + auto invCOForward = invCO->forwardOperation().get(); + if (invCOForward->identifiers().size() == 1 && + (*invCOForward->identifiers()[0]->codeSpace()) + .find("DERIVED_FROM") == + std::string::npos) { + util::PropertyMap map; + addModifiedIdentifier(map, invCOForward, false, + true); + invCOForward->setProperties(map); + } } } } - } - if (sourceAndTargetAre3D) { - - // Force Helmert operations to use the 3D domain, even if the - // ones we found in EPSG are advertized for the 2D domain. - auto concat = - dynamic_cast(opSecondCloned.get()); - if (concat) { - std::vector newSteps; - for (const auto &step : concat->operations()) { - auto newStep = step->shallowClone(); - setCRSs(newStep.get(), - newStep->sourceCRS()->promoteTo3D(std::string(), - dbContext), - newStep->targetCRS()->promoteTo3D(std::string(), - dbContext)); - newSteps.emplace_back(newStep); + if (sourceAndTargetAre3D) { + + // Force Helmert operations to use the 3D domain, even if + // the ones we found in EPSG are advertized for the 2D + // domain. + auto concat = dynamic_cast( + opSecondCloned.get()); + if (concat) { + std::vector newSteps; + for (const auto &step : concat->operations()) { + auto newStep = step->shallowClone(); + setCRSs(newStep.get(), + newStep->sourceCRS()->promoteTo3D( + std::string(), dbContext), + newStep->targetCRS()->promoteTo3D( + std::string(), dbContext)); + newSteps.emplace_back(newStep); + } + opSecondCloned = + ConcatenatedOperation::createComputeMetadata( + newSteps, disallowEmptyIntersection); + } else { + setCRSs(opSecondCloned.get(), + opSecondCloned->sourceCRS()->promoteTo3D( + std::string(), dbContext), + opSecondCloned->targetCRS()->promoteTo3D( + std::string(), dbContext)); } - opSecondCloned = - ConcatenatedOperation::createComputeMetadata( - newSteps, disallowEmptyIntersection); + } + if (isNullFirst) { + auto oldTarget( + NN_CHECK_ASSERT(opSecondCloned->targetCRS())); + setCRSs(opSecondCloned.get(), sourceCRS, oldTarget); } else { - setCRSs(opSecondCloned.get(), - opSecondCloned->sourceCRS()->promoteTo3D( - std::string(), dbContext), - opSecondCloned->targetCRS()->promoteTo3D( - std::string(), dbContext)); + subOps.emplace_back(opFirst); + } + if (!opsEpochChange.empty()) { + subOps.emplace_back(opsEpochChange[iEpochChange]); + } + if (isNullThird) { + auto oldSource( + NN_CHECK_ASSERT(opSecondCloned->sourceCRS())); + setCRSs(opSecondCloned.get(), oldSource, targetCRS); + subOps.emplace_back(opSecondCloned); + } else { + subOps.emplace_back(opSecondCloned); + subOps.emplace_back(opThird); } - } - if (isNullFirst) { - auto oldTarget(NN_CHECK_ASSERT(opSecondCloned->targetCRS())); - setCRSs(opSecondCloned.get(), sourceCRS, oldTarget); - } else { - subOps.emplace_back(opFirst); - } - if (isNullThird) { - auto oldSource(NN_CHECK_ASSERT(opSecondCloned->sourceCRS())); - setCRSs(opSecondCloned.get(), oldSource, targetCRS); - subOps.emplace_back(opSecondCloned); - } else { - subOps.emplace_back(opSecondCloned); - subOps.emplace_back(opThird); - } #ifdef TRACE_CREATE_OPERATIONS - std::string debugStr; - for (const auto &op : subOps) { - if (!debugStr.empty()) { - debugStr += " + "; + std::string debugStr; + for (const auto &op : subOps) { + if (!debugStr.empty()) { + debugStr += " + "; + } + debugStr += objectAsStr(op.get()); + debugStr += " ("; + debugStr += objectAsStr(op->sourceCRS().get()); + debugStr += "->"; + debugStr += objectAsStr(op->targetCRS().get()); + debugStr += ")"; } - debugStr += objectAsStr(op.get()); - debugStr += " ("; - debugStr += objectAsStr(op->sourceCRS().get()); - debugStr += "->"; - debugStr += objectAsStr(op->targetCRS().get()); - debugStr += ")"; - } - logTrace("transformation " + debugStr); + logTrace("transformation " + debugStr); #endif - try { - res.emplace_back(ConcatenatedOperation::createComputeMetadata( - subOps, disallowEmptyIntersection)); - } catch (const InvalidOperationEmptyIntersection &) { + try { + res.emplace_back( + ConcatenatedOperation::createComputeMetadata( + subOps, disallowEmptyIntersection)); + } catch (const InvalidOperationEmptyIntersection &) { + } } } }; @@ -3251,7 +3311,8 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( objectAsStr(targetCRS.get()) + ")"); #endif const auto opsFirst = createOperations( - sourceCRS, sourceSrcGeodModified, context); + sourceCRS, sourceEpoch, sourceSrcGeodModified, + sourceEpoch, context); assert(!opsFirst.empty()); const bool isNullFirst = isNullTransformation(opsFirst[0]->nameStr()); @@ -3280,7 +3341,8 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( ? candidateSrcGeod->promoteTo3D(std::string(), dbContext) : candidateSrcGeod); const auto opsFirst = - createOperations(sourceCRS, sourceSrcGeodModified, context); + createOperations(sourceCRS, sourceEpoch, sourceSrcGeodModified, + sourceEpoch, context); assert(!opsFirst.empty()); const bool isNullFirst = isNullTransformation(opsFirst[0]->nameStr()); @@ -3348,7 +3410,10 @@ bool CoordinateOperationFactory::Private::hasPerfectAccuracyResult( std::vector CoordinateOperationFactory::Private::createOperations( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context) { #ifdef TRACE_CREATE_OPERATIONS @@ -3417,19 +3482,21 @@ CoordinateOperationFactory::Private::createOperations( !derivedDst->baseCRS()->_isEquivalentTo( sourceCRS.get(), util::IComparable::Criterion::EQUIVALENT))) { - if (createOperationsFromDatabase(sourceCRS, targetCRS, context, geodSrc, - geodDst, geogSrc, geogDst, vertSrc, - vertDst, res)) { + if (createOperationsFromDatabase( + sourceCRS, sourceEpoch, targetCRS, targetEpoch, context, + geodSrc, geodDst, geogSrc, geogDst, vertSrc, vertDst, res)) { return res; } } if (geodSrc && geodSrc->isSphericalPlanetocentric()) { - createOperationsFromSphericalPlanetocentric(sourceCRS, targetCRS, + createOperationsFromSphericalPlanetocentric(sourceCRS, sourceEpoch, + targetCRS, targetEpoch, context, geodSrc, res); return res; } else if (geodDst && geodDst->isSphericalPlanetocentric()) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } // Special case if both CRS are geodetic @@ -3452,8 +3519,8 @@ CoordinateOperationFactory::Private::createOperations( auto geodDstBase = util::nn_dynamic_pointer_cast( boundDst->baseCRS()); if (geodDstBase && geodDstBase->isSphericalPlanetocentric()) { - return applyInverse( - createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations( + targetCRS, targetEpoch, sourceCRS, sourceEpoch, context)); } } @@ -3461,14 +3528,15 @@ CoordinateOperationFactory::Private::createOperations( // deriving conversion, with transforms from its baseCRS to the // targetCRS if (derivedSrc) { - createOperationsDerivedTo(sourceCRS, targetCRS, context, derivedSrc, - res); + createOperationsDerivedTo(sourceCRS, sourceEpoch, targetCRS, + targetEpoch, context, derivedSrc, res); return res; } // reverse of previous case if (derivedDst) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } // Order of comparison between the geogDst vs geodDst is important @@ -3477,13 +3545,15 @@ CoordinateOperationFactory::Private::createOperations( geogDst, res); return res; } else if (boundSrc && geodDst) { - createOperationsToGeod(sourceCRS, targetCRS, context, geodDst, res); + createOperationsToGeod(sourceCRS, sourceEpoch, targetCRS, targetEpoch, + context, geodDst, res); return res; } // reverse of previous case if (geodSrc && boundDst) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } // vertCRS (as boundCRS with transformation to target vertCRS) to @@ -3496,7 +3566,8 @@ CoordinateOperationFactory::Private::createOperations( // reverse of previous case if (boundDst && vertSrc) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } if (vertSrc && vertDst) { @@ -3508,14 +3579,15 @@ CoordinateOperationFactory::Private::createOperations( // A bit odd case as we are comparing apples to oranges, but in case // the vertical unit differ, do something useful. if (vertSrc && geogDst) { - createOperationsVertToGeog(sourceCRS, targetCRS, context, vertSrc, - geogDst, res); + createOperationsVertToGeog(sourceCRS, sourceEpoch, targetCRS, + targetEpoch, context, vertSrc, geogDst, res); return res; } // reverse of previous case if (vertDst && geogSrc) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } // boundCRS to boundCRS @@ -3528,23 +3600,27 @@ CoordinateOperationFactory::Private::createOperations( auto compoundSrc = dynamic_cast(sourceCRS.get()); // Order of comparison between the geogDst vs geodDst is important if (compoundSrc && geogDst) { - createOperationsCompoundToGeog(sourceCRS, targetCRS, context, - compoundSrc, geogDst, res); + createOperationsCompoundToGeog(sourceCRS, sourceEpoch, targetCRS, + targetEpoch, context, compoundSrc, + geogDst, res); return res; } else if (compoundSrc && geodDst) { - createOperationsToGeod(sourceCRS, targetCRS, context, geodDst, res); + createOperationsToGeod(sourceCRS, sourceEpoch, targetCRS, targetEpoch, + context, geodDst, res); return res; } // reverse of previous cases auto compoundDst = dynamic_cast(targetCRS.get()); if (geodSrc && compoundDst) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } if (compoundSrc && compoundDst) { - createOperationsCompoundToCompound(sourceCRS, targetCRS, context, - compoundSrc, compoundDst, res); + createOperationsCompoundToCompound(sourceCRS, sourceEpoch, targetCRS, + targetEpoch, context, compoundSrc, + compoundDst, res); return res; } @@ -3559,7 +3635,8 @@ CoordinateOperationFactory::Private::createOperations( // reverse of previous case if (boundDst && compoundSrc) { - return applyInverse(createOperations(targetCRS, sourceCRS, context)); + return applyInverse(createOperations(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context)); } return res; @@ -3619,7 +3696,10 @@ void CoordinateOperationFactory::Private::createOperationsFromProj4Ext( // --------------------------------------------------------------------------- bool CoordinateOperationFactory::Private::createOperationsFromDatabase( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeodeticCRS *geodSrc, const crs::GeodeticCRS *geodDst, const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst, const crs::VerticalCRS *vertSrc, @@ -3629,9 +3709,9 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( ENTER_FUNCTION(); if (geogSrc && vertDst) { - createOperationsFromDatabase(targetCRS, sourceCRS, context, geodDst, - geodSrc, geogDst, geogSrc, vertDst, - vertSrc, res); + createOperationsFromDatabase(targetCRS, targetEpoch, sourceCRS, + sourceEpoch, context, geodDst, geodSrc, + geogDst, geogSrc, vertDst, vertSrc, res); res = applyInverse(res); } else if (geogDst && vertSrc) { res = applyInverse(createOperationsGeogToVertFromGeoid( @@ -3647,15 +3727,10 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( } // Use PointMotionOperations if appropriate and available - if (geodSrc && geodDst && context.ignoreCoordinateEpochCounter == 0 && - context.context->getSourceCoordinateEpoch().has_value() && - context.context->getTargetCoordinateEpoch().has_value() && - !context.context->getSourceCoordinateEpoch() - ->coordinateEpoch() - ._isEquivalentTo(context.context->getTargetCoordinateEpoch() - ->coordinateEpoch())) { - CoordinateEpochIgnorer guard(context); - + if (geodSrc && geodDst && sourceEpoch.has_value() && + targetEpoch.has_value() && + !sourceEpoch->coordinateEpoch()._isEquivalentTo( + targetEpoch->coordinateEpoch())) { const auto pmoSrc = context.context->getAuthorityFactory()->getPointMotionOperationsFor( NN_NO_CHECK( @@ -3673,15 +3748,15 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( bool ok = true; for (size_t i = 0; i < pmoSrc.size(); ++i) { if (pmoSrc[i]->_isEquivalentTo(pmoDst[i].get())) { - auto pmo = pmoSrc[i]->cloneWithEpochs( - *(context.context->getSourceCoordinateEpoch()), - *(context.context->getTargetCoordinateEpoch())); + auto pmo = pmoSrc[i]->cloneWithEpochs(*sourceEpoch, + *targetEpoch); std::vector ops; if (!pmo->sourceCRS()->_isEquivalentTo( sourceCRS.get(), util::IComparable::Criterion::EQUIVALENT)) { - auto tmp = createOperations( - sourceCRS, pmo->sourceCRS(), context); + auto tmp = createOperations(sourceCRS, sourceEpoch, + pmo->sourceCRS(), + sourceEpoch, context); assert(!tmp.empty()); ops.emplace_back(tmp.front()); } @@ -3691,7 +3766,8 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( targetCRS.get(), util::IComparable::Criterion::EQUIVALENT)) { auto tmp = createOperations(pmo->sourceCRS(), - targetCRS, context); + targetEpoch, targetCRS, + targetEpoch, context); assert(!tmp.empty()); ops.emplace_back(tmp.front()); } @@ -3760,9 +3836,9 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( } } if (res.empty()) { - createOperationsFromDatabaseWithVertCRS(sourceCRS, targetCRS, - context, geogSrc, geogDst, - vertSrc, vertDst, res); + createOperationsFromDatabaseWithVertCRS( + sourceCRS, sourceEpoch, targetCRS, targetEpoch, context, + geogSrc, geogDst, vertSrc, vertDst, res); } } else if (geodSrc && geodDst) { @@ -3785,7 +3861,8 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( // GeographicCRS, // but transformations are only available between their // corresponding geocentric CRS. - createOperationsWithDatumPivot(res, sourceCRS, targetCRS, geodSrc, + createOperationsWithDatumPivot(res, sourceCRS, sourceEpoch, + targetCRS, targetEpoch, geodSrc, geodDst, context); doFilterAndCheckPerfectOp = !res.empty(); } @@ -4127,7 +4204,10 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid( std::vector CoordinateOperationFactory::Private:: createOperationsGeogToVertWithIntermediateVert( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, const crs::VerticalCRS *vertDst, Private::Context &context) { ENTER_FUNCTION(); @@ -4153,10 +4233,11 @@ std::vector CoordinateOperationFactory::Private:: auto candidatesVert = findCandidateVertCRSForDatum( authFactory, vertDst->datumNonNull(dbContext).get()); for (const auto &candidateVert : candidatesVert) { - auto resTmp = createOperations(sourceCRS, candidateVert, context); + auto resTmp = createOperations(sourceCRS, sourceEpoch, candidateVert, + sourceEpoch, context); if (!resTmp.empty()) { - const auto opsSecond = - createOperations(candidateVert, targetCRS, context); + const auto opsSecond = createOperations( + candidateVert, sourceEpoch, targetCRS, targetEpoch, context); if (!opsSecond.empty()) { // The transformation from candidateVert to targetCRS should // be just a unit change typically, so take only the first one, @@ -4256,7 +4337,10 @@ std::vector CoordinateOperationFactory::Private:: void CoordinateOperationFactory::Private:: createOperationsFromDatabaseWithVertCRS( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeographicCRS *geogSrc, const crs::GeographicCRS *geogDst, const crs::VerticalCRS *vertSrc, const crs::VerticalCRS *vertDst, @@ -4268,12 +4352,12 @@ void CoordinateOperationFactory::Private:: !context.inCreateOperationsGeogToVertWithIntermediateVert && geogSrc && vertDst) { res = createOperationsGeogToVertWithIntermediateVert( - sourceCRS, targetCRS, vertDst, context); + sourceCRS, sourceEpoch, targetCRS, targetEpoch, vertDst, context); } else if (res.empty() && !context.inCreateOperationsGeogToVertWithIntermediateVert && geogDst && vertSrc) { res = applyInverse(createOperationsGeogToVertWithIntermediateVert( - targetCRS, sourceCRS, vertSrc, context)); + targetCRS, targetEpoch, sourceCRS, sourceEpoch, vertSrc, context)); } // NAD83 only exists in 2D version in EPSG, so if it has been @@ -4445,7 +4529,9 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( common::UnitOfMeasure::METRE))); auto opFirst = Conversion::createGeographicGeocentric(sourceCRS, interm_crs); - auto opsSecond = createOperations(interm_crs, targetCRS, context); + auto opsSecond = createOperations( + interm_crs, util::optional(), targetCRS, + util::optional(), context); for (const auto &opSecond : opsSecond) { try { res.emplace_back( @@ -4500,7 +4586,10 @@ void CoordinateOperationFactory::Private::createOperationsGeodToGeod( void CoordinateOperationFactory::Private:: createOperationsFromSphericalPlanetocentric( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeodeticCRS *geodSrc, std::vector &res) { @@ -4539,7 +4628,8 @@ void CoordinateOperationFactory::Private:: auto opFirst = Conversion::createGeographicGeocentricLatitude(sourceCRS, interm_crs); - auto opsSecond = createOperations(interm_crs, targetCRS, context); + auto opsSecond = createOperations(interm_crs, sourceEpoch, targetCRS, + targetEpoch, context); for (const auto &opSecond : opsSecond) { try { res.emplace_back(ConcatenatedOperation::createComputeMetadata( @@ -4587,7 +4677,9 @@ void CoordinateOperationFactory::Private:: auto opFirst = Conversion::createGeographicGeocentricLatitude(geodSrcBase, intermGeog); setCRSs(opFirst.get(), sourceCRS, intermBoundCRS); - auto opsSecond = createOperations(intermBoundCRS, targetCRS, context); + auto opsSecond = createOperations( + intermBoundCRS, util::optional(), targetCRS, + util::optional(), context); for (const auto &opSecond : opsSecond) { try { auto opSecondClone = opSecond->shallowClone(); @@ -4605,7 +4697,10 @@ void CoordinateOperationFactory::Private:: // --------------------------------------------------------------------------- void CoordinateOperationFactory::Private::createOperationsDerivedTo( - const crs::CRSNNPtr & /*sourceCRS*/, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr & /*sourceCRS*/, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::DerivedCRS *derivedSrc, std::vector &res) { @@ -4619,8 +4714,8 @@ void CoordinateOperationFactory::Private::createOperationsDerivedTo( res.emplace_back(opFirst); return; } - auto opsSecond = - createOperations(derivedSrc->baseCRS(), targetCRS, context); + auto opsSecond = createOperations(derivedSrc->baseCRS(), sourceEpoch, + targetCRS, targetEpoch, context); for (const auto &opSecond : opsSecond) { try { res.emplace_back(ConcatenatedOperation::createComputeMetadata( @@ -4672,7 +4767,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( if (geogCRSOfBaseOfBoundSrcDatum->_isEquivalentTo( geogDstDatum.get(), util::IComparable::Criterion::EQUIVALENT, dbContext)) { - res = createOperations(boundSrc->baseCRS(), targetCRS, context); + res = createOperations( + boundSrc->baseCRS(), util::optional(), + targetCRS, util::optional(), context); return; } } @@ -4689,9 +4786,11 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( if (!geogCRSOfBaseOfBoundSrc->_isEquivalentTo( boundSrc->transformation()->sourceCRS().get(), util::IComparable::Criterion::EQUIVALENT)) { - auto opsIntermediate = createOperations( - NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), - boundSrc->transformation()->sourceCRS(), context); + auto opsIntermediate = + createOperations(NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), + util::optional(), + boundSrc->transformation()->sourceCRS(), + util::optional(), context); assert(!opsIntermediate.empty()); opIntermediate = opsIntermediate.front(); } @@ -4714,7 +4813,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( return; } auto opsFirst = createOperations( - boundSrc->baseCRS(), NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), context); + boundSrc->baseCRS(), util::optional(), + NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), + util::optional(), context); if (!opsFirst.empty()) { for (const auto &opFirst : opsFirst) { try { @@ -4740,8 +4841,12 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( geogDstDatum.get(), util::IComparable::Criterion::EQUIVALENT)) { auto opsFirst = createOperations( - boundSrc->baseCRS(), NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), context); - auto opsLast = createOperations(hubSrc, targetCRS, context); + boundSrc->baseCRS(), util::optional(), + NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), + util::optional(), context); + auto opsLast = createOperations( + hubSrc, util::optional(), targetCRS, + util::optional(), context); if (!opsFirst.empty() && !opsLast.empty()) { CoordinateOperationPtr opIntermediate; if (!geogCRSOfBaseOfBoundSrc->_isEquivalentTo( @@ -4749,7 +4854,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( util::IComparable::Criterion::EQUIVALENT)) { auto opsIntermediate = createOperations( NN_NO_CHECK(geogCRSOfBaseOfBoundSrc), - boundSrc->transformation()->sourceCRS(), context); + util::optional(), + boundSrc->transformation()->sourceCRS(), + util::optional(), context); assert(!opsIntermediate.empty()); opIntermediate = opsIntermediate.front(); } @@ -4803,7 +4910,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( return; } else { auto opsFirst = createOperations( - boundSrc->baseCRS(), nnGeogCRSOfBaseOfBoundSrc, context); + boundSrc->baseCRS(), util::optional(), + nnGeogCRSOfBaseOfBoundSrc, util::optional(), + context); auto transf = boundSrc->transformation()->shallowClone(); transf->setProperties(util::PropertyMap().set( common::IdentifiedObject::NAME_KEY, @@ -4834,8 +4943,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( if (dynamic_cast(transfSrc.get()) && !boundSrc->baseCRS()->_isEquivalentTo( transfSrc.get(), util::IComparable::Criterion::EQUIVALENT)) { - auto opsFirst = - createOperations(boundSrc->baseCRS(), transfSrc, context); + auto opsFirst = createOperations( + boundSrc->baseCRS(), util::optional(), + transfSrc, util::optional(), context); for (const auto &opFirst : opsFirst) { try { res.emplace_back( @@ -4856,8 +4966,12 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( geogCRSOfBaseOfBoundSrc) { // This one should go to the above 'Is it: boundCRS to a geogCRS // that is the same as the hubCRS ?' case - auto opsFirst = createOperations(sourceCRS, hubSrc, context); - auto opsLast = createOperations(hubSrc, targetCRS, context); + auto opsFirst = createOperations( + sourceCRS, util::optional(), hubSrc, + util::optional(), context); + auto opsLast = createOperations( + hubSrc, util::optional(), targetCRS, + util::optional(), context); if (!opsFirst.empty() && !opsLast.empty()) { for (const auto &opFirst : opsFirst) { for (const auto &opLast : opsLast) { @@ -4892,7 +5006,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( // GeographicCRS if (vertCRSOfBaseOfBoundSrc && hubSrcGeog && dynamic_cast(hubSrcGeog) == nullptr) { - auto opsFirst = createOperations(sourceCRS, hubSrc, context); + auto opsFirst = createOperations( + sourceCRS, util::optional(), hubSrc, + util::optional(), context); if (context.skipHorizontalTransformation) { if (!opsFirst.empty()) { const auto &hubAxisList = @@ -4949,7 +5065,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( } return; } else { - auto opsSecond = createOperations(hubSrc, targetCRS, context); + auto opsSecond = createOperations( + hubSrc, util::optional(), targetCRS, + util::optional(), context); if (!opsFirst.empty() && !opsSecond.empty()) { for (const auto &opFirst : opsFirst) { for (const auto &opLast : opsSecond) { @@ -4978,7 +5096,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( } } - res = createOperations(boundSrc->baseCRS(), targetCRS, context); + res = createOperations(boundSrc->baseCRS(), + util::optional(), targetCRS, + util::optional(), context); } // --------------------------------------------------------------------------- @@ -5002,7 +5122,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToVert( return; } - res = createOperations(boundSrc->baseCRS(), targetCRS, context); + res = createOperations(boundSrc->baseCRS(), + util::optional(), targetCRS, + util::optional(), context); } // --------------------------------------------------------------------------- @@ -5095,7 +5217,10 @@ void CoordinateOperationFactory::Private::createOperationsVertToVert( // --------------------------------------------------------------------------- void CoordinateOperationFactory::Private::createOperationsVertToGeog( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::VerticalCRS *vertSrc, const crs::GeographicCRS *geogDst, std::vector &res) { @@ -5120,7 +5245,7 @@ void CoordinateOperationFactory::Private::createOperationsVertToGeog( NN_NO_CHECK( util::nn_dynamic_pointer_cast( match)), - targetCRS, context); + sourceEpoch, targetCRS, targetEpoch, context); res.insert(res.end(), resTmp.begin(), resTmp.end()); return; } @@ -5205,8 +5330,12 @@ void CoordinateOperationFactory::Private::createOperationsBoundToBound( if (hubSrcGeog && hubDstGeog && hubSrcGeog->_isEquivalentTo(hubDstGeog, util::IComparable::Criterion::EQUIVALENT)) { - auto opsFirst = createOperations(sourceCRS, hubSrc, context); - auto opsLast = createOperations(hubSrc, targetCRS, context); + auto opsFirst = createOperations( + sourceCRS, util::optional(), hubSrc, + util::optional(), context); + auto opsLast = createOperations( + hubSrc, util::optional(), targetCRS, + util::optional(), context); for (const auto &opFirst : opsFirst) { for (const auto &opLast : opsLast) { try { @@ -5245,8 +5374,10 @@ void CoordinateOperationFactory::Private::createOperationsBoundToBound( boundSrc->transformation()->_isEquivalentTo( boundDst->transformation().get(), util::IComparable::Criterion::EQUIVALENT))) { - res = createOperations(boundSrc->baseCRS(), boundDst->baseCRS(), - context); + res = createOperations( + boundSrc->baseCRS(), util::optional(), + boundDst->baseCRS(), util::optional(), + context); return; } } @@ -5258,8 +5389,12 @@ void CoordinateOperationFactory::Private::createOperationsBoundToBound( hubSrcGeog->_isEquivalentTo(hubDstGeog, util::IComparable::Criterion::EQUIVALENT) && vertCRSOfBaseOfBoundSrc && vertCRSOfBaseOfBoundDst) { - auto opsFirst = createOperations(sourceCRS, hubSrc, context); - auto opsLast = createOperations(hubSrc, targetCRS, context); + auto opsFirst = createOperations( + sourceCRS, util::optional(), hubSrc, + util::optional(), context); + auto opsLast = createOperations( + hubSrc, util::optional(), targetCRS, + util::optional(), context); if (!opsFirst.empty() && !opsLast.empty()) { for (const auto &opFirst : opsFirst) { for (const auto &opLast : opsLast) { @@ -5277,7 +5412,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToBound( } } - res = createOperations(boundSrc->baseCRS(), boundDst->baseCRS(), context); + res = createOperations( + boundSrc->baseCRS(), util::optional(), + boundDst->baseCRS(), util::optional(), context); } // --------------------------------------------------------------------------- @@ -5425,7 +5562,10 @@ getInterpolationGeogCRS(const CoordinateOperationNNPtr &verticalTransform, // --------------------------------------------------------------------------- void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::CompoundCRS *compoundSrc, const crs::GeographicCRS *geogDst, std::vector &res) { @@ -5449,10 +5589,12 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( auto intermCompound = crs::CompoundCRS::create(properties, intermComponents); auto opsFirst = - createOperations(sourceCRS, intermCompound, context); + createOperations(sourceCRS, sourceEpoch, intermCompound, + sourceEpoch, context); assert(!opsFirst.empty()); auto opsLast = - createOperations(intermCompound, targetCRS, context); + createOperations(intermCompound, sourceEpoch, targetCRS, + targetEpoch, context); for (const auto &opLast : opsLast) { try { res.emplace_back( @@ -5483,10 +5625,12 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( auto intermCompound = crs::CompoundCRS::create(properties, intermComponents); auto opsFirst = - createOperations(sourceCRS, intermCompound, context); + createOperations(sourceCRS, sourceEpoch, intermCompound, + sourceEpoch, context); assert(!opsFirst.empty()); auto opsLast = - createOperations(intermCompound, targetCRS, context); + createOperations(intermCompound, sourceEpoch, targetCRS, + targetEpoch, context); for (const auto &opLast : opsLast) { try { res.emplace_back( @@ -5532,7 +5676,8 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( util::PropertyMap().set( common::IdentifiedObject::NAME_KEY, std::string()), {comp0Bound->baseCRS(), componentsSrc[1]}), - op1Dest, context); + util::optional(), op1Dest, + util::optional(), context); const auto op2Dest = comp0Bound->hubCRS()->promoteTo3D(std::string(), dbContext); @@ -5543,9 +5688,12 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( NN_NO_CHECK(comp0Geog), comp0Bound->hubCRS(), comp0Bound->transformation()) ->promoteTo3D(std::string(), dbContext), - op2Dest, context); + util::optional(), op2Dest, + util::optional(), context); - const auto ops3 = createOperations(op2Dest, targetCRS, context); + const auto ops3 = createOperations( + op2Dest, util::optional(), targetCRS, + util::optional(), context); for (const auto &op1 : ops1) { auto op1Clone = op1->shallowClone(); @@ -5575,7 +5723,8 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( const auto dstSingle = dynamic_cast(targetCRS.get()); if (dstSingle && dstSingle->coordinateSystem()->axisList().size() == 2) { - auto tmp = createOperations(componentsSrc[0], targetCRS, context); + auto tmp = createOperations(componentsSrc[0], sourceEpoch, + targetCRS, targetEpoch, context); for (const auto &op : tmp) { auto opClone = op->shallowClone(); setCRSs(opClone.get(), sourceCRS, targetCRS); @@ -5587,8 +5736,8 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( std::vector horizTransforms; auto srcGeogCRS = componentsSrc[0]->extractGeographicCRS(); if (srcGeogCRS) { - horizTransforms = - createOperations(componentsSrc[0], targetCRS, context); + horizTransforms = createOperations(componentsSrc[0], sourceEpoch, + targetCRS, targetEpoch, context); } std::vector verticalTransforms; @@ -5611,8 +5760,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( SetSkipHorizontalTransform setSkipHorizontalTransform(context); verticalTransforms = createOperations( - componentsSrc[1], - targetCRS->promoteTo3D(std::string(), dbContext), context); + componentsSrc[1], util::optional(), + targetCRS->promoteTo3D(std::string(), dbContext), + util::optional(), context); bool foundRegisteredTransformWithAllGridsAvailable = false; const auto gridAvailabilityUse = context.context->getGridAvailabilityUse(); @@ -5656,8 +5806,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( : cs::VerticalCS::createGravityRelatedHeight( common::UnitOfMeasure::METRE) ->axisList()[0]); - auto verticalTransformsTmp = - createOperations(componentsSrc[1], geogCRSTmp, context); + auto verticalTransformsTmp = createOperations( + componentsSrc[1], util::optional(), + geogCRSTmp, util::optional(), context); bool foundRegisteredTransform = false; foundRegisteredTransformWithAllGridsAvailable = false; for (const auto &op : verticalTransformsTmp) { @@ -5705,7 +5856,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( std::map cacheHorizToInterpAndInterpToTarget; - CoordinateEpochIgnorer guard(context); for (const auto &verticalTransform : verticalTransforms) { #ifdef TRACE_CREATE_OPERATIONS ENTER_BLOCK("Considering vertical transform " + @@ -5737,8 +5887,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( // Do the sourceCRS to interpolation CRS in 2D only // to avoid altering the orthometric elevation srcToInterpOps = createOperations( - componentsSrc[0], NN_NO_CHECK(interpolationGeogCRS), - context); + componentsSrc[0], util::optional(), + NN_NO_CHECK(interpolationGeogCRS), + util::optional(), context); // e.g when doing COMPOUND_CRS[ // NAD83(CRS)+TOWGS84[0,0,0], @@ -5782,8 +5933,10 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( createGravityRelatedHeight( common::UnitOfMeasure::METRE) ->axisList()[0]); - interpToTargetOps = - createOperations(interp3D, targetCRS, context); + interpToTargetOps = createOperations( + interp3D, util::optional(), + targetCRS, util::optional(), + context); }; if (!key.empty()) { @@ -5921,7 +6074,10 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( // --------------------------------------------------------------------------- void CoordinateOperationFactory::Private::createOperationsToGeod( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::GeodeticCRS *geodDst, std::vector &res) { @@ -5934,10 +6090,10 @@ void CoordinateOperationFactory::Private::createOperationsToGeod( .set(common::ObjectUsage::DOMAIN_OF_VALIDITY_KEY, metadata::Extent::WORLD), geodDst->datum(), geodDst->datumEnsemble(), cs)); - auto sourceToGeog3DOps = - createOperations(sourceCRS, intermGeog3DCRS, context); - auto geog3DToTargetOps = - createOperations(intermGeog3DCRS, targetCRS, context); + auto sourceToGeog3DOps = createOperations( + sourceCRS, sourceEpoch, intermGeog3DCRS, sourceEpoch, context); + auto geog3DToTargetOps = createOperations(intermGeog3DCRS, targetEpoch, + targetCRS, targetEpoch, context); if (!geog3DToTargetOps.empty()) { for (const auto &op : sourceToGeog3DOps) { auto newOp = op->shallowClone(); @@ -5955,7 +6111,10 @@ void CoordinateOperationFactory::Private::createOperationsToGeod( // --------------------------------------------------------------------------- void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( - const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, + const crs::CRSNNPtr &sourceCRS, + const util::optional &sourceEpoch, + const crs::CRSNNPtr &targetCRS, + const util::optional &targetEpoch, Private::Context &context, const crs::CompoundCRS *compoundSrc, const crs::CompoundCRS *compoundDst, std::vector &res) { @@ -5973,13 +6132,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( // Use PointMotionOperations if appropriate and available const auto &authFactory = context.context->getAuthorityFactory(); - if (authFactory && context.ignoreCoordinateEpochCounter == 0 && - context.context->getSourceCoordinateEpoch().has_value() && - context.context->getTargetCoordinateEpoch().has_value() && - !context.context->getSourceCoordinateEpoch() - ->coordinateEpoch() - ._isEquivalentTo(context.context->getTargetCoordinateEpoch() - ->coordinateEpoch()) && + if (authFactory && sourceEpoch.has_value() && targetEpoch.has_value() && + !sourceEpoch->coordinateEpoch()._isEquivalentTo( + targetEpoch->coordinateEpoch()) && srcGeog->_isEquivalentTo(dstGeog.get(), util::IComparable::Criterion::EQUIVALENT)) { const auto pmoSrc = authFactory->getPointMotionOperationsFor( @@ -5987,10 +6142,12 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( if (!pmoSrc.empty()) { auto geog3D = srcGeog->promoteTo3D( std::string(), authFactory->databaseContext().as_nullable()); - auto pmoOps = createOperations(geog3D, geog3D, context); - CoordinateEpochIgnorer guard(context); - auto opsFirst = createOperations(sourceCRS, geog3D, context); - auto opsLast = createOperations(geog3D, targetCRS, context); + auto opsFirst = createOperations(sourceCRS, sourceEpoch, geog3D, + sourceEpoch, context); + auto pmoOps = createOperations(geog3D, sourceEpoch, geog3D, + targetEpoch, context); + auto opsLast = createOperations(geog3D, targetEpoch, targetCRS, + targetEpoch, context); for (const auto &opFirst : opsFirst) { if (!opFirst->hasBallparkTransformation()) { for (const auto &opMiddle : pmoOps) { @@ -6040,8 +6197,10 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( : nullptr; auto hub3D = comp0SrcBound->hubCRS()->promoteTo3D(std::string(), dbContext); - const auto ops1 = createOperations(sourceCRS, hub3D, context); - const auto ops2 = createOperations(hub3D, targetCRS, context); + const auto ops1 = createOperations(sourceCRS, sourceEpoch, hub3D, + sourceEpoch, context); + const auto ops2 = createOperations(hub3D, targetEpoch, targetCRS, + targetEpoch, context); for (const auto &op1 : ops1) { for (const auto &op2 : ops2) { try { @@ -6068,8 +6227,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( // If we have a geoid model, force using through it bTryThroughIntermediateGeogCRS = true; } else { - verticalTransforms = createOperations( - componentsSrc[1], componentsDst[1], context); + verticalTransforms = + createOperations(componentsSrc[1], sourceEpoch, + componentsDst[1], targetEpoch, context); // If we didn't find a non-ballpark transformation between // the 2 vertical CRS, then try through intermediate geographic // CRS @@ -6086,12 +6246,12 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( : nullptr; const auto createWithIntermediateCRS = - [&sourceCRS, &targetCRS, &context, + [&sourceCRS, &sourceEpoch, &targetCRS, &targetEpoch, &context, &res](const crs::CRSNNPtr &intermCRS) { - const auto ops1 = - createOperations(sourceCRS, intermCRS, context); - const auto ops2 = - createOperations(intermCRS, targetCRS, context); + const auto ops1 = createOperations( + sourceCRS, sourceEpoch, intermCRS, sourceEpoch, context); + const auto ops2 = createOperations( + intermCRS, targetEpoch, targetCRS, targetEpoch, context); for (const auto &op1 : ops1) { for (const auto &op2 : ops2) { try { @@ -6145,10 +6305,10 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( intermGeogSrcIsSameAsIntermGeogDst ? intermGeogSrc : dstGeog->promoteTo3D(std::string(), dbContext); - const auto opsSrcToGeog = - createOperations(sourceCRS, intermGeogSrc, context); - const auto opsGeogToTarget = - createOperations(intermGeogDst, targetCRS, context); + const auto opsSrcToGeog = createOperations( + sourceCRS, sourceEpoch, intermGeogSrc, sourceEpoch, context); + const auto opsGeogToTarget = createOperations( + intermGeogDst, targetEpoch, targetCRS, targetEpoch, context); // We preferably accept using an intermediate if the operations // to it do not include ballpark operations, but if they do include @@ -6185,7 +6345,8 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( size_t bestStepCount = 0; if (hasNonTrivialSrcTransf && hasNonTrivialTargetTransf) { const auto opsGeogSrcToGeogDst = - createOperations(intermGeogSrc, intermGeogDst, context); + createOperations(intermGeogSrc, sourceEpoch, intermGeogDst, + targetEpoch, context); // In first pass, exclude (horizontal) ballpark operations, but // accept them in second pass. for (int pass = 0; pass <= 1 && res.empty(); pass++) { @@ -6317,8 +6478,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( intermGeogSrc->identifiers().empty() && !intermGeogDst->identifiers().empty() && hasNonTrivialTargetTransf) { - const auto opsSrcToIntermGeog = - createOperations(sourceCRS, intermGeogDst, context); + const auto opsSrcToIntermGeog = createOperations( + sourceCRS, util::optional(), intermGeogDst, + util::optional(), context); if (hasNonTrivialTransf(opsSrcToIntermGeog)) { createOpsInTwoSteps(opsSrcToIntermGeog, opsGeogToTarget); } @@ -6328,8 +6490,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( intermGeogDst->identifiers().empty() && !intermGeogSrc->identifiers().empty() && hasNonTrivialSrcTransf) { - const auto opsIntermGeogToDst = - createOperations(intermGeogSrc, targetCRS, context); + const auto opsIntermGeogToDst = createOperations( + intermGeogSrc, util::optional(), targetCRS, + util::optional(), context); if (hasNonTrivialTransf(opsIntermGeogToDst)) { createOpsInTwoSteps(opsSrcToGeog, opsIntermGeogToDst); } @@ -6367,11 +6530,13 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( compSrc0BoundCrs->hubCRS())); } } - CoordinateEpochIgnorer guard(context); - auto opSrcCRSToGeogCRS = - createOperations(componentsSrc[0], interpolationGeogCRS, context); - auto opGeogCRStoDstCRS = - createOperations(interpolationGeogCRS, componentsDst[0], context); + + auto opSrcCRSToGeogCRS = createOperations( + componentsSrc[0], util::optional(), + interpolationGeogCRS, util::optional(), context); + auto opGeogCRStoDstCRS = createOperations( + interpolationGeogCRS, util::optional(), + componentsDst[0], util::optional(), context); for (const auto &opSrc : opSrcCRSToGeogCRS) { for (const auto &opDst : opGeogCRStoDstCRS) { @@ -6408,8 +6573,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( std::vector opsHoriz; createOperationsFromDatabase( - componentsSrc[0], componentsDst[0], context, srcGeog.get(), - dstGeog.get(), srcGeog.get(), dstGeog.get(), + componentsSrc[0], util::optional(), + componentsDst[0], util::optional(), context, + srcGeog.get(), dstGeog.get(), srcGeog.get(), dstGeog.get(), /*vertSrc=*/nullptr, /*vertDst=*/nullptr, opsHoriz); for (const auto &opHoriz : opsHoriz) { res.emplace_back(createHorizNullVerticalPROJBased( @@ -6419,8 +6585,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } if (verticalTransforms.empty()) { - auto resTmp = - createOperations(componentsSrc[0], componentsDst[0], context); + auto resTmp = createOperations( + componentsSrc[0], util::optional(), + componentsDst[0], util::optional(), context); for (const auto &op : resTmp) { auto opClone = op->shallowClone(); setCRSs(opClone.get(), sourceCRS, targetCRS); @@ -6478,7 +6645,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound( auto dstNew = crs::CompoundCRS::create( properties, {NN_NO_CHECK(compDst0BoundCrs), componentsDst[1]}); - auto tmpRes = createOperations(srcNew, dstNew, context); + auto tmpRes = createOperations( + srcNew, util::optional(), dstNew, + util::optional(), context); for (const auto &op : tmpRes) { auto opClone = op->shallowClone(); setCRSs(opClone.get(), sourceCRS, targetCRS); @@ -6519,10 +6688,14 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound( metadata::Extent::WORLD), boundSrcHubAsGeogCRS->datum(), boundSrcHubAsGeogCRS->datumEnsemble(), cs)); - auto sourceToGeog3DOps = - createOperations(sourceCRS, intermGeog3DCRS, context); - auto geog3DToTargetOps = - createOperations(intermGeog3DCRS, targetCRS, context); + auto sourceToGeog3DOps = createOperations( + sourceCRS, util::optional(), + intermGeog3DCRS, util::optional(), + context); + auto geog3DToTargetOps = createOperations( + intermGeog3DCRS, util::optional(), + targetCRS, util::optional(), + context); for (const auto &opSrc : sourceToGeog3DOps) { for (const auto &opDst : geog3DToTargetOps) { if (opSrc->targetCRS() && opDst->sourceCRS() && @@ -6536,7 +6709,10 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound( // So create an adapter operation... auto intermOps = createOperations( NN_NO_CHECK(opSrc->targetCRS()), - NN_NO_CHECK(opDst->sourceCRS()), context); + util::optional(), + NN_NO_CHECK(opDst->sourceCRS()), + util::optional(), + context); if (!intermOps.empty()) { res.emplace_back( ConcatenatedOperation:: @@ -6579,9 +6755,12 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound( comp0Geog->datumNonNull(dbContext).get(), util::IComparable::Criterion::EQUIVALENT)) { const auto ops1 = - createOperations(sourceCRS, boundSrc->hubCRS(), context); - const auto ops2 = - createOperations(boundSrc->hubCRS(), targetCRS, context); + createOperations(sourceCRS, util::optional(), + boundSrc->hubCRS(), + util::optional(), context); + const auto ops2 = createOperations( + boundSrc->hubCRS(), util::optional(), + targetCRS, util::optional(), context); for (const auto &op1 : ops1) { for (const auto &op2 : ops2) { try { @@ -6600,7 +6779,9 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound( // There might be better things to do, but for now just ignore the // transformation of the bound CRS - res = createOperations(boundSrc->baseCRS(), targetCRS, context); + res = createOperations(boundSrc->baseCRS(), + util::optional(), targetCRS, + util::optional(), context); } //! @endcond @@ -6666,8 +6847,10 @@ CoordinateOperationFactory::createOperations( } auto resFiltered = filterAndSort( - Private::createOperations(l_resolvedSourceCRS, l_resolvedTargetCRS, - contextPrivate), + Private::createOperations( + l_resolvedSourceCRS, context->getSourceCoordinateEpoch(), + l_resolvedTargetCRS, context->getTargetCoordinateEpoch(), + contextPrivate), context, sourceCRSExtent, targetCRSExtent); if (context->getSourceCoordinateEpoch().has_value() || context->getTargetCoordinateEpoch().has_value()) { diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index ee622d2395..ba5f5ff08f 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9546,7 +9546,7 @@ TEST(operation, IGNORE_GRID_AVAILABILITY); auto list = CoordinateOperationFactory::create()->createOperations( crs_2002, crs_2005, ctxt); - ASSERT_EQ(list.size(), 2U); + ASSERT_GE(list.size(), 2U); EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ( list[0]->exportToPROJString(PROJStringFormatter::create().get()), @@ -9567,8 +9567,6 @@ TEST(operation, "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " "+step +proj=axisswap +order=2,1"); EXPECT_TRUE(list[1]->hasBallparkTransformation()); - EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), - "+proj=noop"); } // --------------------------------------------------------------------------- From 0b48c6d9ee4ef4a7d884c0093635c53761424afd Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 5 Sep 2023 19:25:45 +0200 Subject: [PATCH 047/199] createOperations(): fix NAD83_CSRS_1997_MTMxx_HT2_1997 to NAD83_CSRS_2010_UTMyy_CGVD2013_2010 --- .../operation/coordinateoperationfactory.cpp | 84 ++++++++++++++++++- test/unit/test_operationfactory.cpp | 38 +++++++++ 2 files changed, 118 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 7d0147cf9b..a4237d87d9 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -5576,6 +5576,10 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( const auto &componentsSrc = compoundSrc->componentReferenceSystems(); if (!componentsSrc.empty()) { + const auto dbContext = + authFactory ? authFactory->databaseContext().as_nullable() + : nullptr; + if (componentsSrc.size() == 2) { auto derivedHSrc = dynamic_cast(componentsSrc[0].get()); @@ -5607,6 +5611,82 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( return; } + auto geogSrc = dynamic_cast( + componentsSrc[0].get()); + // Sorry for this hack... aimed at transforming + // "NAD83(CSRS)v7 + CGVD2013a(1997) height @ 1997" to "NAD83(CSRS)v7 + // @ 1997" to "NAD83(CSRS)v3 + CGVD2013a(1997) height" to + // "NAD83(CSRS)v3" OR "NAD83(CSRS)v7 + CGVD2013a(2002) height @ + // 2002" to "NAD83(CSRS)v7 @ 2002" to "NAD83(CSRS)v4 + + // CGVD2013a(2002) height" to "NAD83(CSRS)v4" + if (dbContext && geogSrc && geogSrc->nameStr() == "NAD83(CSRS)v7" && + sourceEpoch.has_value() && + geogDst->coordinateSystem()->axisList().size() == 3U && + geogDst->nameStr() == geogSrc->nameStr() && + targetEpoch.has_value() && + sourceEpoch->coordinateEpoch()._isEquivalentTo( + targetEpoch->coordinateEpoch())) { + const bool is1997 = + std::abs(sourceEpoch->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR) - + 1997) < 1e-10; + const bool is2002 = + std::abs(sourceEpoch->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR) - + 2002) < 1e-10; + try { + auto authFactoryEPSG = io::AuthorityFactory::create( + authFactory->databaseContext(), "EPSG"); + if (geogSrc->_isEquivalentTo( + authFactoryEPSG + ->createCoordinateReferenceSystem("8255") + .get(), + util::IComparable::Criterion:: + EQUIVALENT) && // NAD83(CSRS)v7 + // 2D + geogDst->_isEquivalentTo( + authFactoryEPSG + ->createCoordinateReferenceSystem("8254") + .get(), + util::IComparable::Criterion:: + EQUIVALENT) && // NAD83(CSRS)v7 + // 3D + ((is1997 && componentsSrc[1]->nameStr() == + "CGVD2013a(1997) height") || + (is2002 && componentsSrc[1]->nameStr() == + "CGVD2013a(2002) height"))) { + const auto newGeogCRS_2D( + authFactoryEPSG->createCoordinateReferenceSystem( + is1997 ? "8240" : // NAD83(CSRS)v3 2D + "8246" // NAD83(CSRS)v4 2D + )); + const auto newGeogCRS_3D( + authFactoryEPSG->createCoordinateReferenceSystem( + is1997 ? "8239" : // NAD83(CSRS)v3 3D + "8244" // NAD83(CSRS)v4 3D + )); + std::vector intermComponents{ + newGeogCRS_2D, componentsSrc[1]}; + auto properties = util::PropertyMap().set( + common::IdentifiedObject::NAME_KEY, + intermComponents[0]->nameStr() + " + " + + intermComponents[1]->nameStr()); + auto newCompound = crs::CompoundCRS::create( + properties, intermComponents); + auto ops = createOperations(newCompound, sourceEpoch, + newGeogCRS_3D, sourceEpoch, + context); + for (const auto &op : ops) { + auto opClone = op->shallowClone(); + setCRSs(opClone.get(), sourceCRS, targetCRS); + res.emplace_back(opClone); + } + return; + } + } catch (const std::exception &) { + } + } + auto boundSrc = dynamic_cast(componentsSrc[0].get()); if (boundSrc) { @@ -5645,10 +5725,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( } } - const auto dbContext = - authFactory ? authFactory->databaseContext().as_nullable() - : nullptr; - // Deal with "+proj=something +geoidgrids +nadgrids/+towgs84" to // another CRS whose datum is not the same as the horizontal datum // of the source diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index ba5f5ff08f..818c3a2816 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9696,6 +9696,44 @@ TEST( // --------------------------------------------------------------------------- +TEST( + operation, + createOperation_compound_to_compound_with_point_motion_operation_special_case_CGVD2013a) { + auto dbContext = DatabaseContext::create(); + auto factoryNRCAN = AuthorityFactory::create(dbContext, "NRCAN"); + auto sourceCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_1997_UTM17_CGVD2013_1997"); + auto targetCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_2002_UTM17_CGVD2013_2002"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCM, targetCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=utm +zone=17 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " + "+multiplier=1 " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=set +v_4=1997 +omit_fwd " + "+step +proj=deformation +dt=5 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " + "+multiplier=1 " + "+step +proj=utm +zone=17 +ellps=GRS80"); +} + +// --------------------------------------------------------------------------- + TEST(operation, createOperation_Geographic3D_Offset_by_velocity_grid) { auto dbContext = DatabaseContext::create(); auto factoryEPSG = AuthorityFactory::create(dbContext, "EPSG"); From 1b1f3c7457ace1da8f4bdd4594723977bd214780 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 5 Sep 2023 20:24:55 +0200 Subject: [PATCH 048/199] createOperations(): tune for 'NAD83_CSRS_1997_xxxx_HT2_1997 to NAD83_CSRS_1997_yyyy_CGVD2013_1997' or 'NAD83_CSRS_2002_xxxx_HT2_2002 to NAD83_CSRS_2002_yyyy_CGVD2013_2002' --- .../operation/coordinateoperationfactory.cpp | 79 +++++++++- test/unit/test_operationfactory.cpp | 144 ++++++++++++++++++ 2 files changed, 219 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index a4237d87d9..342886885c 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -6298,8 +6298,40 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( const auto vertDst = componentsDst[1]->extractVerticalCRS(); if (vertSrc && vertDst && !componentsSrc[1]->_isEquivalentTo(componentsDst[1].get())) { - if (!vertSrc->geoidModel().empty() || - !vertDst->geoidModel().empty()) { + if ((!vertSrc->geoidModel().empty() || + !vertDst->geoidModel().empty()) && + // To be able to use "CGVD28 height to + // CGVD2013a(1997|2002|2010)" single grid + !(vertSrc->nameStr() == "CGVD28 height" && + !vertSrc->geoidModel().empty() && + vertSrc->geoidModel().front()->nameStr() == "HT2_1997" && + vertDst->nameStr() == "CGVD2013a(1997) height" && + vertDst->geoidModel().empty()) && + !(vertSrc->nameStr() == "CGVD28 height" && + !vertSrc->geoidModel().empty() && + vertSrc->geoidModel().front()->nameStr() == "HT2_2002" && + vertDst->nameStr() == "CGVD2013a(2002) height" && + vertDst->geoidModel().empty()) && + !(vertSrc->nameStr() == "CGVD28 height" && + !vertSrc->geoidModel().empty() && + vertSrc->geoidModel().front()->nameStr() == "HT2_2010" && + vertDst->nameStr() == "CGVD2013a(2010) height" && + vertDst->geoidModel().empty()) && + !(vertDst->nameStr() == "CGVD28 height" && + !vertDst->geoidModel().empty() && + vertDst->geoidModel().front()->nameStr() == "HT2_1997" && + vertSrc->nameStr() == "CGVD2013a(1997) height" && + vertSrc->geoidModel().empty()) && + !(vertDst->nameStr() == "CGVD28 height" && + !vertDst->geoidModel().empty() && + vertDst->geoidModel().front()->nameStr() == "HT2_2002" && + vertSrc->nameStr() == "CGVD2013a(2002) height" && + vertSrc->geoidModel().empty()) && + !(vertDst->nameStr() == "CGVD28 height" && + !vertDst->geoidModel().empty() && + vertDst->geoidModel().front()->nameStr() == "HT2_2010" && + vertSrc->nameStr() == "CGVD2013a(2010) height" && + vertSrc->geoidModel().empty())) { // If we have a geoid model, force using through it bTryThroughIntermediateGeogCRS = true; } else { @@ -6607,10 +6639,49 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } } - auto opSrcCRSToGeogCRS = createOperations( + // Hack for + // NAD83_CSRS_1997_xxxx_HT2_1997 to NAD83_CSRS_1997_yyyy_CGVD2013_1997 + // NAD83_CSRS_2002_xxxx_HT2_2002 to NAD83_CSRS_2002_yyyy_CGVD2013_2002 + if (sourceEpoch.has_value() && targetEpoch.has_value() && + sourceEpoch->coordinateEpoch()._isEquivalentTo( + targetEpoch->coordinateEpoch()) && + srcGeog->_isEquivalentTo( + dstGeog.get(), util::IComparable::Criterion::EQUIVALENT) && + srcGeog->nameStr() == "NAD83(CSRS)v7") { + const bool is1997 = + std::abs(sourceEpoch->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR) - + 1997) < 1e-10; + const bool is2002 = + std::abs(sourceEpoch->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR) - + 2002) < 1e-10; + try { + auto authFactoryEPSG = io::AuthorityFactory::create( + authFactory->databaseContext(), "EPSG"); + auto nad83CSRSv7 = authFactoryEPSG->createGeographicCRS("8255"); + if (srcGeog->_isEquivalentTo(nad83CSRSv7.get(), + util::IComparable::Criterion:: + EQUIVALENT) && // NAD83(CSRS)v7 + // 2D + ((is1997 && + verticalTransform->nameStr().find( + "CGVD28 height to CGVD2013a(1997) height (1)") != + std::string::npos) || + (is2002 && + verticalTransform->nameStr().find( + "CGVD28 height to CGVD2013a(2002) height (1)") != + std::string::npos))) { + interpolationGeogCRS = nad83CSRSv7; + } + } catch (const std::exception &) { + } + } + + const auto opSrcCRSToGeogCRS = createOperations( componentsSrc[0], util::optional(), interpolationGeogCRS, util::optional(), context); - auto opGeogCRStoDstCRS = createOperations( + const auto opGeogCRStoDstCRS = createOperations( interpolationGeogCRS, util::optional(), componentsDst[0], util::optional(), context); for (const auto &opSrc : opSrcCRSToGeogCRS) { diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 818c3a2816..6c77e25504 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9608,6 +9608,150 @@ TEST(operation, // --------------------------------------------------------------------------- +TEST(operation, + createOperation_compound_to_compound_with_epoch_HT2_1997_CGG2013a) { + auto dbContext = DatabaseContext::create(); + auto factoryNRCAN = AuthorityFactory::create(dbContext, "NRCAN"); + auto sourceCM = + factoryNRCAN->createCoordinateMetadata("NAD83_CSRS_1997_MTM7_HT2_1997"); + auto targetCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_1997_UTM19_CGVD2013_1997"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + { + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCM, targetCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_HT2_1997_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=utm +zone=19 +ellps=GRS80"); + } + { + auto list = CoordinateOperationFactory::create()->createOperations( + targetCM, sourceCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=utm +zone=19 +ellps=GRS80 " + "+step +inv +proj=vgridshift " + "+grids=ca_nrc_HT2_1997_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80"); + } +} + +// --------------------------------------------------------------------------- + +TEST(operation, + createOperation_compound_to_compound_with_epoch_HT2_2002_CGG2013a) { + auto dbContext = DatabaseContext::create(); + auto factoryNRCAN = AuthorityFactory::create(dbContext, "NRCAN"); + auto sourceCM = + factoryNRCAN->createCoordinateMetadata("NAD83_CSRS_2002_MTM7_HT2_2002"); + auto targetCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_2002_UTM19_CGVD2013_2002"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + { + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCM, targetCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_HT2_2002v70_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=utm +zone=19 +ellps=GRS80"); + } + { + auto list = CoordinateOperationFactory::create()->createOperations( + targetCM, sourceCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=utm +zone=19 +ellps=GRS80 " + "+step +inv +proj=vgridshift " + "+grids=ca_nrc_HT2_2002v70_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80"); + } +} + +// --------------------------------------------------------------------------- + +TEST(operation, + createOperation_compound_to_compound_with_epoch_HT2_2010_CGG2013a) { + auto dbContext = DatabaseContext::create(); + auto factoryNRCAN = AuthorityFactory::create(dbContext, "NRCAN"); + auto sourceCM = + factoryNRCAN->createCoordinateMetadata("NAD83_CSRS_2010_MTM7_HT2_2010"); + auto targetCM = factoryNRCAN->createCoordinateMetadata( + "NAD83_CSRS_2010_UTM19_CGVD2013_2010"); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + { + auto list = CoordinateOperationFactory::create()->createOperations( + sourceCM, targetCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80 " + "+step +proj=vgridshift +grids=ca_nrc_HT2_2010v70_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=utm +zone=19 +ellps=GRS80"); + } + { + auto list = CoordinateOperationFactory::create()->createOperations( + targetCM, sourceCM, ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=utm +zone=19 +ellps=GRS80 " + "+step +inv +proj=vgridshift " + "+grids=ca_nrc_HT2_2010v70_CGG2013a.tif " + "+multiplier=1 " + "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " + "+x_0=304800 +y_0=0 +ellps=GRS80"); + } +} + +// --------------------------------------------------------------------------- + TEST( operation, createOperation_compound_to_compound_with_Geographic3D_Offset_by_velocity_grid) { From e69c31972e87deac75eaf2b8526a30030e9e67f4 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 5 Sep 2023 23:04:03 +0200 Subject: [PATCH 049/199] C API: add proj_crs_has_point_motion_operation() --- scripts/reference_exported_symbols.txt | 1 + src/iso19111/c_api.cpp | 32 ++++++++++++++++++++++++++ src/proj.h | 3 +++ test/unit/test_c_api.cpp | 25 ++++++++++++++++++++ 4 files changed, 61 insertions(+) diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index 2a08322f9d..fc6733b1ed 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -1002,6 +1002,7 @@ proj_crs_get_datum_forced proj_crs_get_geodetic_crs proj_crs_get_horizontal_datum proj_crs_get_sub_crs +proj_crs_has_point_motion_operation proj_crs_info_list_destroy proj_crs_is_derived proj_crs_promote_to_3D diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 82eb3e6267..59ea970f96 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -9622,3 +9622,35 @@ double proj_coordinate_metadata_get_epoch(PJ_CONTEXT *ctx, const PJ *obj) { } // --------------------------------------------------------------------------- + +/** \brief Return whether a CRS has an associated PointMotionOperation + * + * @since 9.4 + */ +int proj_crs_has_point_motion_operation(PJ_CONTEXT *ctx, const PJ *crs) { + SANITIZE_CTX(ctx); + if (!crs) { + proj_context_errno_set(ctx, PROJ_ERR_OTHER_API_MISUSE); + proj_log_error(ctx, __FUNCTION__, "missing required input"); + return false; + } + auto l_crs = dynamic_cast(crs->iso_obj.get()); + if (!l_crs) { + proj_log_error(ctx, __FUNCTION__, "Object is not a CRS"); + return false; + } + auto geodeticCRS = l_crs->extractGeodeticCRS(); + if (!geodeticCRS) + return false; + try { + auto factory = + AuthorityFactory::create(getDBcontext(ctx), std::string()); + return !factory + ->getPointMotionOperationsFor(NN_NO_CHECK(geodeticCRS), + false) + .empty(); + } catch (const std::exception &e) { + proj_log_error(ctx, __FUNCTION__, e.what()); + } + return false; +} diff --git a/src/proj.h b/src/proj.h index 9a48de9fa5..cef28e3ccc 100644 --- a/src/proj.h +++ b/src/proj.h @@ -1395,6 +1395,9 @@ PJ PROJ_DLL *proj_crs_get_datum_ensemble(PJ_CONTEXT *ctx, const PJ *crs); PJ PROJ_DLL *proj_crs_get_datum_forced(PJ_CONTEXT *ctx, const PJ *crs); +int PROJ_DLL proj_crs_has_point_motion_operation(PJ_CONTEXT *ctx, + const PJ *crs); + int PROJ_DLL proj_datum_ensemble_get_member_count(PJ_CONTEXT *ctx, const PJ *datum_ensemble); diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index a618172b77..6862f03b2d 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -6447,6 +6447,31 @@ TEST_F(CApi, proj_trans_bounds__south_pole) { // --------------------------------------------------------------------------- +TEST_F(CApi, proj_crs_has_point_motion_operation) { + auto ctxt = proj_create_operation_factory_context(m_ctxt, nullptr); + ASSERT_NE(ctxt, nullptr); + ContextKeeper keeper_ctxt(ctxt); + + { + auto crs = proj_create_from_database( + m_ctxt, "EPSG", "4267", PJ_CATEGORY_CRS, false, nullptr); // NAD27 + ASSERT_NE(crs, nullptr); + ObjectKeeper keeper_crs(crs); + EXPECT_FALSE(proj_crs_has_point_motion_operation(m_ctxt, crs)); + } + + { + // NAD83(CSRS)v7 + auto crs = proj_create_from_database(m_ctxt, "EPSG", "8255", + PJ_CATEGORY_CRS, false, nullptr); + ASSERT_NE(crs, nullptr); + ObjectKeeper keeper_crs(crs); + EXPECT_TRUE(proj_crs_has_point_motion_operation(m_ctxt, crs)); + } +} + +// --------------------------------------------------------------------------- + #if !defined(_WIN32) TEST_F(CApi, open_plenty_of_contexts) { // Test that we only consume 1 file handle for the connection to the From 0c39032a873bd3a9ce7abfdb4fd24777d2a8b927 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 6 Sep 2023 13:43:56 +0200 Subject: [PATCH 050/199] createOperations(): fix 'ITRF2014 to NAD83(CSRS)v7' type of operations, i.e. when the point motion operation is on the end, and also make sure that the time-dependent Helmert transformation receives coordinates in the right epoch --- .../operation/concatenatedoperation.cpp | 26 +++++++ .../operation/coordinateoperationfactory.cpp | 60 +++++++++----- test/unit/test_operationfactory.cpp | 78 +++++++++++++++++-- 3 files changed, 137 insertions(+), 27 deletions(-) diff --git a/src/iso19111/operation/concatenatedoperation.cpp b/src/iso19111/operation/concatenatedoperation.cpp index ea089ab75c..b3164e67c8 100644 --- a/src/iso19111/operation/concatenatedoperation.cpp +++ b/src/iso19111/operation/concatenatedoperation.cpp @@ -706,6 +706,8 @@ CoordinateOperationNNPtr ConcatenatedOperation::inverse() const { create(properties, inversedOperations, coordinateOperationAccuracies()); op->d->computedName_ = d->computedName_; op->setHasBallparkTransformation(hasBallparkTransformation()); + op->setSourceCoordinateEpoch(targetCoordinateEpoch()); + op->setTargetCoordinateEpoch(sourceCoordinateEpoch()); return op; } @@ -838,9 +840,33 @@ CoordinateOperationNNPtr ConcatenatedOperation::_shallowClone() const { void ConcatenatedOperation::_exportToPROJString( io::PROJStringFormatter *formatter) const // throw(FormattingException) { + double sourceYear = + sourceCoordinateEpoch().has_value() + ? getRoundedEpochInDecimalYear( + sourceCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)) + : 0; + double targetYear = + targetCoordinateEpoch().has_value() + ? getRoundedEpochInDecimalYear( + targetCoordinateEpoch()->coordinateEpoch().convertToUnit( + common::UnitOfMeasure::YEAR)) + : 0; + if (sourceYear > 0 && targetYear == 0) + targetYear = sourceYear; + else if (targetYear > 0 && sourceYear == 0) + sourceYear = targetYear; + if (sourceYear > 0) { + formatter->addStep("set"); + formatter->addParam("v_4", sourceYear); + } for (const auto &operation : operations()) { operation->_exportToPROJString(formatter); } + if (targetYear > 0) { + formatter->addStep("set"); + formatter->addParam("v_4", targetYear); + } } // --------------------------------------------------------------------------- diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 342886885c..7808be957b 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -3075,21 +3075,35 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( bool resNonEmptyBeforeFiltering; // Deal with potential epoch change - std::vector opsEpochChange; + std::vector opsEpochChangeSrc; + std::vector opsEpochChangeDst; if (sourceEpoch.has_value() && targetEpoch.has_value() && !sourceEpoch->coordinateEpoch()._isEquivalentTo( targetEpoch->coordinateEpoch())) { - const auto pmo = + const auto pmoSrc = context.context->getAuthorityFactory() ->getPointMotionOperationsFor( NN_NO_CHECK( util::nn_dynamic_pointer_cast( candidateSrcGeod)), true); - if (!pmo.empty()) { - opsEpochChange = + if (!pmoSrc.empty()) { + opsEpochChangeSrc = createOperations(candidateSrcGeod, sourceEpoch, candidateSrcGeod, targetEpoch, context); + } else { + const auto pmoDst = + context.context->getAuthorityFactory() + ->getPointMotionOperationsFor( + NN_NO_CHECK( + util::nn_dynamic_pointer_cast( + candidateDstGeod)), + true); + if (!pmoDst.empty()) { + opsEpochChangeDst = createOperations( + candidateDstGeod, sourceEpoch, candidateDstGeod, + targetEpoch, context); + } } } @@ -3107,9 +3121,9 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( assert(!opsThird.empty()); const CoordinateOperationNNPtr &opThird(opsThird[0]); - for (size_t iEpochChange = 0; - iEpochChange < std::max(1, opsEpochChange.size()); - ++iEpochChange) { + const auto nIters = std::max( + 1, std::max(opsEpochChangeSrc.size(), opsEpochChangeDst.size())); + for (size_t iEpochChange = 0; iEpochChange < nIters; ++iEpochChange) { for (auto &opSecond : opsSecond) { // Check that it is not a transformation synthetized by // ourselves @@ -3185,25 +3199,29 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( std::string(), dbContext)); } } - if (isNullFirst) { - auto oldTarget( - NN_CHECK_ASSERT(opSecondCloned->targetCRS())); - setCRSs(opSecondCloned.get(), sourceCRS, oldTarget); - } else { + if (!isNullFirst) { subOps.emplace_back(opFirst); } - if (!opsEpochChange.empty()) { - subOps.emplace_back(opsEpochChange[iEpochChange]); + if (!opsEpochChangeSrc.empty()) { + subOps.emplace_back(opsEpochChangeSrc[iEpochChange]); } - if (isNullThird) { - auto oldSource( - NN_CHECK_ASSERT(opSecondCloned->sourceCRS())); - setCRSs(opSecondCloned.get(), oldSource, targetCRS); - subOps.emplace_back(opSecondCloned); - } else { - subOps.emplace_back(opSecondCloned); + subOps.emplace_back(opSecondCloned); + if (!opsEpochChangeDst.empty()) { + subOps.emplace_back(opsEpochChangeDst[iEpochChange]); + } + if (!isNullThird) { subOps.emplace_back(opThird); } + + subOps[0] = subOps[0]->shallowClone(); + if (subOps[0]->targetCRS()) + setCRSs(subOps[0].get(), sourceCRS, + NN_NO_CHECK(subOps[0]->targetCRS())); + subOps.back() = subOps.back()->shallowClone(); + if (subOps[0]->sourceCRS()) + setCRSs(subOps.back().get(), + NN_NO_CHECK(subOps.back()->sourceCRS()), targetCRS); + #ifdef TRACE_CREATE_OPERATIONS std::string debugStr; for (const auto &op : subOps) { diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 6c77e25504..144a01d652 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9403,6 +9403,7 @@ TEST(operation, createOperation_point_motion_operation_geog2D) { EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=2002 " "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " "+step +proj=cart +ellps=GRS80 " @@ -9412,7 +9413,8 @@ TEST(operation, createOperation_point_motion_operation_geog2D) { "+step +proj=set +v_4=2010 +omit_inv " "+step +inv +proj=cart +ellps=GRS80 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " - "+step +proj=axisswap +order=2,1"); + "+step +proj=axisswap +order=2,1 " + "+step +proj=set +v_4=2010"); EXPECT_TRUE(list[1]->hasBallparkTransformation()); EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=noop"); @@ -9477,10 +9479,21 @@ TEST(operation, createOperation_point_motion_operation_geocentric) { EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=2002 " "+step +proj=set +v_4=2002 +omit_fwd " "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " "+ellps=GRS80 " - "+step +proj=set +v_4=2010 +omit_inv"); + "+step +proj=set +v_4=2010 +omit_inv " + "+step +proj=set +v_4=2010"); + EXPECT_EQ(list[0]->inverse()->exportToPROJString( + PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=set +v_4=2010 " + "+step +proj=set +v_4=2010 +omit_fwd " + "+step +proj=deformation +dt=-8 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_inv " + "+step +proj=set +v_4=2002"); EXPECT_TRUE(list[1]->hasBallparkTransformation()); EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=noop"); @@ -9510,13 +9523,15 @@ TEST(operation, createOperation_point_motion_operation_geocentric_to_geog3D) { EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=2002 " "+step +proj=set +v_4=2002 +omit_fwd " "+step +proj=deformation +dt=8 +grids=ca_nrc_NAD83v70VG.tif " "+ellps=GRS80 " "+step +proj=set +v_4=2010 +omit_inv " "+step +inv +proj=cart +ellps=GRS80 " "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " - "+step +proj=axisswap +order=2,1"); + "+step +proj=axisswap +order=2,1 " + "+step +proj=set +v_4=2010"); EXPECT_TRUE(list[1]->hasBallparkTransformation()); EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " @@ -9551,6 +9566,7 @@ TEST(operation, EXPECT_EQ( list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=2002 " "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " "+step +proj=cart +ellps=GRS80 " @@ -9565,7 +9581,53 @@ TEST(operation, "+ds=-7.201e-05 +t_epoch=2010 +convention=position_vector " "+step +inv +proj=cart +ellps=GRS80 " "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " - "+step +proj=axisswap +order=2,1"); + "+step +proj=axisswap +order=2,1 " + "+step +proj=set +v_4=2005"); + EXPECT_TRUE(list[1]->hasBallparkTransformation()); +} + +// --------------------------------------------------------------------------- + +TEST(operation, + createOperation_point_motion_operation_ITRF2014_to_NAD83_CSRS_v7) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // ITRF2014 + auto sourceCRS = factory->createCoordinateReferenceSystem("7912"); + auto crs_2005 = CoordinateMetadata::create(sourceCRS, 2005.0, dbContext); + // "NAD83(CSRS)v7" + auto targetCRS = factory->createCoordinateReferenceSystem("8254"); + auto crs_2002 = CoordinateMetadata::create(targetCRS, 2002.0, dbContext); + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + crs_2005, crs_2002, ctxt); + ASSERT_GE(list.size(), 2U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=set +v_4=2005 " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +proj=helmert +x=1.0053 +y=-1.90921 +z=-0.54157 +rx=-0.02678138 " + "+ry=0.00042027 +rz=-0.01093206 +s=0.00036891 +dx=0.00079 +dy=-0.0006 " + "+dz=-0.00144 +drx=-6.667e-05 +dry=0.00075744 +drz=5.133e-05 " + "+ds=-7.201e-05 +t_epoch=2010 +convention=position_vector " + "+step +proj=set +v_4=2005 +omit_fwd " + "+step +proj=deformation +dt=-3 +grids=ca_nrc_NAD83v70VG.tif " + "+ellps=GRS80 " + "+step +proj=set +v_4=2002 +omit_inv " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1 " + "+step +proj=set +v_4=2002"); EXPECT_TRUE(list[1]->hasBallparkTransformation()); } @@ -9592,6 +9654,7 @@ TEST(operation, EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=1997 " "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80 " "+step +proj=vgridshift +grids=ca_nrc_HT2_1997.tif +multiplier=1 " @@ -9603,7 +9666,8 @@ TEST(operation, "+step +inv +proj=cart +ellps=GRS80 " "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " "+multiplier=1 " - "+step +proj=utm +zone=19 +ellps=GRS80"); + "+step +proj=utm +zone=19 +ellps=GRS80 " + "+step +proj=set +v_4=2010"); } // --------------------------------------------------------------------------- @@ -9862,6 +9926,7 @@ TEST( EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " + "+step +proj=set +v_4=1997 " "+step +inv +proj=utm +zone=17 +ellps=GRS80 " "+step +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " "+multiplier=1 " @@ -9873,7 +9938,8 @@ TEST( "+step +inv +proj=cart +ellps=GRS80 " "+step +inv +proj=vgridshift +grids=ca_nrc_CGG2013an83.tif " "+multiplier=1 " - "+step +proj=utm +zone=17 +ellps=GRS80"); + "+step +proj=utm +zone=17 +ellps=GRS80 " + "+step +proj=set +v_4=2002"); } // --------------------------------------------------------------------------- From b5d33ab92df89db8770675a20bb6361cda9add15 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 13 Sep 2023 18:32:46 +0200 Subject: [PATCH 051/199] Vertical Offset by Grid Interpolation (NRCan byn) operations: reverse the sign of the value of the grid --- src/iso19111/operation/singleoperation.cpp | 22 ++++++++++++++++------ test/unit/test_operationfactory.cpp | 12 ++++++------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 5d55cbdf0e..027cbef57b 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2187,12 +2187,20 @@ createSimilarPropertiesMethod(common::IdentifiedObjectNNPtr obj) { // --------------------------------------------------------------------------- -static bool isRegularVerticalGridMethod(int methodEPSGCode) { +static bool isRegularVerticalGridMethod(int methodEPSGCode, + bool &reverseOffsetSign) { + if (methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NRCAN_BYN) { + // NRCAN vertical shift grids use a reverse convention from other + // grids: the value in the grid is the value to subtract from the + // source vertical CRS to get the target value. + reverseOffsetSign = true; + return true; + } + reverseOffsetSign = false; return methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NZLVD || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_BEV_AT || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_GTX || - methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_PL_TXT || - methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NRCAN_BYN; + methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_PL_TXT; } // --------------------------------------------------------------------------- @@ -2477,8 +2485,9 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( } } + bool reverseOffsetSign = false; if (methodEPSGCode == EPSG_CODE_METHOD_VERTCON || - isRegularVerticalGridMethod(methodEPSGCode)) { + isRegularVerticalGridMethod(methodEPSGCode, reverseOffsetSign)) { auto fileParameter = parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE); @@ -4146,7 +4155,8 @@ bool SingleOperation::exportToPROJStringGeneric( } } - if (isRegularVerticalGridMethod(methodEPSGCode)) { + bool reverseOffsetSign = false; + if (isRegularVerticalGridMethod(methodEPSGCode, reverseOffsetSign)) { auto fileParameter = parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE); @@ -4154,7 +4164,7 @@ bool SingleOperation::exportToPROJStringGeneric( fileParameter->type() == ParameterValue::Type::FILENAME) { formatter->addStep("vgridshift"); formatter->addParam("grids", fileParameter->valueFile()); - formatter->addParam("multiplier", 1.0); + formatter->addParam("multiplier", reverseOffsetSign ? -1.0 : 1.0); return true; } } diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 144a01d652..09865b35ff 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -9698,7 +9698,7 @@ TEST(operation, "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80 " "+step +proj=vgridshift +grids=ca_nrc_HT2_1997_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=utm +zone=19 +ellps=GRS80"); } { @@ -9712,7 +9712,7 @@ TEST(operation, "+step +inv +proj=utm +zone=19 +ellps=GRS80 " "+step +inv +proj=vgridshift " "+grids=ca_nrc_HT2_1997_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80"); } @@ -9746,7 +9746,7 @@ TEST(operation, "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80 " "+step +proj=vgridshift +grids=ca_nrc_HT2_2002v70_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=utm +zone=19 +ellps=GRS80"); } { @@ -9760,7 +9760,7 @@ TEST(operation, "+step +inv +proj=utm +zone=19 +ellps=GRS80 " "+step +inv +proj=vgridshift " "+grids=ca_nrc_HT2_2002v70_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80"); } @@ -9794,7 +9794,7 @@ TEST(operation, "+step +inv +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80 " "+step +proj=vgridshift +grids=ca_nrc_HT2_2010v70_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=utm +zone=19 +ellps=GRS80"); } { @@ -9808,7 +9808,7 @@ TEST(operation, "+step +inv +proj=utm +zone=19 +ellps=GRS80 " "+step +inv +proj=vgridshift " "+grids=ca_nrc_HT2_2010v70_CGG2013a.tif " - "+multiplier=1 " + "+multiplier=-1 " "+step +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 " "+x_0=304800 +y_0=0 +ellps=GRS80"); } From bee4a90322a24f84d98afef5538c1e90373cbe2f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 14 Sep 2023 20:13:25 +0200 Subject: [PATCH 052/199] Implement 'Vertical Offset by velocity grid (NRCan byn)' method --- data/sql/customizations.sql | 9 +- data/sql/grid_transformation.sql | 6 + scripts/build_db.py | 5 +- src/iso19111/operation/singleoperation.cpp | 148 +++++++++++++++++++++ src/proj_constants.h | 6 + test/unit/test_operationfactory.cpp | 40 ++++++ 6 files changed, 211 insertions(+), 3 deletions(-) diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql index 9c5093c445..77426a1ca3 100644 --- a/data/sql/customizations.sql +++ b/data/sql/customizations.sql @@ -188,12 +188,19 @@ INSERT INTO usage SELECT scope_code FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '9123'; --- Duplicate EPSG:10015 with NAD83(CSRS)v7 as interpolation CRS +-- Duplicate EPSG:10115, 10116, 10117 with NAD83(CSRS)v7 as interpolation CRS INSERT INTO "grid_transformation" VALUES ('PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8255','NR-Can HT2 2010',0); INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('PROJ','EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','CGVD2013a(2010) height to CGVD2013a(2002) height (1)',' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS. Equivalent to CGVD28 to CGVD2013a(2002) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10114 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20034',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can',0); +INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1026'); + +INSERT INTO "grid_transformation" VALUES('PROJ','EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','CGVD2013a(2010) height to CGVD2013a(1997) height (1)','Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS. Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10113 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can',0); +INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1026'); + + -- Define the allowed authorities, and their precedence, when researching a -- coordinate operation diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 14949d9ca1..6cc61fabef 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1440,6 +1440,12 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10114','CGVD28 height to CGVD20 INSERT INTO "usage" VALUES('EPSG','18322','grid_transformation','EPSG','10114','EPSG','1061','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10115','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v6 as interpolation CRS, but NAD83(CSRS)v7 (code 8255) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); INSERT INTO "usage" VALUES('EPSG','18323','grid_transformation','EPSG','10115','EPSG','1061','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10116','CGVD2013a(2010) height to CGVD2013a(2002) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(2002) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10114 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20034',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18325','grid_transformation','EPSG','10116','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10117','CGVD2013a(2010) height to CGVD2013a(1997) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10113 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18352','grid_transformation','EPSG','10117','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10118','CGVD2013a(2002) height to CGVD2013a(1997) height (1)','Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2002) (i.e. CT code 10113 minus CT 10114).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','20034','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18328','grid_transformation','EPSG','10118','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10119','NAD83(CSRS)v4 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); INSERT INTO "usage" VALUES('EPSG','18201','grid_transformation','EPSG','10119','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10120','NAD83(CSRS)v4 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); diff --git a/scripts/build_db.py b/scripts/build_db.py index 0462dbabf5..4166e59410 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -692,7 +692,7 @@ def fill_helmert_transformation(proj_db_cursor): '?,?,?, ?, ?,?,?, ?,?, ?,?, ?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?, ?,?,?,?,?, ?,?)', arg) def fill_grid_transformation(proj_db_cursor): - proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical Offset by Grid Interpolation%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)', 'Geographic3D Offset by velocity grid (NRCan byn)'))") + proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical Offset by Grid Interpolation%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)', 'Geographic3D Offset by velocity grid (NRCan byn)', 'Vertical Offset by velocity grid (NRCan byn)'))") for (code, name, method_code, method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, deprecated, remarks) in proj_db_cursor.fetchall(): expected_order = 1 max_n_params = 3 if method_name == 'Geocentric translation by Grid Interpolation (IGN)' else 2 @@ -775,13 +775,14 @@ def fill_grid_transformation(proj_db_cursor): # 1105: Geog3D to Geog2D+GravityRelatedHeight (ITAL2005) # 1110: Geog3D to Geog2D+Depth (Gravsoft) # 1112: Vertical Offset by Grid Interpolation (NRCan byn) + # 1113: Vertical Offset by velocity grid (NRCan byn) # 1114: Geographic3D Offset by velocity grid (NRCan byn) # 1115: Geog3D to Geog2D+Depth (txt) # 1118: Geog3D to Geog2D+GravityRelatedHeight (ISG) # 1122: Geog3D to Geog2D+Depth (gtx) # WARNING: update Transformation::isGeographic3DToGravityRelatedHeight() # in src/iso19111/operation/singleoperation.cpp if adding new methods - elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1114, 1115, 1118, 1122) and n_params == 2: + elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1113, 1114, 1115, 1118, 1122) and n_params == 2: assert param_code[1] == 1048, (code, method_code, param_code[1]) interpolation_crs_auth_name = EPSG_AUTHORITY interpolation_crs_code = str(int(param_value[1])) # needed to avoid codes like XXXX.0 diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 027cbef57b..07f288b0d2 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -1991,6 +1991,34 @@ _getGeographic3DOffsetByVelocityGridFilename(const SingleOperation *op, // --------------------------------------------------------------------------- +//! @cond Doxygen_Suppress +static const std::string & +_getVerticalOffsetByVelocityGridFilename(const SingleOperation *op, + bool allowInverse) { + + const auto &l_method = op->method(); + const auto &methodName = l_method->nameStr(); + if (l_method->getEPSGCode() == + EPSG_CODE_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN || + (allowInverse && + ci_equal( + methodName, + INVERSE_OF + + EPSG_NAME_METHOD_GEOGRAPHIC3D_OFFSET_BY_VELOCITY_GRID_NRCAN))) { + const auto &fileParameter = op->parameterValue( + EPSG_NAME_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE, + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE); + if (fileParameter && + fileParameter->type() == ParameterValue::Type::FILENAME) { + return fileParameter->valueFile(); + } + } + return nullString; +} +//! @endcond + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress static const std::string & _getHeightToGeographic3DFilename(const SingleOperation *op, bool allowInverse) { @@ -2485,6 +2513,45 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( } } + const auto &verticalOffsetByVelocityGridFilename = + _getVerticalOffsetByVelocityGridFilename(this, false); + if (!verticalOffsetByVelocityGridFilename.empty()) { + if (databaseContext->lookForGridAlternative( + verticalOffsetByVelocityGridFilename, projFilename, + projGridFormat, inverseDirection)) { + + if (inverseDirection) { + throw util::UnsupportedOperationException( + "Inverse direction for " + "VerticalOffsetByVelocityGrid not supported"); + } + + if (verticalOffsetByVelocityGridFilename == projFilename) { + return self; + } + + const auto l_sourceCRSNull = sourceCRS(); + const auto l_targetCRSNull = targetCRS(); + if (l_sourceCRSNull == nullptr) { + throw util::UnsupportedOperationException("Missing sourceCRS"); + } + if (l_targetCRSNull == nullptr) { + throw util::UnsupportedOperationException("Missing targetCRS"); + } + auto l_sourceCRS = NN_NO_CHECK(l_sourceCRSNull); + auto l_targetCRS = NN_NO_CHECK(l_targetCRSNull); + auto parameters = + std::vector{createOpParamNameEPSGCode( + EPSG_CODE_PARAMETER_POINT_MOTION_VELOCITY_GRID_FILE)}; + return Transformation::create( + createSimilarPropertiesOperation(self), l_sourceCRS, + l_targetCRS, l_interpolationCRS, + createSimilarPropertiesMethod(method()), parameters, + {ParameterValue::createFilename(projFilename)}, + coordinateOperationAccuracies()); + } + } + bool reverseOffsetSign = false; if (methodEPSGCode == EPSG_CODE_METHOD_VERTCON || isRegularVerticalGridMethod(methodEPSGCode, reverseOffsetSign)) { @@ -4029,6 +4096,87 @@ bool SingleOperation::exportToPROJStringGeneric( return true; } + const auto &verticalOffsetByVelocityGridFilename = + _getVerticalOffsetByVelocityGridFilename(this, true); + if (!verticalOffsetByVelocityGridFilename.empty()) { + + const auto &interpCRS = interpolationCRS(); + if (!interpCRS) { + throw io::FormattingException( + "InterpolationCRS required " + "for" + " " EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN); + } + + auto interpCRSGeog = + dynamic_cast(interpCRS.get()); + if (!interpCRSGeog) { + throw io::FormattingException( + concat("Can apply ", methodName, + " only to a GeographicCRS interpolation CRS")); + } + + if (isMethodInverseOf) { + formatter->startInversion(); + } + formatter->addStep("push"); + formatter->addParam("v_1"); + formatter->addParam("v_2"); + + formatter->addStep("cart"); + interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); + + formatter->addStep("deformation"); + auto srcName = sourceCRS()->nameStr(); + auto dstName = targetCRS()->nameStr(); + const struct { + const char *name; + double epoch; + } realizationEpochs[] = { + {"CGVD2013a(1997) height", 1997.0}, + {"CGVD2013a(2002) height", 2002.0}, + {"CGVD2013a(2010) height", 2010.0}, + }; + double sourceYear = 0.0; + double targetYear = 0.0; + for (const auto &iter : realizationEpochs) { + if (iter.name == srcName) + sourceYear = iter.epoch; + if (iter.name == dstName) + targetYear = iter.epoch; + } + if (sourceYear == 0.0) { + throw io::FormattingException( + "For" + " " EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN + ", missing epoch for source CRS"); + } + if (targetYear == 0.0) { + throw io::FormattingException( + "For" + " " EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN + ", missing epoch for target CRS"); + } + formatter->addParam("dt", targetYear - sourceYear); + formatter->addParam("grids", verticalOffsetByVelocityGridFilename); + interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); + + formatter->startInversion(); + formatter->addStep("cart"); + interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); + formatter->stopInversion(); + + formatter->addStep("pop"); + formatter->addParam("v_1"); + formatter->addParam("v_2"); + + if (isMethodInverseOf) { + formatter->stopInversion(); + } + + return true; + } + const auto &heightFilename = _getHeightToGeographic3DFilename(this, true); if (!heightFilename.empty()) { auto l_targetCRS = targetCRS(); diff --git a/src/proj_constants.h b/src/proj_constants.h index 45b14280fb..02b416a4ba 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -596,6 +596,12 @@ /* ------------------------------------------------------------------------ */ +#define EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN \ + "Vertical Offset by velocity grid (NRCan byn)" +#define EPSG_CODE_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN 1113 + +/* ------------------------------------------------------------------------ */ + #define PROJ_WKT2_NAME_METHOD_HEIGHT_TO_GEOG3D \ "GravityRelatedHeight to Geographic3D" diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 09865b35ff..8e093f2c0d 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -10003,3 +10003,43 @@ TEST(operation, createOperation_test_createOperationsWithDatumPivot_iter_1) { EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=noop"); } + +// --------------------------------------------------------------------------- + +TEST(operation, createOperation_Vrtical_Offset_by_velocity_grid) { + auto dbContext = DatabaseContext::create(); + + auto objSrc = createFromUserInput("NAD83(CSRS)v7 + CGVD2013a(2002) height", + dbContext); + auto src = nn_dynamic_pointer_cast(objSrc); + ASSERT_TRUE(src != nullptr); + + auto objDest = createFromUserInput("NAD83(CSRS)v7 + CGVD2013a(2010) height", + dbContext); + auto dst = nn_dynamic_pointer_cast(objDest); + ASSERT_TRUE(dst != nullptr); + + auto ctxt = CoordinateOperationContext::create( + AuthorityFactory::create(dbContext, std::string()), nullptr, 0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + auto list = CoordinateOperationFactory::create()->createOperations( + NN_NO_CHECK(src), NN_NO_CHECK(dst), ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_FALSE(list[0]->hasBallparkTransformation()); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +proj=push +v_1 +v_2 " + "+step +proj=cart +ellps=GRS80 " + "+step +inv +proj=deformation +dt=-8 " + "+grids=ca_nrc_NAD83v70VG.tif +ellps=GRS80 " + "+step +inv +proj=cart +ellps=GRS80 " + "+step +proj=pop +v_1 +v_2 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); +} From 57e6408ff3a151dc15e570c9cf8bb78846e11bcf Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 14 Sep 2023 12:15:09 +0200 Subject: [PATCH 053/199] helmert.rst: remove outdated :since: and deprecation versions 5.0 and 5.2 are ancient. No need to add to the cognitive load of the reader --- docs/source/news.rst | 2 +- docs/source/operations/transformations/helmert.rst | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/docs/source/news.rst b/docs/source/news.rst index 3ab4e4ae75..4673c5ea45 100644 --- a/docs/source/news.rst +++ b/docs/source/news.rst @@ -2019,7 +2019,7 @@ Updates * Added "require_grid" option to gie (`#1088 `_) -* Replace :option:`+transpose` option of Helmert transform with :option:`+convention`. +* Replace ``transpose`` option of Helmert transform with :option:`+convention`. From now on the convention used should be explicitly written. An error will be returned when using the +transpose option (`#1091 `_) diff --git a/docs/source/operations/transformations/helmert.rst b/docs/source/operations/transformations/helmert.rst index 062d13e5ab..6c5e6f0de3 100644 --- a/docs/source/operations/transformations/helmert.rst +++ b/docs/source/operations/transformations/helmert.rst @@ -4,8 +4,6 @@ Helmert transform ================================================================================ -.. versionadded:: 5.0.0 - The Helmert transformation changes coordinates from one reference frame to another by means of 3-, 4-and 7-parameter shifts, or one of their 6-, 8- and 14-parameter kinematic counterparts. @@ -81,8 +79,6 @@ Parameters .. option:: +convention=coordinate_frame/position_vector - .. versionadded:: 5.2.0 - Indicates the convention to express the rotational terms when a 3D-Helmert / 7-parameter more transform is involved. As soon as a rotational parameter is specified (one of ``rx``, ``ry``, ``rz``, ``drx``, ``dry``, ``drz``), @@ -182,15 +178,6 @@ Parameters See :eq:`rot_exact` -.. option:: +transpose - - .. deprecated:: 5.2.0 (removed) - - Transpose rotation matrix and follow the **Position Vector** rotation - convention. If :option:`+transpose` is not added the **Coordinate Frame** - rotation convention is used. - - Mathematical description +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From f57c3ffc3c8dbbbe355e1f58ac761e522cf63c20 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 17 Sep 2023 20:44:39 +0200 Subject: [PATCH 054/199] Fix potential null pointer dereferences (master only, CID 417218 and 417219) --- .../operation/coordinateoperationfactory.cpp | 14 +++++--------- src/iso19111/operation/singleoperation.cpp | 7 ++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 7808be957b..3fb422dffe 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -6226,6 +6226,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( // Use PointMotionOperations if appropriate and available const auto &authFactory = context.context->getAuthorityFactory(); + auto dbContext = + authFactory ? authFactory->databaseContext().as_nullable() : nullptr; + if (authFactory && sourceEpoch.has_value() && targetEpoch.has_value() && !sourceEpoch->coordinateEpoch()._isEquivalentTo( targetEpoch->coordinateEpoch()) && @@ -6286,9 +6289,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( util::IComparable::Criterion::EQUIVALENT) && !comp1SrcBound->isEquivalentTo( comp1DstBound, util::IComparable::Criterion::EQUIVALENT)) { - auto dbContext = authFactory - ? authFactory->databaseContext().as_nullable() - : nullptr; auto hub3D = comp0SrcBound->hubCRS()->promoteTo3D(std::string(), dbContext); const auto ops1 = createOperations(sourceCRS, sourceEpoch, hub3D, @@ -6367,10 +6367,6 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( } if (bTryThroughIntermediateGeogCRS) { - auto dbContext = authFactory - ? authFactory->databaseContext().as_nullable() - : nullptr; - const auto createWithIntermediateCRS = [&sourceCRS, &sourceEpoch, &targetCRS, &targetEpoch, &context, &res](const crs::CRSNNPtr &intermCRS) { @@ -6660,7 +6656,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( // Hack for // NAD83_CSRS_1997_xxxx_HT2_1997 to NAD83_CSRS_1997_yyyy_CGVD2013_1997 // NAD83_CSRS_2002_xxxx_HT2_2002 to NAD83_CSRS_2002_yyyy_CGVD2013_2002 - if (sourceEpoch.has_value() && targetEpoch.has_value() && + if (dbContext && sourceEpoch.has_value() && targetEpoch.has_value() && sourceEpoch->coordinateEpoch()._isEquivalentTo( targetEpoch->coordinateEpoch()) && srcGeog->_isEquivalentTo( @@ -6676,7 +6672,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( 2002) < 1e-10; try { auto authFactoryEPSG = io::AuthorityFactory::create( - authFactory->databaseContext(), "EPSG"); + NN_NO_CHECK(dbContext), "EPSG"); auto nad83CSRSv7 = authFactoryEPSG->createGeographicCRS("8255"); if (srcGeog->_isEquivalentTo(nad83CSRSv7.get(), util::IComparable::Criterion:: diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 07f288b0d2..a6cd948371 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -4804,7 +4804,12 @@ void PointMotionOperation::_exportToPROJString( "when target coordinate epoch is missing"); } - auto l_sourceCRS = dynamic_cast(sourceCRS().get()); + auto l_sourceCRS = + dynamic_cast(sourceCRS().get()); + if (!l_sourceCRS) { + throw io::FormattingException("Can apply PointMotionOperation " + "VelocityGrid only to GeodeticCRS"); + } if (!l_sourceCRS->isGeocentric()) { formatter->startInversion(); From f92e32a51fdae3c99c634a20ff29ac4eb7856827 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Wed, 20 Sep 2023 11:33:35 +0200 Subject: [PATCH 055/199] Add Javier as PSC member [skip ci] --- docs/source/community/rfc/rfc-1.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/community/rfc/rfc-1.rst b/docs/source/community/rfc/rfc-1.rst index 4153e41c01..4b5ec87ac5 100644 --- a/docs/source/community/rfc/rfc-1.rst +++ b/docs/source/community/rfc/rfc-1.rst @@ -37,7 +37,7 @@ pass a proposal. List of PSC Members ------------------- -(up-to-date as of 2023-01) +(up-to-date as of 2023-09) * Kristian Evers `@kbevers `_ (DK) **Chair** * Howard Butler `@hobu `_ (USA) @@ -46,6 +46,7 @@ List of PSC Members * Even Rouault `@rouault `_ (FR) * Kurt Schwehr `@schwehr `_ (USA) * Alan Snow `@snowman2 `_ (USA) +* Javier Jimenez Shaw `@jjimenezshaw `_ (ES) * Frank Warmerdam `@warmerdam `_ (USA) **Emeritus** Detailed Process From 39181110ccb38baf2b0a2d8447475bc620eab4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Wed, 20 Sep 2023 04:15:50 -0500 Subject: [PATCH 056/199] Update cct.rst Grammar. --- docs/source/apps/cct.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/apps/cct.rst b/docs/source/apps/cct.rst index 71968c30c8..20d41ca53b 100644 --- a/docs/source/apps/cct.rst +++ b/docs/source/apps/cct.rst @@ -184,7 +184,7 @@ Should give results comparable to the classic :program:`proj` command cct -t 0 -z 0 +proj=utm +ellps=GRS80 +zone=32 -6. Auxiliary data following the coordinate input is forward to the output +6. Auxiliary data following the coordinate input is forwarded to the output stream: .. code-block:: console From 4475caf689c448c8dd7dd71195a23df0f3223aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Sun, 24 Sep 2023 05:26:07 -0500 Subject: [PATCH 057/199] Update projections.rst S/he means meters. --- docs/source/usage/projections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/usage/projections.rst b/docs/source/usage/projections.rst index e4a4ca9fce..ccc3733fcf 100644 --- a/docs/source/usage/projections.rst +++ b/docs/source/usage/projections.rst @@ -52,7 +52,7 @@ symbolic unit names. The default unit for projected coordinates is the meter. A few special projections deviate from this behavior, most notably the latlong pseudo-projection that returns degrees. Note that this does *not* affect the units of linear parameters such as ``+x_0`` -or ``+y_0`` which should always be specified in degree +or ``+y_0`` which should always be specified in meters. Vertical (Z) units can be specified using the ``+vunits`` keyword with a symbolic name for a unit (i.e. ``us-ft``). Alternatively the translation to From 90b02adbaebb8d41746ffe8f891809df2a98c1a8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 28 Sep 2023 11:41:35 +0200 Subject: [PATCH 058/199] createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (fixes #3909) --- src/iso19111/operation/singleoperation.cpp | 24 +++++++-- test/unit/test_operationfactory.cpp | 57 ++++++++++++++++++++++ 2 files changed, 77 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index a6cd948371..e76a5bb02c 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -3641,15 +3641,31 @@ bool SingleOperation::exportToPROJStringGeneric( auto sourceCRSGeog = dynamic_cast(sourceCRS().get()); if (!sourceCRSGeog) { - throw io::FormattingException( - "Can apply Geographic 3D offsets only to GeographicCRS"); + auto boundCRS = + dynamic_cast(sourceCRS().get()); + if (boundCRS) { + sourceCRSGeog = dynamic_cast( + boundCRS->baseCRS().get()); + } + if (!sourceCRSGeog) { + throw io::FormattingException( + "Can apply Geographic 3D offsets only to GeographicCRS"); + } } auto targetCRSGeog = dynamic_cast(targetCRS().get()); if (!targetCRSGeog) { - throw io::FormattingException( - "Can apply Geographic 3D offsets only to GeographicCRS"); + auto boundCRS = + dynamic_cast(targetCRS().get()); + if (boundCRS) { + targetCRSGeog = dynamic_cast( + boundCRS->baseCRS().get()); + } + if (!targetCRSGeog) { + throw io::FormattingException( + "Can apply Geographic 3D offsets only to GeographicCRS"); + } } formatter->startInversion(); diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 8e093f2c0d..1e98aa6c95 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -2118,6 +2118,63 @@ TEST(operation, geogCRS_different_from_baseCRS_to_projCRS) { // --------------------------------------------------------------------------- +TEST(operation, geogCRS_with_towgs84_to_geocentric) { + + auto dbContext = DatabaseContext::create(); + auto authFactory = AuthorityFactory::create(dbContext, std::string()); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + + auto objSrc = WKTParser().createFromWKT( + "GEOGCS[\"WGS84 Coordinate System\",DATUM[\"WGS_1984\"," + "SPHEROID[\"WGS 1984\",6378137,298.257223563]," + "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]]," + "PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]," + "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]," + "AUTHORITY[\"EPSG\",\"4326\"]]"); + auto src = nn_dynamic_pointer_cast(objSrc); + ASSERT_TRUE(src != nullptr); + auto src3D = src->promoteTo3D(std::string(), dbContext); + + auto objDst = WKTParser().createFromWKT( + "GEOCCS[\"WGS 84\",DATUM[\"WGS_1984\"," + "SPHEROID[\"WGS 84\",6378137,298.257223563," + "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]," + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]]," + "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]," + "AXIS[\"Geocentric X\",OTHER],AXIS[\"Geocentric Y\",OTHER]," + "AXIS[\"Geocentric Z\",NORTH],AUTHORITY[\"EPSG\",\"4978\"]]"); + auto dst = nn_dynamic_pointer_cast(objDst); + ASSERT_TRUE(dst != nullptr); + + { + auto list = CoordinateOperationFactory::create()->createOperations( + src3D, NN_NO_CHECK(dst), ctxt); + ASSERT_EQ(list.size(), 1U); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m " + "+xy_out=rad +z_out=m " + "+step +proj=cart +ellps=WGS84"); + } + + { + auto list = CoordinateOperationFactory::create()->createOperations( + NN_NO_CHECK(dst), src3D, ctxt); + ASSERT_EQ(list.size(), 1U); + EXPECT_EQ( + list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=cart +ellps=WGS84 " + "+step +proj=unitconvert +xy_in=rad +z_in=m " + "+xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); + } +} + +// --------------------------------------------------------------------------- + TEST(operation, geogCRS_different_from_baseCRS_to_projCRS_context_compatible_area) { auto authFactory = From ed942abd7ee595dd8c88b614468b834e90949408 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 28 Sep 2023 17:08:09 +0200 Subject: [PATCH 059/199] Test suite: fix to make it pass with ENABLE_TIFF=OFF (fixes #3900) --- test/CMakeLists.txt | 11 +++++--- test/unit/CMakeLists.txt | 9 +++++++ test/unit/gie_self_tests.cpp | 2 ++ test/unit/test_c_api.cpp | 2 ++ test/unit/test_grids.cpp | 50 +++++++++++++++++++----------------- 5 files changed, 47 insertions(+), 27 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f41f664ce6..9ec53dc567 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -43,23 +43,26 @@ endif() proj_add_gie_test("Builtins" "gie/builtins.gie") proj_add_gie_test("Builtins2" "gie/more_builtins.gie") proj_add_gie_test("Axisswap" "gie/axisswap.gie") -proj_add_gie_test("Deformation" "gie/deformation.gie") proj_add_gie_test("Ellipsoid" "gie/ellipsoid.gie") proj_add_gie_test("GDA" "gie/GDA.gie") proj_add_gie_test("4D-API-cs2cs-style" "gie/4D-API_cs2cs-style.gie") proj_add_gie_test("DHDN_ETRS89" "gie/DHDN_ETRS89.gie") proj_add_gie_test("Unitconvert" "gie/unitconvert.gie") -proj_add_gie_test("geotiff_grids" "gie/geotiff_grids.gie") proj_add_gie_test("adams_hemi" "gie/adams_hemi.gie") proj_add_gie_test("adams_ws1" "gie/adams_ws1.gie") proj_add_gie_test("adams_ws2" "gie/adams_ws2.gie") proj_add_gie_test("guyou" "gie/guyou.gie") proj_add_gie_test("peirce_q" "gie/peirce_q.gie") -proj_add_gie_test("defmodel" "gie/defmodel.gie") proj_add_gie_test("tinshift" "gie/tinshift.gie") + +if(TIFF_ENABLED) +proj_add_gie_test("Deformation" "gie/deformation.gie") +proj_add_gie_test("geotiff_grids" "gie/geotiff_grids.gie") +proj_add_gie_test("defmodel" "gie/defmodel.gie") proj_add_gie_test("gridshift" "gie/gridshift.gie") +endif() -if(CURL_ENABLED AND RUN_NETWORK_DEPENDENT_TESTS) +if(TIFF_ENABLED AND CURL_ENABLED AND RUN_NETWORK_DEPENDENT_TESTS) proj_add_gie_network_dependent_test("nkg" "gie/nkg.gie") endif() diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 1ec1dcb892..e58b11931a 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -154,6 +154,9 @@ target_link_libraries(proj_test_cpp_api add_test(NAME proj_test_cpp_api COMMAND proj_test_cpp_api) set_property(TEST proj_test_cpp_api PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) +if(TIFF_ENABLED) + target_compile_definitions(proj_test_cpp_api PRIVATE -DTIFF_ENABLED) +endif() add_executable(gie_self_tests main.cpp @@ -161,9 +164,13 @@ add_executable(gie_self_tests target_link_libraries(gie_self_tests PRIVATE GTest::gtest PRIVATE ${PROJ_LIBRARIES}) + add_test(NAME gie_self_tests COMMAND gie_self_tests) set_property(TEST gie_self_tests PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) +if(TIFF_ENABLED) + target_compile_definitions(gie_self_tests PRIVATE -DTIFF_ENABLED) +endif() add_executable(test_network main.cpp @@ -183,9 +190,11 @@ target_link_libraries(test_network PRIVATE GTest::gtest PRIVATE ${PROJ_LIBRARIES} PRIVATE ${SQLITE3_LIBRARY}) +if(TIFF_ENABLED) add_test(NAME test_network COMMAND test_network) set_property(TEST test_network PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) +endif() add_executable(test_defmodel main.cpp diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp index b8ab1da233..646e1cb718 100644 --- a/test/unit/gie_self_tests.cpp +++ b/test/unit/gie_self_tests.cpp @@ -407,6 +407,7 @@ TEST(gie, info_functions) { proj_destroy(P); +#ifdef TIFF_ENABLED /* proj_grid_info() */ grid_info = proj_grid_info("tests/test_hgrid.tif"); ASSERT_NE(std::string(grid_info.filename), ""); @@ -420,6 +421,7 @@ TEST(gie, info_functions) { EXPECT_NEAR(grid_info.lowerleft.phi, 0.90757121103705141, 1e-15); EXPECT_NEAR(grid_info.upperright.lam, 0.12217304763960307, 1e-15); EXPECT_NEAR(grid_info.upperright.phi, 0.95993108859688125, 1e-15); +#endif grid_info = proj_grid_info("nonexistinggrid"); ASSERT_EQ(std::string(grid_info.filename), ""); diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 6862f03b2d..18fbd1feab 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -1661,6 +1661,7 @@ TEST_F(CApi, proj_coordoperation_get_grid_used) { // --------------------------------------------------------------------------- +#ifdef TIFF_ENABLED TEST_F(CApi, proj_coordoperation_get_grid_used_fullname_caching) { // Test bugfix for // https://github.com/OSGeo/PROJ/issues/3444#issuecomment-1309499342 @@ -1688,6 +1689,7 @@ TEST_F(CApi, proj_coordoperation_get_grid_used_fullname_caching) { << std::string(fullName); } } +#endif // --------------------------------------------------------------------------- diff --git a/test/unit/test_grids.cpp b/test/unit/test_grids.cpp index 29dd080c24..3eab20feff 100644 --- a/test/unit/test_grids.cpp +++ b/test/unit/test_grids.cpp @@ -117,6 +117,31 @@ TEST_F(GridTest, HorizontalShiftGridSet_null) { // --------------------------------------------------------------------------- +TEST_F(GridTest, GenericShiftGridSet_null) { + auto gridSet = NS_PROJ::GenericShiftGridSet::open(m_ctxt, "null"); + ASSERT_NE(gridSet, nullptr); + auto grid = gridSet->gridAt(0.0, 0.0); + ASSERT_NE(grid, nullptr); + EXPECT_EQ(grid->width(), 3); + EXPECT_EQ(grid->height(), 3); + EXPECT_EQ(grid->extentAndRes().west, -M_PI); + EXPECT_TRUE(grid->isNullGrid()); + EXPECT_FALSE(grid->hasChanged()); + float out = -1.0f; + EXPECT_TRUE(grid->valueAt(0, 0, 0, out)); + EXPECT_EQ(out, 0.0f); + EXPECT_EQ(grid->unit(0), ""); + EXPECT_EQ(grid->description(0), ""); + EXPECT_EQ(grid->metadataItem("foo"), ""); + EXPECT_EQ(grid->samplesPerPixel(), 0); + gridSet->reassign_context(m_ctxt2); + gridSet->reopen(m_ctxt2); +} + +#ifdef TIFF_ENABLED + +// --------------------------------------------------------------------------- + TEST_F(GridTest, HorizontalShiftGridSet_gtiff) { auto gridSet = NS_PROJ::HorizontalShiftGridSet::open(m_ctxt, "tests/test_hgrid.tif"); @@ -147,29 +172,6 @@ TEST_F(GridTest, HorizontalShiftGridSet_gtiff) { // --------------------------------------------------------------------------- -TEST_F(GridTest, GenericShiftGridSet_null) { - auto gridSet = NS_PROJ::GenericShiftGridSet::open(m_ctxt, "null"); - ASSERT_NE(gridSet, nullptr); - auto grid = gridSet->gridAt(0.0, 0.0); - ASSERT_NE(grid, nullptr); - EXPECT_EQ(grid->width(), 3); - EXPECT_EQ(grid->height(), 3); - EXPECT_EQ(grid->extentAndRes().west, -M_PI); - EXPECT_TRUE(grid->isNullGrid()); - EXPECT_FALSE(grid->hasChanged()); - float out = -1.0f; - EXPECT_TRUE(grid->valueAt(0, 0, 0, out)); - EXPECT_EQ(out, 0.0f); - EXPECT_EQ(grid->unit(0), ""); - EXPECT_EQ(grid->description(0), ""); - EXPECT_EQ(grid->metadataItem("foo"), ""); - EXPECT_EQ(grid->samplesPerPixel(), 0); - gridSet->reassign_context(m_ctxt2); - gridSet->reopen(m_ctxt2); -} - -// --------------------------------------------------------------------------- - TEST_F(GridTest, GenericShiftGridSet_gtiff) { ASSERT_EQ(NS_PROJ::GenericShiftGridSet::open(m_ctxt, "foobar"), nullptr); auto gridSet = NS_PROJ::GenericShiftGridSet::open( @@ -335,4 +337,6 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff_projected) { EXPECT_EQ(grid->extentAndRes().resY, 1000); } +#endif // TIFF_ENABLED + } // namespace From 81ac095b2ac8e31e56751916e8dbc52ccd1c1717 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 28 Sep 2023 17:14:18 +0200 Subject: [PATCH 060/199] CI: add testing for -DENABLE_TIFF=OFF --- .github/workflows/clang_linux.yml | 21 ++++++++++++++++++--- travis/install.sh | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/clang_linux.yml b/.github/workflows/clang_linux.yml index 1f4e391e49..b656eb9e60 100644 --- a/.github/workflows/clang_linux.yml +++ b/.github/workflows/clang_linux.yml @@ -17,6 +17,21 @@ jobs: clang_linux: runs-on: ubuntu-latest + env: + PROJ_CMAKE_BUILD_OPTIONS: ${{ matrix.PROJ_CMAKE_BUILD_OPTIONS }} + + strategy: + fail-fast: false + matrix: + include: + - name: Regular + id: regular + PROJ_CMAKE_BUILD_OPTIONS: "" + + - name: Without TIFF + id: without_tiff + PROJ_CMAKE_BUILD_OPTIONS: "-DENABLE_TIFF=OFF" + if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout @@ -28,8 +43,8 @@ jobs: with: path: | ${{ github.workspace }}/ccache.tar.gz - key: ${{ runner.os }}-cache-clang-${{ github.run_id }} - restore-keys: ${{ runner.os }}-cache-clang- + key: ${{ runner.os }}-cache-clang-${{ matrix.id }}-${{ github.run_id }} + restore-keys: ${{ runner.os }}-cache-clang-${{ matrix.id }}- - name: Run - run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh + run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e PROJ_CMAKE_BUILD_OPTIONS="$PROJ_CMAKE_BUILD_OPTIONS" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh diff --git a/travis/install.sh b/travis/install.sh index 026dbd481a..711f2db29b 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -56,6 +56,7 @@ cd shared_build cmake \ -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ -D USE_CCACHE=${USE_CCACHE} \ + ${PROJ_CMAKE_BUILD_OPTIONS:-} \ -D PROJ_DB_CACHE_DIR=$HOME/.ccache \ -D BUILD_SHARED_LIBS=ON \ -D BUILD_EXAMPLES=ON \ From c679e304dc00ea371dce930b5245d4b684c4e2db Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 30 Sep 2023 15:30:17 +0200 Subject: [PATCH 061/199] Database: update to EPSG 10.096 --- data/sql/alias_name.sql | 3 +++ data/sql/conversion.sql | 4 ++++ data/sql/deprecation.sql | 1 + data/sql/extent.sql | 1 + data/sql/geodetic_crs.sql | 6 ++++++ data/sql/geodetic_datum.sql | 2 ++ data/sql/grid_transformation.sql | 2 +- data/sql/helmert_transformation.sql | 2 ++ data/sql/metadata.sql | 4 ++-- data/sql/projected_crs.sql | 6 ++++++ data/sql/scope.sql | 2 ++ 11 files changed, 30 insertions(+), 3 deletions(-) diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index 3f244702bc..bdaafac734 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -726,6 +726,9 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1361','Zero Hidrográfi INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1365','NAD83(CSRS)v8','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1365','NAD83(CSRS) 2010','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1366','COV23-IRF','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','BBT2000','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','Brenner basistunnel','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','Galleria di base del Brennero','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21100','Genuk / NEIEZ','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2140','NAD83(CSRS98) / SCoPQ zone 3','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2141','NAD83(CSRS98) / SCoPQ zone 4','EPSG'); diff --git a/data/sql/conversion.sql b/data/sql/conversion.sql index 95998e5996..9bba1cee21 100644 --- a/data/sql/conversion.sql +++ b/data/sql/conversion.sql @@ -1966,6 +1966,10 @@ INSERT INTO "conversion" VALUES('EPSG','10447','Port Hedland Grid 1994','Replace INSERT INTO "usage" VALUES('EPSG','20275','conversion','EPSG','10447','EPSG','4466','EPSG','1054'); INSERT INTO "conversion" VALUES('EPSG','10470','COV23-TM','In conjunction with transformation ETRS89 to COV23-IRF (1) (code 10469), emulates the COV23 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',52.24,'EPSG','9110','EPSG','8802','Longitude of natural origin',-1.33,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',116887.9989,'EPSG','9001','EPSG','8807','False northing',102194.9369,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20314','conversion','EPSG','10470','EPSG','4743','EPSG','1141'); +INSERT INTO "conversion" VALUES('EPSG','10476','Brenner Base Tunnel TM','Also defined with latitude of natural origin at equator and false northing = -5105739.717m.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',46.58507947,'EPSG','9110','EPSG','8802','Longitude of natural origin',11.31425775,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000121,'EPSG','9201','EPSG','8806','False easting',20000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20340','conversion','EPSG','10476','EPSG','4744','EPSG','1285'); +INSERT INTO "conversion" VALUES('EPSG','10479','TWDB Groundwater Modeling','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',31.25,'EPSG','9102','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',35.0,'EPSG','9102','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',19685000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20353','conversion','EPSG','10479','EPSG','1412','EPSG','1286'); INSERT INTO "conversion" VALUES('EPSG','10501','Colorado CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.43,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.47,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11130','conversion','EPSG','10501','EPSG','2184','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10502','Colorado CS27 Central zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); diff --git a/data/sql/deprecation.sql b/data/sql/deprecation.sql index 4a92ce54b5..98a1c34336 100644 --- a/data/sql/deprecation.sql +++ b/data/sql/deprecation.sql @@ -465,3 +465,4 @@ INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5834','EPSG','9930','EPS INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5835','EPSG','9931','EPSG'); INSERT INTO "deprecation" VALUES('compound_crs','EPSG','9924','EPSG','10293','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','8395','EPSG','10285','EPSG'); +INSERT INTO "deprecation" VALUES('projected_crs','EPSG','10480','EPSG','10481','EPSG'); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 51cf96aaf0..162998f08f 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -3719,3 +3719,4 @@ INSERT INTO "extent" VALUES('EPSG','4740','Spain - Melilla','Spain - Melilla ons INSERT INTO "extent" VALUES('EPSG','4741','Spain - Alboran','Spain - Alboran island - onshore.',35.88,36.0,-3.1,-2.96,0); INSERT INTO "extent" VALUES('EPSG','4742','Netherlands - offshore and nearshore ','Netherlands - offshore North Sea and nearshore.',51.32,55.77,2.53,7.21,0); INSERT INTO "extent" VALUES('EPSG','4743','UK - Coventry','United Kingdom (UK) - in and around the area of Coventry city centre and the route to Birmingham airport.',52.3,52.5,-1.85,-1.3,0); +INSERT INTO "extent" VALUES('EPSG','4744','Europe - Brenner','Austria and Italy - on or related to the Brenner Base Tunnel rail route from Innsbruck to Fortezza (Franzensfeste).',46.45,47.32,11.04,11.9,0); diff --git a/data/sql/geodetic_crs.sql b/data/sql/geodetic_crs.sql index a109349f98..0c16a2aa6c 100644 --- a/data/sql/geodetic_crs.sql +++ b/data/sql/geodetic_crs.sql @@ -2276,6 +2276,12 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','10414','NAD83(CSRS)v8',NULL,'geographi INSERT INTO "usage" VALUES('EPSG','20156','geodetic_crs','EPSG','10414','EPSG','1061','EPSG','1183'); INSERT INTO "geodetic_crs" VALUES('EPSG','10468','COV23-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1366',NULL,0); INSERT INTO "usage" VALUES('EPSG','20311','geodetic_crs','EPSG','10468','EPSG','4743','EPSG','1141'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10473','BBT2000',NULL,'geocentric','EPSG','6500','EPSG','1367',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20338','geodetic_crs','EPSG','10473','EPSG','4744','EPSG','1285'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10474','BBT2000',NULL,'geographic 3D','EPSG','6423','EPSG','1367',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20339','geodetic_crs','EPSG','10474','EPSG','4744','EPSG','1285'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10475','BBT2000',NULL,'geographic 2D','EPSG','6422','EPSG','1367',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20331','geodetic_crs','EPSG','10475','EPSG','4744','EPSG','1183'); INSERT INTO "geodetic_crs" VALUES('EPSG','20033','MWC18-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1324',NULL,0); INSERT INTO "usage" VALUES('EPSG','18335','geodetic_crs','EPSG','20033','EPSG','4666','EPSG','1141'); INSERT INTO "geodetic_crs" VALUES('EPSG','20039','SIRGAS-Chile 2021',NULL,'geocentric','EPSG','6500','EPSG','1327',NULL,0); diff --git a/data/sql/geodetic_datum.sql b/data/sql/geodetic_datum.sql index 8c917dec54..283dbf79e3 100644 --- a/data/sql/geodetic_datum.sql +++ b/data/sql/geodetic_datum.sql @@ -422,6 +422,8 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1365','North American Datum of 1983 INSERT INTO "usage" VALUES('EPSG','20140','geodetic_datum','EPSG','1365','EPSG','1061','EPSG','1027'); INSERT INTO "geodetic_datum" VALUES('EPSG','1366','COV23 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2023-01-01',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20309','geodetic_datum','EPSG','1366','EPSG','4743','EPSG','1141'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1367','Brenner Base Tunnel 2000',NULL,'EPSG','7030','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20337','geodetic_datum','EPSG','1367','EPSG','4744','EPSG','1285'); INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13422','geodetic_datum','EPSG','6001','EPSG','1263','EPSG','1213'); INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,NULL,1); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 6cc61fabef..671eba1e5c 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1632,7 +1632,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','15944','NEA74 Noumea to RGNC91- INSERT INTO "usage" VALUES('EPSG','11955','grid_transformation','EPSG','15944','EPSG','2823','EPSG','1027'); INSERT INTO "grid_transformation" VALUES('EPSG','15947','IGN72 Grande Terre to RGNC91-93 (6)','Emulation using NTv2 method of tfm IGN72 Grande Terre to RGNC91-93 (4) (code 15945).','EPSG','9615','NTv2','EPSG','4662','EPSG','4749',0.1,'EPSG','8656','Latitude and longitude difference file','RGNC1991_IGN72GrandeTerre.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.1m',1); INSERT INTO "usage" VALUES('EPSG','11958','grid_transformation','EPSG','15947','EPSG','2822','EPSG','1031'); -INSERT INTO "grid_transformation" VALUES('EPSG','15948','DHDN to ETRS89 (8)','Developed for ATKIS (Amtliches Topographisch-Kartographisches Informationssystem [Official Topographic and Cartographic Information System]). Provides a uniform transformation across the whole country. May be used as tfm to WGS84 - see tfm code 15949.','EPSG','9615','NTv2','EPSG','4314','EPSG','4258',0.9,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BKG-Deu BeTA2007',0); +INSERT INTO "grid_transformation" VALUES('EPSG','15948','DHDN to ETRS89 (8)','Developed for ATKIS (Amtliches Topographisch-Kartographisches Informationssystem [Official Topographic and Cartographic Information System]). Provides a uniform transformation across the whole country. May be used as tfm to WGS 84 - see tfm code 15949.','EPSG','9615','NTv2','EPSG','4314','EPSG','4258',0.9,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BKG-Deu BeTA2007',0); INSERT INTO "usage" VALUES('EPSG','11959','grid_transformation','EPSG','15948','EPSG','3339','EPSG','1041'); 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.','EPSG','9615','NTv2','EPSG','4314','EPSG','4326',1.0,'EPSG','8656','Latitude and longitude difference file','BETA2007.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Deu BeTA2007',0); INSERT INTO "usage" VALUES('EPSG','11960','grid_transformation','EPSG','15949','EPSG','3339','EPSG','1252'); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index 7495ebbba3..4de698e86e 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -2645,6 +2645,8 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10416','NAD83(CSRS)v7 to NAD INSERT INTO "usage" VALUES('EPSG','20197','helmert_transformation','EPSG','10416','EPSG','4544','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','10419','NAD83(CSRS)v8 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2020 by common transformations (codes 10334 and 10415).','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','10412','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','20195','helmert_transformation','EPSG','10419','EPSG','4544','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10478','BBT2000 to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10475','EPSG','4326',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,'BBT-Aut-Ita',0); +INSERT INTO "usage" VALUES('EPSG','20343','helmert_transformation','EPSG','10478','EPSG','4744','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','15483','Tokyo to JGD2000 (1)','Derived at Tokyo datum origin. Accuracy on main islands 9m. Also used on remote islands with significantly less accuracy: Io-To 793m, Kitadaito and Minamidaito Jima 642m, Tarama and Minna Shima 560m, Ishigaki and Taketomi Jima 251m, Yonaguni Jima 248m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4612',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GSI-Jpn',0); INSERT INTO "usage" VALUES('EPSG','11494','helmert_transformation','EPSG','15483','EPSG','3957','EPSG','1142'); INSERT INTO "helmert_transformation" VALUES('EPSG','15484','Tokyo to WGS 84 (108)','Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4326',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn',0); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 97c77a265f..6755044314 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.094'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-08-08'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.096'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-09-30'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql index 7a903f7dcd..e8dbe473d9 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -7553,6 +7553,12 @@ INSERT INTO "projected_crs" VALUES('EPSG','10465','GDA94 / PHG94',NULL,'EPSG','4 INSERT INTO "usage" VALUES('EPSG','20257','projected_crs','EPSG','10465','EPSG','4466','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10471','COV23 Grid',NULL,'EPSG','4400','EPSG','10468','EPSG','10470',NULL,0); INSERT INTO "usage" VALUES('EPSG','20313','projected_crs','EPSG','10471','EPSG','4743','EPSG','1141'); +INSERT INTO "projected_crs" VALUES('EPSG','10477','BBT2000 / BBT-TM',NULL,'EPSG','4400','EPSG','10475','EPSG','10476',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20341','projected_crs','EPSG','10477','EPSG','4744','EPSG','1285'); +INSERT INTO "projected_crs" VALUES('EPSG','10480','NAD83 / TWDB GM',NULL,'EPSG','4499','EPSG','4269','EPSG','10479',NULL,1); +INSERT INTO "usage" VALUES('EPSG','20355','projected_crs','EPSG','10480','EPSG','1412','EPSG','1286'); +INSERT INTO "projected_crs" VALUES('EPSG','10481','NAD83 / TWDB GM',NULL,'EPSG','4497','EPSG','4269','EPSG','10479',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20356','projected_crs','EPSG','10481','EPSG','1412','EPSG','1286'); INSERT INTO "projected_crs" VALUES('EPSG','11114','MAGNA-SIRGAS 2018 / Colombia Far West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18065',NULL,0); INSERT INTO "usage" VALUES('EPSG','18947','projected_crs','EPSG','11114','EPSG','3091','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','11115','MAGNA-SIRGAS 2018 / Colombia West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18066',NULL,0); diff --git a/data/sql/scope.sql b/data/sql/scope.sql index 4f800f11a8..34e69b61a0 100644 --- a/data/sql/scope.sql +++ b/data/sql/scope.sql @@ -261,3 +261,5 @@ INSERT INTO "scope" VALUES('EPSG','1281','Geodesy. Defines LUREF from 2006 to 20 INSERT INTO "scope" VALUES('EPSG','1282','Geodesy. Defines LUREF from 2014 to 2020.',0); INSERT INTO "scope" VALUES('EPSG','1283','Geodesy. Defines LUREF from 2020.',0); INSERT INTO "scope" VALUES('EPSG','1284','Geodesy. Defines NAD83(CSRS)v8.',0); +INSERT INTO "scope" VALUES('EPSG','1285','Engineering survey and mapping for the Brenner base tunnel (BBT) railway project.',0); +INSERT INTO "scope" VALUES('EPSG','1286','Mapping and data analysis for Texas Water Development Board groundwater modeling.',0); From 8d8066e01597ef63a7380401a293a7cc12afcbba Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 30 Sep 2023 15:32:17 +0200 Subject: [PATCH 062/199] Doc: give all EPSG potential names for lon_0/lat_0/x_0/y_0 (fixes #3904) (#3905) --- docs/source/operations/options/lat_0.rst | 4 +++- docs/source/operations/options/lon_0.rst | 4 +++- docs/source/operations/options/x_0.rst | 3 ++- docs/source/operations/options/y_0.rst | 3 ++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/source/operations/options/lat_0.rst b/docs/source/operations/options/lat_0.rst index 6d5264aefc..34a4660c5e 100644 --- a/docs/source/operations/options/lat_0.rst +++ b/docs/source/operations/options/lat_0.rst @@ -1,6 +1,8 @@ .. option:: +lat_0= - Latitude of projection center. + Latitude of natural origin, latitude of false origin or latitude of + projection centre (naming and meaning depend on the + projection method). *Defaults to 0.0.* diff --git a/docs/source/operations/options/lon_0.rst b/docs/source/operations/options/lon_0.rst index 717c84992b..0b12de5ed2 100644 --- a/docs/source/operations/options/lon_0.rst +++ b/docs/source/operations/options/lon_0.rst @@ -1,6 +1,8 @@ .. option:: +lon_0= - Longitude of projection center. + Central meridian/longitude of natural origin, longitude of + origin or longitude of false origin (naming and meaning depend on the + projection method). *Defaults to 0.0.* diff --git a/docs/source/operations/options/x_0.rst b/docs/source/operations/options/x_0.rst index b80787c90f..51d87bb9dd 100644 --- a/docs/source/operations/options/x_0.rst +++ b/docs/source/operations/options/x_0.rst @@ -1,5 +1,6 @@ .. option:: +x_0= - False easting, in meters. + False easting, easting at false origin or easting at projection centre (naming + and meaning depend on the projection method). Always in meters. *Defaults to 0.0.* diff --git a/docs/source/operations/options/y_0.rst b/docs/source/operations/options/y_0.rst index 04e6768e6b..09ffa9295f 100644 --- a/docs/source/operations/options/y_0.rst +++ b/docs/source/operations/options/y_0.rst @@ -1,5 +1,6 @@ .. option:: +y_0= - False northing, in meters. + False northing, northing at false origin or northing at projection centre (naming + and meaning depend on the projection method). Always in meters. *Defaults to 0.0.* From 2040e685f5ab9c2958b7b611f5aaafee21fed82f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 2 Oct 2023 10:27:29 +0200 Subject: [PATCH 063/199] [Backport master] Update faq.rst to mention geod (#3913) See https://github.com/OSGeo/PROJ/issues/2644 --- docs/source/faq.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index fa758b7cf2..94e68e4068 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -135,7 +135,9 @@ input ordered as latitude/longitude (typically with the EPSG dataset), however, internally PROJ expects an longitude/latitude ordering for all projections. This is generally hidden for users but in a few cases it is exposed at the surface level of PROJ, most prominently in the :program:`proj` utility which expects -longitude/latitude ordering of input date (unless :option:`proj -r` is used). +longitude/latitude ordering of input data (unless :option:`proj -r` is used). +(And :program:`geod`, which on the contrary expects latitude/longitude, and lacks any +`-r` style workarounds.) In case of doubt about the axis order of a specific CRS :program:`projinfo` is able to provide an answer. Simply look up the CRS and examine the axis specification From 0b51b1bd51bc4bf879a48b49400a2273f5ca271d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 12 Oct 2023 19:17:58 +0200 Subject: [PATCH 064/199] GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow on invalid bounding boxes Very similar to bugfix of 8409e8e03ef487b8a25d5ec6194dd31135d044c8 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60084 --- src/iso19111/metadata.cpp | 7 +++++++ test/unit/test_metadata.cpp | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/src/iso19111/metadata.cpp b/src/iso19111/metadata.cpp index 4dd5129e63..6be24cc770 100644 --- a/src/iso19111/metadata.cpp +++ b/src/iso19111/metadata.cpp @@ -343,6 +343,13 @@ bool GeographicBoundingBox::Private::intersects(const Private &other) const { return false; } + // Bail out on longitudes not in [-180,180]. We could probably make + // some sense of them, but this check at least avoid potential infinite + // recursion. + if (oW > 180 || oE < -180) { + return false; + } + return intersects(Private(oW, oS, 180.0, oN)) || intersects(Private(-180.0, oS, oE, oN)); diff --git a/test/unit/test_metadata.cpp b/test/unit/test_metadata.cpp index 64ddfab677..6b21728293 100644 --- a/test/unit/test_metadata.cpp +++ b/test/unit/test_metadata.cpp @@ -308,15 +308,20 @@ TEST(metadata, extent_edge_cases) { InvalidValueTypeException); // Scenario of https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57328 + // and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60084 { auto A = Extent::createFromBBOX(0, 1, 2, 3); auto B = Extent::createFromBBOX(200, -80, -100, 80); + EXPECT_FALSE(A->intersects(B)); + EXPECT_FALSE(B->intersects(A)); EXPECT_TRUE(A->intersection(B) == nullptr); EXPECT_TRUE(B->intersection(A) == nullptr); } { auto A = Extent::createFromBBOX(0, 1, 2, 3); auto B = Extent::createFromBBOX(100, -80, -200, 80); + EXPECT_FALSE(A->intersects(B)); + EXPECT_FALSE(B->intersects(A)); EXPECT_TRUE(A->intersection(B) == nullptr); EXPECT_TRUE(B->intersection(A) == nullptr); } From 3920d637672f48299e302e8086fb82796003cd52 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Sat, 14 Oct 2023 21:14:12 +0200 Subject: [PATCH 065/199] Add GCG2016 German geoid model file in sql (#3920) * Add GCG2016 German geoid model file in sql * update PROJ_DATA.VERSION to 1.16 --- data/sql/grid_alternatives.sql | 3 +++ data/sql/metadata.sql | 2 +- docs/source/conf.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 3a90d1bf14..02b2ff3871 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -105,6 +105,9 @@ VALUES -- de_adv - Arbeitsgemeinschaft der Vermessungsverwaltungender der Länder der Bundesrepublik Deutschland (AdV) ('BETA2007.gsb','de_adv_BETA2007.tif','BETA2007.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_adv_BETA2007.tif',1,1,NULL), +-- de_bkg - Bundesamt für Kartographie und Geodäsie (BKG) +('GCG2016.txt','de_bkg_gcg2016.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/de_bkg_gcg2016.tif',1,1,NULL), + -- de_geosn - Staatsbetrieb Geobasisinformation und Vermessung Sachsen GeoSN ('NTv2_SN.gsb','de_geosn_NTv2_SN.tif','NTv2_SN.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_geosn_NTv2_SN.tif',1,1,NULL), diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 6755044314..36b916d829 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -18,4 +18,4 @@ INSERT INTO "metadata" VALUES('PROJ.VERSION', '${PROJ_VERSION}'); -- Version of the PROJ-data package with which this database is the most -- compatible. -INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.15'); +INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.16'); diff --git a/docs/source/conf.py b/docs/source/conf.py index e6dba875fc..8d5b791504 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -31,7 +31,7 @@ release = "9.4.0-dev" # PROJ-data version -data_version = "1.15" +data_version = "1.16" today_date = date.today() # today_date = date(Y, M, D) # or use a specific date From d0d4d949208bda5c833cf0fdbfb8e3f8af82cdb6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 15 Oct 2023 17:46:54 +0200 Subject: [PATCH 066/199] Cleanup: use constants for strings of WKT coordinate system types --- include/proj/coordinatesystem.hpp | 48 ++++++++++++++--- src/iso19111/coordinatesystem.cpp | 6 +-- src/iso19111/factory.cpp | 25 +++++---- src/iso19111/io.cpp | 89 ++++++++++++++++--------------- 4 files changed, 106 insertions(+), 62 deletions(-) diff --git a/include/proj/coordinatesystem.hpp b/include/proj/coordinatesystem.hpp index 0dc0702e23..a26f4c1719 100644 --- a/include/proj/coordinatesystem.hpp +++ b/include/proj/coordinatesystem.hpp @@ -361,13 +361,16 @@ class PROJ_GCC_DLL SphericalCS final : public CoordinateSystem { const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "spherical"; + protected: PROJ_INTERNAL explicit SphericalCS( const std::vector &axisIn); INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "spherical"; + return WKT2_TYPE; } private: @@ -422,6 +425,9 @@ class PROJ_GCC_DLL EllipsoidalCS final : public CoordinateSystem { const common::UnitOfMeasure &angularUnit, const common::UnitOfMeasure &linearUnit); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "ellipsoidal"; + //! @cond Doxygen_Suppress /** \brief Typical axis order. */ @@ -454,7 +460,7 @@ class PROJ_GCC_DLL EllipsoidalCS final : public CoordinateSystem { INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "ellipsoidal"; + return WKT2_TYPE; } protected: @@ -490,6 +496,9 @@ class PROJ_GCC_DLL VerticalCS final : public CoordinateSystem { PROJ_DLL static VerticalCSNNPtr createGravityRelatedHeight(const common::UnitOfMeasure &unit); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "vertical"; + PROJ_PRIVATE : //! @cond Doxygen_Suppress PROJ_INTERNAL VerticalCSNNPtr @@ -502,7 +511,7 @@ class PROJ_GCC_DLL VerticalCS final : public CoordinateSystem { INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "vertical"; + return WKT2_TYPE; } private: @@ -560,6 +569,10 @@ class PROJ_GCC_DLL CartesianCS final : public CoordinateSystem { PROJ_DLL static CartesianCSNNPtr createGeocentric(const common::UnitOfMeasure &unit); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = + "Cartesian"; // uppercase is intended + PROJ_PRIVATE : //! @cond Doxygen_Suppress PROJ_INTERNAL CartesianCSNNPtr @@ -573,7 +586,7 @@ class PROJ_GCC_DLL CartesianCS final : public CoordinateSystem { INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "Cartesian"; // uppercase is intended + return WKT2_TYPE; } private: @@ -600,6 +613,9 @@ class PROJ_GCC_DLL AffineCS final : public CoordinateSystem { PROJ_DLL ~AffineCS() override; //! @endcond + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "affine"; + PROJ_DLL static AffineCSNNPtr create(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis1, @@ -623,7 +639,7 @@ class PROJ_GCC_DLL AffineCS final : public CoordinateSystem { INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "affine"; + return WKT2_TYPE; } private: @@ -655,13 +671,16 @@ class PROJ_GCC_DLL OrdinalCS final : public CoordinateSystem { create(const util::PropertyMap &properties, const std::vector &axisIn); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "ordinal"; + protected: PROJ_INTERNAL explicit OrdinalCS( const std::vector &axisIn); INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "ordinal"; + return WKT2_TYPE; } private: @@ -691,13 +710,16 @@ class PROJ_GCC_DLL ParametricCS final : public CoordinateSystem { create(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axisIn); + /** Value of getWKT2Type() */ + static constexpr const char *WKT2_TYPE = "parametric"; + protected: PROJ_INTERNAL explicit ParametricCS( const std::vector &axisIn); INLINED_MAKE_SHARED PROJ_INTERNAL std::string getWKT2Type(bool) const override { - return "parametric"; + return WKT2_TYPE; } private: @@ -725,6 +747,9 @@ class PROJ_GCC_DLL TemporalCS : public CoordinateSystem { PROJ_DLL ~TemporalCS() override; //! @endcond + /** WKT2:2015 type */ + static constexpr const char *WKT2_2015_TYPE = "temporal"; + protected: PROJ_INTERNAL explicit TemporalCS(const CoordinateSystemAxisNNPtr &axis); INLINED_MAKE_SHARED @@ -763,6 +788,9 @@ class PROJ_GCC_DLL DateTimeTemporalCS final : public TemporalCS { create(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis); + /** WKT2:2019 type */ + static constexpr const char *WKT2_2019_TYPE = "TemporalDateTime"; + protected: PROJ_INTERNAL explicit DateTimeTemporalCS( const CoordinateSystemAxisNNPtr &axis); @@ -799,6 +827,9 @@ class PROJ_GCC_DLL TemporalCountCS final : public TemporalCS { create(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis); + /** WKT2:2019 type */ + static constexpr const char *WKT2_2019_TYPE = "TemporalCount"; + protected: PROJ_INTERNAL explicit TemporalCountCS( const CoordinateSystemAxisNNPtr &axis); @@ -835,6 +866,9 @@ class PROJ_GCC_DLL TemporalMeasureCS final : public TemporalCS { create(const util::PropertyMap &properties, const CoordinateSystemAxisNNPtr &axis); + /** WKT2:2019 type */ + static constexpr const char *WKT2_2019_TYPE = "TemporalMeasure"; + protected: PROJ_INTERNAL explicit TemporalMeasureCS( const CoordinateSystemAxisNNPtr &axis); diff --git a/src/iso19111/coordinatesystem.cpp b/src/iso19111/coordinatesystem.cpp index d7cdcb643d..f8c455ddfe 100644 --- a/src/iso19111/coordinatesystem.cpp +++ b/src/iso19111/coordinatesystem.cpp @@ -1527,7 +1527,7 @@ DateTimeTemporalCS::create(const util::PropertyMap &properties, // --------------------------------------------------------------------------- std::string DateTimeTemporalCS::getWKT2Type(bool use2019Keywords) const { - return use2019Keywords ? "TemporalDateTime" : "temporal"; + return use2019Keywords ? WKT2_2019_TYPE : WKT2_2015_TYPE; } // --------------------------------------------------------------------------- @@ -1560,7 +1560,7 @@ TemporalCountCS::create(const util::PropertyMap &properties, // --------------------------------------------------------------------------- std::string TemporalCountCS::getWKT2Type(bool use2019Keywords) const { - return use2019Keywords ? "TemporalCount" : "temporal"; + return use2019Keywords ? WKT2_2019_TYPE : WKT2_2015_TYPE; } // --------------------------------------------------------------------------- @@ -1593,7 +1593,7 @@ TemporalMeasureCS::create(const util::PropertyMap &properties, // --------------------------------------------------------------------------- std::string TemporalMeasureCS::getWKT2Type(bool use2019Keywords) const { - return use2019Keywords ? "TemporalMeasure" : "temporal"; + return use2019Keywords ? WKT2_2019_TYPE : WKT2_2015_TYPE; } } // namespace cs diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index cd4439c892..7b2d1634c1 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -115,6 +115,13 @@ namespace io { #define GEOG_3D_SINGLE_QUOTED "'geographic 3D'" #define GEOCENTRIC_SINGLE_QUOTED "'geocentric'" +// Coordinate system types +constexpr const char *CS_TYPE_ELLIPSOIDAL = cs::EllipsoidalCS::WKT2_TYPE; +constexpr const char *CS_TYPE_CARTESIAN = cs::CartesianCS::WKT2_TYPE; +constexpr const char *CS_TYPE_SPHERICAL = cs::SphericalCS::WKT2_TYPE; +constexpr const char *CS_TYPE_VERTICAL = cs::VerticalCS::WKT2_TYPE; +constexpr const char *CS_TYPE_ORDINAL = cs::OrdinalCS::WKT2_TYPE; + // See data/sql/metadata.sql for the semantics of those constants constexpr int DATABASE_LAYOUT_VERSION_MAJOR = 1; // If the code depends on the new additions, then DATABASE_LAYOUT_VERSION_MINOR @@ -1605,11 +1612,11 @@ identifyFromNameOrCode(const DatabaseContextNNPtr &dbContext, static const char *getCSDatabaseType(const cs::CoordinateSystemNNPtr &obj) { if (dynamic_cast(obj.get())) { - return "ellipsoidal"; + return CS_TYPE_ELLIPSOIDAL; } else if (dynamic_cast(obj.get())) { - return "Cartesian"; + return CS_TYPE_CARTESIAN; } else if (dynamic_cast(obj.get())) { - return "vertical"; + return CS_TYPE_VERTICAL; } return nullptr; } @@ -4917,7 +4924,7 @@ AuthorityFactory::createCoordinateSystem(const std::string &code) const { const auto &orientation = row[2]; const auto &uom_auth_name = row[3]; const auto &uom_code = row[4]; - if (uom_auth_name.empty() && csType != "ordinal") { + if (uom_auth_name.empty() && csType != CS_TYPE_ORDINAL) { throw FactoryException("no unit of measure for an axis is only " "supported for ordinatal CS"); } @@ -4966,7 +4973,7 @@ AuthorityFactory::createCoordinateSystem(const std::string &code) const { auto props = util::PropertyMap() .set(metadata::Identifier::CODESPACE_KEY, d->authority()) .set(metadata::Identifier::CODE_KEY, code); - if (csType == "ellipsoidal") { + if (csType == CS_TYPE_ELLIPSOIDAL) { if (axisList.size() == 2) { return cacheAndRet( cs::EllipsoidalCS::create(props, axisList[0], axisList[1])); @@ -4977,7 +4984,7 @@ AuthorityFactory::createCoordinateSystem(const std::string &code) const { } throw FactoryException("invalid number of axis for EllipsoidalCS"); } - if (csType == "Cartesian") { + if (csType == CS_TYPE_CARTESIAN) { if (axisList.size() == 2) { return cacheAndRet( cs::CartesianCS::create(props, axisList[0], axisList[1])); @@ -4988,7 +4995,7 @@ AuthorityFactory::createCoordinateSystem(const std::string &code) const { } throw FactoryException("invalid number of axis for CartesianCS"); } - if (csType == "spherical") { + if (csType == CS_TYPE_SPHERICAL) { if (axisList.size() == 2) { return cacheAndRet( cs::SphericalCS::create(props, axisList[0], axisList[1])); @@ -4999,13 +5006,13 @@ AuthorityFactory::createCoordinateSystem(const std::string &code) const { } throw FactoryException("invalid number of axis for SphericalCS"); } - if (csType == "vertical") { + if (csType == CS_TYPE_VERTICAL) { if (axisList.size() == 1) { return cacheAndRet(cs::VerticalCS::create(props, axisList[0])); } throw FactoryException("invalid number of axis for VerticalCS"); } - if (csType == "ordinal") { + if (csType == CS_TYPE_ORDINAL) { return cacheAndRet(cs::OrdinalCS::create(props, axisList)); } throw FactoryException("unhandled coordinate system type: " + csType); diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index be2d10f036..2172dafbd2 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -2776,7 +2776,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ const char *csTypeCStr = ""; const auto &parentNodeName = parentNode->GP()->value(); if (ci_equal(parentNodeName, WKTConstants::GEOCCS)) { - csTypeCStr = "Cartesian"; + csTypeCStr = CartesianCS::WKT2_TYPE; isGeocentric = true; if (axisCount == 0) { auto unit = @@ -2787,7 +2787,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ return CartesianCS::createGeocentric(unit); } } else if (ci_equal(parentNodeName, WKTConstants::GEOGCS)) { - csTypeCStr = "Ellipsoidal"; + csTypeCStr = EllipsoidalCS::WKT2_TYPE; if (axisCount == 0) { // Missing axis with GEOGCS ? Presumably Long/Lat order // implied @@ -2812,7 +2812,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } } else if (ci_equal(parentNodeName, WKTConstants::BASEGEODCRS) || ci_equal(parentNodeName, WKTConstants::BASEGEOGCRS)) { - csTypeCStr = "Ellipsoidal"; + csTypeCStr = EllipsoidalCS::WKT2_TYPE; if (axisCount == 0) { auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::ANGULAR); @@ -2825,7 +2825,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } else if (ci_equal(parentNodeName, WKTConstants::PROJCS) || ci_equal(parentNodeName, WKTConstants::BASEPROJCRS) || ci_equal(parentNodeName, WKTConstants::BASEENGCRS)) { - csTypeCStr = "Cartesian"; + csTypeCStr = CartesianCS::WKT2_TYPE; if (axisCount == 0) { auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::LINEAR); @@ -2841,7 +2841,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } else if (ci_equal(parentNodeName, WKTConstants::VERT_CS) || ci_equal(parentNodeName, WKTConstants::VERTCS) || ci_equal(parentNodeName, WKTConstants::BASEVERTCRS)) { - csTypeCStr = "vertical"; + csTypeCStr = VerticalCS::WKT2_TYPE; bool downDirection = false; if (ci_equal(parentNodeName, WKTConstants::VERTCS)) // ESRI @@ -2901,15 +2901,15 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } return CartesianCS::createEastingNorthing(unit); } else if (axisCount == 1) { - csTypeCStr = "vertical"; + csTypeCStr = VerticalCS::WKT2_TYPE; } else if (axisCount == 2) { - csTypeCStr = "Cartesian"; + csTypeCStr = CartesianCS::WKT2_TYPE; } else { throw ParsingException( "buildCS: unexpected AXIS count for LOCAL_CS"); } } else if (ci_equal(parentNodeName, WKTConstants::BASEPARAMCRS)) { - csTypeCStr = "parametric"; + csTypeCStr = ParametricCS::WKT2_TYPE; if (axisCount == 0) { auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::LINEAR); @@ -2925,7 +2925,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ std::string(), AxisDirection::UNSPECIFIED, unit)); } } else if (ci_equal(parentNodeName, WKTConstants::BASETIMECRS)) { - csTypeCStr = "temporal"; + csTypeCStr = TemporalCS::WKT2_2015_TYPE; if (axisCount == 0) { auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::TIME); @@ -2957,16 +2957,19 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } const auto unitType = - ci_equal(csType, "ellipsoidal") ? UnitOfMeasure::Type::ANGULAR - : ci_equal(csType, "ordinal") ? UnitOfMeasure::Type::NONE - : ci_equal(csType, "parametric") ? UnitOfMeasure::Type::PARAMETRIC - : ci_equal(csType, "Cartesian") || ci_equal(csType, "vertical") || - ci_equal(csType, "affine") + ci_equal(csType, EllipsoidalCS::WKT2_TYPE) + ? UnitOfMeasure::Type::ANGULAR + : ci_equal(csType, OrdinalCS::WKT2_TYPE) ? UnitOfMeasure::Type::NONE + : ci_equal(csType, ParametricCS::WKT2_TYPE) + ? UnitOfMeasure::Type::PARAMETRIC + : ci_equal(csType, CartesianCS::WKT2_TYPE) || + ci_equal(csType, VerticalCS::WKT2_TYPE) || + ci_equal(csType, AffineCS::WKT2_TYPE) ? UnitOfMeasure::Type::LINEAR - : (ci_equal(csType, "temporal") || - ci_equal(csType, "TemporalDateTime") || - ci_equal(csType, "TemporalCount") || - ci_equal(csType, "TemporalMeasure")) + : (ci_equal(csType, TemporalCS::WKT2_2015_TYPE) || + ci_equal(csType, DateTimeTemporalCS::WKT2_2019_TYPE) || + ci_equal(csType, TemporalCountCS::WKT2_2019_TYPE) || + ci_equal(csType, TemporalMeasureCS::WKT2_2019_TYPE)) ? UnitOfMeasure::Type::TIME : UnitOfMeasure::Type::UNKNOWN; UnitOfMeasure unit = buildUnitInSubNode(parentNode, unitType); @@ -2979,32 +2982,32 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } const PropertyMap &csMap = emptyPropertyMap; - if (ci_equal(csType, "ellipsoidal")) { + if (ci_equal(csType, EllipsoidalCS::WKT2_TYPE)) { if (axisCount == 2) { return EllipsoidalCS::create(csMap, axisList[0], axisList[1]); } else if (axisCount == 3) { return EllipsoidalCS::create(csMap, axisList[0], axisList[1], axisList[2]); } - } else if (ci_equal(csType, "Cartesian")) { + } else if (ci_equal(csType, CartesianCS::WKT2_TYPE)) { if (axisCount == 2) { return CartesianCS::create(csMap, axisList[0], axisList[1]); } else if (axisCount == 3) { return CartesianCS::create(csMap, axisList[0], axisList[1], axisList[2]); } - } else if (ci_equal(csType, "affine")) { + } else if (ci_equal(csType, AffineCS::WKT2_TYPE)) { if (axisCount == 2) { return AffineCS::create(csMap, axisList[0], axisList[1]); } else if (axisCount == 3) { return AffineCS::create(csMap, axisList[0], axisList[1], axisList[2]); } - } else if (ci_equal(csType, "vertical")) { + } else if (ci_equal(csType, VerticalCS::WKT2_TYPE)) { if (axisCount == 1) { return VerticalCS::create(csMap, axisList[0]); } - } else if (ci_equal(csType, "spherical")) { + } else if (ci_equal(csType, SphericalCS::WKT2_TYPE)) { if (axisCount == 2) { // Extension to ISO19111 to support (planet)-ocentric CS with // geocentric latitude @@ -3013,13 +3016,13 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ return SphericalCS::create(csMap, axisList[0], axisList[1], axisList[2]); } - } else if (ci_equal(csType, "ordinal")) { // WKT2-2019 + } else if (ci_equal(csType, OrdinalCS::WKT2_TYPE)) { // WKT2-2019 return OrdinalCS::create(csMap, axisList); - } else if (ci_equal(csType, "parametric")) { + } else if (ci_equal(csType, ParametricCS::WKT2_TYPE)) { if (axisCount == 1) { return ParametricCS::create(csMap, axisList[0]); } - } else if (ci_equal(csType, "temporal")) { // WKT2-2015 + } else if (ci_equal(csType, TemporalCS::WKT2_2015_TYPE)) { if (axisCount == 1) { if (isNull( parentNode->GP()->lookForChild(WKTConstants::TIMEUNIT)) && @@ -3031,15 +3034,15 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ return TemporalMeasureCS::create(csMap, axisList[0]); } } - } else if (ci_equal(csType, "TemporalDateTime")) { // WKT2-2019 + } else if (ci_equal(csType, DateTimeTemporalCS::WKT2_2019_TYPE)) { if (axisCount == 1) { return DateTimeTemporalCS::create(csMap, axisList[0]); } - } else if (ci_equal(csType, "TemporalCount")) { // WKT2-2019 + } else if (ci_equal(csType, TemporalCountCS::WKT2_2019_TYPE)) { if (axisCount == 1) { return TemporalCountCS::create(csMap, axisList[0]); } - } else if (ci_equal(csType, "TemporalMeasure")) { // WKT2-2019 + } else if (ci_equal(csType, TemporalMeasureCS::WKT2_2019_TYPE)) { if (axisCount == 1) { return TemporalMeasureCS::create(csMap, axisList[0]); } @@ -4589,7 +4592,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { } } if (!cartesianCS) { - ThrowNotExpectedCSType("Cartesian"); + ThrowNotExpectedCSType(CartesianCS::WKT2_TYPE); } if (cartesianCS->axisList().size() == 3 && @@ -4842,7 +4845,7 @@ CRSNNPtr WKTParser::Private::buildVerticalCRS(const WKTNodeNNPtr &node) { auto verticalCS = nn_dynamic_pointer_cast( buildCS(csNode, node, UnitOfMeasure::NONE)); if (!verticalCS) { - ThrowNotExpectedCSType("vertical"); + ThrowNotExpectedCSType(VerticalCS::WKT2_TYPE); } if (vdatum && vdatum->getWKT1DatumType() == "2002" && @@ -5179,7 +5182,7 @@ WKTParser::Private::buildTemporalCS(const WKTNodeNNPtr &parentNode) { auto cs = buildCS(csNode, parentNode, UnitOfMeasure::NONE); auto temporalCS = nn_dynamic_pointer_cast(cs); if (!temporalCS) { - ThrowNotExpectedCSType("temporal"); + ThrowNotExpectedCSType(TemporalCS::WKT2_2015_TYPE); } return NN_NO_CHECK(temporalCS); } @@ -5304,7 +5307,7 @@ WKTParser::Private::buildParametricCS(const WKTNodeNNPtr &parentNode) { auto cs = buildCS(csNode, parentNode, UnitOfMeasure::NONE); auto parametricCS = nn_dynamic_pointer_cast(cs); if (!parametricCS) { - ThrowNotExpectedCSType("parametric"); + ThrowNotExpectedCSType(ParametricCS::WKT2_TYPE); } return NN_NO_CHECK(parametricCS); } @@ -6804,7 +6807,7 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) { } const PropertyMap &csMap = emptyPropertyMap; const auto axisCount = axisList.size(); - if (subtype == "ellipsoidal") { + if (subtype == EllipsoidalCS::WKT2_TYPE) { if (axisCount == 2) { return EllipsoidalCS::create(csMap, axisList[0], axisList[1]); } @@ -6814,7 +6817,7 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) { } throw ParsingException("Expected 2 or 3 axis"); } - if (subtype == "Cartesian") { + if (subtype == CartesianCS::WKT2_TYPE) { if (axisCount == 2) { return CartesianCS::create(csMap, axisList[0], axisList[1]); } @@ -6824,7 +6827,7 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) { } throw ParsingException("Expected 2 or 3 axis"); } - if (subtype == "affine") { + if (subtype == AffineCS::WKT2_TYPE) { if (axisCount == 2) { return AffineCS::create(csMap, axisList[0], axisList[1]); } @@ -6834,13 +6837,13 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) { } throw ParsingException("Expected 2 or 3 axis"); } - if (subtype == "vertical") { + if (subtype == VerticalCS::WKT2_TYPE) { if (axisCount == 1) { return VerticalCS::create(csMap, axisList[0]); } throw ParsingException("Expected 1 axis"); } - if (subtype == "spherical") { + if (subtype == SphericalCS::WKT2_TYPE) { if (axisCount == 2) { // Extension to ISO19111 to support (planet)-ocentric CS with // geocentric latitude @@ -6851,28 +6854,28 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) { } throw ParsingException("Expected 2 or 3 axis"); } - if (subtype == "ordinal") { + if (subtype == OrdinalCS::WKT2_TYPE) { return OrdinalCS::create(csMap, axisList); } - if (subtype == "parametric") { + if (subtype == ParametricCS::WKT2_TYPE) { if (axisCount == 1) { return ParametricCS::create(csMap, axisList[0]); } throw ParsingException("Expected 1 axis"); } - if (subtype == "TemporalDateTime") { + if (subtype == DateTimeTemporalCS::WKT2_2019_TYPE) { if (axisCount == 1) { return DateTimeTemporalCS::create(csMap, axisList[0]); } throw ParsingException("Expected 1 axis"); } - if (subtype == "TemporalCount") { + if (subtype == TemporalCountCS::WKT2_2019_TYPE) { if (axisCount == 1) { return TemporalCountCS::create(csMap, axisList[0]); } throw ParsingException("Expected 1 axis"); } - if (subtype == "TemporalMeasure") { + if (subtype == TemporalMeasureCS::WKT2_2019_TYPE) { if (axisCount == 1) { return TemporalMeasureCS::create(csMap, axisList[0]); } From 451a2a48d3ec461b56094cce623f9f91c5c457bf Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 18 Oct 2023 18:40:18 +0200 Subject: [PATCH 067/199] Fix importing '+proj=topocentric ... +type=crs' by using a geocentric CRS as the base CRS Fixes https://lists.osgeo.org/pipermail/proj/2023-October/011153.html --- src/iso19111/io.cpp | 31 ++++++++++++++++++++++++++- test/cli/testvarious | 7 ++++++ test/cli/tv_out.dist | 3 +++ test/unit/test_io.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index be2d10f036..31c770487e 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -10297,6 +10297,12 @@ static bool isGeocentricStep(const std::string &name) { // --------------------------------------------------------------------------- +static bool isTopocentricStep(const std::string &name) { + return name == "topocentric"; +} + +// --------------------------------------------------------------------------- + static bool isProjectedStep(const std::string &name) { if (name == "etmerc" || name == "utm" || !getMappingsFromPROJName(name).empty()) { @@ -10973,7 +10979,7 @@ GeodeticCRSNNPtr PROJStringParser::Private::buildGeocentricCRS(int iStep, int iUnitConvert) { auto &step = steps_[iStep]; - assert(isGeocentricStep(step.name)); + assert(isGeocentricStep(step.name) || isTopocentricStep(step.name)); assert(iUnitConvert < 0 || ci_equal(steps_[iUnitConvert].name, "unitconvert")); @@ -11625,6 +11631,13 @@ PROJStringParser::Private::buildProjectedCRS(int iStep, ? CartesianCS::create(emptyPropertyMap, axis[0], axis[1]) : CartesianCS::create(emptyPropertyMap, axis[0], axis[1], csGeodCRS->axisList()[2]); + if (isTopocentricStep(step.name)) { + cs = CartesianCS::create( + emptyPropertyMap, + createAxis("topocentric East", "U", AxisDirection::EAST, unit), + createAxis("topocentric North", "V", AxisDirection::NORTH, unit), + createAxis("topocentric Up", "W", AxisDirection::UP, unit)); + } auto props = PropertyMap().set(IdentifiedObject::NAME_KEY, title.empty() ? "unknown" : title); @@ -11731,6 +11744,10 @@ PROJStringParser::createFromPROJString(const std::string &projString) { (d->steps_.size() == 2 && d->steps_[1].name == "unitconvert")) && !d->steps_[0].inverted && isGeocentricStep(d->steps_[0].name); + const bool isTopocentricCRS = + (d->steps_.size() == 1 && isTopocentricStep(d->steps_[0].name) && + d->getParamValue(d->steps_[0], "type") == "crs"); + // +init=xxxx:yyyy syntax if (d->steps_.size() == 1 && d->steps_[0].isInit && !d->steps_[0].inverted) { @@ -12123,6 +12140,18 @@ PROJStringParser::createFromPROJString(const std::string &projString) { } } + if (isTopocentricCRS) { + // First run is dry run to mark all recognized/unrecognized tokens + for (int iter = 0; iter < 2; iter++) { + auto obj = d->buildBoundOrCompoundCRSIfNeeded( + 0, + d->buildProjectedCRS(0, d->buildGeocentricCRS(0, -1), -1, -1)); + if (iter == 1) { + return nn_static_pointer_cast(obj); + } + } + } + if (!unexpectedStructure) { if (iFirstGeogStep == 0 && !d->steps_[iFirstGeogStep].inverted && iSecondGeogStep < 0 && iProjStep < 0 && diff --git a/test/cli/testvarious b/test/cli/testvarious index 8134e54dca..a9589f500e 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1352,6 +1352,13 @@ $EXE -d 8 --t_epoch 2022 "GDA2020" "ITRF2014" -E >>${OUT} 2>&1 <> ${OUT} +echo "Test +proj=topocentric +datum=WGS84 +X_0=-3982059.42 +Y_0=3331314.88 +Z_0=3692463.58 +no_defs +type=crs +to EPSG:4978" >> ${OUT} +# +$EXE -d 3 +proj=topocentric +datum=WGS84 +X_0=-3982059.42 +Y_0=3331314.88 +Z_0=3692463.58 +no_defs +type=crs +to EPSG:4978 -E >>${OUT} 2>&1 <(obj); + ASSERT_TRUE(crs != nullptr); + auto expected = + "PROJCRS[\"unknown\",\n" + " BASEGEODCRS[\"unknown\",\n" + " DATUM[\"World Geodetic System 1984\",\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",6326]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8901]]],\n" + " CONVERSION[\"unknown\",\n" + " METHOD[\"Geocentric/topocentric conversions\",\n" + " ID[\"EPSG\",9836]],\n" + " PARAMETER[\"Geocentric X of topocentric " + "origin\",-3982059.42,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8837]],\n" + " PARAMETER[\"Geocentric Y of topocentric origin\",3331314.88,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8838]],\n" + " PARAMETER[\"Geocentric Z of topocentric origin\",3692463.58,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8839]]],\n" + " CS[Cartesian,3],\n" + " AXIS[\"topocentric East (U)\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " AXIS[\"topocentric North (V)\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " AXIS[\"topocentric Up (W)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]]]"; + EXPECT_EQ( + crs->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), + expected); +} + +// --------------------------------------------------------------------------- + TEST(io, projparse_projected_wktext) { std::string input("+proj=merc +foo +wktext +type=crs"); auto obj = PROJStringParser().createFromPROJString(input); From 4626ce6f5bdb13570cc613b178f06e150d9b6b4e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 19 Oct 2023 15:46:13 +0200 Subject: [PATCH 068/199] WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (fixes #3925) --- src/iso19111/io.cpp | 48 ++++++++++++++---- test/unit/test_io.cpp | 113 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 9 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index e189ad54d2..1513b7c225 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -1308,6 +1308,8 @@ struct WKTParser::Private { Private &operator=(const Private &) = delete; void emitRecoverableWarning(const std::string &errorMsg); + void emitRecoverableMissingUNIT(const std::string &parentNodeName, + const UnitOfMeasure &fallbackUnit); BaseObjectNNPtr build(const WKTNodeNNPtr &node); @@ -2740,16 +2742,36 @@ WKTParser::Private::buildAxis(const WKTNodeNNPtr &node, static const PropertyMap emptyPropertyMap{}; +// --------------------------------------------------------------------------- + PROJ_NO_RETURN static void ThrowParsingException(const std::string &msg) { throw ParsingException(msg); } +// --------------------------------------------------------------------------- + static ParsingException buildParsingExceptionInvalidAxisCount(const std::string &csType) { return ParsingException( concat("buildCS: invalid CS axis count for ", csType)); } +// --------------------------------------------------------------------------- + +void WKTParser::Private::emitRecoverableMissingUNIT( + const std::string &parentNodeName, const UnitOfMeasure &fallbackUnit) { + std::string msg("buildCS: missing UNIT in "); + msg += parentNodeName; + if (!strict_ && fallbackUnit == UnitOfMeasure::METRE) { + msg += ". Assuming metre"; + } else if (!strict_ && fallbackUnit == UnitOfMeasure::DEGREE) { + msg += ". Assuming degree"; + } + emitRecoverableWarning(msg); +} + +// --------------------------------------------------------------------------- + CoordinateSystemNNPtr WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ const WKTNodeNNPtr &parentNode, @@ -2759,6 +2781,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ const int numberOfAxis = parentNode->countChildrenOfName(WKTConstants::AXIS); int axisCount = numberOfAxis; + const auto &parentNodeName = parentNode->GP()->value(); if (!isNull(node)) { const auto *nodeP = node->GP(); const auto &children = nodeP->children(); @@ -2774,7 +2797,6 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ } } else { const char *csTypeCStr = ""; - const auto &parentNodeName = parentNode->GP()->value(); if (ci_equal(parentNodeName, WKTConstants::GEOCCS)) { csTypeCStr = CartesianCS::WKT2_TYPE; isGeocentric = true; @@ -2782,7 +2804,8 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::LINEAR); if (unit == UnitOfMeasure::NONE) { - ThrowParsingExceptionMissingUNIT(); + unit = UnitOfMeasure::METRE; + emitRecoverableMissingUNIT(parentNodeName, unit); } return CartesianCS::createGeocentric(unit); } @@ -2794,7 +2817,8 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::ANGULAR); if (unit == UnitOfMeasure::NONE) { - ThrowParsingExceptionMissingUNIT(); + unit = defaultAngularUnit; + emitRecoverableMissingUNIT(parentNodeName, unit); } // ESRI WKT for geographic 3D CRS @@ -2830,10 +2854,9 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::LINEAR); if (unit == UnitOfMeasure::NONE) { + unit = UnitOfMeasure::METRE; if (ci_equal(parentNodeName, WKTConstants::PROJCS)) { - ThrowParsingExceptionMissingUNIT(); - } else { - unit = UnitOfMeasure::METRE; + emitRecoverableMissingUNIT(parentNodeName, unit); } } return CartesianCS::createEastingNorthing(unit); @@ -2875,11 +2898,10 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ auto unit = buildUnitInSubNode(parentNode, UnitOfMeasure::Type::LINEAR); if (unit == UnitOfMeasure::NONE) { + unit = UnitOfMeasure::METRE; if (ci_equal(parentNodeName, WKTConstants::VERT_CS) || ci_equal(parentNodeName, WKTConstants::VERTCS)) { - ThrowParsingExceptionMissingUNIT(); - } else { - unit = UnitOfMeasure::METRE; + emitRecoverableMissingUNIT(parentNodeName, unit); } } if (downDirection) { @@ -2974,6 +2996,14 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ : UnitOfMeasure::Type::UNKNOWN; UnitOfMeasure unit = buildUnitInSubNode(parentNode, unitType); + if (unit == UnitOfMeasure::NONE) { + if (ci_equal(parentNodeName, WKTConstants::VERT_CS) || + ci_equal(parentNodeName, WKTConstants::VERTCS)) { + unit = UnitOfMeasure::METRE; + emitRecoverableMissingUNIT(parentNodeName, unit); + } + } + std::vector axisList; for (int i = 0; i < axisCount; i++) { axisList.emplace_back( diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 61c0ea2462..210181e4b4 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -785,6 +785,24 @@ TEST(wkt_parse, wkt1_geographic_epsg_org_api_4258) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt1_geographic_missing_unit_and_axis) { + auto wkt = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\"," + "SPHEROID[\"WGS 84\",6378137,298.257223563]]]]"; + + // Missing UNIT[] is illegal in strict mode + EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException); + + auto obj = WKTParser().setStrict(false).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 2U); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::DEGREE); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, wkt1_geocentric_with_PROJ4_extension) { auto wkt = "GEOCCS[\"WGS 84\",\n" " DATUM[\"unknown\",\n" @@ -817,6 +835,24 @@ TEST(wkt_parse, wkt1_geocentric_with_PROJ4_extension) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt1_geocentric_missing_unit_and_axis) { + auto wkt = "GEOCCS[\"WGS 84\",DATUM[\"WGS_1984\"," + "SPHEROID[\"WGS 84\",6378137,298.257223563]]]]"; + + // Missing UNIT[] is illegal in strict mode + EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException); + + auto obj = WKTParser().setStrict(false).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 3U); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::METRE); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, wkt1_non_conformant_inf_inverse_flattening) { // Some WKT in the wild use "inf". Cf SPHEROID["unnamed",6370997,"inf"] // in https://zenodo.org/record/3878979#.Y_P4g4CZNH4, @@ -1465,6 +1501,35 @@ TEST(wkt_parse, wkt1_projected_with_PROJ4_extension) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt1_projected_missing_unit_and_axis) { + auto wkt = "PROJCS[\"WGS 84 / UTM zone 31N\",GEOGCS[\"WGS 84\"," + "DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563," + "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]," + "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]]," + "UNIT[\"degree\",0.0174532925199433," + "AUTHORITY[\"EPSG\",\"9122\"]]," + "AUTHORITY[\"EPSG\",\"4326\"]]," + "PROJECTION[\"Transverse_Mercator\"]," + "PARAMETER[\"latitude_of_origin\",0]," + "PARAMETER[\"central_meridian\",3]," + "PARAMETER[\"scale_factor\",0.9996]," + "PARAMETER[\"false_easting\",500000]," + "PARAMETER[\"false_northing\",0]]"; + + // Missing UNIT[] is illegal in strict mode + EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException); + + auto obj = WKTParser().setStrict(false).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 2U); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::METRE); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, wkt1_Mercator_1SP_with_latitude_origin_0) { auto wkt = "PROJCS[\"unnamed\",\n" " GEOGCS[\"WGS 84\",\n" @@ -2857,6 +2922,54 @@ TEST(wkt_parse, vertcrs_WKT1_GDAL_minimum) { ASSERT_EQ(cs->axisList().size(), 1U); EXPECT_EQ(cs->axisList()[0]->nameStr(), "Gravity-related height"); EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::UP); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::METRE); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, vertcrs_WKT1_GDAL_missing_unit_and_axis) { + auto wkt = "VERT_CS[\"ODN height\",\n" + " VERT_DATUM[\"Ordnance Datum Newlyn\",2005]]"; + + // Missing UNIT[] is illegal in strict mode + EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException); + + auto obj = WKTParser().setStrict(false).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + EXPECT_EQ(crs->nameStr(), "ODN height"); + + auto datum = crs->datum(); + EXPECT_EQ(datum->nameStr(), "Ordnance Datum Newlyn"); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->nameStr(), "Gravity-related height"); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::UP); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::METRE); +} + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, vertcrs_WKT1_GDAl_missing_unit_with_axis) { + auto wkt = "VERT_CS[\"ODN height\",\n" + " VERT_DATUM[\"Ordnance Datum Newlyn\",2005],\n" + " AXIS[\"gravity-related height\",UP]]"; + + // Missing UNIT[] is illegal in strict mode + EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException); + + auto obj = WKTParser().setStrict(false).createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + EXPECT_EQ(crs->nameStr(), "ODN height"); + + auto datum = crs->datum(); + EXPECT_EQ(datum->nameStr(), "Ordnance Datum Newlyn"); + + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 1U); + EXPECT_EQ(cs->axisList()[0]->nameStr(), "Gravity-related height"); + EXPECT_EQ(cs->axisList()[0]->direction(), AxisDirection::UP); + EXPECT_EQ(cs->axisList()[0]->unit(), UnitOfMeasure::METRE); } // --------------------------------------------------------------------------- From ef508846c1429463b8acc44657c254c1c7c21b92 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Thu, 19 Oct 2023 19:00:44 +0200 Subject: [PATCH 069/199] allow LOCAL_CS with 3 axes --- src/iso19111/io.cpp | 2 +- test/unit/test_io.cpp | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index e189ad54d2..b9b0a986b7 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -2902,7 +2902,7 @@ WKTParser::Private::buildCS(const WKTNodeNNPtr &node, /* maybe null */ return CartesianCS::createEastingNorthing(unit); } else if (axisCount == 1) { csTypeCStr = VerticalCS::WKT2_TYPE; - } else if (axisCount == 2) { + } else if (axisCount == 2 || axisCount == 3) { csTypeCStr = CartesianCS::WKT2_TYPE; } else { throw ParsingException( diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 61c0ea2462..51f9532760 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -5735,6 +5735,26 @@ TEST(wkt_parse, LOCAL_CS_long_two_axis) { // --------------------------------------------------------------------------- +TEST(wkt_parse, LOCAL_CS_long_three_axis) { + auto wkt = "LOCAL_CS[\"Engineering CRS\",\n" + " LOCAL_DATUM[\"Engineering datum\",12345],\n" + " UNIT[\"meter\",1],\n" + " AXIS[\"Easting\",EAST],\n" + " AXIS[\"Northing\",NORTH],\n" + " AXIS[\"Elevation\",UP]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + EXPECT_EQ(crs->nameStr(), "Engineering CRS"); + EXPECT_EQ(crs->datum()->nameStr(), "Engineering datum"); + auto cs = crs->coordinateSystem(); + ASSERT_EQ(cs->axisList().size(), 3U); +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, PDATUM) { auto wkt = "PDATUM[\"Parametric datum\",\n" " ANCHOR[\"my anchor\"]]"; From 33faa04d01cb194336e3f36c3afab56d4587532a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 19 Oct 2023 20:51:17 +0200 Subject: [PATCH 070/199] createOperations(): fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical (fixes #3927) --- .../operation/coordinateoperationfactory.cpp | 18 +- test/unit/test_operationfactory.cpp | 176 ++++++++++++++++++ 2 files changed, 188 insertions(+), 6 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 3fb422dffe..ac01b81bde 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -1716,6 +1716,10 @@ void CoordinateOperationFactory::Private::buildCRSIds( std::vector allowedObjects; auto geogCRS = dynamic_cast(crs.get()); if (geogCRS) { + if (geogCRS->datumNonNull(authFactory->databaseContext()) + ->nameStr() == "unknown") { + return; + } allowedObjects.push_back( geogCRS->coordinateSystem()->axisList().size() == 2 ? io::AuthorityFactory::ObjectType::GEOGRAPHIC_2D_CRS @@ -6117,14 +6121,16 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( } } + const bool hasOnlyOneOp = + srcToInterpOps.size() == 1 && interpToTargetOps.size() == 1; for (const auto &srcToInterp : srcToInterpOps) { for (const auto &interpToTarget : interpToTargetOps) { - - if ((srcAndTargetGeogAreSame && - mapSetDatumsUsed[srcToInterp.get()] != - mapSetDatumsUsed[interpToTarget.get()]) || - !useCompatibleTransformationsForSameSourceTarget( - srcToInterp, interpToTarget)) { + if (!hasOnlyOneOp && + ((srcAndTargetGeogAreSame && + mapSetDatumsUsed[srcToInterp.get()] != + mapSetDatumsUsed[interpToTarget.get()]) || + !useCompatibleTransformationsForSameSourceTarget( + srcToInterp, interpToTarget))) { #ifdef TRACE_CREATE_OPERATIONS logTrace( "Considering that '" + srcToInterp->nameStr() + diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 1e98aa6c95..298d560c3c 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -4692,6 +4692,182 @@ TEST(operation, // --------------------------------------------------------------------------- +TEST(operation, compoundCRS_with_vert_bound_to_bound_geog3D) { + // Test case of https://github.com/OSGeo/PROJ/issues/3927 + + auto dbContext = DatabaseContext::create(); + + const char *wktSrc = + "COMPOUNDCRS[\"ENU (-77.410692720411:39.4145340892321) + EGM96 geoid " + "height\",\n" + " PROJCRS[\"ENU (-77.410692720411:39.4145340892321)\",\n" + " BASEGEOGCRS[\"WGS 84\",\n" + " DATUM[\"unknown\",\n" + " ELLIPSOID[\"WGS84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"Degree\",0.0174532925199433]]],\n" + " CONVERSION[\"unnamed\",\n" + " METHOD[\"Orthographic\",\n" + " ID[\"EPSG\",9840]],\n" + " PARAMETER[\"Latitude of natural " + "origin\",39.4145340892321,\n" + " ANGLEUNIT[\"Degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8801]],\n" + " PARAMETER[\"Longitude of natural " + "origin\",-77.410692720411,\n" + " ANGLEUNIT[\"Degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8802]],\n" + " PARAMETER[\"False easting\",0,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",0,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"easting\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " AXIS[\"northing\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]]],\n" + " BOUNDCRS[\n" + " SOURCECRS[\n" + " VERTCRS[\"EGM96 geoid height\",\n" + " VDATUM[\"EGM96 geoid\"],\n" + " CS[vertical,1],\n" + " AXIS[\"up\",up,\n" + " LENGTHUNIT[\"m\",1]],\n" + " ID[\"EPSG\",5773]]],\n" + " TARGETCRS[\n" + " GEOGCRS[\"WGS 84\",\n" + " DATUM[\"World Geodetic System 1984\",\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",4979]]],\n" + " ABRIDGEDTRANSFORMATION[\"EGM96 geoid height to WGS 84 " + "ellipsoidal height\",\n" + " METHOD[\"GravityRelatedHeight to Geographic3D\"],\n" + " PARAMETERFILE[\"Geoid (height correction) model " + "file\",\"egm96_15.gtx\",\n" + " ID[\"EPSG\",8666]]]]]"; + auto objSrc = + WKTParser().attachDatabaseContext(dbContext).createFromWKT(wktSrc); + auto srcCRS = nn_dynamic_pointer_cast(objSrc); + ASSERT_TRUE(srcCRS != nullptr); + + const char *wktDst = + "BOUNDCRS[\n" + " SOURCECRS[\n" + " GEOGCRS[\"WGS84 Coordinate System\",\n" + " DATUM[\"World Geodetic System 1984\",\n" + " ELLIPSOID[\"WGS 1984\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",6326]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " REMARK[\"Promoted to 3D from EPSG:4326\"]]],\n" + " TARGETCRS[\n" + " GEOGCRS[\"WGS 84\",\n" + " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n" + " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G730)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G873)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n" + " MEMBER[\"World Geodetic System 1984 (G2139)\"],\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ENSEMBLEACCURACY[2.0]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " CS[ellipsoidal,3],\n" + " AXIS[\"geodetic latitude (Lat)\",north,\n" + " ORDER[1],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"geodetic longitude (Lon)\",east,\n" + " ORDER[2],\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " AXIS[\"ellipsoidal height (h)\",up,\n" + " ORDER[3],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " USAGE[\n" + " SCOPE[\"Geodesy. Navigation and positioning using GPS " + "satellite system.\"],\n" + " AREA[\"World.\"],\n" + " BBOX[-90,-180,90,180]],\n" + " ID[\"EPSG\",4979]]],\n" + " ABRIDGEDTRANSFORMATION[\"Transformation from WGS84 Coordinate " + "System to WGS84\",\n" + " METHOD[\"Position Vector transformation (geog2D domain)\",\n" + " ID[\"EPSG\",9606]],\n" + " PARAMETER[\"X-axis translation\",0,\n" + " ID[\"EPSG\",8605]],\n" + " PARAMETER[\"Y-axis translation\",0,\n" + " ID[\"EPSG\",8606]],\n" + " PARAMETER[\"Z-axis translation\",0,\n" + " ID[\"EPSG\",8607]],\n" + " PARAMETER[\"X-axis rotation\",0,\n" + " ID[\"EPSG\",8608]],\n" + " PARAMETER[\"Y-axis rotation\",0,\n" + " ID[\"EPSG\",8609]],\n" + " PARAMETER[\"Z-axis rotation\",0,\n" + " ID[\"EPSG\",8610]],\n" + " PARAMETER[\"Scale difference\",1,\n" + " ID[\"EPSG\",8611]]]]"; + auto objDst = + WKTParser().attachDatabaseContext(dbContext).createFromWKT(wktDst); + auto dstCRS = nn_dynamic_pointer_cast(objDst); + ASSERT_TRUE(dstCRS != nullptr); + + auto authFactory = AuthorityFactory::create(dbContext, std::string()); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + auto list = CoordinateOperationFactory::create()->createOperations( + NN_NO_CHECK(srcCRS), NN_NO_CHECK(dstCRS), ctxt); + ASSERT_EQ(list.size(), 1U); + EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +inv +proj=ortho +lat_0=39.4145340892321 " + "+lon_0=-77.410692720411 +x_0=0 +y_0=0 +ellps=WGS84 " + "+step +proj=vgridshift +grids=egm96_15.gtx +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); +} + +// --------------------------------------------------------------------------- + TEST(operation, geocent_to_compoundCRS) { auto objSrc = PROJStringParser().createFromPROJString( "+proj=geocent +datum=WGS84 +units=m +type=crs"); From 933b8465a1157bec5be9d98b47ee82c9e356360f Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 20 Oct 2023 16:25:55 +0200 Subject: [PATCH 071/199] Add Pix4D in users.rst - Proprietary licensed software --- docs/source/users.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/users.rst b/docs/source/users.rst index c4a63dc1c9..3730466e63 100644 --- a/docs/source/users.rst +++ b/docs/source/users.rst @@ -30,6 +30,7 @@ Proprietary licensed software - `FME `_ A GIS translator package. Includes a PROJ based transformer. - `Avenza Maps `_ Top mobile mapping app for offline navigation and data collection. - `Bunting Labs `_ No-code GIS infrastructure +- `Pix4D `_ Cloud, desktop and mobile photogrammetry processing and data capture software. Geodetic organizations ---------------------- From d38713d33439b60a5c809195ef885f90ed6646ff Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 2 Nov 2023 17:50:36 +0100 Subject: [PATCH 072/199] PROJString exporter: more unitconvert related simplifications --- src/iso19111/io.cpp | 208 +++++++++++++++++++++++++++- test/unit/test_io.cpp | 92 ++++++++++++ test/unit/test_operationfactory.cpp | 17 ++- 3 files changed, 306 insertions(+), 11 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 6afe12c282..aa9ba0089d 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -8814,8 +8814,8 @@ const std::string &PROJStringFormatter::toString() const { } // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 - // +step +proj=unitconvert +z_in=Z2 +z_out=Z3 - // ==> step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 + // +step +proj=unitconvert +z_in=Z2 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 // +z_out=Z3 if (prevStep.name == "unitconvert" && curStep.name == "unitconvert" && !prevStep.inverted && @@ -8846,6 +8846,157 @@ const std::string &PROJStringFormatter::toString() const { continue; } + // +step +proj=unitconvert +z_in=Z1 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X1 +z_in=Z2 +xy_out=X2 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 + // +z_out=Z3 + if (prevStep.name == "unitconvert" && + curStep.name == "unitconvert" && !prevStep.inverted && + !curStep.inverted && prevStep.paramValues.size() == 2 && + curStep.paramValues.size() == 4 && + prevStep.paramValues[0].keyEquals("z_in") && + prevStep.paramValues[1].keyEquals("z_out") && + curStep.paramValues[0].keyEquals("xy_in") && + curStep.paramValues[1].keyEquals("z_in") && + curStep.paramValues[2].keyEquals("xy_out") && + curStep.paramValues[3].keyEquals("z_out") && + prevStep.paramValues[1].value == curStep.paramValues[1].value) { + auto xy_in = curStep.paramValues[0].value; + auto z_in = prevStep.paramValues[0].value; + auto xy_out = curStep.paramValues[2].value; + auto z_out = curStep.paramValues[3].value; + + iterCur->paramValues.clear(); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_in", xy_in)); + iterCur->paramValues.emplace_back(Step::KeyValue("z_in", z_in)); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_out", xy_out)); + iterCur->paramValues.emplace_back( + Step::KeyValue("z_out", z_out)); + + deletePrevIter(); + continue; + } + + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X2 +xy_out=X3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X3 + // +z_out=Z2 + if (prevStep.name == "unitconvert" && + curStep.name == "unitconvert" && !prevStep.inverted && + !curStep.inverted && prevStep.paramValues.size() == 4 && + curStep.paramValues.size() == 2 && + prevStep.paramValues[0].keyEquals("xy_in") && + prevStep.paramValues[1].keyEquals("z_in") && + prevStep.paramValues[2].keyEquals("xy_out") && + prevStep.paramValues[3].keyEquals("z_out") && + curStep.paramValues[0].keyEquals("xy_in") && + curStep.paramValues[1].keyEquals("xy_out") && + prevStep.paramValues[2].value == curStep.paramValues[0].value) { + auto xy_in = prevStep.paramValues[0].value; + auto z_in = prevStep.paramValues[1].value; + auto xy_out = curStep.paramValues[1].value; + auto z_out = prevStep.paramValues[3].value; + + iterCur->paramValues.clear(); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_in", xy_in)); + iterCur->paramValues.emplace_back(Step::KeyValue("z_in", z_in)); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_out", xy_out)); + iterCur->paramValues.emplace_back( + Step::KeyValue("z_out", z_out)); + + deletePrevIter(); + continue; + } + + // clang-format off + // A bit odd. Used to simplify geog3d_feet -> EPSG:6318+6360 + // of https://github.com/OSGeo/PROJ/issues/3938 + // where we get originally + // +step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=us-ft + // +step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m + // and want it simplified as: + // +step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=deg +z_out=us-ft + // + // More generally: + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X2 +z_in=Z3 +xy_out=X3 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X3 +z_out=Z2 + // clang-format on + if (prevStep.name == "unitconvert" && + curStep.name == "unitconvert" && !prevStep.inverted && + !curStep.inverted && prevStep.paramValues.size() == 4 && + curStep.paramValues.size() == 4 && + prevStep.paramValues[0].keyEquals("xy_in") && + prevStep.paramValues[1].keyEquals("z_in") && + prevStep.paramValues[2].keyEquals("xy_out") && + prevStep.paramValues[3].keyEquals("z_out") && + curStep.paramValues[0].keyEquals("xy_in") && + curStep.paramValues[1].keyEquals("z_in") && + curStep.paramValues[2].keyEquals("xy_out") && + curStep.paramValues[3].keyEquals("z_out") && + prevStep.paramValues[2].value == curStep.paramValues[0].value && + curStep.paramValues[1].value == curStep.paramValues[3].value) { + auto xy_in = prevStep.paramValues[0].value; + auto z_in = prevStep.paramValues[1].value; + auto xy_out = curStep.paramValues[2].value; + auto z_out = prevStep.paramValues[3].value; + + iterCur->paramValues.clear(); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_in", xy_in)); + iterCur->paramValues.emplace_back(Step::KeyValue("z_in", z_in)); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_out", xy_out)); + iterCur->paramValues.emplace_back( + Step::KeyValue("z_out", z_out)); + + deletePrevIter(); + continue; + } + + // clang-format off + // Variant of above + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z1 + // +step +proj=unitconvert +xy_in=X2 +z_in=Z2 +xy_out=X3 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z2 +xy_out=X3 +z_out=Z3 + // clang-format on + if (prevStep.name == "unitconvert" && + curStep.name == "unitconvert" && !prevStep.inverted && + !curStep.inverted && prevStep.paramValues.size() == 4 && + curStep.paramValues.size() == 4 && + prevStep.paramValues[0].keyEquals("xy_in") && + prevStep.paramValues[1].keyEquals("z_in") && + prevStep.paramValues[2].keyEquals("xy_out") && + prevStep.paramValues[3].keyEquals("z_out") && + curStep.paramValues[0].keyEquals("xy_in") && + curStep.paramValues[1].keyEquals("z_in") && + curStep.paramValues[2].keyEquals("xy_out") && + curStep.paramValues[3].keyEquals("z_out") && + prevStep.paramValues[1].value == + prevStep.paramValues[3].value && + curStep.paramValues[0].value == prevStep.paramValues[2].value) { + auto xy_in = prevStep.paramValues[0].value; + auto z_in = curStep.paramValues[1].value; + auto xy_out = curStep.paramValues[2].value; + auto z_out = curStep.paramValues[3].value; + + iterCur->paramValues.clear(); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_in", xy_in)); + iterCur->paramValues.emplace_back(Step::KeyValue("z_in", z_in)); + iterCur->paramValues.emplace_back( + Step::KeyValue("xy_out", xy_out)); + iterCur->paramValues.emplace_back( + Step::KeyValue("z_out", z_out)); + + deletePrevIter(); + continue; + } + // unitconvert (1), axisswap order=2,1, unitconvert(2) ==> // axisswap order=2,1, unitconvert (1), unitconvert(2) which // will get further optimized by previous case @@ -9394,6 +9545,59 @@ const std::string &PROJStringFormatter::toString() const { } } + { + auto iterCur = steps.begin(); + if (iterCur != steps.end()) { + ++iterCur; + } + while (iterCur != steps.end()) { + + assert(iterCur != steps.begin()); + auto iterPrev = std::prev(iterCur); + auto &prevStep = *iterPrev; + auto &curStep = *iterCur; + + const auto curStepParamCount = curStep.paramValues.size(); + const auto prevStepParamCount = prevStep.paramValues.size(); + + const auto deletePrevAndCurIter = [&steps, &iterPrev, &iterCur]() { + iterCur = steps.erase(iterPrev, std::next(iterCur)); + if (iterCur != steps.begin()) + iterCur = std::prev(iterCur); + if (iterCur == steps.begin() && iterCur != steps.end()) + ++iterCur; + }; + + // axisswap order=2,1 followed by itself is a no-op + if (curStep.name == "axisswap" && prevStep.name == "axisswap" && + curStepParamCount == 1 && prevStepParamCount == 1 && + curStep.paramValues[0].equals("order", "2,1") && + prevStep.paramValues[0].equals("order", "2,1")) { + deletePrevAndCurIter(); + continue; + } + + // detect a step and its inverse + if (curStep.inverted != prevStep.inverted && + curStep.name == prevStep.name && + curStepParamCount == prevStepParamCount) { + bool allSame = true; + for (size_t j = 0; j < curStepParamCount; j++) { + if (curStep.paramValues[j] != prevStep.paramValues[j]) { + allSame = false; + break; + } + } + if (allSame) { + deletePrevAndCurIter(); + continue; + } + } + + ++iterCur; + } + } + if (steps.size() > 1 || (steps.size() == 1 && (steps.front().inverted || steps.front().hasKey("omit_inv") || diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 0924cec055..7272873779 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -9541,6 +9541,98 @@ TEST(io, projstringformatter_axisswap_two_minus_one_followed_one_minus_two) { // --------------------------------------------------------------------------- +TEST(io, projstringformatter_unitconvert) { + // +step +proj=unitconvert +xy_in=X1 +xy_out=X2 + // +step +proj=unitconvert +xy_in=X2 +z_in=Z1 +xy_out=X1 +z_out=Z2 + // ==> + // +step +proj=unitconvert +z_in=Z1 +z_out=Z2 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=ft"); + EXPECT_EQ(fmt->toString(), "+proj=unitconvert +z_in=m +z_out=ft"); + } + + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 + // +step +proj=unitconvert +z_in=Z2 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 // +z_out=Z3 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=ft " + "+step +proj=unitconvert +z_in=ft +z_out=us-ft"); + EXPECT_EQ( + fmt->toString(), + "+proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=us-ft"); + } + + // +step +proj=unitconvert +z_in=Z1 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X1 +z_in=Z2 +xy_out=X2 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 + // +z_out=Z3 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString("+proj=pipeline " + "+step +proj=unitconvert +z_in=ft +z_out=m " + "+step +proj=unitconvert +xy_in=deg +z_in=m " + "+xy_out=rad +z_out=us-ft "); + EXPECT_EQ( + fmt->toString(), + "+proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=us-ft"); + } + + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X2 +xy_out=X3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X3 + // +z_out=Z2 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=ft " + "+step +proj=unitconvert +xy_in=rad +xy_out=grad"); + EXPECT_EQ( + fmt->toString(), + "+proj=unitconvert +xy_in=deg +z_in=m +xy_out=grad +z_out=ft"); + } + + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z2 + // +step +proj=unitconvert +xy_in=X2 +z_in=Z3 +xy_out=X3 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X3 +z_out=Z2 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad " + "+z_out=us-ft " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=grad +z_out=m"); + EXPECT_EQ( + fmt->toString(), + "+proj=unitconvert +xy_in=deg +z_in=ft +xy_out=grad +z_out=us-ft"); + } + + // +step +proj=unitconvert +xy_in=X1 +z_in=Z1 +xy_out=X2 +z_out=Z1 + // +step +proj=unitconvert +xy_in=X2 +z_in=Z2 +xy_out=X3 +z_out=Z3 + // ==> +step +proj=unitconvert +xy_in=X1 +z_in=Z2 +xy_out=X3 +z_out=Z3 + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad " + "+z_out=m " + "+step +proj=unitconvert +xy_in=rad +z_in=ft +xy_out=grad " + "+z_out=us-ft"); + EXPECT_EQ( + fmt->toString(), + "+proj=unitconvert +xy_in=deg +z_in=ft +xy_out=grad +z_out=us-ft"); + } +} + +// --------------------------------------------------------------------------- + TEST(io, projstringformatter_unmodified) { const char *const strs[] = {"+proj=pipeline " "+step +proj=axisswap +order=2,-1 " diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 298d560c3c..b4f39b64df 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -3027,7 +3027,7 @@ TEST(operation, boundCRS_to_geogCRS_hubCRS_and_targetCRS_same_but_baseCRS_not) { NN_NO_CHECK(boundCRS), GeographicCRS::EPSG_4979, ctxt); ASSERT_EQ(list.size(), 1U); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), - "+proj=unitconvert +z_in=us-ft +z_out=m"); + "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=deg +z_out=m"); } // --------------------------------------------------------------------------- @@ -6280,14 +6280,13 @@ TEST(operation, projCRS_3D_to_geogCRS_3D) { NN_CHECK_ASSERT(geogcrs_m), NN_CHECK_ASSERT(proj3DCRS_ft)); ASSERT_TRUE(op != nullptr); EXPECT_FALSE(op->hasBallparkTransformation()); - EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), - "+proj=pipeline " - "+step +proj=unitconvert +z_in=m +z_out=ft " - "+step +proj=unitconvert +xy_in=deg +z_in=ft " - "+xy_out=rad +z_out=m " - "+step +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 " - "+step +proj=unitconvert +xy_in=m +z_in=m " - "+xy_out=m +z_out=ft"); + EXPECT_EQ( + op->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 " + "+step +proj=unitconvert +xy_in=m +z_in=m " + "+xy_out=m +z_out=ft"); } } From f6765ed2cb002261f481630f60be70faf9fec2fc Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 2 Nov 2023 18:00:57 +0100 Subject: [PATCH 073/199] Vertical unit conversion: improve output for ft <--> us-ft --- include/proj/coordinateoperation.hpp | 4 ++ src/iso19111/operation/conversion.cpp | 24 +------- src/iso19111/operation/singleoperation.cpp | 69 ++++++++++++++-------- test/unit/test_operationfactory.cpp | 9 ++- 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index dc7b43a862..d4dbe78a4c 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -727,6 +727,10 @@ class PROJ_GCC_DLL SingleOperation : virtual public CoordinateOperation { createOperationParameterValueFromInterpolationCRS(int methodEPSGCode, int crsEPSGCode); + PROJ_INTERNAL static void + exportToPROJStringChangeVerticalUnit(io::PROJStringFormatter *formatter, + double convFactor); + private: PROJ_OPAQUE_PRIVATE_DATA SingleOperation &operator=(const SingleOperation &other) = delete; diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index 50aa3f6cdf..c70a5214c5 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -4144,29 +4144,7 @@ void Conversion::_exportToPROJString( "requires an input and output vertical CRS"); } } - auto uom = common::UnitOfMeasure(std::string(), convFactor, - common::UnitOfMeasure::Type::LINEAR) - .exportToPROJString(); - auto reverse_uom = - convFactor == 0.0 - ? std::string() - : common::UnitOfMeasure(std::string(), 1.0 / convFactor, - common::UnitOfMeasure::Type::LINEAR) - .exportToPROJString(); - if (uom == "m") { - // do nothing - } else if (!uom.empty()) { - formatter->addStep("unitconvert"); - formatter->addParam("z_in", uom); - formatter->addParam("z_out", "m"); - } else if (!reverse_uom.empty()) { - formatter->addStep("unitconvert"); - formatter->addParam("z_in", "m"); - formatter->addParam("z_out", reverse_uom); - } else { - formatter->addStep("affine"); - formatter->addParam("s33", convFactor); - } + exportToPROJStringChangeVerticalUnit(formatter, convFactor); bConversionDone = true; bEllipsoidParametersDone = true; } else if (methodEPSGCode == EPSG_CODE_METHOD_GEOGRAPHIC_TOPOCENTRIC) { diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index e76a5bb02c..2f5bb94ddc 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -3144,6 +3144,50 @@ static void setupPROJGeodeticTargetCRS(io::PROJStringFormatter *formatter, // --------------------------------------------------------------------------- +/* static */ +void SingleOperation::exportToPROJStringChangeVerticalUnit( + io::PROJStringFormatter *formatter, double convFactor) { + + const auto uom = common::UnitOfMeasure(std::string(), convFactor, + common::UnitOfMeasure::Type::LINEAR) + .exportToPROJString(); + const auto reverse_uom = + convFactor == 0.0 + ? std::string() + : common::UnitOfMeasure(std::string(), 1.0 / convFactor, + common::UnitOfMeasure::Type::LINEAR) + .exportToPROJString(); + if (uom == "m") { + // do nothing + } else if (!uom.empty()) { + formatter->addStep("unitconvert"); + formatter->addParam("z_in", uom); + formatter->addParam("z_out", "m"); + } else if (!reverse_uom.empty()) { + formatter->addStep("unitconvert"); + formatter->addParam("z_in", "m"); + formatter->addParam("z_out", reverse_uom); + } else if (fabs(convFactor - + common::UnitOfMeasure::FOOT.conversionToSI() / + common::UnitOfMeasure::US_FOOT.conversionToSI()) < + 1e-10) { + formatter->addStep("unitconvert"); + formatter->addParam("z_in", "ft"); + formatter->addParam("z_out", "us-ft"); + } else if (fabs(convFactor - + common::UnitOfMeasure::US_FOOT.conversionToSI() / + common::UnitOfMeasure::FOOT.conversionToSI()) < 1e-10) { + formatter->addStep("unitconvert"); + formatter->addParam("z_in", "us-ft"); + formatter->addParam("z_out", "ft"); + } else { + formatter->addStep("affine"); + formatter->addParam("s33", convFactor); + } +} + +// --------------------------------------------------------------------------- + bool SingleOperation::exportToPROJStringGeneric( io::PROJStringFormatter *formatter) const { const int methodEPSGCode = method()->getEPSGCode(); @@ -3267,30 +3311,7 @@ bool SingleOperation::exportToPROJStringGeneric( if (methodEPSGCode == EPSG_CODE_METHOD_CHANGE_VERTICAL_UNIT) { const double convFactor = parameterValueNumericAsSI( EPSG_CODE_PARAMETER_UNIT_CONVERSION_SCALAR); - const auto uom = - common::UnitOfMeasure(std::string(), convFactor, - common::UnitOfMeasure::Type::LINEAR) - .exportToPROJString(); - const auto reverse_uom = - convFactor == 0.0 - ? std::string() - : common::UnitOfMeasure(std::string(), 1.0 / convFactor, - common::UnitOfMeasure::Type::LINEAR) - .exportToPROJString(); - if (uom == "m") { - // do nothing - } else if (!uom.empty()) { - formatter->addStep("unitconvert"); - formatter->addParam("z_in", uom); - formatter->addParam("z_out", "m"); - } else if (!reverse_uom.empty()) { - formatter->addStep("unitconvert"); - formatter->addParam("z_in", "m"); - formatter->addParam("z_out", reverse_uom); - } else { - formatter->addStep("affine"); - formatter->addParam("s33", convFactor); - } + exportToPROJStringChangeVerticalUnit(formatter, convFactor); return true; } diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index b4f39b64df..e8ac619c3e 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -6169,7 +6169,14 @@ TEST(operation, vertCRS_to_vertCRS) { NN_CHECK_ASSERT(vertcrs_ft), NN_CHECK_ASSERT(vertcrs_us_ft)); ASSERT_TRUE(op != nullptr); EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), - "+proj=affine +s33=0.999998"); + "+proj=unitconvert +z_in=ft +z_out=us-ft"); + } + { + auto op = CoordinateOperationFactory::create()->createOperation( + NN_CHECK_ASSERT(vertcrs_us_ft), NN_CHECK_ASSERT(vertcrs_ft)); + ASSERT_TRUE(op != nullptr); + EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=unitconvert +z_in=us-ft +z_out=ft"); } auto vertCRSMetreUp = From 0a9417f9c0cd3fca8b50cc7d1e7268f883ad8523 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 2 Nov 2023 18:38:31 +0100 Subject: [PATCH 074/199] createOperations(): fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS (fixes #3938) --- .../operation/coordinateoperationfactory.cpp | 4 - test/unit/test_operationfactory.cpp | 207 ++++++++++++++++++ 2 files changed, 207 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index ac01b81bde..1804c3d27e 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -2259,16 +2259,12 @@ struct MyPROJStringExportableHorizVertical final // cppcheck-suppress functionStatic _exportToPROJString(io::PROJStringFormatter *formatter) const override { - formatter->pushOmitZUnitConversion(); - horizTransform->_exportToPROJString(formatter); formatter->startInversion(); geogDst->addAngularUnitConvertAndAxisSwap(formatter); formatter->stopInversion(); - formatter->popOmitZUnitConversion(); - formatter->pushOmitHorizontalConversionInVertTransformation(); verticalTransform->_exportToPROJString(formatter); formatter->popOmitHorizontalConversionInVertTransformation(); diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index e8ac619c3e..a7dcba966a 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -7134,6 +7134,213 @@ TEST(operation, compoundCRS_to_geogCRS_with_vertical_unit_change) { // --------------------------------------------------------------------------- +// Use case of https://github.com/OSGeo/PROJ/issues/3938 +TEST(operation, compoundCRS_ftUS_to_geogCRS_ft) { + auto authFactory = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + // NAD83(2011) + NAVD88 height (ftUS) + auto srcObj = createFromUserInput("EPSG:6318+6360", + authFactory->databaseContext(), false); + auto src = nn_dynamic_pointer_cast(srcObj); + ASSERT_TRUE(src != nullptr); + auto nnSrc = NN_NO_CHECK(src); + auto dst = + authFactory->createCoordinateReferenceSystem("6319")->alterCSLinearUnit( + UnitOfMeasure::FOOT); // NAD83(2011) with foot + + auto res = CoordinateOperationFactory::create()->createOperations( + nnSrc, dst, ctxt); + ASSERT_TRUE(!res.empty()); + + EXPECT_EQ( + res[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad +z_out=m " + "+step +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=ft " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + res.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=deg +z_out=ft"); + + auto resInv = CoordinateOperationFactory::create()->createOperations( + dst, nnSrc, ctxt); + ASSERT_TRUE(!resInv.empty()); + + EXPECT_EQ( + resInv[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=m " + "+step +inv +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=us-ft " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + resInv.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=unitconvert +xy_in=deg +z_in=ft +xy_out=deg +z_out=us-ft"); +} + +// --------------------------------------------------------------------------- + +// Use case of https://github.com/OSGeo/PROJ/issues/3938 +TEST(operation, compoundCRS_ft_to_geogCRS_ft) { + auto authFactory = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + // NAD83(2011) + NAVD88 height (ft) + auto srcObj = createFromUserInput("EPSG:6318+8228", + authFactory->databaseContext(), false); + auto src = nn_dynamic_pointer_cast(srcObj); + ASSERT_TRUE(src != nullptr); + auto nnSrc = NN_NO_CHECK(src); + auto dst = + authFactory->createCoordinateReferenceSystem("6319")->alterCSLinearUnit( + UnitOfMeasure::FOOT); // NAD83(2011) with foot + + auto res = CoordinateOperationFactory::create()->createOperations( + nnSrc, dst, ctxt); + ASSERT_TRUE(!res.empty()); + + EXPECT_EQ( + res[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=m " + "+step +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=ft " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + res.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=noop"); + + auto resInv = CoordinateOperationFactory::create()->createOperations( + dst, nnSrc, ctxt); + ASSERT_TRUE(!resInv.empty()); + + EXPECT_EQ( + resInv[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=m " + "+step +inv +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=ft " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + resInv.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=noop"); +} + +// --------------------------------------------------------------------------- + +// Use case of https://github.com/OSGeo/PROJ/issues/3938 +TEST(operation, compoundCRS_m_to_geogCRS_ft) { + auto authFactory = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse:: + IGNORE_GRID_AVAILABILITY); + // NAD83(2011) + NAVD88 height + auto srcObj = createFromUserInput("EPSG:6318+5703", + authFactory->databaseContext(), false); + auto src = nn_dynamic_pointer_cast(srcObj); + ASSERT_TRUE(src != nullptr); + auto nnSrc = NN_NO_CHECK(src); + auto dst = + authFactory->createCoordinateReferenceSystem("6319")->alterCSLinearUnit( + UnitOfMeasure::FOOT); // NAD83(2011) with foot + + auto res = CoordinateOperationFactory::create()->createOperations( + nnSrc, dst, ctxt); + ASSERT_TRUE(!res.empty()); + + EXPECT_EQ( + res[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=ft " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + res.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=unitconvert +z_in=m +z_out=ft"); + + auto resInv = CoordinateOperationFactory::create()->createOperations( + dst, nnSrc, ctxt); + ASSERT_TRUE(!resInv.empty()); + + EXPECT_EQ( + resInv[0]->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=ft +xy_out=rad +z_out=m " + "+step +inv +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); + + EXPECT_EQ( + resInv.back()->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_5, + authFactory->databaseContext()) + .get()), + "+proj=unitconvert +z_in=ft +z_out=m"); +} + +// --------------------------------------------------------------------------- + TEST( operation, compoundCRS_to_geogCRS_with_vertical_unit_change_and_complex_horizontal_change) { From 9e65f53f898b58f1eb5f1650484da884cefe614c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 2 Nov 2023 19:08:30 +0100 Subject: [PATCH 075/199] Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.2.0 (fixes #3939) --- data/sql/esri.sql | 3250 ++++++++++++++++++++------------- scripts/build_db_from_esri.py | 15 +- test/unit/test_crs.cpp | 35 +- 3 files changed, 2007 insertions(+), 1293 deletions(-) diff --git a/data/sql/esri.sql b/data/sql/esri.sql index c95e58a3f6..6f06288121 100644 --- a/data/sql/esri.sql +++ b/data/sql/esri.sql @@ -1,7 +1,7 @@ --- This file has been generated by scripts/build_db_from_esri.py. DO NOT EDIT ! -INSERT INTO "metadata" VALUES('ESRI.VERSION', 'ArcGIS Pro 3.1'); -INSERT INTO "metadata" VALUES('ESRI.DATE', '2023-19-01'); +INSERT INTO "metadata" VALUES('ESRI.VERSION', 'ArcGIS Pro 3.2'); +INSERT INTO "metadata" VALUES('ESRI.DATE', '2023-11-02'); INSERT INTO alias_name VALUES('unit_of_measure','EPSG','1025','Millimeter','ESRI'); INSERT INTO alias_name VALUES('unit_of_measure','EPSG','1033','Centimeter','ESRI'); INSERT INTO alias_name VALUES('unit_of_measure','EPSG','9001','Meter','ESRI'); @@ -467,6 +467,7 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1044','D_Sao_Tome','ESRI' INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1045','D_New_Beijing','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1046','D_Principe','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1047','D_RRAF_1991','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1048','Tokyo_1892','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1052','D_S_JTSK_05','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1053','D_Sri_Lanka_Datum_1999','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1055','D_S_JTSK_05_Ferro','ESRI'); @@ -477,7 +478,7 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1060','D_Islands_Network_ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1061','D_ITRF_2008','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1062','D_POSGAR_2007','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1063','D_Marco_Geodesico_Nacional','ESRI'); -INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1064','D_SIRGAS-Chile','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1064','SIRGAS-Chile_realization_1_epoch_2002','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1065','D_Costa_Rica_2005','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1066','D_SGNP_MARCARIO_SOLIS','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1067','D_Peru96','ESRI'); @@ -587,7 +588,7 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1249','D_NAD_1983_PACP00' INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1251','Kosovo_Reference_System_2001','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1252','SIRGAS-Chile_realization_3_epoch_2013','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1253','SIRGAS-Chile_realization_4_epoch_2016','ESRI'); -INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1254','D_SIRGAS-Chile','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1254','SIRGAS-Chile_realization_1_epoch_2002','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1257','Tapi_Aike','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1258','Ministerio_de_Marina_Norte','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1259','Ministerio_de_Marina_Sur','ESRI'); @@ -603,6 +604,51 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1291','Australian_Terrest INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1293','Sistem_Referensi_Geospasial_Indonesia_2013','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1295','Lyon_Turin_Ferroviaire_2004','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1304','Red_Geodesica_Para_Mineria_en_Chile','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1305','ETRF2000_Poland','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1308','EOS21_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1309','WGS_1984_(G2139)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1310','ECML14_NB_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1311','EWR2_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1312','Reseau_Geodesique_Francais_1993_v2','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1313','Reseau_Geodesique_Francais_1993_v2b','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1314','MRH21_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1315','MOLDOR11_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1317','HULLEE13_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1319','EBBWV14_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1320','SCM22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1321','FNL22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1322','International_Terrestrial_Reference_Frame_2020','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1324','MWC18_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1327','SIRGAS-Chile_realization_5_epoch_2021','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1329','Marco_Geocentrico_Nacional_de_Referencia_2018','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1332','System_34_Jylland_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1334','DoPw22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1335','ShAb07_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1336','CNH22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1337','System_34_Sjaelland_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1338','CWS13_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1339','DIBA15_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1340','GWPBS22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1341','GWWAB22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1342','GWWWA22_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1343','MALS09_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1344','OxWo08_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1345','SYC20_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1346','System_45_Bornholm_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1347','Generalstabens_System_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1348','Generalstabens_System_Bornholm_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1349','Copenhagen_Commune_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1350','Ostenfeld_Intermediate_Datum','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1351','SMITB20_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1352','RBEPP12_Intermediate_Reference_Frame','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1353','ETRS89_DREF91_Realization_2016','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1355','Sonatrach_Reference_Frame_2020','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1356','Latvian_coordinate_system_2020','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1357','Reseau_Geodesique_de_Nouvelle_Caledonie_2015','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1359','D_Hughes_1980','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1360','NSIDC_International_1924_Authalic_Sphere','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1365','North_American_Datum_of_1983_(CSRS)_version_8','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','1366','COV23_Intermediate_Reference_Frame','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6001','D_Airy_1830','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6002','D_Airy_Modified','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6003','D_Australian','ESRI'); @@ -970,7 +1016,7 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6733','D_Wake_Island_1952 INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6734','D_Tristan_1968','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6735','D_Kusaie_1951','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6736','D_Deception_Island','ESRI'); -INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6737','D_Korea_2000','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6737','D_Korea_Geodetic_Datum_2002','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6738','D_Hong_Kong_1963','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6739','D_Hong_Kong_1963_67','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6740','D_Parametrop_Zemp_1990','ESRI'); @@ -999,10 +1045,29 @@ INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6762','D_Bermuda_2000','E INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6763','D_Pitcairn_2006','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6764','D_Ross_Sea_Region_Geodetic_Datum_2000','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6765','D_Slovenia_Geodetic_Datum_1996','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6801','CH1903_(Bern)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6802','Bogota_1975_(Bogota)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6803','Lisbon_1937_(Lisbon)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6804','Makassar_(Jakarta)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6805','Militar-Geographische_Institut_(Ferro)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6806','Monte_Mario_(Rome)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6807','Nouvelle_Triangulation_Francaise_(Paris)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6809','Reseau_National_Belge_1950_(Brussels)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6810','Tananarive_1925_(Paris)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6811','Voirol_1875_(Paris)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6813','Batavia_(Jakarta)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6814','Stockholm_1938_(Stockholm)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6815','Greek_(Athens)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6816','Carthage_(Paris)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6817','NGO_1948_(Oslo)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6818','System_of_the_Unified_Trigonometrical_Cadastral_Network_(Ferro)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6820','Gunung_Segara_(Jakarta)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6821','Voirol_1879_(Paris)','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6896','D_ITRF_2005','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6901','D_ATF','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6902','D_Nord_de_Guerre','ESRI'); INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6903','D_Madrid_1870','ESRI'); +INSERT INTO alias_name VALUES('geodetic_datum','EPSG','6904','Lisbon_1890_(Lisbon)','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','3819','GCS_HD1909','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','3821','GCS_TWD_1967','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','3823','TWD_1997_3D','ESRI'); @@ -1394,7 +1459,6 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4733','GCS_Wake_Island_1952 INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4734','GCS_Tristan_1968','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4735','GCS_Kusaie_1951','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4736','GCS_Deception_Island','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4737','GCS_Korea_2000','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4738','GCS_Hong_Kong_1963','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4739','GCS_Hong_Kong_1963_67','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4740','GCS_PZ_1990','ESRI'); @@ -1467,7 +1531,7 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4909','Greenland_1996_3D',' INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4921','GDM_2000_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4923','PZ_1990_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4925','Mauritania_1999_3D','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4927','Korea_2000_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4927','KGD2002_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4929','POSGAR_1994_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4931','Australian_Antarctic_1998_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4933','Swiss_TRF_1995_3D','ESRI'); @@ -1504,6 +1568,7 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4997','MAGNA_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4999','RGPF_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5012','PTRA08_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5013','GCS_PTRA08','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5132','Tokyo_1892','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5228','GCS_S_JTSK/05','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5229','GCS_S_JTSK/05_Ferro','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5233','GCS_SLD99','ESRI'); @@ -1516,10 +1581,11 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5264','GCS_DRUKREF_03','ESR INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5323','ISN_2004_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5324','GCS_ISN_2004','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5340','GCS_POSGAR_2007','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5342','POSGAR_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5342','POSGAR_2007_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5353','MARGEN_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5354','GCS_MARGEN','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5360','GCS_SIRGAS-Chile','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5359','SIRGAS-Chile_2002_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5360','GCS_SIRGAS-Chile_2002','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5364','CR05_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5365','GCS_CR05','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','5370','MARCARIO_SOLIS_3D','ESRI'); @@ -1605,6 +1671,7 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7678','PZ-90.02_3D','ESRI') INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7680','PZ-90.11_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7682','GSK-2011_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7685','Kyrg-06_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7686','GCS_Kyrg-06','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7797','BGS2005_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7816','WGS_1984_(Transit)_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','7843','GDA2020_3D','ESRI'); @@ -1735,23 +1802,20 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9147','SIRGAS-Chile_2013_3D INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9148','SIRGAS-Chile_2013','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9152','SIRGAS-Chile_2016_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9153','SIRGAS-Chile_2016','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9183','SIRGAS-Chile_3D','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9184','GCS_SIRGAS-Chile','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9183','SIRGAS-Chile_2002_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9184','GCS_SIRGAS-Chile_2002','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9248','Tapi_Aike','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9267','MGI_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9293','ONGD17_3D','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9308','ATRF2014_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9332','KSA-GRF17_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9379','IGb14_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9469','SRGI2013_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9546','LTF2004(G)_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9695','REDGEOMIN_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9701','ETRF2000-PL_(3D)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9754','WGS_84_(G2139)_(3D)','ESRI'); -INSERT INTO "geodetic_datum" VALUES('ESRI','1309','WGS_1984_(G2139)','WGS 1984 (G2139)','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '1309_USAGE','geodetic_datum','ESRI','1309','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','9755','WGS_1984_(G2139)',NULL,'geographic 2D','EPSG','6422','ESRI','1309',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9755_USAGE','geodetic_crs','ESRI','9755','EPSG','1262','EPSG','1024'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9308','ATRF2014_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9332','KSA-GRF17_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9379','IGb14_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9469','SRGI2013_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9546','LTF2004(G)_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9695','REDGEOMIN_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9701','ETRF2000-PL_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9754','WGS_1984_(G2139)_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9755','WGS_1984_(G2139)','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9776','RGF93_v2_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9777','RGF93_v2','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9778','RGF93_v2_(lon-lat)_3D','ESRI'); @@ -1760,11 +1824,27 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9781','RGF93_v2b_3D','ESRI' INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9782','RGF93_v2b','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9783','RGF93_v2b_(lon-lat)_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9784','RGF93_v2b_(lon-lat)','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9893','LUREF_(3D)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9893','LUREF_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','9989','ITRF2020_3D','ESRI'); -INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20040','SIRGAS-Chile_2021_(3D)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10177','IGS20_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10283','ETRS89_DREF91_2016_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10284','ETRS89_DREF91_2016','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10298','RGSH2020_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10300','RGNC_1991-93_(lon-lat)_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10304','LKS-2020_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10307','RGNC_1991-93_(lon-lat)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10309','RGNC15_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10311','RGNC15_(lon-lat)_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10312','RGNC15_(lon-lat)','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10327','BH_ETRS89_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10345','GCS_Hughes_1980','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10346','NSIDC_Authalic_Sphere','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','10413','NAD83(CSRS)v8_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20040','SIRGAS-Chile_2021_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20041','SIRGAS-Chile_2021','ESRI'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106001','D_WGS_1966','WGS 1966','ESRI','107001','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20045','MAGNA-SIRGAS_2018_3D','ESRI'); +INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20046','MAGNA-SIRGAS_2018','ESRI'); +INSERT INTO "geodetic_datum" VALUES('ESRI','106001','D_WGS_1966','WGS 1966','EPSG','7025','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106001_USAGE','geodetic_datum','ESRI','106001','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37001','GCS_WGS_1966',NULL,'geographic 2D','EPSG','6422','ESRI','106001',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37001_USAGE','geodetic_crs','ESRI','37001','EPSG','1262','EPSG','1024'); @@ -2048,10 +2128,11 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104000','GCS_Assumed_Geographic_1',NUL INSERT INTO "usage" VALUES('ESRI', '104000_USAGE','geodetic_crs','ESRI','104000','EPSG','1263','EPSG','1024'); INSERT INTO "geodetic_datum" VALUES('ESRI','106009','D_Kyrgyz_Republic_2006','Kyrgyz Republic 2006','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106009_USAGE','geodetic_datum','ESRI','106009','EPSG','1137','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104009','GCS_Kyrg-06',NULL,'geographic 2D','EPSG','6422','ESRI','106009',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104009','GCS_Kyrg-06',NULL,'geographic 2D','EPSG','6422','ESRI','106009',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104009_USAGE','geodetic_crs','ESRI','104009','EPSG','1137','EPSG','1024'); +INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104009','geodetic_crs','EPSG','7686','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','104010','GCS_IGS08',NULL,'geographic 2D','EPSG','6422','EPSG','1141',NULL,1); -INSERT INTO "usage" VALUES('ESRI', '104010_USAGE','geodetic_crs','ESRI','104010','EPSG','2830','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '104010_USAGE','geodetic_crs','ESRI','104010','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104010','geodetic_crs','EPSG','9014','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','104011','WGS_1984_(G730)',NULL,'geographic 2D','EPSG','6422','EPSG','1152',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104011_USAGE','geodetic_crs','ESRI','104011','EPSG','1262','EPSG','1024'); @@ -2071,10 +2152,12 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104015','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104016','WGS_1984_(Transit)',NULL,'geographic 2D','EPSG','6422','EPSG','1166',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104016_USAGE','geodetic_crs','ESRI','104016','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104016','geodetic_crs','EPSG','8888','ESRI',1); -INSERT INTO "geodetic_crs" VALUES('ESRI','104017','PZ-90.02',NULL,'geographic 2D','EPSG','6422','EPSG','1157',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104017','PZ-90.02',NULL,'geographic 2D','EPSG','6422','EPSG','1157',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104017_USAGE','geodetic_crs','ESRI','104017','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104018','PZ-90.11',NULL,'geographic 2D','EPSG','6422','EPSG','1158',NULL,0); +INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104017','geodetic_crs','EPSG','9474','ESRI',1); +INSERT INTO "geodetic_crs" VALUES('ESRI','104018','PZ-90.11',NULL,'geographic 2D','EPSG','6422','EPSG','1158',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104018_USAGE','geodetic_crs','ESRI','104018','EPSG','1262','EPSG','1024'); +INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104018','geodetic_crs','EPSG','9475','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','104019','ITRF2014',NULL,'geographic 2D','EPSG','6422','EPSG','1165',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104019_USAGE','geodetic_crs','ESRI','104019','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104019','geodetic_crs','EPSG','9000','ESRI',1); @@ -2233,10 +2316,11 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106275','D_Roma_1940','Roma 1940','E INSERT INTO "usage" VALUES('ESRI', '106275_USAGE','geodetic_datum','ESRI','106275','EPSG','3343','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104127','GCS_Roma_1940',NULL,'geographic 2D','EPSG','6422','ESRI','106275',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104127_USAGE','geodetic_crs','ESRI','104127','EPSG','3343','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','3','Europe','Europe',34.0,85.0,-30.0,50.0,0); INSERT INTO "geodetic_datum" VALUES('ESRI','106276','D_Sphere_EMEP','EMEP','ESRI','107009','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '106276_USAGE','geodetic_datum','ESRI','106276','EPSG','2881','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '106276_USAGE','geodetic_datum','ESRI','106276','ESRI','3','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104128','GCS_Sphere_EMEP',NULL,'geographic 2D','EPSG','6422','ESRI','106276',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '104128_USAGE','geodetic_crs','ESRI','104128','EPSG','2881','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '104128_USAGE','geodetic_crs','ESRI','104128','ESRI','3','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104129','GCS_EUREF_FIN',NULL,'geographic 2D','EPSG','6422','EPSG','6258',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104129_USAGE','geodetic_crs','ESRI','104129','EPSG','1095','EPSG','1024'); INSERT INTO "geodetic_datum" VALUES('ESRI','106277','D_Jordan','Jordan','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); @@ -2349,9 +2433,9 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104256','GCS_Nepal_Nagarkot',NULL,'geo INSERT INTO "usage" VALUES('ESRI', '104256_USAGE','geodetic_crs','ESRI','104256','EPSG','1171','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104256','geodetic_crs','EPSG','6207','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','104257','GCS_ITRF_2008',NULL,'geographic 2D','EPSG','6422','EPSG','1061',NULL,1); -INSERT INTO "usage" VALUES('ESRI', '104257_USAGE','geodetic_crs','ESRI','104257','EPSG','2830','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '104257_USAGE','geodetic_crs','ESRI','104257','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104257','geodetic_crs','EPSG','8999','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106258','D_ETRF_1989','European Terrestrial Ref. Frame 1989','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106258','D_ETRF_1989','European Terrestrial Ref. Frame 1989','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106258_USAGE','geodetic_datum','ESRI','106258','EPSG','1298','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104258','GCS_ETRF_1989',NULL,'geographic 2D','EPSG','6422','ESRI','106258',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104258_USAGE','geodetic_crs','ESRI','104258','EPSG','1298','EPSG','1024'); @@ -2366,8 +2450,9 @@ INSERT INTO "usage" VALUES('ESRI', '106210_USAGE','geodetic_datum','ESRI','10621 INSERT INTO "geodetic_crs" VALUES('ESRI','104260','GCS_NAD_1983_MARP00',NULL,'geographic 2D','EPSG','6422','ESRI','106210',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104260_USAGE','geodetic_crs','ESRI','104260','EPSG','4167','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104260','geodetic_crs','EPSG','9072','ESRI',1); -INSERT INTO "geodetic_crs" VALUES('ESRI','104261','GCS_Merchich_Degree',NULL,'geographic 2D','EPSG','6422','EPSG','6261',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '104261_USAGE','geodetic_crs','ESRI','104261','EPSG','3280','EPSG','1024'); +INSERT INTO "geodetic_crs" VALUES('ESRI','104261','GCS_Merchich',NULL,'geographic 2D','EPSG','6422','EPSG','6261',NULL,1); +INSERT INTO "usage" VALUES('ESRI', '104261_USAGE','geodetic_crs','ESRI','104261','EPSG','4581','EPSG','1024'); +INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104261','geodetic_crs','EPSG','4261','ESRI',1); INSERT INTO "geodetic_datum" VALUES('ESRI','106286','D_NAD_1983_MA11','NAD 1983 (MA11) - Marianas Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106286_USAGE','geodetic_datum','ESRI','106286','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104286','GCS_NAD_1983_MA11',NULL,'geographic 2D','EPSG','6422','ESRI','106286',NULL,1); @@ -3634,11 +3719,11 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','2172','Pulkovo_1942_Adj_19 INSERT INTO alias_name VALUES('projected_crs','EPSG','2173','Pulkovo_1942_Adj_1958_Poland_Zone_III','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','2174','Pulkovo_1942_Adj_1958_Poland_Zone_IV','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','2175','Pulkovo_1942_Adj_1958_Poland_Zone_V','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','2176','ETRS_1989_Poland_CS2000_Zone_5','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','2177','ETRS_1989_Poland_CS2000_Zone_6','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','2178','ETRS_1989_Poland_CS2000_Zone_7','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','2179','ETRS_1989_Poland_CS2000_Zone_8','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','2180','ETRS_1989_Poland_CS92','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','2176','ETRF2000-PL_CS2000_15_Zone_5','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','2177','ETRF2000-PL_CS2000_18_Zone_6','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','2178','ETRF2000-PL_CS2000_21_Zone_7','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','2179','ETRF2000-PL_CS2000_24_Zone_8','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','2180','ETRF2000-PL_CS92','ESRI'); INSERT INTO "conversion" VALUES('ESRI','2181','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',27.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',9500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_2181_USAGE','conversion','ESRI','2181','EPSG','1524','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','2181','ED_1950_Turkey_9',NULL,'EPSG','4400','EPSG','4230','ESRI','2181',NULL,1); @@ -5480,22 +5565,26 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','5129','ETRS_1989_NTM_Zone_ INSERT INTO alias_name VALUES('projected_crs','EPSG','5130','ETRS_1989_NTM_Zone_30','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5167','Korean_1985_Korea_East_Sea_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5168','Korean_1985_Korea_Central_Belt_Jeju','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5169','Tokyo_1892_Korea_West_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5170','Tokyo_1892_Korea_Central_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5171','Tokyo_1892_Korea_East_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5172','Tokyo_1892_Korea_East_Sea_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5173','Korean_1985_Modified_Korea_West_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5174','Korean_1985_Modified_Korea_Central_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5175','Korean_1985_Modified_Korea_Central_Belt_Jeju','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5176','Korean_1985_Modified_Korea_East_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5177','Korean_1985_Modified_Korea_East_Sea_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5178','Korean_1985_Korea_Unified_Coordinate_System','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5179','Korea_2000_Korea_Unified_Coordinate_System','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5180','Korea_2000_Korea_West_Belt','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5181','Korea_2000_Korea_Central_Belt','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5182','Korea_2000_Korea_Central_Belt_Jeju','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5183','Korea_2000_Korea_East_Belt','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5184','Korea_2000_Korea_East_Sea_Belt','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5185','Korea_2000_Korea_West_Belt_2010','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5186','Korea_2000_Korea_Central_Belt_2010','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5187','Korea_2000_Korea_East_Belt_2010','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5188','Korea_2000_Korea_East_Sea_Belt_2010','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5179','KGD2002_Unified_Coordinate_System','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5180','KGD2002_West_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5181','KGD2002_Central_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5182','KGD2002_Central_Belt_Jeju','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5183','KGD2002_East_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5184','KGD2002_East_Sea_Belt','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5185','KGD2002_West_Belt_2010','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5186','KGD2002_Central_Belt_2010','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5187','KGD2002_East_Belt_2010','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5188','KGD2002_East_Sea_Belt_2010','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5221','S-JTSK_Ferro_Krovak_East_North','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5223','WGS_1984_UTM_Gabon_TM','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5234','Kandawala_Sri_Lanka_Grid','ESRI'); @@ -5555,8 +5644,8 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','5349','POSGAR_2007_Argenti INSERT INTO alias_name VALUES('projected_crs','EPSG','5355','MARGEN_UTM_Zone_20S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5356','MARGEN_UTM_Zone_19S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5357','MARGEN_UTM_Zone_21S','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5361','SIRGAS-Chile_UTM_Zone_19S','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','5362','SIRGAS-Chile_UTM_Zone_18S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5361','SIRGAS-Chile_2002_UTM_Zone_19S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','5362','SIRGAS-Chile_2002_UTM_Zone_18S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5367','CRTM05','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5382','SIRGAS-ROU98_UTM_Zone_21S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','5383','SIRGAS-ROU98_UTM_Zone_22S','ESRI'); @@ -6098,9 +6187,9 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','6618','NAD_1983_2011_State INSERT INTO alias_name VALUES('projected_crs','EPSG','6619','NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6620','NAD_1983_2011_StatePlane_Utah_North_FIPS_4301','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6621','NAD_1983_2011_StatePlane_Utah_South_FIPS_4303','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','6622','NAD_1983_CSRS_Quebec_Lambert','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','6622','NAD83(CSRS)v2_Quebec_Lambert','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6623','NAD_1983_Quebec_Albers','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','6624','NAD_1983_CSRS_Quebec_Albers','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','6624','NAD83(CSRS)v2_Quebec_Albers','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6625','NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6626','NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','6627','NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US','ESRI'); @@ -6916,7 +7005,7 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','9359','KSA-GRF17_UTM_zone_ INSERT INTO alias_name VALUES('projected_crs','EPSG','9360','KSA-GRF17_UTM_zone_40N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9367','TPEN11_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9373','MML07_Grid','ESRI'); -INSERT INTO alias_name VALUES('projected_crs','EPSG','9377','MAGNA-SIRGAS_Origen-Nacional','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9377','MAGNA-SIRGAS_2018_Origen-Nacional','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9387','AbInvA96_2020_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9391','BGS2005_UTM_zone_35N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9404','PN68_UTM_zone_27N','ESRI'); @@ -6947,22 +7036,13 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','9680','WGS_84_TM_90_NE','E INSERT INTO alias_name VALUES('projected_crs','EPSG','9697','REDGEOMIN_UTM_zone_12S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9698','REDGEOMIN_UTM_zone_18S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9699','REDGEOMIN_UTM_zone_19S','ESRI'); -INSERT INTO "projected_crs" VALUES('ESRI','9709','NAD_1983_CSRS_UTM_Zone_23N',NULL,'EPSG','4400','EPSG','4617','EPSG','16023',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_9709_USAGE','projected_crs','ESRI','9709','EPSG','2153','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','9712','NAD_1983_UTM_Zone_24N',NULL,'EPSG','4400','EPSG','4269','EPSG','16024',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_9712_USAGE','projected_crs','ESRI','9712','EPSG','4617','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','9713','NAD_1983_CSRS_UTM_Zone_24N',NULL,'EPSG','4400','EPSG','4617','EPSG','16024',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_9713_USAGE','projected_crs','ESRI','9713','EPSG','4617','EPSG','1024'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9709','NAD_1983_CSRS_UTM_Zone_23N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9712','NAD_1983_UTM_Zone_24N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9713','NAD_1983_CSRS_UTM_Zone_24N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9716','IGM95_UTM_Zone_34N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9741','EOS21_Grid','ESRI'); -INSERT INTO "conversion" VALUES('ESRI','9748','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',-85.83333333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('ESRI', 'CONV_9748_USAGE','conversion','ESRI','9748','EPSG','2154','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','9748','NAD_1983_2011_StatePlane_Alabama_East_(ftUS)',NULL,'EPSG','4497','EPSG','6318','ESRI','9748',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_9748_USAGE','projected_crs','ESRI','9748','EPSG','2154','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','9749','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-87.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',1968500.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_9749_USAGE','conversion','ESRI','9749','EPSG','2155','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','9749','NAD_1983_2011_StatePlane_Alabama_West_(ftUS)',NULL,'EPSG','4497','EPSG','6318','ESRI','9749',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_9749_USAGE','projected_crs','ESRI','9749','EPSG','2155','EPSG','1024'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9748','NAD_1983_2011_StatePlane_Alabama_East_(ftUS)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9749','NAD_1983_2011_StatePlane_Alabama_West_(ftUS)','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9761','ECML14_NB_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9766','EWR2_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9793','RGF93_v2_Lambert-93','ESRI'); @@ -7016,16 +7096,68 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','9869','MRH21_Grid','ESRI') INSERT INTO alias_name VALUES('projected_crs','EPSG','9874','PNG94_PNGMG94_Zone_57','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9875','PNG94_PNGMG94_Zone_58','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9880','MOLDOR11_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','9895','LUREF_Luxembourg_TM_(3D)','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9943','EBBWV14_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9945','Macedonia_State_Coordinate_System_truncated','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9947','ISN2004_LAEA_Iceland','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9967','HULLEE13_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9972','SCM22_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','9977','FNL22_Grid','ESRI'); -INSERT INTO "projected_crs" VALUES('ESRI','20002','Pulkovo_1995_GK_Zone_2',NULL,'EPSG','4400','EPSG','4200','EPSG','16202',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_20002_USAGE','projected_crs','ESRI','20002','EPSG','1805','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','20003','Pulkovo_1995_GK_Zone_3',NULL,'EPSG','4400','EPSG','4200','EPSG','16203',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_20003_USAGE','projected_crs','ESRI','20003','EPSG','1792','EPSG','1024'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10160','S34J_reconstruction_east-orientated','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10183','DoPw22_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10188','ShAb07_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10194','CNH22_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10199','CWS13_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10207','DIBA15_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10212','GWPBS22_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10217','GWWAB22_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10222','GWWWA22_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10227','MALS09_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10235','OxWo08_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10240','SYC20_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10250','S34S_reconstruction_east-orientated','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10254','S45B_reconstruction_east-orientated','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10270','Ostenfeld_reconstruction','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10275','SMITB20_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10280','RBEPP12_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10285','ETRS89_DREF91_2016_3-degree_Gauss-Kruger_zone_3','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10286','ETRS89_DREF91_2016_UTM_zone_31N_(N-zE)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10287','ETRS89_DREF91_2016_UTM_zone_31N_(zE-N)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10288','ETRS89_DREF91_2016_UTM_zone_32N_(N-zE)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10289','ETRS89_DREF91_2016_UTM_zone_32N_(zE-N)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10290','ETRS89_DREF91_2016_UTM_zone_33N_(N-zE)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10291','ETRS89_DREF91_2016_UTM_zone_33N_(zE-N)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10306','LKS-2020_Latvia_TM','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10314','RGNC15_Lambert_New_Caledonia_2015','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10315','RGNC15_UTM_zone_57S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10316','RGNC15_UTM_zone_58S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10317','RGNC15_UTM_zone_59S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10329','BH_ETRS89_TM','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10448','GDA_1994_ALB94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10449','GDA_1994_BIO94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10450','GDA_1994_BRO94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10451','GDA_1994_BCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10452','GDA_1994_CARN94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10453','GDA_1994_COL94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10454','GDA_1994_ESP94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10455','GDA_1994_EXM94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10456','GDA_1994_GCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10457','GDA_1994_GOLD94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10458','GDA_1994_JCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10459','GDA_1994_KALB94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10460','GDA_1994_KAR94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10461','GDA_1994_KUN94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10462','GDA_1994_LCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10463','GDA_1994_MRCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10464','GDA_1994_PCG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10465','GDA_1994_PHG94','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','10471','COV23_Grid','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','11114','MAGNA-SIRGAS_2018_Colombia_Far_West_zone','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','11115','MAGNA-SIRGAS_2018_Colombia_West_zone','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','11116','MAGNA-SIRGAS_2018_Colombia_Bogota_zone','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','11117','MAGNA-SIRGAS_2018_Colombia_East_Central_zone','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','11118','MAGNA-SIRGAS_2018_Colombia_East_zone','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','20002','MWC18_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20004','Pulkovo_1995_GK_Zone_4','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20005','Pulkovo_1995_GK_Zone_5','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20006','Pulkovo_1995_GK_Zone_6','ESRI'); @@ -7059,11 +7191,10 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','20042','SIRGAS-Chile_2021_ INSERT INTO alias_name VALUES('projected_crs','EPSG','20047','GDA2020_BCSG2020','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20048','SIRGAS-Chile_2021_UTM_Zone_18S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20049','SIRGAS-Chile_2021_UTM_Zone_19S','ESRI'); -INSERT INTO "projected_crs" VALUES('ESRI','20050','NAD_1983_(2011)_Amtrak_NECCS21_(ft)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_Amtrak_NECCS21_(ft)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Azimuth",58.0],PARAMETER["Longitude_Of_Center",-74.0],PARAMETER["Latitude_Of_Center",40.83333333333334],UNIT["Foot",0.3048]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_20050_USAGE','projected_crs','ESRI','20050','EPSG','4669','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','20062','Pulkovo_1995_GK_Zone_2N',NULL,'EPSG','4400','EPSG','4200','EPSG','16302',NULL,0); +INSERT INTO alias_name VALUES('projected_crs','EPSG','20050','NAD_1983_(2011)_Amtrak_NECCS21_(ft)','ESRI'); +INSERT INTO "projected_crs" VALUES('ESRI','20062','Pulkovo_1995_GK_Zone_2N',NULL,'EPSG','4400','EPSG','4200','EPSG','16302',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_20062_USAGE','projected_crs','ESRI','20062','EPSG','1805','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','20063','Pulkovo_1995_GK_Zone_3N',NULL,'EPSG','4400','EPSG','4200','EPSG','16303',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','20063','Pulkovo_1995_GK_Zone_3N',NULL,'EPSG','4400','EPSG','4200','EPSG','16303',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_20063_USAGE','projected_crs','ESRI','20063','EPSG','1792','EPSG','1024'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20064','Pulkovo_1995_GK_Zone_4N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','20065','Pulkovo_1995_GK_Zone_5N','ESRI'); @@ -7409,6 +7540,10 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','22219','NAD83(CSRS)v2_UTM_ INSERT INTO alias_name VALUES('projected_crs','EPSG','22220','NAD83(CSRS)v2_UTM_Zone_20N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22221','NAD83(CSRS)v2_UTM_Zone_21N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22222','NAD83(CSRS)v2_UTM_Zone_22N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22229','RGSH2020_UTM_zone_29N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22230','RGSH2020_UTM_zone_30N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22231','RGSH2020_UTM_zone_31N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22232','RGSH2020_UTM_zone_32N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22234','Cape_UTM_Zone_34S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22235','Cape_UTM_Zone_35S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22236','Cape_UTM_Zone_36S','ESRI'); @@ -7490,20 +7625,13 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','22611','NAD83(CSRS)v6_UTM_ INSERT INTO alias_name VALUES('projected_crs','EPSG','22612','NAD83(CSRS)v6_UTM_Zone_12N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22613','NAD83(CSRS)v6_UTM_Zone_13N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22614','NAD83(CSRS)v6_UTM_Zone_14N','ESRI'); -INSERT INTO "projected_crs" VALUES('ESRI','22615','NAD_1983_(CSRS)_v6_UTM_Zone_15N',NULL,'EPSG','4400','EPSG','8252','EPSG','16015',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22615_USAGE','projected_crs','ESRI','22615','EPSG','3414','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22616','NAD_1983_(CSRS)_v6_UTM_Zone_16N',NULL,'EPSG','4400','EPSG','8252','EPSG','16016',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22616_USAGE','projected_crs','ESRI','22616','EPSG','3415','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22617','NAD_1983_(CSRS)_v6_UTM_Zone_17N',NULL,'EPSG','4400','EPSG','8252','EPSG','16017',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22617_USAGE','projected_crs','ESRI','22617','EPSG','3416','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22618','NAD_1983_(CSRS)_v6_UTM_Zone_18N',NULL,'EPSG','4400','EPSG','8252','EPSG','16018',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22618_USAGE','projected_crs','ESRI','22618','EPSG','3417','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22619','NAD_1983_(CSRS)_v6_UTM_Zone_19N',NULL,'EPSG','4400','EPSG','8252','EPSG','16019',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22619_USAGE','projected_crs','ESRI','22619','EPSG','3524','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22620','NAD_1983_(CSRS)_v6_UTM_Zone_20N',NULL,'EPSG','4400','EPSG','8252','EPSG','16020',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22620_USAGE','projected_crs','ESRI','22620','EPSG','3525','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','22621','NAD_1983_(CSRS)_v6_UTM_Zone_21N',NULL,'EPSG','4400','EPSG','8252','EPSG','16021',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_22621_USAGE','projected_crs','ESRI','22621','EPSG','2151','EPSG','1024'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22615','NAD_1983_(CSRS)_v6_UTM_Zone_15N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22616','NAD_1983_(CSRS)_v6_UTM_Zone_16N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22617','NAD_1983_(CSRS)_v6_UTM_Zone_17N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22618','NAD_1983_(CSRS)_v6_UTM_Zone_18N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22619','NAD_1983_(CSRS)_v6_UTM_Zone_19N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22620','NAD_1983_(CSRS)_v6_UTM_Zone_20N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22621','NAD_1983_(CSRS)_v6_UTM_Zone_21N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22622','NAD83(CSRS)v6_UTM_Zone_22N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22639','NAD83(CSRS)v6_PEI_Stereographic','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22641','NAD83(CSRS)v6_MTM_Zone_1','ESRI'); @@ -7546,6 +7674,22 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','22764','NAD83(CSRS)v7_Albe INSERT INTO alias_name VALUES('projected_crs','EPSG','22765','NAD83(CSRS)v7_Alberta_3TM_ref_merid_120_W','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22770','Deir_ez_Zor_Syria_Lambert','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22780','Deir_ez_Zor_Levant_Stereographic','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22807','NAD83(CSRS)v8_UTM_Zone_7N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22808','NAD83(CSRS)v8_UTM_Zone_8N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22809','NAD83(CSRS)v8_UTM_Zone_9N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22810','NAD83(CSRS)v8_UTM_Zone_10N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22811','NAD83(CSRS)v8_UTM_Zone_11N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22812','NAD83(CSRS)v8_UTM_Zone_12N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22813','NAD83(CSRS)v8_UTM_Zone_13N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22814','NAD83(CSRS)v8_UTM_Zone_14N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22815','NAD83(CSRS)v8_UTM_Zone_15N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22816','NAD83(CSRS)v8_UTM_Zone_16N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22817','NAD83(CSRS)v8_UTM_Zone_17N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22818','NAD83(CSRS)v8_UTM_Zone_18N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22819','NAD83(CSRS)v8_UTM_Zone_19N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22820','NAD83(CSRS)v8_UTM_Zone_20N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22821','NAD83(CSRS)v8_UTM_Zone_21N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','22822','NAD83(CSRS)v8_UTM_Zone_22N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22832','Douala_UTM_Zone_32N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22991','Egypt_Blue_Belt','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','22992','Egypt_Red_Belt','ESRI'); @@ -7566,6 +7710,39 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','23090','ED_1950_TM_0_N','E INSERT INTO alias_name VALUES('projected_crs','EPSG','23095','ED_1950_TM_5_NE','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','23239','Fahud_UTM_Zone_39N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','23240','Fahud_UTM_Zone_40N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23301','NAD_1983_(2011)_ICS_Freeport_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23302','NAD_1983_(2011)_ICS_Rockford_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23303','NAD_1983_(2011)_ICS_Aurora_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23304','NAD_1983_(2011)_ICS_Chicago_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23305','NAD_1983_(2011)_ICS_Moline_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23306','NAD_1983_(2011)_ICS_Sterling_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23307','NAD_1983_(2011)_ICS_Ottawa_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23308','NAD_1983_(2011)_ICS_Joliet_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23309','NAD_1983_(2011)_ICS_Monmouth_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23310','NAD_1983_(2011)_ICS_Galesburg_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23311','NAD_1983_(2011)_ICS_Peoria_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23312','NAD_1983_(2011)_ICS_Eureka_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23313','NAD_1983_(2011)_ICS_Bloomington_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23314','NAD_1983_(2011)_ICS_Pontiac_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23315','NAD_1983_(2011)_ICS_Watseka_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23316','NAD_1983_(2011)_ICS_Quincy_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23317','NAD_1983_(2011)_ICS_Macomb_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23318','NAD_1983_(2011)_ICS_Lincoln_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23319','NAD_1983_(2011)_ICS_Decatur_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23320','NAD_1983_(2011)_ICS_Champaign_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23321','NAD_1983_(2011)_ICS_Jacksonville_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23322','NAD_1983_(2011)_ICS_Springfield_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23323','NAD_1983_(2011)_ICS_Charleston_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23324','NAD_1983_(2011)_ICS_Jerseyville_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23325','NAD_1983_(2011)_ICS_Carlinville_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23326','NAD_1983_(2011)_ICS_Taylorville_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23327','NAD_1983_(2011)_ICS_Effingham_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23328','NAD_1983_(2011)_ICS_Robinson_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23329','NAD_1983_(2011)_ICS_Belleville_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23330','NAD_1983_(2011)_ICS_Mount_Vernon_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23331','NAD_1983_(2011)_ICS_Olney_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23332','NAD_1983_(2011)_ICS_Carbondale_(US_Feet)','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','23333','NAD_1983_(2011)_ICS_Metropolis_(US_Feet)','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','23433','Garoua_UTM_Zone_33N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','23700','Hungarian_1972_Egyseges_Orszagos_Vetuleti','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','23830','DGN_1995_Indonesia_TM-3_Zone_46.2','ESRI'); @@ -7656,9 +7833,9 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','24600','KOC_Lambert','ESRI INSERT INTO alias_name VALUES('projected_crs','EPSG','24718','La_Canoa_UTM_Zone_18N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','24719','La_Canoa_UTM_Zone_19N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','24720','La_Canoa_UTM_Zone_20N','ESRI'); -INSERT INTO "extent" VALUES('ESRI','3','Venezuela - east of 60~W, N hemisphere','Venezuela - east of 60~W, N hemisphere',7.6,10.0,-61.0,-58.0,0); -INSERT INTO "projected_crs" VALUES('ESRI','24721','La_Canoa_UTM_Zone_21N',NULL,'EPSG','4400','EPSG','4247','EPSG','16021',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_24721_USAGE','projected_crs','ESRI','24721','ESRI','3','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','4','Venezuela - east of 60~W, N hemisphere','Venezuela - east of 60~W, N hemisphere',7.6,10.0,-61.0,-58.0,0); +INSERT INTO "projected_crs" VALUES('ESRI','24721','La_Canoa_UTM_Zone_21N',NULL,'EPSG','4400','EPSG','4247','EPSG','16021',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_24721_USAGE','projected_crs','ESRI','24721','ESRI','4','EPSG','1024'); INSERT INTO alias_name VALUES('projected_crs','EPSG','24817','PSAD_1956_UTM_Zone_17N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','24818','PSAD_1956_UTM_Zone_18N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','24819','PSAD_1956_UTM_Zone_19N','ESRI'); @@ -8443,10 +8620,7 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','32155','NAD_1983_StatePlan INSERT INTO alias_name VALUES('projected_crs','EPSG','32156','NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32157','NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32158','NAD_1983_StatePlane_Wyoming_West_FIPS_4904','ESRI'); -INSERT INTO "conversion" VALUES('ESRI','32159','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-107.5,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',41.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9102','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_32159_USAGE','conversion','ESRI','32159','EPSG','1419','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','32159','NAD_1983_WyLAM',NULL,'EPSG','4400','EPSG','4269','ESRI','32159',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_32159_USAGE','projected_crs','ESRI','32159','EPSG','1419','EPSG','1024'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32159','NAD_1983_WyLAM','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32161','NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32164','NAD_1983_BLM_Zone_14N_ftUS','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32165','NAD_1983_BLM_Zone_15N_ftUS','ESRI'); @@ -8592,6 +8766,126 @@ INSERT INTO alias_name VALUES('projected_crs','EPSG','32357','WGS_1972_UTM_Zone_ INSERT INTO alias_name VALUES('projected_crs','EPSG','32358','WGS_1972_UTM_Zone_58S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32359','WGS_1972_UTM_Zone_59S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32360','WGS_1972_UTM_Zone_60S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32401','WGS_1972_BE_UTM_Zone_1N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32402','WGS_1972_BE_UTM_Zone_2N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32403','WGS_1972_BE_UTM_Zone_3N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32404','WGS_1972_BE_UTM_Zone_4N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32405','WGS_1972_BE_UTM_Zone_5N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32406','WGS_1972_BE_UTM_Zone_6N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32407','WGS_1972_BE_UTM_Zone_7N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32408','WGS_1972_BE_UTM_Zone_8N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32409','WGS_1972_BE_UTM_Zone_9N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32410','WGS_1972_BE_UTM_Zone_10N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32411','WGS_1972_BE_UTM_Zone_11N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32412','WGS_1972_BE_UTM_Zone_12N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32413','WGS_1972_BE_UTM_Zone_13N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32414','WGS_1972_BE_UTM_Zone_14N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32415','WGS_1972_BE_UTM_Zone_15N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32416','WGS_1972_BE_UTM_Zone_16N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32417','WGS_1972_BE_UTM_Zone_17N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32418','WGS_1972_BE_UTM_Zone_18N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32419','WGS_1972_BE_UTM_Zone_19N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32420','WGS_1972_BE_UTM_Zone_20N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32421','WGS_1972_BE_UTM_Zone_21N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32422','WGS_1972_BE_UTM_Zone_22N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32423','WGS_1972_BE_UTM_Zone_23N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32424','WGS_1972_BE_UTM_Zone_24N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32425','WGS_1972_BE_UTM_Zone_25N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32426','WGS_1972_BE_UTM_Zone_26N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32427','WGS_1972_BE_UTM_Zone_27N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32428','WGS_1972_BE_UTM_Zone_28N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32429','WGS_1972_BE_UTM_Zone_29N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32430','WGS_1972_BE_UTM_Zone_30N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32431','WGS_1972_BE_UTM_Zone_31N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32432','WGS_1972_BE_UTM_Zone_32N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32433','WGS_1972_BE_UTM_Zone_33N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32434','WGS_1972_BE_UTM_Zone_34N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32435','WGS_1972_BE_UTM_Zone_35N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32436','WGS_1972_BE_UTM_Zone_36N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32437','WGS_1972_BE_UTM_Zone_37N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32438','WGS_1972_BE_UTM_Zone_38N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32439','WGS_1972_BE_UTM_Zone_39N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32440','WGS_1972_BE_UTM_Zone_40N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32441','WGS_1972_BE_UTM_Zone_41N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32442','WGS_1972_BE_UTM_Zone_42N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32443','WGS_1972_BE_UTM_Zone_43N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32444','WGS_1972_BE_UTM_Zone_44N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32445','WGS_1972_BE_UTM_Zone_45N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32446','WGS_1972_BE_UTM_Zone_46N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32447','WGS_1972_BE_UTM_Zone_47N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32448','WGS_1972_BE_UTM_Zone_48N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32449','WGS_1972_BE_UTM_Zone_49N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32450','WGS_1972_BE_UTM_Zone_50N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32451','WGS_1972_BE_UTM_Zone_51N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32452','WGS_1972_BE_UTM_Zone_52N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32453','WGS_1972_BE_UTM_Zone_53N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32454','WGS_1972_BE_UTM_Zone_54N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32455','WGS_1972_BE_UTM_Zone_55N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32456','WGS_1972_BE_UTM_Zone_56N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32457','WGS_1972_BE_UTM_Zone_57N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32458','WGS_1972_BE_UTM_Zone_58N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32459','WGS_1972_BE_UTM_Zone_59N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32460','WGS_1972_BE_UTM_Zone_60N','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32501','WGS_1972_BE_UTM_Zone_1S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32502','WGS_1972_BE_UTM_Zone_2S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32503','WGS_1972_BE_UTM_Zone_3S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32504','WGS_1972_BE_UTM_Zone_4S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32505','WGS_1972_BE_UTM_Zone_5S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32506','WGS_1972_BE_UTM_Zone_6S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32507','WGS_1972_BE_UTM_Zone_7S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32508','WGS_1972_BE_UTM_Zone_8S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32509','WGS_1972_BE_UTM_Zone_9S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32510','WGS_1972_BE_UTM_Zone_10S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32511','WGS_1972_BE_UTM_Zone_11S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32512','WGS_1972_BE_UTM_Zone_12S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32513','WGS_1972_BE_UTM_Zone_13S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32514','WGS_1972_BE_UTM_Zone_14S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32515','WGS_1972_BE_UTM_Zone_15S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32516','WGS_1972_BE_UTM_Zone_16S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32517','WGS_1972_BE_UTM_Zone_17S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32518','WGS_1972_BE_UTM_Zone_18S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32519','WGS_1972_BE_UTM_Zone_19S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32520','WGS_1972_BE_UTM_Zone_20S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32521','WGS_1972_BE_UTM_Zone_21S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32522','WGS_1972_BE_UTM_Zone_22S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32523','WGS_1972_BE_UTM_Zone_23S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32524','WGS_1972_BE_UTM_Zone_24S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32525','WGS_1972_BE_UTM_Zone_25S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32526','WGS_1972_BE_UTM_Zone_26S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32527','WGS_1972_BE_UTM_Zone_27S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32528','WGS_1972_BE_UTM_Zone_28S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32529','WGS_1972_BE_UTM_Zone_29S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32530','WGS_1972_BE_UTM_Zone_30S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32531','WGS_1972_BE_UTM_Zone_31S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32532','WGS_1972_BE_UTM_Zone_32S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32533','WGS_1972_BE_UTM_Zone_33S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32534','WGS_1972_BE_UTM_Zone_34S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32535','WGS_1972_BE_UTM_Zone_35S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32536','WGS_1972_BE_UTM_Zone_36S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32537','WGS_1972_BE_UTM_Zone_37S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32538','WGS_1972_BE_UTM_Zone_38S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32539','WGS_1972_BE_UTM_Zone_39S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32540','WGS_1972_BE_UTM_Zone_40S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32541','WGS_1972_BE_UTM_Zone_41S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32542','WGS_1972_BE_UTM_Zone_42S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32543','WGS_1972_BE_UTM_Zone_43S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32544','WGS_1972_BE_UTM_Zone_44S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32545','WGS_1972_BE_UTM_Zone_45S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32546','WGS_1972_BE_UTM_Zone_46S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32547','WGS_1972_BE_UTM_Zone_47S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32548','WGS_1972_BE_UTM_Zone_48S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32549','WGS_1972_BE_UTM_Zone_49S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32550','WGS_1972_BE_UTM_Zone_50S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32551','WGS_1972_BE_UTM_Zone_51S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32552','WGS_1972_BE_UTM_Zone_52S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32553','WGS_1972_BE_UTM_Zone_53S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32554','WGS_1972_BE_UTM_Zone_54S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32555','WGS_1972_BE_UTM_Zone_55S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32556','WGS_1972_BE_UTM_Zone_56S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32557','WGS_1972_BE_UTM_Zone_57S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32558','WGS_1972_BE_UTM_Zone_58S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32559','WGS_1972_BE_UTM_Zone_59S','ESRI'); +INSERT INTO alias_name VALUES('projected_crs','EPSG','32560','WGS_1972_BE_UTM_Zone_60S','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32601','WGS_1984_UTM_Zone_1N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32602','WGS_1984_UTM_Zone_2N','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','32603','WGS_1984_UTM_Zone_3N','ESRI'); @@ -8996,28 +9290,26 @@ INSERT INTO "projected_crs" VALUES('ESRI','102009','North_America_Lambert_Confor INSERT INTO "usage" VALUES('ESRI', 'PCRS_102009_USAGE','projected_crs','ESRI','102009','EPSG','1325','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102010','North_America_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4269',NULL,NULL,'PROJCS["North_America_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102010_USAGE','projected_crs','ESRI','102010','EPSG','1325','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','4','Africa','Africa',-35.0,39.0,-25.0,55.0,0); +INSERT INTO "extent" VALUES('ESRI','5','Africa','Africa',-35.0,39.0,-25.0,55.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102011','Africa_Sinusoidal',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["Africa_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102011_USAGE','projected_crs','ESRI','102011','ESRI','4','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','5','Asia','Asia',-10.0,85.0,25.0,-175.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102011_USAGE','projected_crs','ESRI','102011','ESRI','5','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','6','Asia','Asia',-10.0,85.0,25.0,-175.0,0); INSERT INTO "conversion" VALUES('ESRI','102012','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',0.0,'EPSG','9102','EPSG','8822','Longitude of false origin',105.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',30.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',62.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 "usage" VALUES('ESRI', 'CONV_102012_USAGE','conversion','ESRI','102012','ESRI','5','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102012_USAGE','conversion','ESRI','102012','ESRI','6','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102012','Asia_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102012',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102012_USAGE','projected_crs','ESRI','102012','ESRI','5','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','6','Europe','Europe',34.0,85.0,-30.0,50.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102012_USAGE','projected_crs','ESRI','102012','ESRI','6','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102013','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',30.0,'EPSG','9102','EPSG','8822','Longitude of false origin',10.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',62.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 "usage" VALUES('ESRI', 'CONV_102013_USAGE','conversion','ESRI','102013','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102013_USAGE','conversion','ESRI','102013','ESRI','3','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102013','Europe_Albers_Equal_Area_Conic',NULL,'EPSG','4400','EPSG','4230','ESRI','102013',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102013_USAGE','projected_crs','ESRI','102013','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102013_USAGE','projected_crs','ESRI','102013','ESRI','3','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102014','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.0,'EPSG','9102','EPSG','8822','Longitude of false origin',10.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',62.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 "usage" VALUES('ESRI', 'CONV_102014_USAGE','conversion','ESRI','102014','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102014_USAGE','conversion','ESRI','102014','ESRI','3','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102014','Europe_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4230','ESRI','102014',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102014_USAGE','projected_crs','ESRI','102014','ESRI','6','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','7','South America','South America',-60.0,15.0,-90.0,-30.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102014_USAGE','projected_crs','ESRI','102014','ESRI','3','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102015','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-32.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-60.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-5.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-42.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 "usage" VALUES('ESRI', 'CONV_102015_USAGE','conversion','ESRI','102015','ESRI','7','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102015_USAGE','conversion','ESRI','102015','EPSG','1358','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102015','South_America_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4618','ESRI','102015',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102015_USAGE','projected_crs','ESRI','102015','ESRI','7','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102015_USAGE','projected_crs','ESRI','102015','EPSG','1358','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102016','North_Pole_Azimuthal_Equidistant',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["North_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102016_USAGE','projected_crs','ESRI','102016','EPSG','3475','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102017','North_Pole_Lambert_Azimuthal_Equal_Area',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["North_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0]]',0); @@ -9031,45 +9323,45 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102020_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102021','South_Pole_Stereographic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["South_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102021_USAGE','projected_crs','ESRI','102021','EPSG','3474','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102022','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',0.0,'EPSG','9102','EPSG','8822','Longitude of false origin',25.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',20.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-23.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 "usage" VALUES('ESRI', 'CONV_102022_USAGE','conversion','ESRI','102022','ESRI','4','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102022_USAGE','conversion','ESRI','102022','ESRI','5','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102022','Africa_Albers_Equal_Area_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102022',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102022_USAGE','projected_crs','ESRI','102022','ESRI','4','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102022_USAGE','projected_crs','ESRI','102022','ESRI','5','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102023','Africa_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["Africa_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",-23.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102023_USAGE','projected_crs','ESRI','102023','ESRI','4','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102023_USAGE','projected_crs','ESRI','102023','ESRI','5','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102024','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',0.0,'EPSG','9102','EPSG','8822','Longitude of false origin',25.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',20.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-23.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 "usage" VALUES('ESRI', 'CONV_102024_USAGE','conversion','ESRI','102024','ESRI','4','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102024_USAGE','conversion','ESRI','102024','ESRI','5','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102024','Africa_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102024',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102024_USAGE','projected_crs','ESRI','102024','ESRI','4','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','8','Asia - North','Asia - North',10.0,85.0,25.0,-175.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102024_USAGE','projected_crs','ESRI','102024','ESRI','5','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','7','Asia - North','Asia - North',10.0,85.0,25.0,-175.0,0); INSERT INTO "conversion" VALUES('ESRI','102025','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',30.0,'EPSG','9102','EPSG','8822','Longitude of false origin',95.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',15.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',65.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 "usage" VALUES('ESRI', 'CONV_102025_USAGE','conversion','ESRI','102025','ESRI','8','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102025_USAGE','conversion','ESRI','102025','ESRI','7','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102025','Asia_North_Albers_Equal_Area_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102025',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102025_USAGE','projected_crs','ESRI','102025','ESRI','8','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102025_USAGE','projected_crs','ESRI','102025','ESRI','7','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102026','Asia_North_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["Asia_North_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",95.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102026_USAGE','projected_crs','ESRI','102026','ESRI','8','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102026_USAGE','projected_crs','ESRI','102026','ESRI','7','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102027','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.0,'EPSG','9102','EPSG','8822','Longitude of false origin',95.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',15.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',65.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 "usage" VALUES('ESRI', 'CONV_102027_USAGE','conversion','ESRI','102027','ESRI','8','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102027_USAGE','conversion','ESRI','102027','ESRI','7','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102027','Asia_North_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102027',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102027_USAGE','projected_crs','ESRI','102027','ESRI','8','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','9','Asia - South','Asia - South',-10.0,30.0,25.0,165.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102027_USAGE','projected_crs','ESRI','102027','ESRI','7','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','8','Asia - South','Asia - South',-10.0,30.0,25.0,165.0,0); INSERT INTO "conversion" VALUES('ESRI','102028','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',-15.0,'EPSG','9102','EPSG','8822','Longitude of false origin',125.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',7.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-32.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 "usage" VALUES('ESRI', 'CONV_102028_USAGE','conversion','ESRI','102028','ESRI','9','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102028_USAGE','conversion','ESRI','102028','ESRI','8','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102028','Asia_South_Albers_Equal_Area_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102028',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102028_USAGE','projected_crs','ESRI','102028','ESRI','9','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102028_USAGE','projected_crs','ESRI','102028','ESRI','8','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102029','Asia_South_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["Asia_South_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Standard_Parallel_1",7.0],PARAMETER["Standard_Parallel_2",-32.0],PARAMETER["Latitude_Of_Origin",-15.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102029_USAGE','projected_crs','ESRI','102029','ESRI','9','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102029_USAGE','projected_crs','ESRI','102029','ESRI','8','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102030','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-15.0,'EPSG','9102','EPSG','8822','Longitude of false origin',125.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',7.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-32.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 "usage" VALUES('ESRI', 'CONV_102030_USAGE','conversion','ESRI','102030','ESRI','9','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102030_USAGE','conversion','ESRI','102030','ESRI','8','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102030','Asia_South_Lambert_Conformal_Conic',NULL,'EPSG','4400','EPSG','4326','ESRI','102030',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102030_USAGE','projected_crs','ESRI','102030','ESRI','9','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102030_USAGE','projected_crs','ESRI','102030','ESRI','8','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102031','Europe_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4230',NULL,NULL,'PROJCS["Europe_Equidistant_Conic",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",62.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102031_USAGE','projected_crs','ESRI','102031','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102031_USAGE','projected_crs','ESRI','102031','ESRI','3','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102032','South_America_Equidistant_Conic',NULL,NULL,NULL,'EPSG','4618',NULL,NULL,'PROJCS["South_America_Equidistant_Conic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Standard_Parallel_1",-5.0],PARAMETER["Standard_Parallel_2",-42.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102032_USAGE','projected_crs','ESRI','102032','ESRI','7','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102032_USAGE','projected_crs','ESRI','102032','EPSG','1358','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102033','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',-32.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-60.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-5.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-42.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 "usage" VALUES('ESRI', 'CONV_102033_USAGE','conversion','ESRI','102033','ESRI','7','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102033_USAGE','conversion','ESRI','102033','EPSG','1358','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102033','South_America_Albers_Equal_Area_Conic',NULL,'EPSG','4400','EPSG','4618','ESRI','102033',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102033_USAGE','projected_crs','ESRI','102033','ESRI','7','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102033_USAGE','projected_crs','ESRI','102033','EPSG','1358','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102034','North_Pole_Gnomonic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["North_Pole_Gnomonic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gnomonic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",90.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102034_USAGE','projected_crs','ESRI','102034','EPSG','3475','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102035','North_Pole_Orthographic',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["North_Pole_Orthographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",90.0],UNIT["Meter",1.0]]',0); @@ -9088,16 +9380,16 @@ INSERT INTO "conversion" VALUES('ESRI','102040','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102040_USAGE','conversion','ESRI','102040','EPSG','3266','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102040','Korean_1985_Korea_Unified_Coordinate_System',NULL,'EPSG','4400','EPSG','4162','ESRI','102040',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102040_USAGE','projected_crs','ESRI','102040','EPSG','3266','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','10','USA - Washington - Bellevue','USA - Washington - Bellevue',47.5,47.69,-122.26,-122.06,0); +INSERT INTO "extent" VALUES('ESRI','9','USA - Washington - Bellevue','USA - Washington - Bellevue',47.5,47.69,-122.26,-122.06,0); INSERT INTO "conversion" VALUES('ESRI','102041','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-120.8333333333333,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',47.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',48.73333333333333,'EPSG','9102','EPSG','8826','Easting at false origin',1640416.896666667,'EPSG','9003','EPSG','8827','Northing at false origin',0.24,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102041_USAGE','conversion','ESRI','102041','ESRI','10','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102041_USAGE','conversion','ESRI','102041','ESRI','9','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102041','COB_NAD83_2007',NULL,'EPSG','4497','EPSG','4152','ESRI','102041',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102041_USAGE','projected_crs','ESRI','102041','ESRI','10','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','11','USA - USFS - Eastern Region','USA - USFS - Eastern Region',35.9,49.5,-97.3,-66.8,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102041_USAGE','projected_crs','ESRI','102041','ESRI','9','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','10','USA - USFS - Eastern Region','USA - USFS - Eastern Region',35.9,49.5,-97.3,-66.8,0); INSERT INTO "conversion" VALUES('ESRI','102042','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',35.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-82.25,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',38.25,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',47.25,'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 "usage" VALUES('ESRI', 'CONV_102042_USAGE','conversion','ESRI','102042','ESRI','11','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102042_USAGE','conversion','ESRI','102042','ESRI','10','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102042','NAD_1983_USFS_R9_Albers',NULL,'EPSG','4400','EPSG','4269','ESRI','102042',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102042_USAGE','projected_crs','ESRI','102042','ESRI','11','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102042_USAGE','projected_crs','ESRI','102042','ESRI','10','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102043','NAD_1983_CORS96_UTM_Zone_20N',NULL,'EPSG','4400','EPSG','6783','EPSG','16020',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102043_USAGE','projected_crs','ESRI','102043','EPSG','2251','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102044','NAD_1983_NSRS2007_UTM_Zone_20N',NULL,'EPSG','4400','EPSG','4759','EPSG','16020',NULL,0); @@ -9139,16 +9431,16 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102061_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102062','Kertau_RSO_Malaya_Meters',NULL,NULL,NULL,'EPSG','4245',NULL,NULL,'PROJCS["Kertau_RSO_Malaya_Meters",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",804671.299775],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",-36.97420943711801],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",-36.86989764584402],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102062_USAGE','projected_crs','ESRI','102062','EPSG','1690','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102063','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',7.000480277777778,'EPSG','9102','EPSG','8802','Longitude of natural origin',80.77171111111112,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',160933.56048,'EPSG','9001','EPSG','8807','False northing',160933.56048,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102063_USAGE','conversion','ESRI','102063','EPSG','1218','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102063_USAGE','conversion','ESRI','102063','EPSG','3310','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102063','Kandawala_Ceylon_Belt_Meters',NULL,'EPSG','4400','EPSG','4244','ESRI','102063',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102063_USAGE','projected_crs','ESRI','102063','EPSG','1218','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102063_USAGE','projected_crs','ESRI','102063','EPSG','3310','EPSG','1024'); INSERT INTO "coordinate_system" VALUES('ESRI','Yard_Indian_1937','Cartesian',2); INSERT INTO "axis" VALUES('ESRI','1','Easting','E','east','ESRI','Yard_Indian_1937',1,'EPSG','9085'); INSERT INTO "axis" VALUES('ESRI','2','Northing','N','north','ESRI','Yard_Indian_1937',2,'EPSG','9085'); INSERT INTO "conversion" VALUES('ESRI','102064','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',7.000480277777778,'EPSG','9102','EPSG','8802','Longitude of natural origin',80.77171111111112,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',176000.0,'EPSG','9085','EPSG','8807','False northing',176000.0,'EPSG','9085',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102064_USAGE','conversion','ESRI','102064','EPSG','1218','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102064_USAGE','conversion','ESRI','102064','EPSG','3310','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102064','Kandawala_Ceylon_Belt_Indian_Yards_1937',NULL,'ESRI','Yard_Indian_1937','EPSG','4244','ESRI','102064',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102064_USAGE','projected_crs','ESRI','102064','EPSG','1218','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102064_USAGE','projected_crs','ESRI','102064','EPSG','3310','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102065','S-JTSK_Krovak',NULL,NULL,NULL,'EPSG','4156',NULL,NULL,'PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Meter",1.0]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102065_USAGE','projected_crs','ESRI','102065','EPSG','1306','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102066','S-JTSK_Ferro_Krovak_East_North',NULL,NULL,NULL,'EPSG','4818',NULL,NULL,'PROJCS["S-JTSK_Ferro_Krovak_East_North",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",42.5],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0]]',1); @@ -9156,9 +9448,9 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102066_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102067','S-JTSK_Krovak_East_North',NULL,NULL,NULL,'EPSG','4156',NULL,NULL,'PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102067_USAGE','projected_crs','ESRI','102067','EPSG','1306','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102068','EMEP_50_Kilometer_Grid',NULL,NULL,NULL,'ESRI','104128',NULL,NULL,'PROJCS["EMEP_50_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",8.0],PARAMETER["False_Northing",110.0],PARAMETER["Central_Meridian",-32.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["50_Kilometers",50000.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102068_USAGE','projected_crs','ESRI','102068','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102068_USAGE','projected_crs','ESRI','102068','ESRI','3','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102069','EMEP_150_Kilometer_Grid',NULL,NULL,NULL,'ESRI','104128',NULL,NULL,'PROJCS["EMEP_150_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",3.0],PARAMETER["False_Northing",37.0],PARAMETER["Central_Meridian",-32.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["150_Kilometers",150000.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102069_USAGE','projected_crs','ESRI','102069','ESRI','6','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102069_USAGE','projected_crs','ESRI','102069','ESRI','3','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102070','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.416666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999997,'EPSG','9201','EPSG','8806','False easting',47000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102070_USAGE','conversion','ESRI','102070','EPSG','2989','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102070','Guernsey_Grid',NULL,'EPSG','4400','EPSG','4326','ESRI','102070',NULL,0); @@ -9167,55 +9459,55 @@ INSERT INTO "conversion" VALUES('ESRI','102071','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102071_USAGE','conversion','ESRI','102071','EPSG','2283','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102071','AGD_1966_ACT_Grid_AGC_Zone',NULL,'EPSG','4400','EPSG','4202','ESRI','102071',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102071_USAGE','projected_crs','ESRI','102071','EPSG','2283','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','12','Australia - New South Wales - 140~E to 142~E (ISG 54/2)','Australia - New South Wales - 140~E to 142~E (ISG 54/2)',-46.63,-28.15,140.0,142.0,0); +INSERT INTO "extent" VALUES('ESRI','11','Australia - New South Wales - 140~E to 142~E (ISG 54/2)','Australia - New South Wales - 140~E to 142~E (ISG 54/2)',-46.63,-28.15,140.0,142.0,0); INSERT INTO "conversion" VALUES('ESRI','102072','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102072_USAGE','conversion','ESRI','102072','ESRI','12','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102072_USAGE','conversion','ESRI','102072','ESRI','11','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102072','AGD_1966_ISG_54_2',NULL,'EPSG','4400','EPSG','4202','ESRI','102072',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102072_USAGE','projected_crs','ESRI','102072','ESRI','12','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','13','Australia - New South Wales - 142~E to 144~E (ISG 54/3)','Australia - New South Wales - 142~E to 144~E (ISG 54/3)',-46.63,-28.15,142.0,144.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102072_USAGE','projected_crs','ESRI','102072','ESRI','11','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','12','Australia - New South Wales - 142~E to 144~E (ISG 54/3)','Australia - New South Wales - 142~E to 144~E (ISG 54/3)',-46.63,-28.15,142.0,144.0,0); INSERT INTO "conversion" VALUES('ESRI','102073','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',143.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102073_USAGE','conversion','ESRI','102073','ESRI','13','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102073_USAGE','conversion','ESRI','102073','ESRI','12','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102073','AGD_1966_ISG_54_3',NULL,'EPSG','4400','EPSG','4202','ESRI','102073',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102073_USAGE','projected_crs','ESRI','102073','ESRI','13','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','14','Australia - New South Wales - 144~E to 146~E (ISG 55/1)','Australia - New South Wales - 144~E to 146~E (ISG 55/1)',-47.2,-28.15,144.0,146.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102073_USAGE','projected_crs','ESRI','102073','ESRI','12','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','13','Australia - New South Wales - 144~E to 146~E (ISG 55/1)','Australia - New South Wales - 144~E to 146~E (ISG 55/1)',-47.2,-28.15,144.0,146.0,0); INSERT INTO "conversion" VALUES('ESRI','102074','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',145.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102074_USAGE','conversion','ESRI','102074','ESRI','14','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102074_USAGE','conversion','ESRI','102074','ESRI','13','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102074','AGD_1966_ISG_55_1',NULL,'EPSG','4400','EPSG','4202','ESRI','102074',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102074_USAGE','projected_crs','ESRI','102074','ESRI','14','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','15','Australia - New South Wales - 146~E to 148~E (ISG 55/2)','Australia - New South Wales - 146~E to 148~E (ISG 55/2)',-47.2,-28.15,146.0,148.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102074_USAGE','projected_crs','ESRI','102074','ESRI','13','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','14','Australia - New South Wales - 146~E to 148~E (ISG 55/2)','Australia - New South Wales - 146~E to 148~E (ISG 55/2)',-47.2,-28.15,146.0,148.0,0); INSERT INTO "conversion" VALUES('ESRI','102075','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102075_USAGE','conversion','ESRI','102075','ESRI','15','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102075_USAGE','conversion','ESRI','102075','ESRI','14','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102075','AGD_1966_ISG_55_2',NULL,'EPSG','4400','EPSG','4202','ESRI','102075',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102075_USAGE','projected_crs','ESRI','102075','ESRI','15','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','16','Australia - New South Wales - 148~E to 150~E (ISG 55/3)','Australia - New South Wales - 148~E to 150~E (ISG 55/3)',-47.2,-28.15,148.0,150.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102075_USAGE','projected_crs','ESRI','102075','ESRI','14','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','15','Australia - New South Wales - 148~E to 150~E (ISG 55/3)','Australia - New South Wales - 148~E to 150~E (ISG 55/3)',-47.2,-28.15,148.0,150.0,0); INSERT INTO "conversion" VALUES('ESRI','102076','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',149.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102076_USAGE','conversion','ESRI','102076','ESRI','16','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102076_USAGE','conversion','ESRI','102076','ESRI','15','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102076','AGD_1966_ISG_55_3',NULL,'EPSG','4400','EPSG','4202','ESRI','102076',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102076_USAGE','projected_crs','ESRI','102076','ESRI','16','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','17','Australia - New South Wales - 150~E to 152~E (ISG 56/1)','Australia - New South Wales - 150~E to 152~E (ISG 56/1)',-46.44,-28.15,150.0,152.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102076_USAGE','projected_crs','ESRI','102076','ESRI','15','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','16','Australia - New South Wales - 150~E to 152~E (ISG 56/1)','Australia - New South Wales - 150~E to 152~E (ISG 56/1)',-46.44,-28.15,150.0,152.0,0); INSERT INTO "conversion" VALUES('ESRI','102077','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',151.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102077_USAGE','conversion','ESRI','102077','ESRI','17','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102077_USAGE','conversion','ESRI','102077','ESRI','16','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102077','AGD_1966_ISG_56_1',NULL,'EPSG','4400','EPSG','4202','ESRI','102077',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102077_USAGE','projected_crs','ESRI','102077','ESRI','17','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','18','Australia - New South Wales - 152~E to 154~E (ISG 56/2)','Australia - New South Wales - 152~E to 154~E (ISG 56/2)',-46.44,-28.15,152.0,154.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102077_USAGE','projected_crs','ESRI','102077','ESRI','16','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','17','Australia - New South Wales - 152~E to 154~E (ISG 56/2)','Australia - New South Wales - 152~E to 154~E (ISG 56/2)',-46.44,-28.15,152.0,154.0,0); INSERT INTO "conversion" VALUES('ESRI','102078','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102078_USAGE','conversion','ESRI','102078','ESRI','18','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102078_USAGE','conversion','ESRI','102078','ESRI','17','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102078','AGD_1966_ISG_56_2',NULL,'EPSG','4400','EPSG','4202','ESRI','102078',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102078_USAGE','projected_crs','ESRI','102078','ESRI','18','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','19','Australia - New South Wales - 154~E to 156~E (ISG 56/3)','Australia - New South Wales - 154~E to 156~E (ISG 56/3)',-46.44,-28.15,154.0,156.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102078_USAGE','projected_crs','ESRI','102078','ESRI','17','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','18','Australia - New South Wales - 154~E to 156~E (ISG 56/3)','Australia - New South Wales - 154~E to 156~E (ISG 56/3)',-46.44,-28.15,154.0,156.0,0); INSERT INTO "conversion" VALUES('ESRI','102079','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',155.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102079_USAGE','conversion','ESRI','102079','ESRI','19','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102079_USAGE','conversion','ESRI','102079','ESRI','18','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102079','AGD_1966_ISG_56_3',NULL,'EPSG','4400','EPSG','4202','ESRI','102079',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102079_USAGE','projected_crs','ESRI','102079','ESRI','19','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102080','Korea_2000_Korea_Unified_Coordinate_System',NULL,'EPSG','4400','EPSG','4737','ESRI','102040',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102079_USAGE','projected_crs','ESRI','102079','ESRI','18','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102080','KGD2002_Unified_Coordinate_System',NULL,'EPSG','4400','EPSG','4737','ESRI','102040',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102080_USAGE','projected_crs','ESRI','102080','EPSG','1135','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102081','Korea_2000_Korea_West_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5101',NULL,1); +INSERT INTO "projected_crs" VALUES('ESRI','102081','KGD2002_West_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5101',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102081_USAGE','projected_crs','ESRI','102081','EPSG','1498','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102082','Korea_2000_Korea_Central_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5102',NULL,1); +INSERT INTO "projected_crs" VALUES('ESRI','102082','KGD2002_Central_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5102',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102082_USAGE','projected_crs','ESRI','102082','EPSG','1497','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102083','Korea_2000_Korea_East_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5103',NULL,1); +INSERT INTO "projected_crs" VALUES('ESRI','102083','KGD2002_East_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5103',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102083_USAGE','projected_crs','ESRI','102083','EPSG','1496','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102084','Korea_2000_Korea_East_Sea_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5104',NULL,1); +INSERT INTO "projected_crs" VALUES('ESRI','102084','KGD2002_East_Sea_Belt_2010',NULL,'EPSG','4400','EPSG','4737','EPSG','5104',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102084_USAGE','projected_crs','ESRI','102084','EPSG','3720','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102085','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',125.0028902777778,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102085_USAGE','conversion','ESRI','102085','EPSG','1498','EPSG','1024'); @@ -9255,11 +9547,11 @@ INSERT INTO "projected_crs" VALUES('ESRI','102095','JAD_2001_Jamaica_Grid',NULL, INSERT INTO "usage" VALUES('ESRI', 'PCRS_102095_USAGE','projected_crs','ESRI','102095','EPSG','3342','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102096','Bab_South_Palau_Azimuthal_Equidistant',NULL,NULL,NULL,'ESRI','104112',NULL,NULL,'PROJCS["Bab_South_Palau_Azimuthal_Equidistant",GEOGCS["GCS_Bab_South",DATUM["D_Bab_South",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",150000.0],PARAMETER["Central_Meridian",134.4504448611111],PARAMETER["Latitude_Of_Origin",7.35122211111111],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102096_USAGE','projected_crs','ESRI','102096','EPSG','1185','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102097','ETRS_1989_UTM_Zone_26N',NULL,'EPSG','4400','EPSG','4258','EPSG','16026',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102097','ETRS_1989_UTM_Zone_26N',NULL,'EPSG','4400','EPSG','4258','EPSG','16026',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102097_USAGE','projected_crs','ESRI','102097','EPSG','2855','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102098','ETRS_1989_UTM_Zone_27N',NULL,'EPSG','4400','EPSG','4258','EPSG','16027',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102098','ETRS_1989_UTM_Zone_27N',NULL,'EPSG','4400','EPSG','4258','EPSG','16027',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102098_USAGE','projected_crs','ESRI','102098','EPSG','2856','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102099','ETRS_1989_UTM_Zone_39N',NULL,'EPSG','4400','EPSG','4258','EPSG','16039',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102099','ETRS_1989_UTM_Zone_39N',NULL,'EPSG','4400','EPSG','4258','EPSG','16039',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102099_USAGE','projected_crs','ESRI','102099','EPSG','2868','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102100','WGS_1984_Web_Mercator_Auxiliary_Sphere',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102100_USAGE','projected_crs','ESRI','102100','EPSG','3544','EPSG','1024'); @@ -9359,14 +9651,15 @@ INSERT INTO "projected_crs" VALUES('ESRI','102130','NAD_1983_UTM_Zone_59N',NULL, INSERT INTO "usage" VALUES('ESRI', 'PCRS_102130_USAGE','projected_crs','ESRI','102130','EPSG','3372','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102131','NAD_1983_UTM_Zone_60N',NULL,'EPSG','4400','EPSG','4269','EPSG','16060',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102131_USAGE','projected_crs','ESRI','102131','EPSG','3373','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','19','Norway - onshore - 4.68~E to 12~E','Norway - onshore - 4.68~E to 12~E',57.93,65.76,4.68,12.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102132','NGO_1948_UTM_Zone_32N',NULL,'EPSG','4400','EPSG','4273','EPSG','16032',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102132_USAGE','projected_crs','ESRI','102132','EPSG','2062','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102132_USAGE','projected_crs','ESRI','102132','ESRI','19','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102133','NGO_1948_UTM_Zone_33N',NULL,'EPSG','4400','EPSG','4273','EPSG','16033',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102133_USAGE','projected_crs','ESRI','102133','EPSG','2064','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102133_USAGE','projected_crs','ESRI','102133','EPSG','4067','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102134','NGO_1948_UTM_Zone_34N',NULL,'EPSG','4400','EPSG','4273','EPSG','16034',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102134_USAGE','projected_crs','ESRI','102134','EPSG','2066','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102134_USAGE','projected_crs','ESRI','102134','EPSG','4068','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102135','NGO_1948_UTM_Zone_35N',NULL,'EPSG','4400','EPSG','4273','EPSG','16035',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102135_USAGE','projected_crs','ESRI','102135','EPSG','2068','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102135_USAGE','projected_crs','ESRI','102135','EPSG','4069','EPSG','1024'); INSERT INTO "extent" VALUES('ESRI','20','Norway - Baerum Kommune','Norway - Baerum Kommune',59.8254,60.0366,10.3371,10.6725,0); INSERT INTO "conversion" VALUES('ESRI','102136','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',58.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',10.72291666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',19999.32,'EPSG','9001','EPSG','8807','False northing',-202977.79,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102136_USAGE','conversion','ESRI','102136','ESRI','20','EPSG','1024'); @@ -9394,8 +9687,9 @@ INSERT INTO "projected_crs" VALUES('ESRI','102142','Hong_Kong_1980_UTM_Zone_50N' INSERT INTO "usage" VALUES('ESRI', 'PCRS_102142_USAGE','projected_crs','ESRI','102142','EPSG','1118','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102143','QND_1995_UTM_39N',NULL,'EPSG','4400','EPSG','4614','EPSG','16039',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102143_USAGE','projected_crs','ESRI','102143','EPSG','1195','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102144','Merchich_Degree_UTM_Zone_28N',NULL,'EPSG','4400','ESRI','104261','EPSG','16028',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102144_USAGE','projected_crs','ESRI','102144','EPSG','1256','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','23','Africa - Morocco and Western Sahara - UTM 28N - 18~W to 12~W','Africa - Morocco and Western Sahara - UTM 28N - 18~W to 12~W',20.71,35.97,-18.0,-12.0,0); +INSERT INTO "projected_crs" VALUES('ESRI','102144','Merchich_UTM_Zone_28N',NULL,'EPSG','4400','EPSG','4261','EPSG','16028',NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102144_USAGE','projected_crs','ESRI','102144','ESRI','23','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102145','JGD_2000_UTM_Zone_51N',NULL,'EPSG','4400','EPSG','4612','EPSG','16051',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102145_USAGE','projected_crs','ESRI','102145','EPSG','3959','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102146','JGD_2000_UTM_Zone_52N',NULL,'EPSG','4400','EPSG','4612','EPSG','16052',NULL,1); @@ -9406,8 +9700,9 @@ INSERT INTO "projected_crs" VALUES('ESRI','102148','JGD_2000_UTM_Zone_54N',NULL, INSERT INTO "usage" VALUES('ESRI', 'PCRS_102148_USAGE','projected_crs','ESRI','102148','EPSG','3962','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102149','JGD_2000_UTM_Zone_55N',NULL,'EPSG','4400','EPSG','4612','EPSG','16055',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102149_USAGE','projected_crs','ESRI','102149','EPSG','3963','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','24','Japan - 150~E to 156~E','Japan - 150~E to 156~E',17.09,46.05,150.0,156.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102150','JGD_2000_UTM_Zone_56N',NULL,'EPSG','4400','EPSG','4612','EPSG','16056',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102150_USAGE','projected_crs','ESRI','102150','EPSG','1983','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102150_USAGE','projected_crs','ESRI','102150','ESRI','24','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102151','Tokyo_UTM_Zone_51N',NULL,'EPSG','4400','EPSG','4301','EPSG','16051',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102151_USAGE','projected_crs','ESRI','102151','EPSG','2951','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102152','Tokyo_UTM_Zone_52N',NULL,'EPSG','4400','EPSG','4301','EPSG','16052',NULL,1); @@ -9419,7 +9714,7 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102154_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102155','Tokyo_UTM_Zone_55N',NULL,'EPSG','4400','EPSG','4301','EPSG','16055',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102155_USAGE','projected_crs','ESRI','102155','EPSG','2955','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102156','Tokyo_UTM_Zone_56N',NULL,'EPSG','4400','EPSG','4301','EPSG','16056',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102156_USAGE','projected_crs','ESRI','102156','EPSG','1983','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102156_USAGE','projected_crs','ESRI','102156','ESRI','24','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102157','ETRS_1989_Kosovo_Grid (Gauss Kruger)',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',7500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102157_USAGE','conversion','ESRI','102157','EPSG','3534','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102157','ETRS_1989_Kosovo_Grid',NULL,'EPSG','4400','EPSG','4258','ESRI','102157',NULL,0); @@ -9431,13 +9726,13 @@ INSERT INTO "usage" VALUES('ESRI', 'CONV_102159_USAGE','conversion','ESRI','1021 INSERT INTO "projected_crs" VALUES('ESRI','102159','Observatorio_Meteorologico_1965_Macau_Grid',NULL,'EPSG','4400','ESRI','104126','ESRI','102159',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102159_USAGE','projected_crs','ESRI','102159','EPSG','1147','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102160','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',39.66666666666666,'EPSG','9102','EPSG','8802','Longitude of natural origin',-8.131906111111112,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',200180.598,'EPSG','9001','EPSG','8807','False northing',299913.01,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102160_USAGE','conversion','ESRI','102160','EPSG','1193','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102160_USAGE','conversion','ESRI','102160','EPSG','1294','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102160','Datum_73_Hayford_Gauss_IGeoE',NULL,'EPSG','4400','EPSG','4274','ESRI','102160',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102160_USAGE','projected_crs','ESRI','102160','EPSG','1193','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102160_USAGE','projected_crs','ESRI','102160','EPSG','1294','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102161','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',39.66666666666666,'EPSG','9102','EPSG','8802','Longitude of natural origin',-8.131906111111112,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',180.598,'EPSG','9001','EPSG','8807','False northing',-86.99,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102161_USAGE','conversion','ESRI','102161','EPSG','1193','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102161_USAGE','conversion','ESRI','102161','EPSG','1294','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102161','Datum_73_Hayford_Gauss_IPCC',NULL,'EPSG','4400','EPSG','4274','ESRI','102161',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102161_USAGE','projected_crs','ESRI','102161','EPSG','1193','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102161_USAGE','projected_crs','ESRI','102161','EPSG','1294','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102162','Graciosa_Base_SW_1948_UTM_Zone_26N',NULL,'EPSG','4400','ESRI','37241','EPSG','16026',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102162_USAGE','projected_crs','ESRI','102162','EPSG','1301','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102163','Lisboa_Bessel_Bonne',NULL,NULL,NULL,'ESRI','104105',NULL,NULL,'PROJCS["Lisboa_Bessel_Bonne",GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["D_Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Bonne"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Standard_Parallel_1",39.66666666666666],UNIT["Meter",1.0]]',0); @@ -9518,17 +9813,17 @@ INSERT INTO "conversion" VALUES('ESRI','102190','unnamed',NULL,'EPSG','9822','Al INSERT INTO "usage" VALUES('ESRI', 'CONV_102190_USAGE','conversion','ESRI','102190','EPSG','2832','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102190','NAD_1983_BC_Environment_Albers',NULL,'EPSG','4400','EPSG','4269','ESRI','102190',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102190_USAGE','projected_crs','ESRI','102190','EPSG','2832','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102191','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',33.3,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999625769,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102191','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',37.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999625769,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102191_USAGE','conversion','ESRI','102191','EPSG','1703','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102191','Nord_Maroc_Degree',NULL,'EPSG','4400','ESRI','104261','ESRI','102191',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102191','Nord_Maroc',NULL,'EPSG','4400','EPSG','4261','ESRI','102191',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102191_USAGE','projected_crs','ESRI','102191','EPSG','1703','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102192','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',29.7,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999615596,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102192','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',33.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999615596,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102192_USAGE','conversion','ESRI','102192','EPSG','2787','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102192','Sud_Maroc_Degree',NULL,'EPSG','4400','ESRI','104261','ESRI','102192',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102192','Sud_Maroc',NULL,'EPSG','4400','EPSG','4261','ESRI','102192',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102192_USAGE','projected_crs','ESRI','102192','EPSG','2787','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102193','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',26.1,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1200000.0,'EPSG','9001','EPSG','8807','False northing',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102193','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',26.1,'EPSG','9102','EPSG','8802','Longitude of natural origin',-5.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1200000.0,'EPSG','9001','EPSG','8807','False northing',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102193_USAGE','conversion','ESRI','102193','EPSG','1705','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102193','Sahara_Degree',NULL,'EPSG','4400','ESRI','104261','ESRI','102193',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102193','PE_PCS_MERCHICH_DEGREE_SAHARA',NULL,'EPSG','4400','EPSG','4261','ESRI','102193',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102193_USAGE','projected_crs','ESRI','102193','EPSG','1705','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102194','UWPP_1992 (Gauss Kruger)',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',19.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',-5300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102194_USAGE','conversion','ESRI','102194','EPSG','1192','EPSG','1024'); @@ -9602,11 +9897,11 @@ INSERT INTO "conversion" VALUES('ESRI','102215','unnamed',NULL,'EPSG','9802','La INSERT INTO "usage" VALUES('ESRI', 'CONV_102215_USAGE','conversion','ESRI','102215','EPSG','1061','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102215','WGS_1984_Canada_Atlas_LCC',NULL,'EPSG','4400','EPSG','4326','ESRI','102215',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102215_USAGE','projected_crs','ESRI','102215','EPSG','1061','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','23','Australia - Perth Coast','Australia - Perth Coast',-33.41666666666666,-31.33333333333333,115.4416666666667,116.0833333333333,0); +INSERT INTO "extent" VALUES('ESRI','25','Australia - Perth Coast','Australia - Perth Coast',-33.41666666666666,-31.33333333333333,115.4416666666667,116.0833333333333,0); INSERT INTO "conversion" VALUES('ESRI','102216','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',115.8166666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99999906,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',3800000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102216_USAGE','conversion','ESRI','102216','ESRI','23','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102216_USAGE','conversion','ESRI','102216','ESRI','25','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102216','GDA_1994_Perth_Coastal_Grid_1994',NULL,'EPSG','4400','EPSG','4283','ESRI','102216',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102216_USAGE','projected_crs','ESRI','102216','ESRI','23','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102216_USAGE','projected_crs','ESRI','102216','ESRI','25','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102217','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1706033.333333333,'EPSG','9003','EPSG','8807','False northing',-14698133.33333333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102217_USAGE','conversion','ESRI','102217','EPSG','1418','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102217','NAD_1983_NSRS2007_Wisconsin_TM_US_Ft',NULL,'EPSG','4497','EPSG','4759','ESRI','102217',NULL,0); @@ -9620,32 +9915,32 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102219_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102220','NAD_1983_HARN_Wisconsin_TM_US_Ft',NULL,'EPSG','4497','EPSG','4152','ESRI','102217',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102220_USAGE','projected_crs','ESRI','102220','EPSG','1418','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102221','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',10.46666666666667,'EPSG','9102','EPSG','8822','Longitude of false origin',-84.33333333333333,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',9.933333333333334,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',11.0,'EPSG','9102','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',271820.522,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102221_USAGE','conversion','ESRI','102221','EPSG','1074','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102221_USAGE','conversion','ESRI','102221','EPSG','3869','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102221','Ocotepeque_1935_Costa_Rica_Lambert_Norte',NULL,'EPSG','4400','EPSG','5451','ESRI','102221',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102221_USAGE','projected_crs','ESRI','102221','EPSG','1074','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102221_USAGE','projected_crs','ESRI','102221','EPSG','3869','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102222','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',9.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-83.66666666666667,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',8.466666666666667,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',9.533333333333333,'EPSG','9102','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',327987.436,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102222_USAGE','conversion','ESRI','102222','EPSG','1074','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102222_USAGE','conversion','ESRI','102222','EPSG','3870','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102222','Ocotepeque_1935_Costa_Rica_Lambert_Sur',NULL,'EPSG','4400','EPSG','5451','ESRI','102222',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102222_USAGE','projected_crs','ESRI','102222','EPSG','1074','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102222_USAGE','projected_crs','ESRI','102222','EPSG','3870','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102223','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-84.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102223_USAGE','conversion','ESRI','102223','EPSG','1074','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102223','WGS_1984_Costa_Rica_TM_90',NULL,'EPSG','4400','EPSG','4326','ESRI','102223',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102223_USAGE','projected_crs','ESRI','102223','EPSG','1074','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','24','Mongolia - west of 96~E','Mongolia - west of 96~E',43.01,50.89,87.76,96.0,0); +INSERT INTO "extent" VALUES('ESRI','26','Mongolia - west of 96~E','Mongolia - west of 96~E',43.01,50.89,87.76,96.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102224','MONREF_1997_UTM_Zone_46N',NULL,'EPSG','4400','ESRI','104134','EPSG','16046',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102224_USAGE','projected_crs','ESRI','102224','ESRI','24','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','25','Mongolia - between 96~E and 102~E','Mongolia - between 96~E and 102~E',42.14,52.15,96.0,102.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102224_USAGE','projected_crs','ESRI','102224','ESRI','26','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','27','Mongolia - between 96~E and 102~E','Mongolia - between 96~E and 102~E',42.14,52.15,96.0,102.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102225','MONREF_1997_UTM_Zone_47N',NULL,'EPSG','4400','ESRI','104134','EPSG','16047',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102225_USAGE','projected_crs','ESRI','102225','ESRI','25','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','26','Mongolia - between 102~E and 108~E','Mongolia - between 102~E and 108~E',41.58,51.42,102.0,108.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102225_USAGE','projected_crs','ESRI','102225','ESRI','27','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','28','Mongolia - between 102~E and 108~E','Mongolia - between 102~E and 108~E',41.58,51.42,102.0,108.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102226','MONREF_1997_UTM_Zone_48N',NULL,'EPSG','4400','ESRI','104134','EPSG','16048',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102226_USAGE','projected_crs','ESRI','102226','ESRI','26','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','27','Mongolia - between 108~E and 114~E','Mongolia - between 108~E and 114~E',42.35,50.23,108.0,114.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102226_USAGE','projected_crs','ESRI','102226','ESRI','28','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','29','Mongolia - between 108~E and 114~E','Mongolia - between 108~E and 114~E',42.35,50.23,108.0,114.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102227','MONREF_1997_UTM_Zone_49N',NULL,'EPSG','4400','ESRI','104134','EPSG','16049',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102227_USAGE','projected_crs','ESRI','102227','ESRI','27','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','28','Mongolia - east of 114~E','Mongolia - east of 114~E',44.9,50.32,114.0,119.94,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102227_USAGE','projected_crs','ESRI','102227','ESRI','29','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','30','Mongolia - east of 114~E','Mongolia - east of 114~E',44.9,50.32,114.0,119.94,0); INSERT INTO "projected_crs" VALUES('ESRI','102228','MONREF_1997_UTM_Zone_50N',NULL,'EPSG','4400','ESRI','104134','EPSG','16050',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102228_USAGE','projected_crs','ESRI','102228','ESRI','28','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102228_USAGE','projected_crs','ESRI','102228','ESRI','30','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102229','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',-85.83333333333333,'EPSG','9102','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,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102229_USAGE','conversion','ESRI','102229','EPSG','2154','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102229','NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101',NULL,'EPSG','4400','EPSG','4152','ESRI','102229',NULL,1); @@ -10008,11 +10303,11 @@ INSERT INTO "conversion" VALUES('ESRI','102327','unnamed',NULL,'EPSG','9802','La INSERT INTO "usage" VALUES('ESRI', 'CONV_102327_USAGE','conversion','ESRI','102327','EPSG','2244','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102327','NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602',NULL,'EPSG','4400','EPSG','4152','ESRI','102327',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102327_USAGE','projected_crs','ESRI','102327','EPSG','2244','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','29','Germany - west of 12~E','Germany - west of 12~E',47.27,55.9,5.5,12.0,0); +INSERT INTO "extent" VALUES('ESRI','31','Germany - west of 12~E','Germany - west of 12~E',47.27,55.9,5.5,12.0,0); INSERT INTO "conversion" VALUES('ESRI','102328','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',2500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102328_USAGE','conversion','ESRI','102328','ESRI','29','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102328_USAGE','conversion','ESRI','102328','ESRI','31','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102328','ETRS_1989_UTM_Zone_32N_7stellen',NULL,'EPSG','4400','EPSG','4258','ESRI','102328',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102328_USAGE','projected_crs','ESRI','102328','ESRI','29','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102328_USAGE','projected_crs','ESRI','102328','ESRI','31','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102329','ETRS_1989_UTM_Zone_32N_8stellen',NULL,'EPSG','4400','EPSG','4258','EPSG','4648',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102329_USAGE','projected_crs','ESRI','102329','EPSG','2862','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102330','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.08333333333334,'EPSG','9102','EPSG','8802','Longitude of natural origin',-71.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99999375,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); @@ -10126,9 +10421,9 @@ INSERT INTO "usage" VALUES('ESRI', 'CONV_102358_USAGE','conversion','ESRI','1023 INSERT INTO "projected_crs" VALUES('ESRI','102358','NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904',NULL,'EPSG','4400','EPSG','4152','ESRI','102358',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102358_USAGE','projected_crs','ESRI','102358','EPSG','2271','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102359','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',3500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102359_USAGE','conversion','ESRI','102359','ESRI','29','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102359_USAGE','conversion','ESRI','102359','ESRI','31','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102359','ETRS_1989_UTM_Zone_33N_7stellen',NULL,'EPSG','4400','EPSG','4258','ESRI','102359',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102359_USAGE','projected_crs','ESRI','102359','ESRI','29','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102359_USAGE','projected_crs','ESRI','102359','ESRI','31','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102360','ETRS_1989_UTM_Zone_33N_8stellen',NULL,'EPSG','4400','EPSG','4258','EPSG','5648',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102360_USAGE','projected_crs','ESRI','102360','EPSG','2862','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102361','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',17.83333333333333,'EPSG','9102','EPSG','8822','Longitude of false origin',-66.43333333333334,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',18.03333333333333,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',18.43333333333333,'EPSG','9102','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,1); @@ -10201,13 +10496,13 @@ INSERT INTO "projected_crs" VALUES('ESRI','102387','NAD_1983_2011_UTM_Zone_18N', INSERT INTO "usage" VALUES('ESRI', 'PCRS_102387_USAGE','projected_crs','ESRI','102387','EPSG','3505','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102388','NAD_1983_2011_UTM_Zone_19N',NULL,'EPSG','4400','EPSG','6318','EPSG','16019',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102388_USAGE','projected_crs','ESRI','102388','EPSG','3506','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','30','USA - North Dakota - Fargo','USA - North Dakota - Fargo',46.7,47.0,-96.93,-96.75,0); +INSERT INTO "extent" VALUES('ESRI','32','USA - North Dakota - Fargo','USA - North Dakota - Fargo',46.7,47.0,-96.93,-96.75,0); INSERT INTO "projected_crs" VALUES('ESRI','102389','NAD_1983_Fargo_Ground_Coordinate_System',NULL,NULL,NULL,'EPSG','4269',NULL,NULL,'PROJCS["NAD_1983_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102389_USAGE','projected_crs','ESRI','102389','ESRI','30','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102389_USAGE','projected_crs','ESRI','102389','ESRI','32','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102390','NAD_1983_HARN_Fargo_Ground_Coordinate_System',NULL,NULL,NULL,'EPSG','4152',NULL,NULL,'PROJCS["NAD_1983_HARN_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102390_USAGE','projected_crs','ESRI','102390','ESRI','30','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102390_USAGE','projected_crs','ESRI','102390','ESRI','32','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102391','NAD_1983_2011_Fargo_Ground_Coordinate_System',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_2011_Fargo_Ground_Coordinate_System",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102391_USAGE','projected_crs','ESRI','102391','ESRI','30','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102391_USAGE','projected_crs','ESRI','102391','ESRI','32','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102392','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-150.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',1640416.666666667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102392_USAGE','conversion','ESRI','102392','EPSG','2160','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102392','NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004_Feet',NULL,'EPSG','4497','EPSG','6318','ESRI','102392',NULL,0); @@ -10236,11 +10531,11 @@ INSERT INTO "conversion" VALUES('ESRI','102398','unnamed',NULL,'EPSG','9802','La INSERT INTO "usage" VALUES('ESRI', 'CONV_102398_USAGE','conversion','ESRI','102398','EPSG','2157','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102398','NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010_Feet',NULL,'EPSG','4497','EPSG','6318','ESRI','102398',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102398_USAGE','projected_crs','ESRI','102398','EPSG','2157','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','31','USA - Montana, North Dakota, and South Dakota','USA - Montana, North Dakota, and South Dakota',44.3,49.1,-116.1,-96.3,0); +INSERT INTO "extent" VALUES('ESRI','33','USA - Montana, North Dakota, and South Dakota','USA - Montana, North Dakota, and South Dakota',44.3,49.1,-116.1,-96.3,0); INSERT INTO "conversion" VALUES('ESRI','102399','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',42.5,'EPSG','9102','EPSG','8822','Longitude of false origin',-106.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',43.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',48.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 "usage" VALUES('ESRI', 'CONV_102399_USAGE','conversion','ESRI','102399','ESRI','31','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102399_USAGE','conversion','ESRI','102399','ESRI','33','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102399','NAD_1983_Albers_BLM_MT_ND_SD',NULL,'EPSG','4400','EPSG','4269','ESRI','102399',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102399_USAGE','projected_crs','ESRI','102399','ESRI','31','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102399_USAGE','projected_crs','ESRI','102399','ESRI','33','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102400','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',51.1666666666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',-0.158333333333333,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999999,'EPSG','9201','EPSG','8806','False easting',78250.0,'EPSG','9001','EPSG','8807','False northing',-2800.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102400_USAGE','conversion','ESRI','102400','ESRI','2','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102400','London_Survey_Grid',NULL,'EPSG','4400','ESRI','104050','ESRI','102400',NULL,0); @@ -10287,92 +10582,92 @@ INSERT INTO "conversion" VALUES('ESRI','102420','unnamed',NULL,'EPSG','9802','La INSERT INTO "usage" VALUES('ESRI', 'CONV_102420_USAGE','conversion','ESRI','102420','EPSG','1120','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102420','ISN_2004_Lambert_2004',NULL,'EPSG','4400','EPSG','5324','ESRI','102420',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102420_USAGE','projected_crs','ESRI','102420','EPSG','1120','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','32','ARC System - Zone 1','ARC System - Zone 1',0.0,32.0,-180.0,180.0,0); +INSERT INTO "extent" VALUES('ESRI','34','ARC System - Zone 1','ARC System - Zone 1',0.0,32.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102421','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',22.94791772,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102421_USAGE','conversion','ESRI','102421','ESRI','32','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102421_USAGE','conversion','ESRI','102421','ESRI','34','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102421','WGS_1984_ARC_System_Zone_01',NULL,'EPSG','4400','EPSG','4326','ESRI','102421',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102421_USAGE','projected_crs','ESRI','102421','ESRI','32','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','33','ARC System - Zone 2','ARC System - Zone 2',32.0,48.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102421_USAGE','projected_crs','ESRI','102421','ESRI','34','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','35','ARC System - Zone 2','ARC System - Zone 2',32.0,48.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102422','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',41.12682127,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102422_USAGE','conversion','ESRI','102422','ESRI','33','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102422_USAGE','conversion','ESRI','102422','ESRI','35','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102422','WGS_1984_ARC_System_Zone_02',NULL,'EPSG','4400','EPSG','4326','ESRI','102422',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102422_USAGE','projected_crs','ESRI','102422','ESRI','33','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','34','ARC System - Zone 3','ARC System - Zone 3',48.0,56.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102422_USAGE','projected_crs','ESRI','102422','ESRI','35','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','36','ARC System - Zone 3','ARC System - Zone 3',48.0,56.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102423','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',52.28859923,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102423_USAGE','conversion','ESRI','102423','ESRI','34','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102423_USAGE','conversion','ESRI','102423','ESRI','36','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102423','WGS_1984_ARC_System_Zone_03',NULL,'EPSG','4400','EPSG','4326','ESRI','102423',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102423_USAGE','projected_crs','ESRI','102423','ESRI','34','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','35','ARC System - Zone 4','ARC System - Zone 4',56.0,64.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102423_USAGE','projected_crs','ESRI','102423','ESRI','36','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','37','ARC System - Zone 4','ARC System - Zone 4',56.0,64.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102424','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',60.32378942,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102424_USAGE','conversion','ESRI','102424','ESRI','35','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102424_USAGE','conversion','ESRI','102424','ESRI','37','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102424','WGS_1984_ARC_System_Zone_04',NULL,'EPSG','4400','EPSG','4326','ESRI','102424',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102424_USAGE','projected_crs','ESRI','102424','ESRI','35','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','36','ARC System - Zone 5','ARC System - Zone 5',64.0,68.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102424_USAGE','projected_crs','ESRI','102424','ESRI','37','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','38','ARC System - Zone 5','ARC System - Zone 5',64.0,68.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102425','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',66.09421768,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102425_USAGE','conversion','ESRI','102425','ESRI','36','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102425_USAGE','conversion','ESRI','102425','ESRI','38','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102425','WGS_1984_ARC_System_Zone_05',NULL,'EPSG','4400','EPSG','4326','ESRI','102425',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102425_USAGE','projected_crs','ESRI','102425','ESRI','36','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','37','ARC System - Zone 6','ARC System - Zone 6',68.0,72.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102425_USAGE','projected_crs','ESRI','102425','ESRI','38','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','39','ARC System - Zone 6','ARC System - Zone 6',68.0,72.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102426','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',70.10896259,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102426_USAGE','conversion','ESRI','102426','ESRI','37','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102426_USAGE','conversion','ESRI','102426','ESRI','39','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102426','WGS_1984_ARC_System_Zone_06',NULL,'EPSG','4400','EPSG','4326','ESRI','102426',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102426_USAGE','projected_crs','ESRI','102426','ESRI','37','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','38','ARC System - Zone 7','ARC System - Zone 7',72.0,76.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102426_USAGE','projected_crs','ESRI','102426','ESRI','39','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','40','ARC System - Zone 7','ARC System - Zone 7',72.0,76.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102427','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',74.13230145,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102427_USAGE','conversion','ESRI','102427','ESRI','38','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102427_USAGE','conversion','ESRI','102427','ESRI','40','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102427','WGS_1984_ARC_System_Zone_07',NULL,'EPSG','4400','EPSG','4326','ESRI','102427',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102427_USAGE','projected_crs','ESRI','102427','ESRI','38','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','39','ARC System - Zone 8','ARC System - Zone 8',76.0,80.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102427_USAGE','projected_crs','ESRI','102427','ESRI','40','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','41','ARC System - Zone 8','ARC System - Zone 8',76.0,80.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102428','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',78.1728375,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102428_USAGE','conversion','ESRI','102428','ESRI','39','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102428_USAGE','conversion','ESRI','102428','ESRI','41','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102428','WGS_1984_ARC_System_Zone_08',NULL,'EPSG','4400','EPSG','4326','ESRI','102428',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102428_USAGE','projected_crs','ESRI','102428','ESRI','39','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','40','ARC System - Zone 9','ARC System - Zone 9',80.0,90.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102428_USAGE','projected_crs','ESRI','102428','ESRI','41','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','42','ARC System - Zone 9','ARC System - Zone 9',80.0,90.0,-180.0,180.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102429','WGS_1984_ARC_System_Zone_09',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["WGS_1984_ARC_System_Zone_09",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102429_USAGE','projected_crs','ESRI','102429','ESRI','40','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','41','ARC System - Zone 10','ARC System - Zone 10',-32.0,0.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102429_USAGE','projected_crs','ESRI','102429','ESRI','42','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','43','ARC System - Zone 10','ARC System - Zone 10',-32.0,0.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102430','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-22.94791772,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102430_USAGE','conversion','ESRI','102430','ESRI','41','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102430_USAGE','conversion','ESRI','102430','ESRI','43','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102430','WGS_1984_ARC_System_Zone_10',NULL,'EPSG','4400','EPSG','4326','ESRI','102430',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102430_USAGE','projected_crs','ESRI','102430','ESRI','41','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','42','ARC System - Zone 11','ARC System - Zone 11',-48.0,-32.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102430_USAGE','projected_crs','ESRI','102430','ESRI','43','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','44','ARC System - Zone 11','ARC System - Zone 11',-48.0,-32.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102431','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-41.12682127,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102431_USAGE','conversion','ESRI','102431','ESRI','42','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102431_USAGE','conversion','ESRI','102431','ESRI','44','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102431','WGS_1984_ARC_System_Zone_11',NULL,'EPSG','4400','EPSG','4326','ESRI','102431',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102431_USAGE','projected_crs','ESRI','102431','ESRI','42','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','43','ARC System - Zone 12','ARC System - Zone 12',-56.0,-48.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102431_USAGE','projected_crs','ESRI','102431','ESRI','44','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','45','ARC System - Zone 12','ARC System - Zone 12',-56.0,-48.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102432','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-52.28859923,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102432_USAGE','conversion','ESRI','102432','ESRI','43','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102432_USAGE','conversion','ESRI','102432','ESRI','45','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102432','WGS_1984_ARC_System_Zone_12',NULL,'EPSG','4400','EPSG','4326','ESRI','102432',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102432_USAGE','projected_crs','ESRI','102432','ESRI','43','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','44','ARC System - Zone 13','ARC System - Zone 13',-64.0,-56.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102432_USAGE','projected_crs','ESRI','102432','ESRI','45','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','46','ARC System - Zone 13','ARC System - Zone 13',-64.0,-56.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102433','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-60.32378942,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102433_USAGE','conversion','ESRI','102433','ESRI','44','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102433_USAGE','conversion','ESRI','102433','ESRI','46','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102433','WGS_1984_ARC_System_Zone_13',NULL,'EPSG','4400','EPSG','4326','ESRI','102433',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102433_USAGE','projected_crs','ESRI','102433','ESRI','44','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','45','ARC System - Zone 14','ARC System - Zone 14',-68.0,-64.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102433_USAGE','projected_crs','ESRI','102433','ESRI','46','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','47','ARC System - Zone 14','ARC System - Zone 14',-68.0,-64.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102434','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-66.09421768,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102434_USAGE','conversion','ESRI','102434','ESRI','45','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102434_USAGE','conversion','ESRI','102434','ESRI','47','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102434','WGS_1984_ARC_System_Zone_14',NULL,'EPSG','4400','EPSG','4326','ESRI','102434',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102434_USAGE','projected_crs','ESRI','102434','ESRI','45','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','46','ARC System - Zone 15','ARC System - Zone 15',-72.0,-68.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102434_USAGE','projected_crs','ESRI','102434','ESRI','47','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','48','ARC System - Zone 15','ARC System - Zone 15',-72.0,-68.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102435','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-70.10896259,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102435_USAGE','conversion','ESRI','102435','ESRI','46','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102435_USAGE','conversion','ESRI','102435','ESRI','48','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102435','WGS_1984_ARC_System_Zone_15',NULL,'EPSG','4400','EPSG','4326','ESRI','102435',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102435_USAGE','projected_crs','ESRI','102435','ESRI','46','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','47','ARC System - Zone 16','ARC System - Zone 16',-76.0,-72.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102435_USAGE','projected_crs','ESRI','102435','ESRI','48','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','49','ARC System - Zone 16','ARC System - Zone 16',-76.0,-72.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102436','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-74.13230145,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102436_USAGE','conversion','ESRI','102436','ESRI','47','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102436_USAGE','conversion','ESRI','102436','ESRI','49','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102436','WGS_1984_ARC_System_Zone_16',NULL,'EPSG','4400','EPSG','4326','ESRI','102436',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102436_USAGE','projected_crs','ESRI','102436','ESRI','47','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','48','ARC System - Zone 17','ARC System - Zone 17',-80.0,-76.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102436_USAGE','projected_crs','ESRI','102436','ESRI','49','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','50','ARC System - Zone 17','ARC System - Zone 17',-80.0,-76.0,-180.0,180.0,0); INSERT INTO "conversion" VALUES('ESRI','102437','unnamed',NULL,'EPSG','1029','Equidistant Cylindrical (Spherical)','EPSG','8823','Latitude of 1st standard parallel',-78.1728375,'EPSG','9102','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,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102437_USAGE','conversion','ESRI','102437','ESRI','48','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102437_USAGE','conversion','ESRI','102437','ESRI','50','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102437','WGS_1984_ARC_System_Zone_17',NULL,'EPSG','4400','EPSG','4326','ESRI','102437',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102437_USAGE','projected_crs','ESRI','102437','ESRI','48','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','49','ARC System - Zone 18','ARC System - Zone 18',-90.0,-80.0,-180.0,180.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102437_USAGE','projected_crs','ESRI','102437','ESRI','50','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','51','ARC System - Zone 18','ARC System - Zone 18',-90.0,-80.0,-180.0,180.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102438','WGS_1984_ARC_System_Zone_18',NULL,NULL,NULL,'EPSG','4326',NULL,NULL,'PROJCS["WGS_1984_ARC_System_Zone_18",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102438_USAGE','projected_crs','ESRI','102438','ESRI','49','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102438_USAGE','projected_crs','ESRI','102438','ESRI','51','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102439','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-27.0,'EPSG','9102','EPSG','8822','Longitude of false origin',132.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',-18.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',-36.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,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102439_USAGE','conversion','ESRI','102439','EPSG','2575','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102439','WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert',NULL,'EPSG','4400','EPSG','4326','ESRI','102439',NULL,1); @@ -10399,9 +10694,9 @@ INSERT INTO "conversion" VALUES('ESRI','102447','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102447_USAGE','conversion','ESRI','102447','EPSG','2159','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102447','NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003_Feet',NULL,'EPSG','4497','EPSG','6318','ESRI','102447',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102447_USAGE','projected_crs','ESRI','102447','EPSG','2159','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','50','Macao','Macao',22.1,22.22,113.52,113.6,0); +INSERT INTO "extent" VALUES('ESRI','52','Macao','Macao',22.1,22.22,113.52,113.6,0); INSERT INTO "projected_crs" VALUES('ESRI','102448','Macao_2008_Macao_Grid',NULL,'EPSG','4400','EPSG','8431','ESRI','102159',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102448_USAGE','projected_crs','ESRI','102448','ESRI','50','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102448_USAGE','projected_crs','ESRI','102448','ESRI','52','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102449','NAD_1983_MA11_UTM_Zone_55N',NULL,'EPSG','4400','EPSG','6325','EPSG','16055',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102449_USAGE','projected_crs','ESRI','102449','EPSG','4518','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102450','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',58.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',19999.32,'EPSG','9001','EPSG','8807','False northing',-202977.79,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -10416,29 +10711,29 @@ INSERT INTO "conversion" VALUES('ESRI','102452','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102452_USAGE','conversion','ESRI','102452','ESRI','22','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102452','NGO_1948_Oslo_Oslo_Kommune',NULL,'EPSG','4400','EPSG','4817','ESRI','102452',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102452_USAGE','projected_crs','ESRI','102452','ESRI','22','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','51','Philippines - West of 120~E, N hemisphere','Philippines - West of 120~E, N hemisphere',3.0,22.0,114.0,120.0,0); +INSERT INTO "extent" VALUES('ESRI','53','Philippines - West of 120~E, N hemisphere','Philippines - West of 120~E, N hemisphere',3.0,22.18,114.0,120.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102453','Luzon_1911_UTM_Zone_50N',NULL,'EPSG','4400','EPSG','4253','EPSG','16050',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102453_USAGE','projected_crs','ESRI','102453','ESRI','51','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','52','Philippines - 120~E to 126~E, N hemisphere','Philippines - 120~E to 126~E, N hemisphere',3.0,24.0,120.0,126.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102453_USAGE','projected_crs','ESRI','102453','ESRI','53','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','54','Philippines - 120~E to 126~E, N hemisphere','Philippines - 120~E to 126~E, N hemisphere',3.0,22.18,120.0,126.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102454','Luzon_1911_UTM_Zone_51N',NULL,'EPSG','4400','EPSG','4253','EPSG','16051',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102454_USAGE','projected_crs','ESRI','102454','ESRI','52','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','53','Philippines - East of 126~E, N hemisphere','Philippines - East of 126~E, N hemisphere',4.0,20.0,126.0,132.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102454_USAGE','projected_crs','ESRI','102454','ESRI','54','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','55','Philippines - East of 126~E, N hemisphere','Philippines - East of 126~E, N hemisphere',3.0,22.18,126.0,132.0,0); INSERT INTO "projected_crs" VALUES('ESRI','102455','Luzon_1911_UTM_Zone_52N',NULL,'EPSG','4400','EPSG','4253','EPSG','16052',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102455_USAGE','projected_crs','ESRI','102455','ESRI','53','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102455_USAGE','projected_crs','ESRI','102455','ESRI','55','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102456','PRS_1992_UTM_Zone_50N',NULL,'EPSG','4400','EPSG','4683','EPSG','16050',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102456_USAGE','projected_crs','ESRI','102456','ESRI','51','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102456_USAGE','projected_crs','ESRI','102456','ESRI','53','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102457','PRS_1992_UTM_Zone_51N',NULL,'EPSG','4400','EPSG','4683','EPSG','16051',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102457_USAGE','projected_crs','ESRI','102457','ESRI','52','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102457_USAGE','projected_crs','ESRI','102457','ESRI','54','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102458','PRS_1992_UTM_Zone_52N',NULL,'EPSG','4400','EPSG','4683','EPSG','16052',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102458_USAGE','projected_crs','ESRI','102458','ESRI','53','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','54','Idaho - Ada County','Idaho - Ada County',43.0,43.85,-116.6,-115.94,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102458_USAGE','projected_crs','ESRI','102458','ESRI','55','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','56','Idaho - Ada County','Idaho - Ada County',43.0,43.85,-116.6,-115.94,0); INSERT INTO "conversion" VALUES('ESRI','102459','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.66666666666666,'EPSG','9102','EPSG','8802','Longitude of natural origin',-115.75,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00011328,'EPSG','9201','EPSG','8806','False easting',2625138.996430666,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102459_USAGE','conversion','ESRI','102459','ESRI','54','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102459_USAGE','conversion','ESRI','102459','ESRI','56','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102459','NAD_1983_Idaho-Ada_County',NULL,'EPSG','4497','EPSG','4269','ESRI','102459',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102459_USAGE','projected_crs','ESRI','102459','ESRI','54','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','55','HJAIA - Hartsfield-Jackson Atlanta Intl Airport','HJAIA - Hartsfield-Jackson Atlanta Intl Airport',33.590879,33.68427937,-84.502368,-84.351204,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102459_USAGE','projected_crs','ESRI','102459','ESRI','56','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','57','HJAIA - Hartsfield-Jackson Atlanta Intl Airport','HJAIA - Hartsfield-Jackson Atlanta Intl Airport',33.590879,33.68427937,-84.502368,-84.351204,0); INSERT INTO "projected_crs" VALUES('ESRI','102460','HJAIA_AirportGrid_2Mar10',NULL,NULL,NULL,'EPSG','4269',NULL,NULL,'PROJCS["HJAIA_AirportGrid_2Mar10",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Local"],PARAMETER["False_Easting",11233.741],PARAMETER["False_Northing",3076.34],PARAMETER["Scale_Factor",1.000047],PARAMETER["Azimuth",-0.01935],PARAMETER["Longitude_Of_Center",-84.4306922136],PARAMETER["Latitude_Of_Center",33.6340844042],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102460_USAGE','projected_crs','ESRI','102460','ESRI','55','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102460_USAGE','projected_crs','ESRI','102460','ESRI','57','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102461','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',18.83333333333333,'EPSG','9102','EPSG','8802','Longitude of natural origin',-155.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999666666666667,'EPSG','9201','EPSG','8806','False easting',1640416.666666667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102461_USAGE','conversion','ESRI','102461','EPSG','1546','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102461','NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101_Feet',NULL,'EPSG','4497','EPSG','4152','ESRI','102461',NULL,0); @@ -10538,13 +10833,13 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102489_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102490','GDBD2009_GEORSO',NULL,NULL,NULL,'EPSG','5246',NULL,NULL,'PROJCS["GDBD2009_GEORSO",GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31580995],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Meter",1.0]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102490_USAGE','projected_crs','ESRI','102490','EPSG','1055','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102491','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',36.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',2.7,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999625544,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102491_USAGE','conversion','ESRI','102491','EPSG','1026','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102491_USAGE','conversion','ESRI','102491','EPSG','1728','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102491','Nord_Algerie_Ancienne_Degree',NULL,'EPSG','4400','EPSG','4304','ESRI','102491',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102491_USAGE','projected_crs','ESRI','102491','EPSG','1026','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102491_USAGE','projected_crs','ESRI','102491','EPSG','1728','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102492','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',33.3,'EPSG','9102','EPSG','8802','Longitude of natural origin',2.7,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999625769,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102492_USAGE','conversion','ESRI','102492','EPSG','1026','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102492_USAGE','conversion','ESRI','102492','EPSG','4519','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102492','Sud_Algerie_Ancienne_Degree',NULL,'EPSG','4400','EPSG','4304','ESRI','102492',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102492_USAGE','projected_crs','ESRI','102492','EPSG','1026','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102492_USAGE','projected_crs','ESRI','102492','EPSG','4519','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102493','NAD_1983_PA11_UTM_Zone_4N',NULL,'EPSG','4400','EPSG','6322','EPSG','16004',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102493_USAGE','projected_crs','ESRI','102493','EPSG','3488','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102494','NAD_1983_PA11_UTM_Zone_5N',NULL,'EPSG','4400','EPSG','6322','EPSG','16005',NULL,1); @@ -10553,11 +10848,11 @@ INSERT INTO "projected_crs" VALUES('ESRI','102495','NAD_1983_MA11_Guam_Map_Grid' INSERT INTO "usage" VALUES('ESRI', 'PCRS_102495_USAGE','projected_crs','ESRI','102495','EPSG','3255','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102496','NAD_1983_PA11_UTM_Zone_2S',NULL,'EPSG','4400','EPSG','6322','EPSG','16102',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102496_USAGE','projected_crs','ESRI','102496','EPSG','3110','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','56','GOES-16 East Full disk','GOES-16 East Full disk',-81.3282,81.3282,-156.2995,6.2995,0); +INSERT INTO "extent" VALUES('ESRI','58','GOES-16 East Full disk','GOES-16 East Full disk',-81.3282,81.3282,-156.2995,6.2995,0); INSERT INTO "projected_crs" VALUES('ESRI','102497','GOES-16_East_ABI_Fixed_Grid_ITRF2000_incorrect_GCS',NULL,NULL,NULL,'EPSG','8997',NULL,NULL,'PROJCS["GOES-16_East_ABI_Fixed_Grid_ITRF2000_incorrect_GCS",GEOGCS["GCS_ITRF_2000",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Geostationary_Satellite"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",-75.0],PARAMETER["Height",35786023.0],PARAMETER["Option",0.0],UNIT["Meter",1.0]]',1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102497_USAGE','projected_crs','ESRI','102497','ESRI','56','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102497_USAGE','projected_crs','ESRI','102497','ESRI','58','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102498','GOES-16_East_ABI_Fixed_Grid_ITRF2008',NULL,NULL,NULL,'EPSG','8999',NULL,NULL,'PROJCS["GOES-16_East_ABI_Fixed_Grid_ITRF2008",GEOGCS["GCS_ITRF_2008",DATUM["D_ITRF_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Geostationary_Satellite"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",-75.0],PARAMETER["Height",35786023.0],PARAMETER["Option",0.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102498_USAGE','projected_crs','ESRI','102498','ESRI','56','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102498_USAGE','projected_crs','ESRI','102498','ESRI','58','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102499','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',90.0,'EPSG','9102','EPSG','8822','Longitude of false origin',4.367486666666666,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',49.8333339,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',51.16666723333333,'EPSG','9102','EPSG','8826','Easting at false origin',150000.01256,'EPSG','9001','EPSG','8827','Northing at false origin',5400088.4378,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102499_USAGE','conversion','ESRI','102499','EPSG','1347','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102499','Belge_Lambert_1972_bad_FE_FN',NULL,'EPSG','4400','EPSG','4313','ESRI','102499',NULL,0); @@ -10768,31 +11063,26 @@ INSERT INTO "conversion" VALUES('ESRI','102556','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102556_USAGE','conversion','ESRI','102556','EPSG','1530','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102556','ED_1950_Turkey_15',NULL,'EPSG','4400','EPSG','4230','ESRI','102556',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102556_USAGE','projected_crs','ESRI','102556','EPSG','1530','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','57','Kyrgyz Republic - 67~01''E to 70~01''E','Kyrgyz Republic - 67~01''E to 70~01''E',39.4,40.3,67.0166667,70.0166667,0); INSERT INTO "conversion" VALUES('ESRI','102557','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',68.51666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',1300000.0,'EPSG','9001','EPSG','8807','False northing',14743.5,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102557_USAGE','conversion','ESRI','102557','ESRI','57','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102557','Kyrg-06_TM_Zone_1',NULL,'EPSG','4400','ESRI','104009','ESRI','102557',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102557_USAGE','projected_crs','ESRI','102557','ESRI','57','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','58','Kyrgyz Republic - 70~01''E to 73~01''E','Kyrgyz Republic - 70~01''E to 73~01''E',39.1333333,42.9,70.0166667,73.0166667,0); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102557_USAGE','conversion','ESRI','102557','EPSG','4385','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102557','Kyrg-06_TM_Zone_1',NULL,'EPSG','4400','EPSG','7686','ESRI','102557',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102557_USAGE','projected_crs','ESRI','102557','EPSG','4385','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102558','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',71.51666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2300000.0,'EPSG','9001','EPSG','8807','False northing',14743.5,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102558_USAGE','conversion','ESRI','102558','ESRI','58','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102558','Kyrg-06_TM_Zone_2',NULL,'EPSG','4400','ESRI','104009','ESRI','102558',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102558_USAGE','projected_crs','ESRI','102558','ESRI','58','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','59','Kyrgyz Republic - 73~01''E to 76~01''E','Kyrgyz Republic - 73~01''E to 76~01''E',39.25,43.3333333,73.0166667,76.0166667,0); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102558_USAGE','conversion','ESRI','102558','EPSG','4386','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102558','Kyrg-06_TM_Zone_2',NULL,'EPSG','4400','EPSG','7686','ESRI','102558',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102558_USAGE','projected_crs','ESRI','102558','EPSG','4386','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102559','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',74.51666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3300000.0,'EPSG','9001','EPSG','8807','False northing',14743.5,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102559_USAGE','conversion','ESRI','102559','ESRI','59','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102559','Kyrg-06_TM_Zone_3',NULL,'EPSG','4400','ESRI','104009','ESRI','102559',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102559_USAGE','projected_crs','ESRI','102559','ESRI','59','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','60','Kyrgyz Republic - 76~01''E to 79~01''E','Kyrgyz Republic - 76~01''E to 79~01''E',40.1666667,43.0,76.0166667,79.0166667,0); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102559_USAGE','conversion','ESRI','102559','EPSG','4387','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102559','Kyrg-06_TM_Zone_3',NULL,'EPSG','4400','EPSG','7686','ESRI','102559',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102559_USAGE','projected_crs','ESRI','102559','EPSG','4387','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102560','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',77.51666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',4300000.0,'EPSG','9001','EPSG','8807','False northing',14743.5,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102560_USAGE','conversion','ESRI','102560','ESRI','60','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102560','Kyrg-06_TM_Zone_4',NULL,'EPSG','4400','ESRI','104009','ESRI','102560',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102560_USAGE','projected_crs','ESRI','102560','ESRI','60','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','61','Kyrgyz Republic - 79~01''E to 82~01''E','Kyrgyz Republic - 79~01''E to 82~01''E',41.5,43.0,79.0166667,82.0166667,0); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102560_USAGE','conversion','ESRI','102560','EPSG','4388','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102560','Kyrg-06_TM_Zone_4',NULL,'EPSG','4400','EPSG','7686','ESRI','102560',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102560_USAGE','projected_crs','ESRI','102560','EPSG','4388','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102561','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',80.51666666666667,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',5300000.0,'EPSG','9001','EPSG','8807','False northing',14743.5,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102561_USAGE','conversion','ESRI','102561','ESRI','61','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102561','Kyrg-06_TM_Zone_5',NULL,'EPSG','4400','ESRI','104009','ESRI','102561',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102561_USAGE','projected_crs','ESRI','102561','ESRI','61','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102561_USAGE','conversion','ESRI','102561','EPSG','4389','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102561','Kyrg-06_TM_Zone_5',NULL,'EPSG','4400','EPSG','7686','ESRI','102561',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102561_USAGE','projected_crs','ESRI','102561','EPSG','4389','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102562','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',19.0,'EPSG','9102','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 "usage" VALUES('ESRI', 'CONV_102562_USAGE','conversion','ESRI','102562','EPSG','1456','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102562','Hartebeesthoek94_Lo19_(E-N)',NULL,'EPSG','4400','EPSG','4148','ESRI','102562',NULL,0); @@ -10867,11 +11157,11 @@ INSERT INTO "projected_crs" VALUES('ESRI','102587','NTF_Lambert_Zone_III',NULL,' INSERT INTO "usage" VALUES('ESRI', 'PCRS_102587_USAGE','projected_crs','ESRI','102587','EPSG','1733','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102588','NTF_Lambert_Zone_IV',NULL,'EPSG','4400','EPSG','4275','ESRI','102584',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102588_USAGE','projected_crs','ESRI','102588','EPSG','1327','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','62','USA - Contiguous US','USA - Contiguous US',20.0,50.0,-125.0,-65.0,0); +INSERT INTO "extent" VALUES('ESRI','59','USA - Contiguous US','USA - Contiguous US',20.0,50.0,-125.0,-65.0,0); INSERT INTO "conversion" VALUES('ESRI','102589','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',25.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',31.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',41.0,'EPSG','9102','EPSG','8826','Easting at false origin',0.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102589_USAGE','conversion','ESRI','102589','ESRI','62','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102589_USAGE','conversion','ESRI','102589','ESRI','59','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102589','Panhandle_Energy_Albers',NULL,'EPSG','4497','EPSG','4269','ESRI','102589',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102589_USAGE','projected_crs','ESRI','102589','ESRI','62','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102589_USAGE','projected_crs','ESRI','102589','ESRI','59','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102590','Tananarive_1925_Laborde_Grid',NULL,NULL,NULL,'EPSG','4297',NULL,NULL,'PROJCS["Tananarive_1925_Laborde_Grid",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Laborde_Oblique_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Azimuth",18.9],PARAMETER["Longitude_Of_Center",46.43722916666667],PARAMETER["Latitude_Of_Center",-18.9],UNIT["Meter",1.0]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102590_USAGE','projected_crs','ESRI','102590','EPSG','3273','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102591','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',36.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',2.7,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999625544,'EPSG','9201','EPSG','8806','False easting',500135.0,'EPSG','9001','EPSG','8807','False northing',300090.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); @@ -10893,7 +11183,7 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_102596_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','102597','JGD_2011_UTM_Zone_55N',NULL,'EPSG','4400','EPSG','6668','EPSG','16055',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102597_USAGE','projected_crs','ESRI','102597','EPSG','3963','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102598','JGD_2011_UTM_Zone_56N',NULL,'EPSG','4400','EPSG','6668','EPSG','16056',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102598_USAGE','projected_crs','ESRI','102598','EPSG','1983','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102598_USAGE','projected_crs','ESRI','102598','ESRI','24','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102599','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',0.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-120.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',34.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',40.5,'EPSG','9102','EPSG','8826','Easting at false origin',0.0,'EPSG','9003','EPSG','8827','Northing at false origin',-4000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102599_USAGE','conversion','ESRI','102599','EPSG','1375','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102599','WGS_1984_California_Teale_Albers_FtUS',NULL,'EPSG','4497','EPSG','4326','ESRI','102599',NULL,0); @@ -11264,11 +11554,11 @@ INSERT INTO "conversion" VALUES('ESRI','102704','unnamed',NULL,'EPSG','9802','La INSERT INTO "usage" VALUES('ESRI', 'CONV_102704_USAGE','conversion','ESRI','102704','EPSG','1396','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102704','NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet',NULL,'EPSG','4497','EPSG','4269','ESRI','102704',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102704_USAGE','projected_crs','ESRI','102704','EPSG','1396','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','63','US - Nebraska - Lancaster County','US - Nebraska - Lancaster County',40.5,41.07,-96.93,-96.43,0); +INSERT INTO "extent" VALUES('ESRI','60','US - Nebraska - Lancaster County','US - Nebraska - Lancaster County',40.5,41.07,-96.93,-96.43,0); INSERT INTO "conversion" VALUES('ESRI','102705','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-96.68805555555556,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000054615,'EPSG','9201','EPSG','8806','False easting',164041.6666666667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102705_USAGE','conversion','ESRI','102705','ESRI','63','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102705_USAGE','conversion','ESRI','102705','ESRI','60','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102705','NAD_1983_Nebraska_Lancaster_County_FtUS',NULL,'EPSG','4497','EPSG','4269','ESRI','102705',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102705_USAGE','projected_crs','ESRI','102705','ESRI','63','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102705_USAGE','projected_crs','ESRI','102705','ESRI','60','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102706','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.73409694444445,'EPSG','9102','EPSG','8802','Longitude of natural origin',35.21208055555556,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',170251.555,'EPSG','9001','EPSG','8807','False northing',126867.909,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102706_USAGE','conversion','ESRI','102706','EPSG','1356','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102706','Palestine_1923_Palestine_Grid_TM',NULL,'EPSG','4400','EPSG','4281','ESRI','102706',NULL,1); @@ -11367,12 +11657,12 @@ INSERT INTO "conversion" VALUES('ESRI','102730','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_102730_USAGE','conversion','ESRI','102730','EPSG','1408','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102730','NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet',NULL,'EPSG','4497','EPSG','4269','ESRI','102730',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102730_USAGE','projected_crs','ESRI','102730','EPSG','1408','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','64','Panama - UTM Zone 17N','Panama - UTM Zone 17N',5.0,12.51,-84.32,-77.99,0); +INSERT INTO "extent" VALUES('ESRI','61','Panama - UTM Zone 17N','Panama - UTM Zone 17N',5.0,12.51,-84.32,-77.99,0); INSERT INTO "projected_crs" VALUES('ESRI','102731','PANAMA_ITRF08_UTM_17N',NULL,'EPSG','4400','ESRI','104646','EPSG','16017',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102731_USAGE','projected_crs','ESRI','102731','ESRI','64','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','65','Panama - UTM Zone 18N','Panama - UTM Zone 18N',5.0,12.51,-78.0,-77.04,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102731_USAGE','projected_crs','ESRI','102731','ESRI','61','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','62','Panama - UTM Zone 18N','Panama - UTM Zone 18N',5.0,12.51,-78.0,-77.04,0); INSERT INTO "projected_crs" VALUES('ESRI','102732','PANAMA_ITRF08_UTM_18N',NULL,'EPSG','4400','ESRI','104646','EPSG','16018',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102732_USAGE','projected_crs','ESRI','102732','ESRI','65','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102732_USAGE','projected_crs','ESRI','102732','ESRI','62','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102733','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.83333333333333,'EPSG','9102','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',32.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',34.83333333333334,'EPSG','9102','EPSG','8826','Easting at false origin',1999996.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102733_USAGE','conversion','ESRI','102733','EPSG','1409','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102733','NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet',NULL,'EPSG','4497','EPSG','4269','ESRI','102733',NULL,0); @@ -11503,809 +11793,802 @@ INSERT INTO "conversion" VALUES('ESRI','102766','unnamed',NULL,'EPSG','9818','Am INSERT INTO "usage" VALUES('ESRI', 'CONV_102766_USAGE','conversion','ESRI','102766','EPSG','1110','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102766','NAD_1983_StatePlane_Guam_FIPS_5400_Feet',NULL,'EPSG','4497','EPSG','4269','ESRI','102766',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102766_USAGE','projected_crs','ESRI','102766','EPSG','1110','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','66','Colombia - Leticia - Amazonas','Colombia - Leticia - Amazonas',-4.7,-3.683333333333334,-70.45,-69.43333333333334,0); INSERT INTO "conversion" VALUES('ESRI','102767','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',-4.197684047222222,'EPSG','9102','EPSG','8802','Longitude of natural origin',-69.94281105833333,'EPSG','9102','EPSG','8806','False easting',25978.217,'EPSG','9001','EPSG','8807','False northing',27501.365,'EPSG','9001','EPSG','1039','Projection plane origin height',89.7,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102767_USAGE','conversion','ESRI','102767','ESRI','66','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102767_USAGE','conversion','ESRI','102767','EPSG','4143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102767','MAGNA_Leticia_Amazonas_1994',NULL,'EPSG','4400','EPSG','4686','ESRI','102767',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102767_USAGE','projected_crs','ESRI','102767','ESRI','66','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','67','Colombia - Medellin - Antioquia','Colombia - Medellin - Antioquia',5.716666666666667,6.733333333333333,-76.06666666666666,-75.05,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102767_USAGE','projected_crs','ESRI','102767','EPSG','4143','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','63','Colombia - Medellin - Antioquia','Colombia - Medellin - Antioquia',5.716666666666667,6.733333333333333,-76.06666666666666,-75.05,0); INSERT INTO "conversion" VALUES('ESRI','102768','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',6.229208888888889,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.56488694444444,'EPSG','9102','EPSG','8806','False easting',835378.647,'EPSG','9001','EPSG','8807','False northing',1180816.875,'EPSG','9001','EPSG','1039','Projection plane origin height',1510.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102768_USAGE','conversion','ESRI','102768','ESRI','67','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102768_USAGE','conversion','ESRI','102768','ESRI','63','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102768','MAGNA_Medellin_Antioquia_2010',NULL,'EPSG','4400','EPSG','4686','ESRI','102768',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102768_USAGE','projected_crs','ESRI','102768','ESRI','67','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','68','Colombia - Arauca - Arauca','Colombia - Arauca - Arauca',6.583333333333333,7.6,-71.26666666666667,-70.25,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102768_USAGE','projected_crs','ESRI','102768','ESRI','63','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','64','Colombia - Arauca - Arauca','Colombia - Arauca - Arauca',6.583333333333333,7.6,-71.26666666666667,-70.25,0); INSERT INTO "conversion" VALUES('ESRI','102769','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',7.087606391666666,'EPSG','9102','EPSG','8802','Longitude of natural origin',-70.75830965555555,'EPSG','9102','EPSG','8806','False easting',1035263.443,'EPSG','9001','EPSG','8807','False northing',1275526.621,'EPSG','9001','EPSG','1039','Projection plane origin height',100.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102769_USAGE','conversion','ESRI','102769','ESRI','68','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102769_USAGE','conversion','ESRI','102769','ESRI','64','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102769','MAGNA_Arauca_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102769',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102769_USAGE','projected_crs','ESRI','102769','ESRI','68','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','69','Colombia - Barranquilla - Atlantico','Colombia - Barranquilla - Atlantico',10.41666666666667,11.43333333333333,-75.35,-74.33333333333333,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102769_USAGE','projected_crs','ESRI','102769','ESRI','64','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','65','Colombia - Barranquilla - Atlantico','Colombia - Barranquilla - Atlantico',10.41666666666667,11.43333333333333,-75.35,-74.33333333333333,0); INSERT INTO "conversion" VALUES('ESRI','102770','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',10.92318308333333,'EPSG','9102','EPSG','8802','Longitude of natural origin',-74.83433133333332,'EPSG','9102','EPSG','8806','False easting',917264.406,'EPSG','9001','EPSG','8807','False northing',1699839.935,'EPSG','9001','EPSG','1039','Projection plane origin height',100.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102770_USAGE','conversion','ESRI','102770','ESRI','69','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102770_USAGE','conversion','ESRI','102770','ESRI','65','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102770','MAGNA_Barranquilla_Atlantico_1997',NULL,'EPSG','4400','EPSG','4686','ESRI','102770',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102770_USAGE','projected_crs','ESRI','102770','ESRI','69','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','70','Colombia - Bogota D.C. - Bogota D.C.','Colombia - Bogota D.C. - Bogota D.C.',4.166666666666667,5.183333333333334,-74.65,-73.63333333333334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102770_USAGE','projected_crs','ESRI','102770','ESRI','65','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','66','Colombia - Bogota D.C. - Bogota D.C.','Colombia - Bogota D.C. - Bogota D.C.',4.166666666666667,5.183333333333334,-74.65,-73.63333333333334,0); INSERT INTO "conversion" VALUES('ESRI','102771','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.680486111111112,'EPSG','9102','EPSG','8802','Longitude of natural origin',-74.14659166666668,'EPSG','9102','EPSG','8806','False easting',92334.879,'EPSG','9001','EPSG','8807','False northing',109320.965,'EPSG','9001','EPSG','1039','Projection plane origin height',2550.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102771_USAGE','conversion','ESRI','102771','ESRI','70','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102771_USAGE','conversion','ESRI','102771','ESRI','66','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102771','MAGNA_Bogota_DC_2005',NULL,'EPSG','4400','EPSG','4686','ESRI','102771',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102771_USAGE','projected_crs','ESRI','102771','ESRI','70','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','71','Colombia - Cartagena_Bolivar','Colombia - Cartagena_Bolivar',9.883333333333333,10.9,-76.01666666666667,-75.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102771_USAGE','projected_crs','ESRI','102771','ESRI','66','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','67','Colombia - Cartagena_Bolivar','Colombia - Cartagena_Bolivar',9.883333333333333,10.9,-76.01666666666667,-75.0,0); INSERT INTO "conversion" VALUES('ESRI','102772','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',10.3970475,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.51120694444444,'EPSG','9102','EPSG','8806','False easting',842981.41,'EPSG','9001','EPSG','8807','False northing',1641887.09,'EPSG','9001','EPSG','1039','Projection plane origin height',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102772_USAGE','conversion','ESRI','102772','ESRI','71','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102772_USAGE','conversion','ESRI','102772','ESRI','67','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102772','MAGNA_Cartagena_Bolivar_2005',NULL,'EPSG','4400','EPSG','4686','ESRI','102772',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102772_USAGE','projected_crs','ESRI','102772','ESRI','71','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','72','Colombia - Tunja - Boyaca','Colombia - Tunja - Boyaca',5.033333333333333,6.05,-73.86666666666666,-72.85,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102772_USAGE','projected_crs','ESRI','102772','ESRI','67','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','68','Colombia - Tunja - Boyaca','Colombia - Tunja - Boyaca',5.033333333333333,6.05,-73.86666666666666,-72.85,0); INSERT INTO "conversion" VALUES('ESRI','102773','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',5.534194738888889,'EPSG','9102','EPSG','8802','Longitude of natural origin',-73.3519389,'EPSG','9102','EPSG','8806','False easting',1080514.91,'EPSG','9001','EPSG','8807','False northing',1103772.028,'EPSG','9001','EPSG','1039','Projection plane origin height',2800.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102773_USAGE','conversion','ESRI','102773','ESRI','72','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102773_USAGE','conversion','ESRI','102773','ESRI','68','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102773','MAGNA_Tunja_Boyaca_1997',NULL,'EPSG','4400','EPSG','4686','ESRI','102773',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102773_USAGE','projected_crs','ESRI','102773','ESRI','72','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','73','Colombia - Manizales - Caldas','Colombia - Manizales - Caldas',4.566666666666666,5.583333333333333,-76.01666666666667,-75.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102773_USAGE','projected_crs','ESRI','102773','ESRI','68','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','69','Colombia - Manizales - Caldas','Colombia - Manizales - Caldas',4.566666666666666,5.583333333333333,-76.01666666666667,-75.0,0); INSERT INTO "conversion" VALUES('ESRI','102774','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',5.068153888888888,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.51109472222223,'EPSG','9102','EPSG','8806','False easting',1173727.04,'EPSG','9001','EPSG','8807','False northing',1052391.13,'EPSG','9001','EPSG','1039','Projection plane origin height',2100.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102774_USAGE','conversion','ESRI','102774','ESRI','73','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102774_USAGE','conversion','ESRI','102774','ESRI','69','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102774','MAGNA_Manizales_Caldas_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102774',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102774_USAGE','projected_crs','ESRI','102774','ESRI','73','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','74','Colombia - Florencia - Caqueta','Colombia - Florencia - Caqueta',1.116666666666667,2.133333333333333,-76.13333333333334,-75.11666666666666,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102774_USAGE','projected_crs','ESRI','102774','ESRI','69','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','70','Colombia - Florencia - Caqueta','Colombia - Florencia - Caqueta',1.116666666666667,2.133333333333333,-76.13333333333334,-75.11666666666666,0); INSERT INTO "conversion" VALUES('ESRI','102775','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',1.621012294444445,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.61911760277778,'EPSG','9102','EPSG','8806','False easting',1162300.348,'EPSG','9001','EPSG','8807','False northing',671068.716,'EPSG','9001','EPSG','1039','Projection plane origin height',300.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102775_USAGE','conversion','ESRI','102775','ESRI','74','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102775_USAGE','conversion','ESRI','102775','ESRI','70','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102775','MAGNA_Florencia_Caqueta_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102775',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102775_USAGE','projected_crs','ESRI','102775','ESRI','74','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','75','Colombia - Yopal - Casanare','Colombia - Yopal - Casanare',4.85,5.866666666666667,-72.93333333333334,-71.91666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102775_USAGE','projected_crs','ESRI','102775','ESRI','70','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','71','Colombia - Yopal - Casanare','Colombia - Yopal - Casanare',4.85,5.866666666666667,-72.93333333333334,-71.91666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102776','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',5.353927222222222,'EPSG','9102','EPSG','8802','Longitude of natural origin',-72.42004027777779,'EPSG','9102','EPSG','8806','False easting',851184.177,'EPSG','9001','EPSG','8807','False northing',1083954.137,'EPSG','9001','EPSG','1039','Projection plane origin height',300.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102776_USAGE','conversion','ESRI','102776','ESRI','75','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102776_USAGE','conversion','ESRI','102776','ESRI','71','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102776','MAGNA_Yopal_Casanare_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102776',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102776_USAGE','projected_crs','ESRI','102776','ESRI','75','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','76','Colombia - Popayan - Cauca','Colombia - Popayan - Cauca',2.95,2.966666666666667,-77.11666666666666,-76.1,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102776_USAGE','projected_crs','ESRI','102776','ESRI','71','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','72','Colombia - Popayan - Cauca','Colombia - Popayan - Cauca',2.95,2.966666666666667,-77.11666666666666,-76.1,0); INSERT INTO "conversion" VALUES('ESRI','102777','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',2.456159883333334,'EPSG','9102','EPSG','8802','Longitude of natural origin',-76.6060916361111,'EPSG','9102','EPSG','8806','False easting',1052430.525,'EPSG','9001','EPSG','8807','False northing',763366.548,'EPSG','9001','EPSG','1039','Projection plane origin height',1740.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102777_USAGE','conversion','ESRI','102777','ESRI','76','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102777_USAGE','conversion','ESRI','102777','ESRI','72','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102777','MAGNA_Popayan_Cauca_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102777',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102777_USAGE','projected_crs','ESRI','102777','ESRI','76','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','77','Colombia - Valledupar - Cesar','Colombia - Valledupar - Cesar',9.933333333333334,10.95,-73.58333333333333,-73.56666666666666,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102777_USAGE','projected_crs','ESRI','102777','ESRI','72','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','73','Colombia - Valledupar - Cesar','Colombia - Valledupar - Cesar',9.933333333333334,10.95,-73.58333333333333,-73.56666666666666,0); INSERT INTO "conversion" VALUES('ESRI','102778','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',10.44726111111111,'EPSG','9102','EPSG','8802','Longitude of natural origin',-73.2465713888889,'EPSG','9102','EPSG','8806','False easting',1090979.66,'EPSG','9001','EPSG','8807','False northing',1647208.93,'EPSG','9001','EPSG','1039','Projection plane origin height',200.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102778_USAGE','conversion','ESRI','102778','ESRI','77','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102778_USAGE','conversion','ESRI','102778','ESRI','73','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102778','MAGNA_Valledupar_Cesar_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102778',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102778_USAGE','projected_crs','ESRI','102778','ESRI','77','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','78','Colombia - Quibdo - Choco','Colombia - Quibdo - Choco',5.183333333333334,6.2,-77.16666666666667,-76.15,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102778_USAGE','projected_crs','ESRI','102778','ESRI','73','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','74','Colombia - Quibdo - Choco','Colombia - Quibdo - Choco',5.183333333333334,6.2,-77.16666666666667,-76.15,0); INSERT INTO "conversion" VALUES('ESRI','102779','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',5.694247661111111,'EPSG','9102','EPSG','8802','Longitude of natural origin',-76.65075385833335,'EPSG','9102','EPSG','8806','False easting',1047273.617,'EPSG','9001','EPSG','8807','False northing',1121443.09,'EPSG','9001','EPSG','1039','Projection plane origin height',44.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102779_USAGE','conversion','ESRI','102779','ESRI','78','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102779_USAGE','conversion','ESRI','102779','ESRI','74','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102779','MAGNA_Quibdo_Choco_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102779',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102779_USAGE','projected_crs','ESRI','102779','ESRI','78','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','79','Colombia - Monteria - Cordoba','Colombia - Monteria - Cordoba',8.266666666666667,9.283333333333333,-76.38333333333334,-75.36666666666666,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102779_USAGE','projected_crs','ESRI','102779','ESRI','74','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','75','Colombia - Monteria - Cordoba','Colombia - Monteria - Cordoba',8.266666666666667,9.283333333333333,-76.38333333333334,-75.36666666666666,0); INSERT INTO "conversion" VALUES('ESRI','102780','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',8.773085755555556,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.87955333055555,'EPSG','9102','EPSG','8806','False easting',1131814.934,'EPSG','9001','EPSG','8807','False northing',1462131.119,'EPSG','9001','EPSG','1039','Projection plane origin height',15.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102780_USAGE','conversion','ESRI','102780','ESRI','79','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102780_USAGE','conversion','ESRI','102780','ESRI','75','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102780','MAGNA_Monteria_Cordoba_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102780',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102780_USAGE','projected_crs','ESRI','102780','ESRI','79','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','80','Colombia - Inirida - Guainia','Colombia - Inirida - Guainia',3.333333333333333,4.35,-68.41666666666667,-67.4,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102780_USAGE','projected_crs','ESRI','102780','ESRI','75','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','76','Colombia - Inirida - Guainia','Colombia - Inirida - Guainia',3.333333333333333,4.35,-68.41666666666667,-67.4,0); INSERT INTO "conversion" VALUES('ESRI','102781','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',3.845438183333334,'EPSG','9102','EPSG','8802','Longitude of natural origin',-67.90523208888889,'EPSG','9102','EPSG','8806','False easting',1019177.687,'EPSG','9001','EPSG','8807','False northing',491791.326,'EPSG','9001','EPSG','1039','Projection plane origin height',96.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102781_USAGE','conversion','ESRI','102781','ESRI','80','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102781_USAGE','conversion','ESRI','102781','ESRI','76','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102781','MAGNA_Inirida_Guainia_2008',NULL,'EPSG','4400','EPSG','4686','ESRI','102781',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102781_USAGE','projected_crs','ESRI','102781','ESRI','80','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','81','Colombia - San Jose del Guaviare - Guaviare','Colombia - San Jose del Guaviare - Guaviare',2.05,3.066666666666667,-73.15,-72.13333333333334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102781_USAGE','projected_crs','ESRI','102781','ESRI','76','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','77','Colombia - San Jose del Guaviare - Guaviare','Colombia - San Jose del Guaviare - Guaviare',2.05,3.066666666666667,-73.15,-72.13333333333334,0); INSERT INTO "conversion" VALUES('ESRI','102782','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',2.564078941666666,'EPSG','9102','EPSG','8802','Longitude of natural origin',-72.640033325,'EPSG','9102','EPSG','8806','False easting',1159876.62,'EPSG','9001','EPSG','8807','False northing',775380.342,'EPSG','9001','EPSG','1039','Projection plane origin height',185.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102782_USAGE','conversion','ESRI','102782','ESRI','81','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102782_USAGE','conversion','ESRI','102782','ESRI','77','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102782','MAGNA_San_Jose_del_Guaviare_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102782',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102782_USAGE','projected_crs','ESRI','102782','ESRI','81','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','82','Colombia - Neiva - Huila','Colombia - Neiva - Huila',2.433333333333334,3.45,-75.8,-74.78333333333333,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102782_USAGE','projected_crs','ESRI','102782','ESRI','77','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','78','Colombia - Neiva - Huila','Colombia - Neiva - Huila',2.433333333333334,3.45,-75.8,-74.78333333333333,0); INSERT INTO "conversion" VALUES('ESRI','102783','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',2.942415055555556,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.29643672222223,'EPSG','9102','EPSG','8806','False easting',864476.923,'EPSG','9001','EPSG','8807','False northing',817199.827,'EPSG','9001','EPSG','1039','Projection plane origin height',430.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102783_USAGE','conversion','ESRI','102783','ESRI','82','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102783_USAGE','conversion','ESRI','102783','ESRI','78','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102783','MAGNA_Neiva_Huila_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102783',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102783_USAGE','projected_crs','ESRI','102783','ESRI','82','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','83','Colombia - Riohacha - La Guajira','Colombia - Riohacha - La Guajira',11.03333333333333,12.05,-73.41666666666667,-72.4,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102783_USAGE','projected_crs','ESRI','102783','ESRI','78','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','79','Colombia - Riohacha - La Guajira','Colombia - Riohacha - La Guajira',11.03333333333333,12.05,-73.41666666666667,-72.4,0); INSERT INTO "conversion" VALUES('ESRI','102784','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',11.53691332777778,'EPSG','9102','EPSG','8802','Longitude of natural origin',-72.90276886944444,'EPSG','9102','EPSG','8806','False easting',1128154.73,'EPSG','9001','EPSG','8807','False northing',1767887.914,'EPSG','9001','EPSG','1039','Projection plane origin height',6.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102784_USAGE','conversion','ESRI','102784','ESRI','83','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102784_USAGE','conversion','ESRI','102784','ESRI','79','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102784','MAGNA_Riohacha_La_Guajira_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102784',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102784_USAGE','projected_crs','ESRI','102784','ESRI','83','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','84','Colombia - Santa Marta - Magdalena','Colombia - Santa Marta - Magdalena',10.71666666666667,11.73333333333333,-74.73333333333333,-73.71666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102784_USAGE','projected_crs','ESRI','102784','ESRI','79','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','80','Colombia - Santa Marta - Magdalena','Colombia - Santa Marta - Magdalena',10.71666666666667,11.73333333333333,-74.73333333333333,-73.71666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102785','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',11.21964305555556,'EPSG','9102','EPSG','8802','Longitude of natural origin',-74.22500527777778,'EPSG','9102','EPSG','8806','False easting',983892.409,'EPSG','9001','EPSG','8807','False northing',1732533.518,'EPSG','9001','EPSG','1039','Projection plane origin height',29.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102785_USAGE','conversion','ESRI','102785','ESRI','84','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102785_USAGE','conversion','ESRI','102785','ESRI','80','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102785','MAGNA_Santa_Marta_Magdalena_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102785',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102785_USAGE','projected_crs','ESRI','102785','ESRI','84','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','85','Colombia - Villavicencio - Meta','Colombia - Villavicencio - Meta',3.65,4.666666666666667,-74.13333333333334,-73.11666666666666,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102785_USAGE','projected_crs','ESRI','102785','ESRI','80','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','81','Colombia - Villavicencio - Meta','Colombia - Villavicencio - Meta',3.65,4.666666666666667,-74.13333333333334,-73.11666666666666,0); INSERT INTO "conversion" VALUES('ESRI','102786','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.1553751,'EPSG','9102','EPSG','8802','Longitude of natural origin',-73.62448598611111,'EPSG','9102','EPSG','8806','False easting',1050678.757,'EPSG','9001','EPSG','8807','False northing',950952.124,'EPSG','9001','EPSG','1039','Projection plane origin height',427.19,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102786_USAGE','conversion','ESRI','102786','ESRI','85','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102786_USAGE','conversion','ESRI','102786','ESRI','81','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102786','MAGNA_Villavicencio_Meta_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102786',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102786_USAGE','projected_crs','ESRI','102786','ESRI','85','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','86','Colombia - Pasto - Narino','Colombia - Pasto - Narino',0.7,1.716666666666667,-77.76666666666667,-76.75,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102786_USAGE','projected_crs','ESRI','102786','ESRI','81','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','82','Colombia - Pasto - Narino','Colombia - Pasto - Narino',0.7,1.716666666666667,-77.76666666666667,-76.75,0); INSERT INTO "conversion" VALUES('ESRI','102787','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',1.200989513888889,'EPSG','9102','EPSG','8802','Longitude of natural origin',-77.25312563333334,'EPSG','9102','EPSG','8806','False easting',980469.695,'EPSG','9001','EPSG','8807','False northing',624555.332,'EPSG','9001','EPSG','1039','Projection plane origin height',2530.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102787_USAGE','conversion','ESRI','102787','ESRI','86','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102787_USAGE','conversion','ESRI','102787','ESRI','82','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102787','MAGNA_Pasto_Narino_2008',NULL,'EPSG','4400','EPSG','4686','ESRI','102787',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102787_USAGE','projected_crs','ESRI','102787','ESRI','86','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','87','Colombia - Cucuta - Norte de Santander','Colombia - Cucuta - Norte de Santander',7.383333333333334,8.4,-73.01666666666667,-72.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102787_USAGE','projected_crs','ESRI','102787','ESRI','82','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','83','Colombia - Cucuta - Norte de Santander','Colombia - Cucuta - Norte de Santander',7.383333333333334,8.4,-73.01666666666667,-72.0,0); INSERT INTO "conversion" VALUES('ESRI','102788','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',7.888936736111111,'EPSG','9102','EPSG','8802','Longitude of natural origin',-72.50287095,'EPSG','9102','EPSG','8806','False easting',842805.406,'EPSG','9001','EPSG','8807','False northing',1364404.57,'EPSG','9001','EPSG','1039','Projection plane origin height',308.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102788_USAGE','conversion','ESRI','102788','ESRI','87','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102788_USAGE','conversion','ESRI','102788','ESRI','83','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102788','MAGNA_Cucuta_Norte_de_Santander_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102788',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102788_USAGE','projected_crs','ESRI','102788','ESRI','87','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','88','Colombia - Mocoa - Putumayo','Colombia - Mocoa - Putumayo',0.6333333333333333,1.65,-77.16666666666667,-76.15,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102788_USAGE','projected_crs','ESRI','102788','ESRI','83','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','84','Colombia - Mocoa - Putumayo','Colombia - Mocoa - Putumayo',0.6333333333333333,1.65,-77.16666666666667,-76.15,0); INSERT INTO "conversion" VALUES('ESRI','102789','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',1.140023358333333,'EPSG','9102','EPSG','8802','Longitude of natural origin',-76.65102121944444,'EPSG','9102','EPSG','8806','False easting',1047467.388,'EPSG','9001','EPSG','8807','False northing',617828.474,'EPSG','9001','EPSG','1039','Projection plane origin height',655.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102789_USAGE','conversion','ESRI','102789','ESRI','88','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102789_USAGE','conversion','ESRI','102789','ESRI','84','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102789','MAGNA_Mocoa_Putumayo_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102789',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102789_USAGE','projected_crs','ESRI','102789','ESRI','88','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','89','Colombia - Armenia - Quindio','Colombia - Armenia - Quindio',4.016666666666667,5.033333333333333,-76.18333333333334,-75.16666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102789_USAGE','projected_crs','ESRI','102789','ESRI','84','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','85','Colombia - Armenia - Quindio','Colombia - Armenia - Quindio',4.016666666666667,5.033333333333333,-76.18333333333334,-75.16666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102790','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.532325,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.67348916666667,'EPSG','9102','EPSG','8806','False easting',1155824.666,'EPSG','9001','EPSG','8807','False northing',993087.465,'EPSG','9001','EPSG','1039','Projection plane origin height',1470.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102790_USAGE','conversion','ESRI','102790','ESRI','89','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102790_USAGE','conversion','ESRI','102790','ESRI','85','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102790','MAGNA_Armenia_Quindio_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102790',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102790_USAGE','projected_crs','ESRI','102790','ESRI','89','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','90','Colombia - Pereira - Risaralda','Colombia - Pereira - Risaralda',4.3,5.316666666666666,-76.2,-75.18333333333334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102790_USAGE','projected_crs','ESRI','102790','ESRI','85','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','86','Colombia - Pereira - Risaralda','Colombia - Pereira - Risaralda',4.3,5.316666666666666,-76.2,-75.18333333333334,0); INSERT INTO "conversion" VALUES('ESRI','102791','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.813593611111111,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.69395138888889,'EPSG','9102','EPSG','8806','False easting',1153492.012,'EPSG','9001','EPSG','8807','False northing',1024195.255,'EPSG','9001','EPSG','1039','Projection plane origin height',1500.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102791_USAGE','conversion','ESRI','102791','ESRI','90','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102791_USAGE','conversion','ESRI','102791','ESRI','86','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102791','MAGNA_Pereira_Risaralda_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102791',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102791_USAGE','projected_crs','ESRI','102791','ESRI','90','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','91','Colombia - San_Andres - San_Andres','Colombia - San_Andres - San_Andres',12.01666666666667,13.03333333333333,-82.23333333333333,-81.21666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102791_USAGE','projected_crs','ESRI','102791','ESRI','86','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','87','Colombia - San_Andres - San_Andres','Colombia - San_Andres - San_Andres',12.01666666666667,13.03333333333333,-82.23333333333333,-81.21666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102792','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',12.523794325,'EPSG','9102','EPSG','8802','Longitude of natural origin',-81.72937595,'EPSG','9102','EPSG','8806','False easting',820439.298,'EPSG','9001','EPSG','8807','False northing',1877357.828,'EPSG','9001','EPSG','1039','Projection plane origin height',6.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102792_USAGE','conversion','ESRI','102792','ESRI','91','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102792_USAGE','conversion','ESRI','102792','ESRI','87','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102792','MAGNA_San_Andres_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102792',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102792_USAGE','projected_crs','ESRI','102792','ESRI','91','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','92','Colombia - Bucaramanga - Santander','Colombia - Bucaramanga - Santander',6.566666666666666,7.583333333333333,-73.7,-72.68333333333334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102792_USAGE','projected_crs','ESRI','102792','ESRI','87','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','88','Colombia - Bucaramanga - Santander','Colombia - Bucaramanga - Santander',6.566666666666666,7.583333333333333,-73.7,-72.68333333333334,0); INSERT INTO "conversion" VALUES('ESRI','102793','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',7.078887141666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',-73.19734322222223,'EPSG','9102','EPSG','8806','False easting',1097241.305,'EPSG','9001','EPSG','8807','False northing',1274642.278,'EPSG','9001','EPSG','1039','Projection plane origin height',931.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102793_USAGE','conversion','ESRI','102793','ESRI','92','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102793_USAGE','conversion','ESRI','102793','ESRI','88','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102793','MAGNA_Bucaramanga_Santander_2008',NULL,'EPSG','4400','EPSG','4686','ESRI','102793',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102793_USAGE','projected_crs','ESRI','102793','ESRI','92','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','93','Colombia - Sucre - Sucre','Colombia - Sucre - Sucre',8.3,9.316666666666666,-75.23333333333333,-74.21666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102793_USAGE','projected_crs','ESRI','102793','ESRI','88','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','89','Colombia - Sucre - Sucre','Colombia - Sucre - Sucre',8.3,9.316666666666666,-75.23333333333333,-74.21666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102794','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',8.810550366666668,'EPSG','9102','EPSG','8802','Longitude of natural origin',-74.722466825,'EPSG','9102','EPSG','8806','False easting',929043.607,'EPSG','9001','EPSG','8807','False northing',1466125.658,'EPSG','9001','EPSG','1039','Projection plane origin height',20.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102794_USAGE','conversion','ESRI','102794','ESRI','93','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102794_USAGE','conversion','ESRI','102794','ESRI','89','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102794','MAGNA_Sucre_2006',NULL,'EPSG','4400','EPSG','4686','ESRI','102794',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102794_USAGE','projected_crs','ESRI','102794','ESRI','93','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','94','Colombia - Ibague - Tolima','Colombia - Ibague - Tolima',3.916666666666667,4.933333333333334,-75.68333333333334,-74.66666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102794_USAGE','projected_crs','ESRI','102794','ESRI','89','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','90','Colombia - Ibague - Tolima','Colombia - Ibague - Tolima',3.916666666666667,4.933333333333334,-75.68333333333334,-74.66666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102795','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',4.419412827777778,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.17992593333334,'EPSG','9102','EPSG','8806','False easting',877634.33,'EPSG','9001','EPSG','8807','False northing',980541.348,'EPSG','9001','EPSG','1039','Projection plane origin height',1100.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102795_USAGE','conversion','ESRI','102795','ESRI','94','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102795_USAGE','conversion','ESRI','102795','ESRI','90','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102795','MAGNA_Ibague_Tolima_2007',NULL,'EPSG','4400','EPSG','4686','ESRI','102795',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102795_USAGE','projected_crs','ESRI','102795','ESRI','94','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','95','Colombia - Cali - Valle del Cauca','Colombia - Cali - Valle del Cauca',2.933333333333334,3.95,-77.03333333333333,-76.01666666666667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102795_USAGE','projected_crs','ESRI','102795','ESRI','90','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','91','Colombia - Cali - Valle del Cauca','Colombia - Cali - Valle del Cauca',2.933333333333334,3.95,-77.03333333333333,-76.01666666666667,0); INSERT INTO "conversion" VALUES('ESRI','102796','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',3.441883333333334,'EPSG','9102','EPSG','8802','Longitude of natural origin',-76.5205625,'EPSG','9102','EPSG','8806','False easting',1061900.18,'EPSG','9001','EPSG','8807','False northing',872364.63,'EPSG','9001','EPSG','1039','Projection plane origin height',1000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102796_USAGE','conversion','ESRI','102796','ESRI','95','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102796_USAGE','conversion','ESRI','102796','ESRI','91','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102796','MAGNA_Cali_Valle_del_Cauca_2009',NULL,'EPSG','4400','EPSG','4686','ESRI','102796',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102796_USAGE','projected_crs','ESRI','102796','ESRI','95','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','96','Colombia - Mitu - Vaupes','Colombia - Mitu - Vaupes',0.7333333333333333,1.75,-70.75,-69.73333333333333,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102796_USAGE','projected_crs','ESRI','102796','ESRI','91','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','92','Colombia - Mitu - Vaupes','Colombia - Mitu - Vaupes',0.7333333333333333,1.75,-70.75,-69.73333333333333,0); INSERT INTO "conversion" VALUES('ESRI','102797','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',1.249969366666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',-70.23546165555555,'EPSG','9102','EPSG','8806','False easting',1093717.398,'EPSG','9001','EPSG','8807','False northing',629997.236,'EPSG','9001','EPSG','1039','Projection plane origin height',170.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102797_USAGE','conversion','ESRI','102797','ESRI','96','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102797_USAGE','conversion','ESRI','102797','ESRI','92','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102797','MAGNA_Mitu_Vaupes_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102797',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102797_USAGE','projected_crs','ESRI','102797','ESRI','96','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','97','Colombia - Puerto - Carreno - Vichada','Colombia - Puerto - Carreno - Vichada',5.666666666666667,6.683333333333334,-68.01666666666667,-67.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102797_USAGE','projected_crs','ESRI','102797','ESRI','92','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','93','Colombia - Puerto - Carreno - Vichada','Colombia - Puerto - Carreno - Vichada',5.666666666666667,6.683333333333334,-68.01666666666667,-67.0,0); INSERT INTO "conversion" VALUES('ESRI','102798','unnamed',NULL,'EPSG','1052','Colombia Urban','EPSG','8801','Latitude of natural origin',6.18072141388889,'EPSG','9102','EPSG','8802','Longitude of natural origin',-67.50075024722223,'EPSG','9102','EPSG','8806','False easting',1063834.703,'EPSG','9001','EPSG','8807','False northing',1175257.481,'EPSG','9001','EPSG','1039','Projection plane origin height',51.58,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102798_USAGE','conversion','ESRI','102798','ESRI','97','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102798_USAGE','conversion','ESRI','102798','ESRI','93','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102798','MAGNA_Puerto_Carreno_Vichada_2011',NULL,'EPSG','4400','EPSG','4686','ESRI','102798',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102798_USAGE','projected_crs','ESRI','102798','ESRI','97','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','98','UK - Highways England - A1','UK - Highways England - A1',50.1068,50.4249,-5.5482,-5.3991,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102798_USAGE','projected_crs','ESRI','102798','ESRI','93','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','94','UK - Highways England - A1','UK - Highways England - A1',50.1068,50.4249,-5.5482,-5.3991,0); INSERT INTO "conversion" VALUES('ESRI','102799','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99926,'EPSG','9201','EPSG','8806','False easting',261910.5587,'EPSG','9001','EPSG','8807','False northing',70975.76209,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102799_USAGE','conversion','ESRI','102799','ESRI','98','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102799_USAGE','conversion','ESRI','102799','ESRI','94','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102799','OSGB36_Highways_England_A1H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102799',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102799_USAGE','projected_crs','ESRI','102799','ESRI','98','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','99','UK - Highways England - A2','UK - Highways England - A2',50.1106,50.4286,-5.4217,-5.2734,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102799_USAGE','projected_crs','ESRI','102799','ESRI','94','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','95','UK - Highways England - A2','UK - Highways England - A2',50.1106,50.4286,-5.4217,-5.2734,0); INSERT INTO "conversion" VALUES('ESRI','102800','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999314,'EPSG','9201','EPSG','8806','False easting',252927.2844,'EPSG','9001','EPSG','8807','False northing',70979.59363,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102800_USAGE','conversion','ESRI','102800','ESRI','99','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102800_USAGE','conversion','ESRI','102800','ESRI','95','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102800','OSGB36_Highways_England_A2H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102800',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102800_USAGE','projected_crs','ESRI','102800','ESRI','99','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','100','UK - Highways England - A3','UK - Highways England - A3',50.1142,50.4321,-5.2952,-5.1477,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102800_USAGE','projected_crs','ESRI','102800','ESRI','95','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','96','UK - Highways England - A3','UK - Highways England - A3',50.1142,50.4321,-5.2952,-5.1477,0); INSERT INTO "conversion" VALUES('ESRI','102801','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999365,'EPSG','9201','EPSG','8806','False easting',243942.3084,'EPSG','9001','EPSG','8807','False northing',70983.21269,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102801_USAGE','conversion','ESRI','102801','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102801_USAGE','conversion','ESRI','102801','ESRI','96','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102801','OSGB36_Highways_England_A3H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102801',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102801_USAGE','projected_crs','ESRI','102801','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102801_USAGE','projected_crs','ESRI','102801','ESRI','96','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102802','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99939,'EPSG','9201','EPSG','8806','False easting',243948.4072,'EPSG','9001','EPSG','8807','False northing',70984.98734,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102802_USAGE','conversion','ESRI','102802','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102802_USAGE','conversion','ESRI','102802','ESRI','96','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102802','OSGB36_Highways_England_A3H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102802',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102802_USAGE','projected_crs','ESRI','102802','ESRI','100','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','101','UK - Highways England - A4','UK - Highways England - A4',50.2075,50.5253,-5.1747,-5.0277,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102802_USAGE','projected_crs','ESRI','102802','ESRI','96','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','97','UK - Highways England - A4','UK - Highways England - A4',50.2075,50.5253,-5.1747,-5.0277,0); INSERT INTO "conversion" VALUES('ESRI','102803','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999415,'EPSG','9201','EPSG','8806','False easting',234956.1813,'EPSG','9001','EPSG','8807','False northing',70986.76115,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102803_USAGE','conversion','ESRI','102803','ESRI','101','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102803_USAGE','conversion','ESRI','102803','ESRI','97','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102803','OSGB36_Highways_England_A4H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102803',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102803_USAGE','projected_crs','ESRI','102803','ESRI','101','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','102','UK - Highways England - A5','UK - Highways England - A5',50.2109,50.5289,-5.0479,-4.8877,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102803_USAGE','projected_crs','ESRI','102803','ESRI','97','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','98','UK - Highways England - A5','UK - Highways England - A5',50.2109,50.5289,-5.0479,-4.8877,0); INSERT INTO "conversion" VALUES('ESRI','102804','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999465,'EPSG','9201','EPSG','8806','False easting',225969.1556,'EPSG','9001','EPSG','8807','False northing',70990.30995,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102804_USAGE','conversion','ESRI','102804','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102804_USAGE','conversion','ESRI','102804','ESRI','98','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102804','OSGB36_Highways_England_A5H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102804',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102804_USAGE','projected_crs','ESRI','102804','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102804_USAGE','projected_crs','ESRI','102804','ESRI','98','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102805','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99949,'EPSG','9201','EPSG','8806','False easting',225974.8051,'EPSG','9001','EPSG','8807','False northing',70992.08478,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102805_USAGE','conversion','ESRI','102805','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102805_USAGE','conversion','ESRI','102805','ESRI','98','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102805','OSGB36_Highways_England_A5H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102805',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102805_USAGE','projected_crs','ESRI','102805','ESRI','102','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','103','UK - Highways England - A6','UK - Highways England - A6',50.2144,50.5323,-4.907,-4.7477,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102805_USAGE','projected_crs','ESRI','102805','ESRI','98','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','99','UK - Highways England - A6','UK - Highways England - A6',50.2144,50.5323,-4.907,-4.7477,0); INSERT INTO "conversion" VALUES('ESRI','102806','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999516,'EPSG','9201','EPSG','8806','False easting',215981.5338,'EPSG','9001','EPSG','8807','False northing',70993.93011,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102806_USAGE','conversion','ESRI','102806','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102806_USAGE','conversion','ESRI','102806','ESRI','99','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102806','OSGB36_Highways_England_A6H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102806',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102806_USAGE','projected_crs','ESRI','102806','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102806_USAGE','projected_crs','ESRI','102806','ESRI','99','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102807','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999541,'EPSG','9201','EPSG','8806','False easting',215986.9336,'EPSG','9001','EPSG','8807','False northing',70995.70502,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102807_USAGE','conversion','ESRI','102807','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102807_USAGE','conversion','ESRI','102807','ESRI','99','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102807','OSGB36_Highways_England_A6H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102807',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102807_USAGE','projected_crs','ESRI','102807','ESRI','103','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','104','UK - Highways England - A7','UK - Highways England - A7',50.3975,50.5356,-4.766,-4.6175,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102807_USAGE','projected_crs','ESRI','102807','ESRI','99','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','100','UK - Highways England - A7','UK - Highways England - A7',50.3975,50.5356,-4.766,-4.6175,0); INSERT INTO "conversion" VALUES('ESRI','102808','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999564,'EPSG','9201','EPSG','8806','False easting',205992.2754,'EPSG','9001','EPSG','8807','False northing',70997.33764,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102808_USAGE','conversion','ESRI','102808','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102808_USAGE','conversion','ESRI','102808','ESRI','100','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102808','OSGB36_Highways_England_A7H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102808',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102808_USAGE','projected_crs','ESRI','102808','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102808_USAGE','projected_crs','ESRI','102808','ESRI','100','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102809','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999589,'EPSG','9201','EPSG','8806','False easting',205997.4254,'EPSG','9001','EPSG','8807','False northing',70999.11264,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102809_USAGE','conversion','ESRI','102809','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102809_USAGE','conversion','ESRI','102809','ESRI','100','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102809','OSGB36_Highways_England_A7H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102809',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102809_USAGE','projected_crs','ESRI','102809','ESRI','104','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','105','UK - Highways England - A8','UK - Highways England - A8',50.221,50.7996,-4.6397,-4.4536,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102809_USAGE','projected_crs','ESRI','102809','ESRI','100','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','101','UK - Highways England - A8','UK - Highways England - A8',50.221,50.7996,-4.6397,-4.4536,0); INSERT INTO "conversion" VALUES('ESRI','102810','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999613,'EPSG','9201','EPSG','8806','False easting',196002.254,'EPSG','9001','EPSG','8807','False northing',71000.81651,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102810_USAGE','conversion','ESRI','102810','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102810_USAGE','conversion','ESRI','102810','ESRI','101','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102810','OSGB36_Highways_England_A8H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102810',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102810_USAGE','projected_crs','ESRI','102810','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102810_USAGE','projected_crs','ESRI','102810','ESRI','101','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102811','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999638,'EPSG','9201','EPSG','8806','False easting',196007.1543,'EPSG','9001','EPSG','8807','False northing',71002.5916,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102811_USAGE','conversion','ESRI','102811','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102811_USAGE','conversion','ESRI','102811','ESRI','101','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102811','OSGB36_Highways_England_A8H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102811',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102811_USAGE','projected_crs','ESRI','102811','ESRI','105','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','106','UK - Highways England - A9','UK - Highways England - A9',50.2244,50.8031,-4.4837,-4.2855,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102811_USAGE','projected_crs','ESRI','102811','ESRI','101','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','102','UK - Highways England - A9','UK - Highways England - A9',50.2244,50.8031,-4.4837,-4.2855,0); INSERT INTO "conversion" VALUES('ESRI','102812','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999662,'EPSG','9201','EPSG','8806','False easting',185011.1931,'EPSG','9001','EPSG','8807','False northing',71004.29572,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102812_USAGE','conversion','ESRI','102812','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102812_USAGE','conversion','ESRI','102812','ESRI','102','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102812','OSGB36_Highways_England_A9H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102812',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102812_USAGE','projected_crs','ESRI','102812','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102812_USAGE','projected_crs','ESRI','102812','ESRI','102','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102813','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999687,'EPSG','9201','EPSG','8806','False easting',185015.8185,'EPSG','9001','EPSG','8807','False northing',71006.07089,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102813_USAGE','conversion','ESRI','102813','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102813_USAGE','conversion','ESRI','102813','ESRI','102','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102813','OSGB36_Highways_England_A9H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102813',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102813_USAGE','projected_crs','ESRI','102813','ESRI','106','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','107','UK - Highways England - A10','UK - Highways England - A10',50.2278,50.8069,-4.3136,-4.0893,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102813_USAGE','projected_crs','ESRI','102813','ESRI','102','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','103','UK - Highways England - A10','UK - Highways England - A10',50.2278,50.8069,-4.3136,-4.0893,0); INSERT INTO "conversion" VALUES('ESRI','102814','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999713,'EPSG','9201','EPSG','8806','False easting',173019.2914,'EPSG','9001','EPSG','8807','False northing',71007.91729,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102814_USAGE','conversion','ESRI','102814','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102814_USAGE','conversion','ESRI','102814','ESRI','103','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102814','OSGB36_Highways_England_A10H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102814',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102814_USAGE','projected_crs','ESRI','102814','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102814_USAGE','projected_crs','ESRI','102814','ESRI','103','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102815','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999738,'EPSG','9201','EPSG','8806','False easting',173023.6171,'EPSG','9001','EPSG','8807','False northing',71009.69256,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102815_USAGE','conversion','ESRI','102815','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102815_USAGE','conversion','ESRI','102815','ESRI','103','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102815','OSGB36_Highways_England_A10H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102815',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102815_USAGE','projected_crs','ESRI','102815','ESRI','107','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','108','UK - Highways England - A11','UK - Highways England - A11',50.2315,50.8105,-4.115,-3.8791,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102815_USAGE','projected_crs','ESRI','102815','ESRI','103','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','104','UK - Highways England - A11','UK - Highways England - A11',50.2315,50.8105,-4.115,-3.8791,0); INSERT INTO "conversion" VALUES('ESRI','102816','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999767,'EPSG','9201','EPSG','8806','False easting',159026.3186,'EPSG','9001','EPSG','8807','False northing',71011.75231,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102816_USAGE','conversion','ESRI','102816','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102816_USAGE','conversion','ESRI','102816','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102816','OSGB36_Highways_England_A11H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102816',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102816_USAGE','projected_crs','ESRI','102816','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102816_USAGE','projected_crs','ESRI','102816','ESRI','104','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102817','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999792,'EPSG','9201','EPSG','8806','False easting',159030.2944,'EPSG','9001','EPSG','8807','False northing',71013.52767,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102817_USAGE','conversion','ESRI','102817','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102817_USAGE','conversion','ESRI','102817','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102817','OSGB36_Highways_England_A11H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102817',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102817_USAGE','projected_crs','ESRI','102817','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102817_USAGE','projected_crs','ESRI','102817','ESRI','104','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102818','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999817,'EPSG','9201','EPSG','8806','False easting',159034.2704,'EPSG','9001','EPSG','8807','False northing',71015.30312,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102818_USAGE','conversion','ESRI','102818','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102818_USAGE','conversion','ESRI','102818','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102818','OSGB36_Highways_England_A11H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102818',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102818_USAGE','projected_crs','ESRI','102818','ESRI','108','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','109','UK - Highways England - A12','UK - Highways England - A12',50.2351,50.814,-3.9022,-3.6549,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102818_USAGE','projected_crs','ESRI','102818','ESRI','104','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','105','UK - Highways England - A12','UK - Highways England - A12',50.2351,50.814,-3.9022,-3.6549,0); INSERT INTO "conversion" VALUES('ESRI','102819','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999817,'EPSG','9201','EPSG','8806','False easting',144031.0383,'EPSG','9001','EPSG','8807','False northing',71015.30362,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102819_USAGE','conversion','ESRI','102819','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102819_USAGE','conversion','ESRI','102819','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102819','OSGB36_Highways_England_A12H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102819',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102819_USAGE','projected_crs','ESRI','102819','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102819_USAGE','projected_crs','ESRI','102819','ESRI','105','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102820','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999842,'EPSG','9201','EPSG','8806','False easting',144034.6392,'EPSG','9001','EPSG','8807','False northing',71017.07907,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102820_USAGE','conversion','ESRI','102820','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102820_USAGE','conversion','ESRI','102820','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102820','OSGB36_Highways_England_A12H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102820',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102820_USAGE','projected_crs','ESRI','102820','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102820_USAGE','projected_crs','ESRI','102820','ESRI','105','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102821','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999867,'EPSG','9201','EPSG','8806','False easting',144038.2403,'EPSG','9001','EPSG','8807','False northing',71018.8546,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102821_USAGE','conversion','ESRI','102821','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102821_USAGE','conversion','ESRI','102821','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102821','OSGB36_Highways_England_A12H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102821',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102821_USAGE','projected_crs','ESRI','102821','ESRI','109','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','110','UK - Highways England - A13','UK - Highways England - A13',50.4183,50.8981,-3.6781,-3.4219,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102821_USAGE','projected_crs','ESRI','102821','ESRI','105','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','106','UK - Highways England - A13','UK - Highways England - A13',50.4183,50.8981,-3.6781,-3.4219,0); INSERT INTO "conversion" VALUES('ESRI','102822','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999865,'EPSG','9201','EPSG','8806','False easting',128033.7365,'EPSG','9001','EPSG','8807','False northing',71018.71321,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102822_USAGE','conversion','ESRI','102822','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102822_USAGE','conversion','ESRI','102822','ESRI','106','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102822','OSGB36_Highways_England_A13H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102822',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102822_USAGE','projected_crs','ESRI','102822','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102822_USAGE','projected_crs','ESRI','102822','ESRI','106','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102823','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99989,'EPSG','9201','EPSG','8806','False easting',128036.9375,'EPSG','9001','EPSG','8807','False northing',71020.48874,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102823_USAGE','conversion','ESRI','102823','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102823_USAGE','conversion','ESRI','102823','ESRI','106','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102823','OSGB36_Highways_England_A13H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102823',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102823_USAGE','projected_crs','ESRI','102823','ESRI','110','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','111','UK - Highways England - A14','UK - Highways England - A14',50.585,51.1984,-4.4468,-3.1023,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102823_USAGE','projected_crs','ESRI','102823','ESRI','106','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','107','UK - Highways England - A14','UK - Highways England - A14',50.585,51.1984,-4.4468,-3.1023,0); INSERT INTO "conversion" VALUES('ESRI','102824','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999914,'EPSG','9201','EPSG','8806','False easting',111034.6979,'EPSG','9001','EPSG','8807','False northing',71022.19417,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102824_USAGE','conversion','ESRI','102824','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102824_USAGE','conversion','ESRI','102824','ESRI','107','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102824','OSGB36_Highways_England_A14H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102824',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102824_USAGE','projected_crs','ESRI','102824','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102824_USAGE','projected_crs','ESRI','102824','ESRI','107','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102825','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999939,'EPSG','9201','EPSG','8806','False easting',111037.4739,'EPSG','9001','EPSG','8807','False northing',71023.96979,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102825_USAGE','conversion','ESRI','102825','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102825_USAGE','conversion','ESRI','102825','ESRI','107','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102825','OSGB36_Highways_England_A14H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102825',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102825_USAGE','projected_crs','ESRI','102825','ESRI','111','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','112','UK - Highways England - A15','UK - Highways England - A15',50.6049,52.0473,-3.1375,-2.6218,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102825_USAGE','projected_crs','ESRI','102825','ESRI','107','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','108','UK - Highways England - A15','UK - Highways England - A15',50.6049,52.0473,-3.1375,-2.6218,0); INSERT INTO "conversion" VALUES('ESRI','102826','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999967,'EPSG','9201','EPSG','8806','False easting',88032.17537,'EPSG','9001','EPSG','8807','False northing',71025.95967,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102826_USAGE','conversion','ESRI','102826','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102826_USAGE','conversion','ESRI','102826','ESRI','108','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102826','OSGB36_Highways_England_A15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102826',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102826_USAGE','projected_crs','ESRI','102826','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102826_USAGE','projected_crs','ESRI','102826','ESRI','108','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102827','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999992,'EPSG','9201','EPSG','8806','False easting',88034.37626,'EPSG','9001','EPSG','8807','False northing',71027.73539,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102827_USAGE','conversion','ESRI','102827','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102827_USAGE','conversion','ESRI','102827','ESRI','108','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102827','OSGB36_Highways_England_A15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102827',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102827_USAGE','projected_crs','ESRI','102827','ESRI','112','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','113','UK - Highways England - A16','UK - Highways England - A16',50.6084,52.048,-2.6417,-1.5041,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102827_USAGE','projected_crs','ESRI','102827','ESRI','108','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','109','UK - Highways England - A16','UK - Highways England - A16',50.6084,52.048,-2.6417,-1.5041,0); INSERT INTO "conversion" VALUES('ESRI','102828','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000012,'EPSG','9201','EPSG','8806','False easting',54022.17583,'EPSG','9001','EPSG','8807','False northing',71029.15712,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102828_USAGE','conversion','ESRI','102828','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102828_USAGE','conversion','ESRI','102828','ESRI','109','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102828','OSGB36_Highways_England_A16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102828',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102828_USAGE','projected_crs','ESRI','102828','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102828_USAGE','projected_crs','ESRI','102828','ESRI','109','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102829','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000037,'EPSG','9201','EPSG','8806','False easting',54023.52644,'EPSG','9001','EPSG','8807','False northing',71030.93291,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102829_USAGE','conversion','ESRI','102829','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102829_USAGE','conversion','ESRI','102829','ESRI','109','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102829','OSGB36_Highways_England_A16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102829',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102829_USAGE','projected_crs','ESRI','102829','ESRI','113','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','114','UK - Highways England - A17','UK - Highways England - A17',50.777,52.048,-1.5177,-1.0083,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102829_USAGE','projected_crs','ESRI','102829','ESRI','109','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','110','UK - Highways England - A17','UK - Highways England - A17',50.777,52.048,-1.5177,-1.0083,0); INSERT INTO "conversion" VALUES('ESRI','102830','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999981,'EPSG','9201','EPSG','8806','False easting',-24009.11135,'EPSG','9001','EPSG','8807','False northing',71026.9544,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102830_USAGE','conversion','ESRI','102830','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102830_USAGE','conversion','ESRI','102830','ESRI','110','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102830','OSGB36_Highways_England_A17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102830',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102830_USAGE','projected_crs','ESRI','102830','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102830_USAGE','projected_crs','ESRI','102830','ESRI','110','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102831','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000006,'EPSG','9201','EPSG','8806','False easting',-24009.7116,'EPSG','9001','EPSG','8807','False northing',71028.73014,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102831_USAGE','conversion','ESRI','102831','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102831_USAGE','conversion','ESRI','102831','ESRI','110','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102831','OSGB36_Highways_England_A17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102831',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102831_USAGE','projected_crs','ESRI','102831','ESRI','114','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','115','UK - Highways England - A18','UK - Highways England - A18',50.7727,52.0448,-1.0355,-0.571,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102831_USAGE','projected_crs','ESRI','102831','ESRI','110','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','111','UK - Highways England - A18','UK - Highways England - A18',50.7727,52.0448,-1.0355,-0.571,0); INSERT INTO "conversion" VALUES('ESRI','102832','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999928,'EPSG','9201','EPSG','8806','False easting',-58018.94296,'EPSG','9001','EPSG','8807','False northing',71023.18879,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102832_USAGE','conversion','ESRI','102832','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102832_USAGE','conversion','ESRI','102832','ESRI','111','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102832','OSGB36_Highways_England_A18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102832',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102832_USAGE','projected_crs','ESRI','102832','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102832_USAGE','projected_crs','ESRI','102832','ESRI','111','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102833','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999953,'EPSG','9201','EPSG','8806','False easting',-58020.39349,'EPSG','9001','EPSG','8807','False northing',71024.96444,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102833_USAGE','conversion','ESRI','102833','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102833_USAGE','conversion','ESRI','102833','ESRI','111','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102833','OSGB36_Highways_England_A18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102833',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102833_USAGE','projected_crs','ESRI','102833','ESRI','115','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','116','UK - Highways England - A19','UK - Highways England - A19',50.7696,52.0404,-0.6101,-0.3232,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102833_USAGE','projected_crs','ESRI','102833','ESRI','111','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','112','UK - Highways England - A19','UK - Highways England - A19',50.7696,52.0404,-0.6101,-0.3232,0); INSERT INTO "conversion" VALUES('ESRI','102834','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999874,'EPSG','9201','EPSG','8806','False easting',-88023.98625,'EPSG','9001','EPSG','8807','False northing',71019.35254,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102834_USAGE','conversion','ESRI','102834','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102834_USAGE','conversion','ESRI','102834','ESRI','112','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102834','OSGB36_Highways_England_A19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102834',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102834_USAGE','projected_crs','ESRI','102834','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102834_USAGE','projected_crs','ESRI','102834','ESRI','112','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102835','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999899,'EPSG','9201','EPSG','8806','False easting',-88026.18693,'EPSG','9001','EPSG','8807','False northing',71021.12809,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102835_USAGE','conversion','ESRI','102835','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102835_USAGE','conversion','ESRI','102835','ESRI','112','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102835','OSGB36_Highways_England_A19H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102835',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102835_USAGE','projected_crs','ESRI','102835','ESRI','116','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','117','UK - Highways England - A20','UK - Highways England - A20',50.7659,52.0371,-0.369,-0.0755,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102835_USAGE','projected_crs','ESRI','102835','ESRI','112','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','113','UK - Highways England - A20','UK - Highways England - A20',50.7659,52.0371,-0.369,-0.0755,0); INSERT INTO "conversion" VALUES('ESRI','102836','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999826,'EPSG','9201','EPSG','8806','False easting',-105023.5775,'EPSG','9001','EPSG','8807','False northing',71015.94289,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102836_USAGE','conversion','ESRI','102836','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102836_USAGE','conversion','ESRI','102836','ESRI','113','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102836','OSGB36_Highways_England_A20H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102836',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102836_USAGE','projected_crs','ESRI','102836','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102836_USAGE','projected_crs','ESRI','102836','ESRI','113','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102837','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999851,'EPSG','9201','EPSG','8806','False easting',-105026.2032,'EPSG','9001','EPSG','8807','False northing',71017.71836,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102837_USAGE','conversion','ESRI','102837','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102837_USAGE','conversion','ESRI','102837','ESRI','113','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102837','OSGB36_Highways_England_A20H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102837',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102837_USAGE','projected_crs','ESRI','102837','ESRI','117','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','118','UK - Highways England - A21','UK - Highways England - A21',50.7618,52.0333,-0.128,0.1722,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102837_USAGE','projected_crs','ESRI','102837','ESRI','113','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','114','UK - Highways England - A21','UK - Highways England - A21',50.7618,52.0333,-0.128,0.1722,0); INSERT INTO "conversion" VALUES('ESRI','102838','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999771,'EPSG','9201','EPSG','8806','False easting',-122020.6823,'EPSG','9001','EPSG','8807','False northing',71012.0364,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102838_USAGE','conversion','ESRI','102838','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102838_USAGE','conversion','ESRI','102838','ESRI','114','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102838','OSGB36_Highways_England_A21H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102838',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102838_USAGE','projected_crs','ESRI','102838','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102838_USAGE','projected_crs','ESRI','102838','ESRI','114','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102839','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999796,'EPSG','9201','EPSG','8806','False easting',-122023.7329,'EPSG','9001','EPSG','8807','False northing',71013.81177,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102839_USAGE','conversion','ESRI','102839','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102839_USAGE','conversion','ESRI','102839','ESRI','114','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102839','OSGB36_Highways_England_A21H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102839',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102839_USAGE','projected_crs','ESRI','102839','ESRI','118','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','119','UK - Highways England - A22','UK - Highways England - A22',50.7572,52.029,0.1129,0.4198,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102839_USAGE','projected_crs','ESRI','102839','ESRI','114','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','115','UK - Highways England - A22','UK - Highways England - A22',50.7572,52.029,0.1129,0.4198,0); INSERT INTO "conversion" VALUES('ESRI','102840','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999708,'EPSG','9201','EPSG','8806','False easting',-139014.8049,'EPSG','9001','EPSG','8807','False northing',71007.56222,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102840_USAGE','conversion','ESRI','102840','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102840_USAGE','conversion','ESRI','102840','ESRI','115','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102840','OSGB36_Highways_England_A22H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102840',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102840_USAGE','projected_crs','ESRI','102840','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102840_USAGE','projected_crs','ESRI','102840','ESRI','115','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102841','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999733,'EPSG','9201','EPSG','8806','False easting',-139018.2804,'EPSG','9001','EPSG','8807','False northing',71009.33748,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102841_USAGE','conversion','ESRI','102841','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102841_USAGE','conversion','ESRI','102841','ESRI','115','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102841','OSGB36_Highways_England_A22H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102841',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102841_USAGE','projected_crs','ESRI','102841','ESRI','119','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','120','UK - Highways England - A23','UK - Highways England - A23',50.7546,52.0242,0.3537,0.5509,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102841_USAGE','projected_crs','ESRI','102841','ESRI','115','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','116','UK - Highways England - A23','UK - Highways England - A23',50.7546,52.0242,0.3537,0.5509,0); INSERT INTO "conversion" VALUES('ESRI','102842','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999656,'EPSG','9201','EPSG','8806','False easting',-156008.5024,'EPSG','9001','EPSG','8807','False northing',71003.86967,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102842_USAGE','conversion','ESRI','102842','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102842_USAGE','conversion','ESRI','102842','ESRI','116','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102842','OSGB36_Highways_England_A23H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102842',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102842_USAGE','projected_crs','ESRI','102842','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102842_USAGE','projected_crs','ESRI','102842','ESRI','116','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102843','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999681,'EPSG','9201','EPSG','8806','False easting',-156012.4027,'EPSG','9001','EPSG','8807','False northing',71005.64484,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102843_USAGE','conversion','ESRI','102843','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102843_USAGE','conversion','ESRI','102843','ESRI','116','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102843','OSGB36_Highways_England_A23H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102843',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102843_USAGE','projected_crs','ESRI','102843','ESRI','120','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','121','UK - Highways England - A24','UK - Highways England - A24',50.7511,52.0214,0.4812,0.711,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102843_USAGE','projected_crs','ESRI','102843','ESRI','116','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','117','UK - Highways England - A24','UK - Highways England - A24',50.7511,52.0214,0.4812,0.711,0); INSERT INTO "conversion" VALUES('ESRI','102844','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999613,'EPSG','9201','EPSG','8806','False easting',-165001.8975,'EPSG','9001','EPSG','8807','False northing',71000.81651,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102844_USAGE','conversion','ESRI','102844','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102844_USAGE','conversion','ESRI','102844','ESRI','117','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102844','OSGB36_Highways_England_A24H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102844',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102844_USAGE','projected_crs','ESRI','102844','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102844_USAGE','projected_crs','ESRI','102844','ESRI','117','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102845','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999638,'EPSG','9201','EPSG','8806','False easting',-165006.0227,'EPSG','9001','EPSG','8807','False northing',71002.5916,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102845_USAGE','conversion','ESRI','102845','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102845_USAGE','conversion','ESRI','102845','ESRI','117','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102845','OSGB36_Highways_England_A24H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102845',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102845_USAGE','projected_crs','ESRI','102845','ESRI','121','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','122','UK - Highways England - A25','UK - Highways England - A25',50.7478,52.0178,0.637,0.8566,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102845_USAGE','projected_crs','ESRI','102845','ESRI','117','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','118','UK - Highways England - A25','UK - Highways England - A25',50.7478,52.0178,0.637,0.8566,0); INSERT INTO "conversion" VALUES('ESRI','102846','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999565,'EPSG','9201','EPSG','8806','False easting',-175993.5763,'EPSG','9001','EPSG','8807','False northing',70997.40864,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102846_USAGE','conversion','ESRI','102846','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102846_USAGE','conversion','ESRI','102846','ESRI','118','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102846','OSGB36_Highways_England_A25H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102846',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102846_USAGE','projected_crs','ESRI','102846','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102846_USAGE','projected_crs','ESRI','102846','ESRI','118','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102847','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99959,'EPSG','9201','EPSG','8806','False easting',-175997.9763,'EPSG','9001','EPSG','8807','False northing',70999.18364,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102847_USAGE','conversion','ESRI','102847','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102847_USAGE','conversion','ESRI','102847','ESRI','118','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102847','OSGB36_Highways_England_A25H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102847',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102847_USAGE','projected_crs','ESRI','102847','ESRI','122','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','123','UK - Highways England - A26','UK - Highways England - A26',50.7444,52.0144,0.7786,1.0021,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102847_USAGE','projected_crs','ESRI','102847','ESRI','118','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','119','UK - Highways England - A26','UK - Highways England - A26',50.7444,52.0144,0.7786,1.0021,0); INSERT INTO "conversion" VALUES('ESRI','102848','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999517,'EPSG','9201','EPSG','8806','False easting',-185984.2846,'EPSG','9001','EPSG','8807','False northing',70994.00109,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102848_USAGE','conversion','ESRI','102848','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102848_USAGE','conversion','ESRI','102848','ESRI','119','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102848','OSGB36_Highways_England_A26H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102848',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102848_USAGE','projected_crs','ESRI','102848','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102848_USAGE','projected_crs','ESRI','102848','ESRI','119','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102849','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999542,'EPSG','9201','EPSG','8806','False easting',-185988.9343,'EPSG','9001','EPSG','8807','False northing',70995.77601,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102849_USAGE','conversion','ESRI','102849','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102849_USAGE','conversion','ESRI','102849','ESRI','119','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102849','OSGB36_Highways_England_A26H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102849',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102849_USAGE','projected_crs','ESRI','102849','ESRI','123','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','124','UK - Highways England - A27','UK - Highways England - A27',50.9293,52.0108,0.932,1.1476,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102849_USAGE','projected_crs','ESRI','102849','ESRI','119','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','120','UK - Highways England - A27','UK - Highways England - A27',50.9293,52.0108,0.932,1.1476,0); INSERT INTO "conversion" VALUES('ESRI','102850','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999467,'EPSG','9201','EPSG','8806','False easting',-195973.6419,'EPSG','9001','EPSG','8807','False northing',70990.45191,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102850_USAGE','conversion','ESRI','102850','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102850_USAGE','conversion','ESRI','102850','ESRI','120','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102850','OSGB36_Highways_England_A27H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102850',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102850_USAGE','projected_crs','ESRI','102850','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102850_USAGE','projected_crs','ESRI','102850','ESRI','120','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102851','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999492,'EPSG','9201','EPSG','8806','False easting',-195978.5414,'EPSG','9001','EPSG','8807','False northing',70992.22674,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102851_USAGE','conversion','ESRI','102851','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102851_USAGE','conversion','ESRI','102851','ESRI','120','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102851','OSGB36_Highways_England_A27H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102851',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102851_USAGE','projected_crs','ESRI','102851','ESRI','124','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','125','UK - Highways England - A28','UK - Highways England - A28',50.9259,52.007,1.0741,1.2785,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102851_USAGE','projected_crs','ESRI','102851','ESRI','120','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','121','UK - Highways England - A28','UK - Highways England - A28',50.9259,52.007,1.0741,1.2785,0); INSERT INTO "conversion" VALUES('ESRI','102852','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999416,'EPSG','9201','EPSG','8806','False easting',-205961.7946,'EPSG','9001','EPSG','8807','False northing',70986.83212,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102852_USAGE','conversion','ESRI','102852','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102852_USAGE','conversion','ESRI','102852','ESRI','121','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102852','OSGB36_Highways_England_A28H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102852',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102852_USAGE','projected_crs','ESRI','102852','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102852_USAGE','projected_crs','ESRI','102852','ESRI','121','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102853','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999441,'EPSG','9201','EPSG','8806','False easting',-205966.9438,'EPSG','9001','EPSG','8807','False northing',70988.60686,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102853_USAGE','conversion','ESRI','102853','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102853_USAGE','conversion','ESRI','102853','ESRI','121','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102853','OSGB36_Highways_England_A28H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102853',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102853_USAGE','projected_crs','ESRI','102853','ESRI','125','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','126','UK - Highways England - A29','UK - Highways England - A29',50.9223,52.0034,1.202,1.4094,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102853_USAGE','projected_crs','ESRI','102853','ESRI','121','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','122','UK - Highways England - A29','UK - Highways England - A29',50.9223,52.0034,1.202,1.4094,0); INSERT INTO "conversion" VALUES('ESRI','102854','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999366,'EPSG','9201','EPSG','8806','False easting',-214949.3801,'EPSG','9001','EPSG','8807','False northing',70983.28366,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102854_USAGE','conversion','ESRI','102854','ESRI','126','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102854_USAGE','conversion','ESRI','102854','ESRI','122','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102854','OSGB36_Highways_England_A29H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102854',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102854_USAGE','projected_crs','ESRI','102854','ESRI','126','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','127','UK - Highways England - A30','UK - Highways England - A30',50.9186,51.9997,1.3299,1.5403,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102854_USAGE','projected_crs','ESRI','102854','ESRI','122','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','123','UK - Highways England - A30','UK - Highways England - A30',50.9186,51.9997,1.3299,1.5403,0); INSERT INTO "conversion" VALUES('ESRI','102855','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999314,'EPSG','9201','EPSG','8806','False easting',-223935.6193,'EPSG','9001','EPSG','8807','False northing',70979.59363,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102855_USAGE','conversion','ESRI','102855','ESRI','127','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102855_USAGE','conversion','ESRI','102855','ESRI','123','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102855','OSGB36_Highways_England_A30H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102855',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102855_USAGE','projected_crs','ESRI','102855','ESRI','127','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','128','UK - Highways England - B15','UK - Highways England - B15',52.0434,53.9351,-3.1882,-2.6416,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102855_USAGE','projected_crs','ESRI','102855','ESRI','123','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','124','UK - Highways England - B15','UK - Highways England - B15',52.0434,53.9351,-3.1882,-2.6416,0); INSERT INTO "conversion" VALUES('ESRI','102856','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999967,'EPSG','9201','EPSG','8806','False easting',88032.17537,'EPSG','9001','EPSG','8807','False northing',111040.5848,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102856_USAGE','conversion','ESRI','102856','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102856_USAGE','conversion','ESRI','102856','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102856','OSGB36_Highways_England_B15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102856',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102856_USAGE','projected_crs','ESRI','102856','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102856_USAGE','projected_crs','ESRI','102856','ESRI','124','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102857','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999992,'EPSG','9201','EPSG','8806','False easting',88034.37626,'EPSG','9001','EPSG','8807','False northing',111043.361,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102857_USAGE','conversion','ESRI','102857','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102857_USAGE','conversion','ESRI','102857','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102857','OSGB36_Highways_England_B15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102857',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102857_USAGE','projected_crs','ESRI','102857','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102857_USAGE','projected_crs','ESRI','102857','ESRI','124','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102858','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000017,'EPSG','9201','EPSG','8806','False easting',88036.57726,'EPSG','9001','EPSG','8807','False northing',111046.1372,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102858_USAGE','conversion','ESRI','102858','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102858_USAGE','conversion','ESRI','102858','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102858','OSGB36_Highways_England_B15H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102858',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102858_USAGE','projected_crs','ESRI','102858','ESRI','128','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','129','UK - Highways England - B16','UK - Highways England - B16',52.0472,53.9359,-2.6703,-1.482,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102858_USAGE','projected_crs','ESRI','102858','ESRI','124','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','125','UK - Highways England - B16','UK - Highways England - B16',52.0472,53.9359,-2.6703,-1.482,0); INSERT INTO "conversion" VALUES('ESRI','102859','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000012,'EPSG','9201','EPSG','8806','False easting',54022.17583,'EPSG','9001','EPSG','8807','False northing',111045.5837,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102859_USAGE','conversion','ESRI','102859','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102859_USAGE','conversion','ESRI','102859','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102859','OSGB36_Highways_England_B16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102859',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102859_USAGE','projected_crs','ESRI','102859','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102859_USAGE','projected_crs','ESRI','102859','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102860','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000037,'EPSG','9201','EPSG','8806','False easting',54023.52644,'EPSG','9001','EPSG','8807','False northing',111048.3599,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102860_USAGE','conversion','ESRI','102860','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102860_USAGE','conversion','ESRI','102860','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102860','OSGB36_Highways_England_B16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102860',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102860_USAGE','projected_crs','ESRI','102860','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102860_USAGE','projected_crs','ESRI','102860','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102861','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000062,'EPSG','9201','EPSG','8806','False easting',54024.87711,'EPSG','9001','EPSG','8807','False northing',111051.1363,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102861_USAGE','conversion','ESRI','102861','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102861_USAGE','conversion','ESRI','102861','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102861','OSGB36_Highways_England_B16H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102861',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102861_USAGE','projected_crs','ESRI','102861','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102861_USAGE','projected_crs','ESRI','102861','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102862','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000087,'EPSG','9201','EPSG','8806','False easting',54026.22785,'EPSG','9001','EPSG','8807','False northing',111053.9128,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102862_USAGE','conversion','ESRI','102862','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102862_USAGE','conversion','ESRI','102862','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102862','OSGB36_Highways_England_B16H4',NULL,'EPSG','4400','EPSG','4277','ESRI','102862',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102862_USAGE','projected_crs','ESRI','102862','ESRI','129','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','130','UK - Highways England - B17','UK - Highways England - B17',52.0447,53.9359,-1.5042,-0.9641,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102862_USAGE','projected_crs','ESRI','102862','ESRI','125','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','126','UK - Highways England - B17','UK - Highways England - B17',52.0447,53.9359,-1.5042,-0.9641,0); INSERT INTO "conversion" VALUES('ESRI','102863','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999981,'EPSG','9201','EPSG','8806','False easting',-24009.11135,'EPSG','9001','EPSG','8807','False northing',111042.14,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102863_USAGE','conversion','ESRI','102863','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102863_USAGE','conversion','ESRI','102863','ESRI','126','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102863','OSGB36_Highways_England_B17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102863',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102863_USAGE','projected_crs','ESRI','102863','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102863_USAGE','projected_crs','ESRI','102863','ESRI','126','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102864','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000006,'EPSG','9201','EPSG','8806','False easting',-24009.7116,'EPSG','9001','EPSG','8807','False northing',111044.9161,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102864_USAGE','conversion','ESRI','102864','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102864_USAGE','conversion','ESRI','102864','ESRI','126','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102864','OSGB36_Highways_England_B17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102864',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102864_USAGE','projected_crs','ESRI','102864','ESRI','130','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','131','UK - Highways England - B18','UK - Highways England - B18',52.0403,53.9325,-1.0084,-0.5073,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102864_USAGE','projected_crs','ESRI','102864','ESRI','126','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','127','UK - Highways England - B18','UK - Highways England - B18',52.0403,53.9325,-1.0084,-0.5073,0); INSERT INTO "conversion" VALUES('ESRI','102865','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999928,'EPSG','9201','EPSG','8806','False easting',-58018.94296,'EPSG','9001','EPSG','8807','False northing',111036.2529,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102865_USAGE','conversion','ESRI','102865','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102865_USAGE','conversion','ESRI','102865','ESRI','127','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102865','OSGB36_Highways_England_B18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102865',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102865_USAGE','projected_crs','ESRI','102865','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102865_USAGE','projected_crs','ESRI','102865','ESRI','127','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102866','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999953,'EPSG','9201','EPSG','8806','False easting',-58020.39349,'EPSG','9001','EPSG','8807','False northing',111039.0289,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102866_USAGE','conversion','ESRI','102866','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102866_USAGE','conversion','ESRI','102866','ESRI','127','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102866','OSGB36_Highways_England_B18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102866',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102866_USAGE','projected_crs','ESRI','102866','ESRI','131','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','132','UK - Highways England - B19','UK - Highways England - B19',52.037,53.9277,-0.5711,-0.2485,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102866_USAGE','projected_crs','ESRI','102866','ESRI','127','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','128','UK - Highways England - B19','UK - Highways England - B19',52.037,53.9277,-0.5711,-0.2485,0); INSERT INTO "conversion" VALUES('ESRI','102867','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999874,'EPSG','9201','EPSG','8806','False easting',-88023.98625,'EPSG','9001','EPSG','8807','False northing',111030.2554,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102867_USAGE','conversion','ESRI','102867','ESRI','132','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102867_USAGE','conversion','ESRI','102867','ESRI','128','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102867','OSGB36_Highways_England_B19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102867',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102867_USAGE','projected_crs','ESRI','102867','ESRI','132','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','133','UK - Highways England - B20','UK - Highways England - B20',52.0332,53.9242,-0.3233,0.0103,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102867_USAGE','projected_crs','ESRI','102867','ESRI','128','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','129','UK - Highways England - B20','UK - Highways England - B20',52.0332,53.9242,-0.3233,0.0103,0); INSERT INTO "conversion" VALUES('ESRI','102868','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999826,'EPSG','9201','EPSG','8806','False easting',-105023.5775,'EPSG','9001','EPSG','8807','False northing',111024.9248,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102868_USAGE','conversion','ESRI','102868','ESRI','133','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102868_USAGE','conversion','ESRI','102868','ESRI','129','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102868','OSGB36_Highways_England_B20H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102868',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102868_USAGE','projected_crs','ESRI','102868','ESRI','133','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','134','UK - Highways England - B21','UK - Highways England - B21',52.0289,52.8061,-0.0756,0.2105,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102868_USAGE','projected_crs','ESRI','102868','ESRI','129','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','130','UK - Highways England - B21','UK - Highways England - B21',52.0289,52.8061,-0.0756,0.2105,0); INSERT INTO "conversion" VALUES('ESRI','102869','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999771,'EPSG','9201','EPSG','8806','False easting',-122020.6823,'EPSG','9001','EPSG','8807','False northing',111018.8175,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102869_USAGE','conversion','ESRI','102869','ESRI','134','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102869_USAGE','conversion','ESRI','102869','ESRI','130','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102869','OSGB36_Highways_England_B21H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102869',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102869_USAGE','projected_crs','ESRI','102869','ESRI','134','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','135','UK - Highways England - B22','UK - Highways England - B22',52.0241,52.8017,0.1721,0.4625,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102869_USAGE','projected_crs','ESRI','102869','ESRI','130','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','131','UK - Highways England - B22','UK - Highways England - B22',52.0241,52.8017,0.1721,0.4625,0); INSERT INTO "conversion" VALUES('ESRI','102870','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999709,'EPSG','9201','EPSG','8806','False easting',-139014.9439,'EPSG','9001','EPSG','8807','False northing',111011.9337,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102870_USAGE','conversion','ESRI','102870','ESRI','135','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102870_USAGE','conversion','ESRI','102870','ESRI','131','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102870','OSGB36_Highways_England_B22H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102870',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102870_USAGE','projected_crs','ESRI','102870','ESRI','135','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','136','UK - Highways England - B23','UK - Highways England - B23',52.0213,52.7967,0.4197,0.5958,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102870_USAGE','projected_crs','ESRI','102870','ESRI','131','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','132','UK - Highways England - B23','UK - Highways England - B23',52.0213,52.7967,0.4197,0.5958,0); INSERT INTO "conversion" VALUES('ESRI','102871','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999656,'EPSG','9201','EPSG','8806','False easting',-156008.5024,'EPSG','9001','EPSG','8807','False northing',111006.0498,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102871_USAGE','conversion','ESRI','102871','ESRI','136','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102871_USAGE','conversion','ESRI','102871','ESRI','132','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102871','OSGB36_Highways_England_B23H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102871',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102871_USAGE','projected_crs','ESRI','102871','ESRI','136','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','137','UK - Highways England - B24','UK - Highways England - B24',52.0177,52.7939,0.5508,0.7588,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102871_USAGE','projected_crs','ESRI','102871','ESRI','132','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','133','UK - Highways England - B24','UK - Highways England - B24',52.0177,52.7939,0.5508,0.7588,0); INSERT INTO "conversion" VALUES('ESRI','102872','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999614,'EPSG','9201','EPSG','8806','False easting',-165002.0625,'EPSG','9001','EPSG','8807','False northing',111001.3875,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102872_USAGE','conversion','ESRI','102872','ESRI','137','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102872_USAGE','conversion','ESRI','102872','ESRI','133','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102872','OSGB36_Highways_England_B24H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102872',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102872_USAGE','projected_crs','ESRI','102872','ESRI','137','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','138','UK - Highways England - B25','UK - Highways England - B25',52.0143,52.7902,0.7109,0.9069,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102872_USAGE','projected_crs','ESRI','102872','ESRI','133','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','134','UK - Highways England - B25','UK - Highways England - B25',52.0143,52.7902,0.7109,0.9069,0); INSERT INTO "conversion" VALUES('ESRI','102873','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999565,'EPSG','9201','EPSG','8806','False easting',-175993.5763,'EPSG','9001','EPSG','8807','False northing',110995.9487,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102873_USAGE','conversion','ESRI','102873','ESRI','138','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102873_USAGE','conversion','ESRI','102873','ESRI','134','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102873','OSGB36_Highways_England_B25H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102873',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102873_USAGE','projected_crs','ESRI','102873','ESRI','138','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','139','UK - Highways England - B26','UK - Highways England - B26',52.0107,52.7866,0.8565,1.055,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102873_USAGE','projected_crs','ESRI','102873','ESRI','134','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','135','UK - Highways England - B26','UK - Highways England - B26',52.0107,52.7866,0.8565,1.055,0); INSERT INTO "conversion" VALUES('ESRI','102874','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999517,'EPSG','9201','EPSG','8806','False easting',-185984.2846,'EPSG','9001','EPSG','8807','False northing',110990.6214,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102874_USAGE','conversion','ESRI','102874','ESRI','139','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102874_USAGE','conversion','ESRI','102874','ESRI','135','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102874','OSGB36_Highways_England_B26H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102874',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102874_USAGE','projected_crs','ESRI','102874','ESRI','139','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','140','UK - Highways England - B27','UK - Highways England - B27',52.0069,52.7829,1.002,1.2031,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102874_USAGE','projected_crs','ESRI','102874','ESRI','135','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','136','UK - Highways England - B27','UK - Highways England - B27',52.0069,52.7829,1.002,1.2031,0); INSERT INTO "conversion" VALUES('ESRI','102875','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999467,'EPSG','9201','EPSG','8806','False easting',-195973.6419,'EPSG','9001','EPSG','8807','False northing',110985.0727,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102875_USAGE','conversion','ESRI','102875','ESRI','140','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102875_USAGE','conversion','ESRI','102875','ESRI','136','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102875','OSGB36_Highways_England_B27H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102875',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102875_USAGE','projected_crs','ESRI','102875','ESRI','140','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','141','UK - Highways England - B28','UK - Highways England - B28',52.0033,52.779,1.1475,1.3363,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102875_USAGE','projected_crs','ESRI','102875','ESRI','136','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','137','UK - Highways England - B28','UK - Highways England - B28',52.0033,52.779,1.1475,1.3363,0); INSERT INTO "conversion" VALUES('ESRI','102876','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999416,'EPSG','9201','EPSG','8806','False easting',-205961.7946,'EPSG','9001','EPSG','8807','False northing',110979.4136,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102876_USAGE','conversion','ESRI','102876','ESRI','141','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102876_USAGE','conversion','ESRI','102876','ESRI','137','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102876','OSGB36_Highways_England_B28H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102876',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102876_USAGE','projected_crs','ESRI','102876','ESRI','141','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','142','UK - Highways England - B29','UK - Highways England - B29',51.9996,52.7753,1.2784,1.4695,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102876_USAGE','projected_crs','ESRI','102876','ESRI','137','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','138','UK - Highways England - B29','UK - Highways England - B29',51.9996,52.7753,1.2784,1.4695,0); INSERT INTO "conversion" VALUES('ESRI','102877','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999367,'EPSG','9201','EPSG','8806','False easting',-214949.595,'EPSG','9001','EPSG','8807','False northing',110973.9769,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102877_USAGE','conversion','ESRI','102877','ESRI','142','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102877_USAGE','conversion','ESRI','102877','ESRI','138','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102877','OSGB36_Highways_England_B29H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102877',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102877_USAGE','projected_crs','ESRI','102877','ESRI','142','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','143','UK - Highways England - B30','UK - Highways England - B30',51.9957,52.7715,1.4093,1.6026,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102877_USAGE','projected_crs','ESRI','102877','ESRI','138','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','139','UK - Highways England - B30','UK - Highways England - B30',51.9957,52.7715,1.4093,1.6026,0); INSERT INTO "conversion" VALUES('ESRI','102878','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999315,'EPSG','9201','EPSG','8806','False easting',-223935.8432,'EPSG','9001','EPSG','8807','False northing',110968.208,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102878_USAGE','conversion','ESRI','102878','ESRI','143','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102878_USAGE','conversion','ESRI','102878','ESRI','139','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102878','OSGB36_Highways_England_B30H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102878',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102878_USAGE','projected_crs','ESRI','102878','ESRI','143','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','144','UK - Highways England - B31','UK - Highways England - B31',52.3416,52.7675,1.5681,1.7357,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102878_USAGE','projected_crs','ESRI','102878','ESRI','139','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','140','UK - Highways England - B31','UK - Highways England - B31',52.3416,52.7675,1.5681,1.7357,0); INSERT INTO "conversion" VALUES('ESRI','102879','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999261,'EPSG','9201','EPSG','8806','False easting',-232920.6915,'EPSG','9001','EPSG','8807','False northing',110962.2179,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102879_USAGE','conversion','ESRI','102879','ESRI','144','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102879_USAGE','conversion','ESRI','102879','ESRI','140','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102879','OSGB36_Highways_England_B31H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102879',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102879_USAGE','projected_crs','ESRI','102879','ESRI','144','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','145','UK - Highways England - B32','UK - Highways England - B32',52.3374,52.7634,1.6999,1.8688,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102879_USAGE','projected_crs','ESRI','102879','ESRI','140','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','141','UK - Highways England - B32','UK - Highways England - B32',52.3374,52.7634,1.6999,1.8688,0); INSERT INTO "conversion" VALUES('ESRI','102880','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999206,'EPSG','9201','EPSG','8806','False easting',-241904.3281,'EPSG','9001','EPSG','8807','False northing',110956.1174,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102880_USAGE','conversion','ESRI','102880','ESRI','145','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102880_USAGE','conversion','ESRI','102880','ESRI','141','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102880','OSGB36_Highways_England_B32H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102880',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102880_USAGE','projected_crs','ESRI','102880','ESRI','145','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','146','UK - Highways England - C13','UK - Highways England - C13',54.3636,54.7717,-3.8344,-3.5547,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102880_USAGE','projected_crs','ESRI','102880','ESRI','141','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','142','UK - Highways England - C13','UK - Highways England - C13',54.3636,54.7717,-3.8344,-3.5547,0); INSERT INTO "conversion" VALUES('ESRI','102881','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999866,'EPSG','9201','EPSG','8806','False easting',128033.8646,'EPSG','9001','EPSG','8807','False northing',126033.3354,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102881_USAGE','conversion','ESRI','102881','ESRI','146','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102881_USAGE','conversion','ESRI','102881','ESRI','142','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102881','OSGB36_Highways_England_C13H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102881',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102881_USAGE','projected_crs','ESRI','102881','ESRI','146','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','147','UK - Highways England - C14','UK - Highways England - C14',54.0079,54.7758,-3.5703,-3.1904,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102881_USAGE','projected_crs','ESRI','102881','ESRI','142','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','143','UK - Highways England - C14','UK - Highways England - C14',54.0079,54.7758,-3.5703,-3.1904,0); INSERT INTO "conversion" VALUES('ESRI','102882','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999914,'EPSG','9201','EPSG','8806','False easting',111034.6979,'EPSG','9001','EPSG','8807','False northing',126039.3868,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102882_USAGE','conversion','ESRI','102882','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102882_USAGE','conversion','ESRI','102882','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102882','OSGB36_Highways_England_C14H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102882',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102882_USAGE','projected_crs','ESRI','102882','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102882_USAGE','projected_crs','ESRI','102882','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102883','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999939,'EPSG','9201','EPSG','8806','False easting',111037.4739,'EPSG','9001','EPSG','8807','False northing',126042.5379,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102883_USAGE','conversion','ESRI','102883','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102883_USAGE','conversion','ESRI','102883','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102883','OSGB36_Highways_England_C14H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102883',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102883_USAGE','projected_crs','ESRI','102883','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102883_USAGE','projected_crs','ESRI','102883','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102884','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999964,'EPSG','9201','EPSG','8806','False easting',111040.25,'EPSG','9001','EPSG','8807','False northing',126045.6892,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102884_USAGE','conversion','ESRI','102884','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102884_USAGE','conversion','ESRI','102884','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102884','OSGB36_Highways_England_C14H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102884',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102884_USAGE','projected_crs','ESRI','102884','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102884_USAGE','projected_crs','ESRI','102884','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102885','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999989,'EPSG','9201','EPSG','8806','False easting',111043.0263,'EPSG','9001','EPSG','8807','False northing',126048.8406,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102885_USAGE','conversion','ESRI','102885','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102885_USAGE','conversion','ESRI','102885','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102885','OSGB36_Highways_England_C14H4',NULL,'EPSG','4400','EPSG','4277','ESRI','102885',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102885_USAGE','projected_crs','ESRI','102885','ESRI','147','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','148','UK - Highways England - C15','UK - Highways England - C15',53.931,55.1394,-3.2237,-2.6702,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102885_USAGE','projected_crs','ESRI','102885','ESRI','143','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','144','UK - Highways England - C15','UK - Highways England - C15',53.931,55.1394,-3.2237,-2.6702,0); INSERT INTO "conversion" VALUES('ESRI','102886','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999967,'EPSG','9201','EPSG','8806','False easting',88032.17537,'EPSG','9001','EPSG','8807','False northing',126046.0693,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102886_USAGE','conversion','ESRI','102886','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102886_USAGE','conversion','ESRI','102886','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102886','OSGB36_Highways_England_C15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102886',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102886_USAGE','projected_crs','ESRI','102886','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102886_USAGE','projected_crs','ESRI','102886','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102887','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999992,'EPSG','9201','EPSG','8806','False easting',88034.37626,'EPSG','9001','EPSG','8807','False northing',126049.2206,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102887_USAGE','conversion','ESRI','102887','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102887_USAGE','conversion','ESRI','102887','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102887','OSGB36_Highways_England_C15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102887',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102887_USAGE','projected_crs','ESRI','102887','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102887_USAGE','projected_crs','ESRI','102887','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102888','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000017,'EPSG','9201','EPSG','8806','False easting',88036.57726,'EPSG','9001','EPSG','8807','False northing',126052.372,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102888_USAGE','conversion','ESRI','102888','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102888_USAGE','conversion','ESRI','102888','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102888','OSGB36_Highways_England_C15H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102888',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102888_USAGE','projected_crs','ESRI','102888','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102888_USAGE','projected_crs','ESRI','102888','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102889','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000042,'EPSG','9201','EPSG','8806','False easting',88038.77836,'EPSG','9001','EPSG','8807','False northing',126055.5236,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102889_USAGE','conversion','ESRI','102889','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102889_USAGE','conversion','ESRI','102889','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102889','OSGB36_Highways_England_C15H4',NULL,'EPSG','4400','EPSG','4277','ESRI','102889',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102889_USAGE','projected_crs','ESRI','102889','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102889_USAGE','projected_crs','ESRI','102889','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102890','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000067,'EPSG','9201','EPSG','8806','False easting',88040.97958,'EPSG','9001','EPSG','8807','False northing',126058.6753,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102890_USAGE','conversion','ESRI','102890','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102890_USAGE','conversion','ESRI','102890','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102890','OSGB36_Highways_England_C15H5',NULL,'EPSG','4400','EPSG','4277','ESRI','102890',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102890_USAGE','projected_crs','ESRI','102890','ESRI','148','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','149','UK - Highways England - C16','UK - Highways England - C16',53.935,55.8321,-2.7026,-1.4571,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102890_USAGE','projected_crs','ESRI','102890','ESRI','144','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','145','UK - Highways England - C16','UK - Highways England - C16',53.935,55.8321,-2.7026,-1.4571,0); INSERT INTO "conversion" VALUES('ESRI','102891','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000012,'EPSG','9201','EPSG','8806','False easting',54022.17583,'EPSG','9001','EPSG','8807','False northing',126051.7436,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102891_USAGE','conversion','ESRI','102891','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102891_USAGE','conversion','ESRI','102891','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102891','OSGB36_Highways_England_C16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102891',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102891_USAGE','projected_crs','ESRI','102891','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102891_USAGE','projected_crs','ESRI','102891','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102892','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000037,'EPSG','9201','EPSG','8806','False easting',54023.52644,'EPSG','9001','EPSG','8807','False northing',126054.895,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102892_USAGE','conversion','ESRI','102892','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102892_USAGE','conversion','ESRI','102892','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102892','OSGB36_Highways_England_C16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102892',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102892_USAGE','projected_crs','ESRI','102892','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102892_USAGE','projected_crs','ESRI','102892','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102893','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000062,'EPSG','9201','EPSG','8806','False easting',54024.87711,'EPSG','9001','EPSG','8807','False northing',126058.0466,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102893_USAGE','conversion','ESRI','102893','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102893_USAGE','conversion','ESRI','102893','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102893','OSGB36_Highways_England_C16H3',NULL,'EPSG','4400','EPSG','4277','ESRI','102893',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102893_USAGE','projected_crs','ESRI','102893','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102893_USAGE','projected_crs','ESRI','102893','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102894','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000087,'EPSG','9201','EPSG','8806','False easting',54026.22785,'EPSG','9001','EPSG','8807','False northing',126061.1983,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102894_USAGE','conversion','ESRI','102894','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102894_USAGE','conversion','ESRI','102894','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102894','OSGB36_Highways_England_C16H4',NULL,'EPSG','4400','EPSG','4277','ESRI','102894',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102894_USAGE','projected_crs','ESRI','102894','ESRI','149','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','150','UK - Highways England - C17','UK - Highways England - C17',53.9324,55.5176,-1.4821,-0.923,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102894_USAGE','projected_crs','ESRI','102894','ESRI','145','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','146','UK - Highways England - C17','UK - Highways England - C17',53.9324,55.5176,-1.4821,-0.923,0); INSERT INTO "conversion" VALUES('ESRI','102895','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999981,'EPSG','9201','EPSG','8806','False easting',-24009.11135,'EPSG','9001','EPSG','8807','False northing',126047.8346,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102895_USAGE','conversion','ESRI','102895','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102895_USAGE','conversion','ESRI','102895','ESRI','146','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102895','OSGB36_Highways_England_C17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102895',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102895_USAGE','projected_crs','ESRI','102895','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102895_USAGE','projected_crs','ESRI','102895','ESRI','146','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102896','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000006,'EPSG','9201','EPSG','8806','False easting',-24009.7116,'EPSG','9001','EPSG','8807','False northing',126050.9859,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102896_USAGE','conversion','ESRI','102896','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102896_USAGE','conversion','ESRI','102896','ESRI','146','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102896','OSGB36_Highways_England_C17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102896',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102896_USAGE','projected_crs','ESRI','102896','ESRI','150','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','151','UK - Highways England - C18','UK - Highways England - C18',53.9276,54.3908,-0.9642,-0.4907,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102896_USAGE','projected_crs','ESRI','102896','ESRI','146','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','147','UK - Highways England - C18','UK - Highways England - C18',53.9276,54.3908,-0.9642,-0.4907,0); INSERT INTO "conversion" VALUES('ESRI','102897','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999928,'EPSG','9201','EPSG','8806','False easting',-58018.94296,'EPSG','9001','EPSG','8807','False northing',126041.1519,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102897_USAGE','conversion','ESRI','102897','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102897_USAGE','conversion','ESRI','102897','ESRI','147','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102897','OSGB36_Highways_England_C18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102897',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102897_USAGE','projected_crs','ESRI','102897','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102897_USAGE','projected_crs','ESRI','102897','ESRI','147','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102898','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999953,'EPSG','9201','EPSG','8806','False easting',-58020.39349,'EPSG','9001','EPSG','8807','False northing',126044.3031,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102898_USAGE','conversion','ESRI','102898','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102898_USAGE','conversion','ESRI','102898','ESRI','147','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102898','OSGB36_Highways_England_C18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102898',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102898_USAGE','projected_crs','ESRI','102898','ESRI','151','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','152','UK - Highways England - C19','UK - Highways England - C19',53.9241,54.3859,-0.5074,-0.229,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102898_USAGE','projected_crs','ESRI','102898','ESRI','147','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','148','UK - Highways England - C19','UK - Highways England - C19',53.9241,54.3859,-0.5074,-0.229,0); INSERT INTO "conversion" VALUES('ESRI','102899','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999874,'EPSG','9201','EPSG','8806','False easting',-88023.98625,'EPSG','9001','EPSG','8807','False northing',126034.3439,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102899_USAGE','conversion','ESRI','102899','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102899_USAGE','conversion','ESRI','102899','ESRI','148','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102899','OSGB36_Highways_England_C19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','102899',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102899_USAGE','projected_crs','ESRI','102899','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102899_USAGE','projected_crs','ESRI','102899','ESRI','148','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102900','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999899,'EPSG','9201','EPSG','8806','False easting',-88026.18693,'EPSG','9001','EPSG','8807','False northing',126037.4949,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102900_USAGE','conversion','ESRI','102900','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102900_USAGE','conversion','ESRI','102900','ESRI','148','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102900','OSGB36_Highways_England_C19H2',NULL,'EPSG','4400','EPSG','4277','ESRI','102900',NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102900_USAGE','projected_crs','ESRI','102900','ESRI','152','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102901','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00003,'EPSG','9201','EPSG','8806','False easting',3773000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102900_USAGE','projected_crs','ESRI','102900','ESRI','148','EPSG','1024'); +INSERT INTO "conversion" VALUES('ESRI','102901','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00003,'EPSG','9201','EPSG','8806','False easting',3773000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102901_USAGE','conversion','ESRI','102901','EPSG','4703','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102901','NAD_1983_(2011)_ICS_Aurora_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102901',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102901','NAD_1983_(2011)_ICS_Aurora_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102901',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102901_USAGE','projected_crs','ESRI','102901','EPSG','4703','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102902','NAD_1983_(2011)_ICS_Freeport_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Freeport_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1804000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-89.95],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",42.2],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102902','NAD_1983_(2011)_ICS_Freeport_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Freeport_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1804000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-89.95],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",42.2],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102902_USAGE','projected_crs','ESRI','102902','EPSG','4701','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102903','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-87.8,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',4757000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102903','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-87.8,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',4757000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102903_USAGE','conversion','ESRI','102903','EPSG','4704','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102903','NAD_1983_(2011)_ICS_Chicago_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102903',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102903','NAD_1983_(2011)_ICS_Chicago_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102903',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102903_USAGE','projected_crs','ESRI','102903','EPSG','4704','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102904','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.25,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000029,'EPSG','9201','EPSG','8806','False easting',2822000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102904','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.25,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000029,'EPSG','9201','EPSG','8806','False easting',2822000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102904_USAGE','conversion','ESRI','102904','EPSG','4702','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102904','NAD_1983_(2011)_ICS_Rockford_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102904',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102904','NAD_1983_(2011)_ICS_Rockford_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102904',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102904_USAGE','projected_crs','ESRI','102904','EPSG','4702','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102905','NAD_1983_(2011)_ICS_Moline_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Moline_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-90.6],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",41.55],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102905','NAD_1983_(2011)_ICS_Moline_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Moline_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-90.6],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",41.55],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102905_USAGE','projected_crs','ESRI','102905','EPSG','4705','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102906','NAD_1983_(2011)_ICS_Ottawa_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Ottawa_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",7743000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-89.05],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",41.3],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102906','NAD_1983_(2011)_ICS_Ottawa_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Ottawa_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",7743000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-89.05],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",41.3],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102906_USAGE','projected_crs','ESRI','102906','EPSG','4707','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102907','NAD_1983_(2011)_ICS_Sterling_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Sterling_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",6726000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-90.05],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",41.55],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102907','NAD_1983_(2011)_ICS_Sterling_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Sterling_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",6726000.0],PARAMETER["False_Northing",755000.0],PARAMETER["Central_Meridian",-90.05],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",41.55],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102907_USAGE','projected_crs','ESRI','102907','EPSG','4706','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102908','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.55,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000022,'EPSG','9201','EPSG','8806','False easting',8694000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102908','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.55,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000022,'EPSG','9201','EPSG','8806','False easting',8694000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102908_USAGE','conversion','ESRI','102908','EPSG','4708','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102908','NAD_1983_(2011)_ICS_Joliet_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102908',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102908','NAD_1983_(2011)_ICS_Joliet_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102908',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102908_USAGE','projected_crs','ESRI','102908','EPSG','4708','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102909','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.45,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.3,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',2756000.0,'EPSG','9003','EPSG','8807','False northing',427000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102909','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.45,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.3,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',2756000.0,'EPSG','9003','EPSG','8807','False northing',427000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102909_USAGE','conversion','ESRI','102909','EPSG','4712','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102909','NAD_1983_(2011)_ICS_Eureka_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102909',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102909','NAD_1983_(2011)_ICS_Eureka_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102909',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102909_USAGE','projected_crs','ESRI','102909','EPSG','4712','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102910','NAD_1983_(2011)_ICS_Pontiac_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Pontiac_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",4757000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-88.55],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102910','NAD_1983_(2011)_ICS_Pontiac_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Pontiac_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",4757000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-88.55],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102910_USAGE','projected_crs','ESRI','102910','EPSG','4714','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102911','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.2,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.85,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102911','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.2,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.85,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102911_USAGE','conversion','ESRI','102911','EPSG','4709','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102911','NAD_1983_(2011)_ICS_Monmouth_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102911',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102911','NAD_1983_(2011)_ICS_Monmouth_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102911',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102911_USAGE','projected_crs','ESRI','102911','EPSG','4709','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','153','Illinois - Watseka','Illinois - Watseka',40.39,41.02,-88.47,-87.52,0); -INSERT INTO "projected_crs" VALUES('ESRI','102912','NAD_1983_(2011)_ICS_Watseka_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Watseka_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-87.95],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",40.75],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102912_USAGE','projected_crs','ESRI','102912','ESRI','153','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','154','Illinois - Peoria','Illinois - Peoria',40.31,40.98,-90.01,-89.26,0); -INSERT INTO "conversion" VALUES('ESRI','102913','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.4,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.65,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',1378000.0,'EPSG','9003','EPSG','8807','False northing',622000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102913_USAGE','conversion','ESRI','102913','ESRI','154','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102913','NAD_1983_(2011)_ICS_Peoria_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102913',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102913_USAGE','projected_crs','ESRI','102913','ESRI','154','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102914','NAD_1983_(2011)_ICS_Bloomington_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Bloomington_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3773000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-88.85],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102912','NAD_1983_(2011)_ICS_Watseka_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Watseka_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-87.95],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",40.75],UNIT["Foot_US",0.3048006096012192]]',1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102912_USAGE','projected_crs','ESRI','102912','EPSG','4715','EPSG','1024'); +INSERT INTO "conversion" VALUES('ESRI','102913','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.4,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.65,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',1378000.0,'EPSG','9003','EPSG','8807','False northing',622000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102913_USAGE','conversion','ESRI','102913','EPSG','4711','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102913','NAD_1983_(2011)_ICS_Peoria_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102913',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102913_USAGE','projected_crs','ESRI','102913','EPSG','4711','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102914','NAD_1983_(2011)_ICS_Bloomington_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Bloomington_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3773000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-88.85],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102914_USAGE','projected_crs','ESRI','102914','EPSG','4713','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102915','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',230000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102915','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.25,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',230000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102915_USAGE','conversion','ESRI','102915','EPSG','4710','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102915','NAD_1983_(2011)_ICS_Galesburg_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102915',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102915','NAD_1983_(2011)_ICS_Galesburg_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102915',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102915_USAGE','projected_crs','ESRI','102915','EPSG','4710','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102916','NAD_1983_(2011)_ICS_Champaign_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Champaign_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",328000.0],PARAMETER["False_Northing",2822000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102916','NAD_1983_(2011)_ICS_Champaign_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Champaign_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",328000.0],PARAMETER["False_Northing",2822000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102916_USAGE','projected_crs','ESRI','102916','EPSG','4720','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102917','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.3,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.8,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102917','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.3,'EPSG','9102','EPSG','8802','Longitude of natural origin',-88.8,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102917_USAGE','conversion','ESRI','102917','EPSG','4719','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102917','NAD_1983_(2011)_ICS_Decatur_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102917',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102917','NAD_1983_(2011)_ICS_Decatur_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102917',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102917_USAGE','projected_crs','ESRI','102917','EPSG','4719','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102918','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-91.25,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',6726000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102918','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-91.25,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',6726000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102918_USAGE','conversion','ESRI','102918','EPSG','4716','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102918','NAD_1983_(2011)_ICS_Quincy_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102918',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102918','NAD_1983_(2011)_ICS_Quincy_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102918',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102918_USAGE','projected_crs','ESRI','102918','EPSG','4716','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102919','NAD_1983_(2011)_ICS_Lincoln_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Lincoln_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",8760000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-89.8],PARAMETER["Scale_Factor",1.000018],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102919','NAD_1983_(2011)_ICS_Lincoln_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Lincoln_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",8760000.0],PARAMETER["False_Northing",1739000.0],PARAMETER["Central_Meridian",-89.8],PARAMETER["Scale_Factor",1.000018],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102919_USAGE','projected_crs','ESRI','102919','EPSG','4718','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','155','Illinois - Macomb','Illinois - Macomb',39.83,40.64,-90.92,-90.18,0); -INSERT INTO "conversion" VALUES('ESRI','102920','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.8,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.6,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',7710000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102920_USAGE','conversion','ESRI','102920','ESRI','155','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102920','NAD_1983_(2011)_ICS_Macomb_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102920',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102920_USAGE','projected_crs','ESRI','102920','ESRI','155','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','156','Illinois - Springfield','Illinois - Springfield',39.52,39.98,-90.01,-89.21,0); -INSERT INTO "projected_crs" VALUES('ESRI','102921','NAD_1983_(2011)_ICS_Springfield_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Springfield_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",2329000.0],PARAMETER["False_Northing",2887000.0],PARAMETER["Central_Meridian",-89.65],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",39.75],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102921_USAGE','projected_crs','ESRI','102921','ESRI','156','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102922','NAD_1983_(2011)_ICS_Jacksonville_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Jacksonville_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1247000.0],PARAMETER["False_Northing",2822000.0],PARAMETER["Central_Meridian",-90.6],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "conversion" VALUES('ESRI','102920','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.8,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.6,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000024,'EPSG','9201','EPSG','8806','False easting',7710000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102920_USAGE','conversion','ESRI','102920','EPSG','4717','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102920','NAD_1983_(2011)_ICS_Macomb_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102920',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102920_USAGE','projected_crs','ESRI','102920','EPSG','4717','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102921','NAD_1983_(2011)_ICS_Springfield_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Springfield_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",2329000.0],PARAMETER["False_Northing",2887000.0],PARAMETER["Central_Meridian",-89.65],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",39.75],UNIT["Foot_US",0.3048006096012192]]',1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102921_USAGE','projected_crs','ESRI','102921','EPSG','4722','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102922','NAD_1983_(2011)_ICS_Jacksonville_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Jacksonville_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1247000.0],PARAMETER["False_Northing",2822000.0],PARAMETER["Central_Meridian",-90.6],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102922_USAGE','projected_crs','ESRI','102922','EPSG','4721','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102923','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',33.15,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',6726000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102923','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',33.15,'EPSG','9102','EPSG','8802','Longitude of natural origin',-89.4,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',6726000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102923_USAGE','conversion','ESRI','102923','EPSG','4726','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102923','NAD_1983_(2011)_ICS_Taylorville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102923',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102923','NAD_1983_(2011)_ICS_Taylorville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102923',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102923_USAGE','projected_crs','ESRI','102923','EPSG','4726','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102924','NAD_1983_(2011)_ICS_Charleston_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Charleston_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3773000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102924','NAD_1983_(2011)_ICS_Charleston_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Charleston_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3773000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102924_USAGE','projected_crs','ESRI','102924','EPSG','4723','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102925','NAD_1983_(2011)_ICS_Carlinville_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Carlinville_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-90.15],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102925','NAD_1983_(2011)_ICS_Carlinville_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Carlinville_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",5741000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-90.15],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102925_USAGE','projected_crs','ESRI','102925','EPSG','4725','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102926','NAD_1983_(2011)_ICS_Robinson_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Robinson_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",8694000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",39.1],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102926','NAD_1983_(2011)_ICS_Robinson_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Robinson_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",8694000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",39.1],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102926_USAGE','projected_crs','ESRI','102926','EPSG','4728','EPSG','1024'); -INSERT INTO "conversion" VALUES('ESRI','102927','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',32.85,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000019,'EPSG','9201','EPSG','8806','False easting',4757000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('ESRI','102927','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',32.85,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000019,'EPSG','9201','EPSG','8806','False easting',4757000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102927_USAGE','conversion','ESRI','102927','EPSG','4724','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102927','NAD_1983_(2011)_ICS_Jerseyville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102927',NULL,0); +INSERT INTO "projected_crs" VALUES('ESRI','102927','NAD_1983_(2011)_ICS_Jerseyville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102927',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102927_USAGE','projected_crs','ESRI','102927','EPSG','4724','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102928','NAD_1983_(2011)_ICS_Effingham_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Effingham_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",7710000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-89.0],PARAMETER["Scale_Factor",1.000019],PARAMETER["Latitude_Of_Origin",38.95],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102928','NAD_1983_(2011)_ICS_Effingham_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Effingham_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",7710000.0],PARAMETER["False_Northing",2756000.0],PARAMETER["Central_Meridian",-89.0],PARAMETER["Scale_Factor",1.000019],PARAMETER["Latitude_Of_Origin",38.95],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102928_USAGE','projected_crs','ESRI','102928','EPSG','4727','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','157','Illinois - Belleville','Illinois - Belleville',38.08,39.01,-90.38,-89.59,0); -INSERT INTO "conversion" VALUES('ESRI','102929','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',32.35,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000016,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102929_USAGE','conversion','ESRI','102929','ESRI','157','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102929','NAD_1983_(2011)_ICS_Belleville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102929',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102929_USAGE','projected_crs','ESRI','102929','ESRI','157','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102930','NAD_1983_(2011)_ICS_Olney_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Olney_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1247000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-88.15],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",38.55],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "conversion" VALUES('ESRI','102929','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',32.35,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000016,'EPSG','9201','EPSG','8806','False easting',9678000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102929_USAGE','conversion','ESRI','102929','EPSG','4729','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102929','NAD_1983_(2011)_ICS_Belleville_(US_Feet)',NULL,'EPSG','4497','EPSG','6318','ESRI','102929',NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102929_USAGE','projected_crs','ESRI','102929','EPSG','4729','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','102930','NAD_1983_(2011)_ICS_Olney_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Olney_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1247000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-88.15],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",38.55],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102930_USAGE','projected_crs','ESRI','102930','EPSG','4731','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102931','NAD_1983_(2011)_ICS_Mount_Vernon_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Mount_Vernon_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",328000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-89.15],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",38.45],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102931','NAD_1983_(2011)_ICS_Mount_Vernon_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Mount_Vernon_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",328000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-89.15],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",38.45],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102931_USAGE','projected_crs','ESRI','102931','EPSG','4730','EPSG','1024'); -INSERT INTO "projected_crs" VALUES('ESRI','102932','NAD_1983_(2011)_ICS_Carbondale_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Carbondale_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",2395000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-88.95],PARAMETER["Scale_Factor",1.000012],PARAMETER["Latitude_Of_Origin",37.9],UNIT["Foot_US",0.3048006096012192]]',0); +INSERT INTO "projected_crs" VALUES('ESRI','102932','NAD_1983_(2011)_ICS_Carbondale_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Carbondale_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",2395000.0],PARAMETER["False_Northing",3773000.0],PARAMETER["Central_Meridian",-88.95],PARAMETER["Scale_Factor",1.000012],PARAMETER["Latitude_Of_Origin",37.9],UNIT["Foot_US",0.3048006096012192]]',1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102932_USAGE','projected_crs','ESRI','102932','EPSG','4732','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','158','Illinois - Metropolis','Illinois - Metropolis',36.97,37.61,-89.53,-88.05,0); -INSERT INTO "projected_crs" VALUES('ESRI','102933','NAD_1983_(2011)_ICS_Metropolis_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Metropolis_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3642000.0],PARAMETER["False_Northing",3839000.0],PARAMETER["Central_Meridian",-88.9],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",37.2],UNIT["Foot_US",0.3048006096012192]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102933_USAGE','projected_crs','ESRI','102933','ESRI','158','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','159','Bangladesh - Dinajpur','Bangladesh - Dinajpur',25.2166,26.6334,88.0833,89.3,0); +INSERT INTO "projected_crs" VALUES('ESRI','102933','NAD_1983_(2011)_ICS_Metropolis_(US_Feet)',NULL,NULL,NULL,'EPSG','6318',NULL,NULL,'PROJCS["NAD_1983_(2011)_ICS_Metropolis_(US_Feet)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",3642000.0],PARAMETER["False_Northing",3839000.0],PARAMETER["Central_Meridian",-88.9],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",37.2],UNIT["Foot_US",0.3048006096012192]]',1); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102933_USAGE','projected_crs','ESRI','102933','EPSG','4733','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','149','Bangladesh - Dinajpur','Bangladesh - Dinajpur',25.2166,26.6334,88.0833,89.3,0); INSERT INTO "coordinate_system" VALUES('ESRI','Chain','Cartesian',2); INSERT INTO "axis" VALUES('ESRI','3','Easting','E','east','ESRI','Chain',1,'EPSG','9097'); INSERT INTO "axis" VALUES('ESRI','4','Northing','N','north','ESRI','Chain',2,'EPSG','9097'); INSERT INTO "conversion" VALUES('ESRI','102934','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',25.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',88.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102934_USAGE','conversion','ESRI','102934','ESRI','159','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102934_USAGE','conversion','ESRI','102934','ESRI','149','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102934','Cassini_Bangladesh_Zone_01_Dinajpur',NULL,'ESRI','Chain','EPSG','4042','ESRI','102934',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102934_USAGE','projected_crs','ESRI','102934','ESRI','159','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','160','Bangladesh - Rangpur','Bangladesh - Rangpur',25.0333,26.45,88.9,89.8834,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102934_USAGE','projected_crs','ESRI','102934','ESRI','149','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','150','Bangladesh - Rangpur','Bangladesh - Rangpur',25.0333,26.45,88.9,89.8834,0); INSERT INTO "conversion" VALUES('ESRI','102935','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',25.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',89.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102935_USAGE','conversion','ESRI','102935','ESRI','160','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102935_USAGE','conversion','ESRI','102935','ESRI','150','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102935','Cassini_Bangladesh_Zone_02_Rangpur',NULL,'ESRI','Chain','EPSG','4042','ESRI','102935',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102935_USAGE','projected_crs','ESRI','102935','ESRI','160','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','161','Bangladesh - Rajshahi','Bangladesh - Rajshahi',24.1,25.2,88.0,89.3334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102935_USAGE','projected_crs','ESRI','102935','ESRI','150','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','151','Bangladesh - Rajshahi','Bangladesh - Rajshahi',24.1,25.2,88.0,89.3334,0); INSERT INTO "conversion" VALUES('ESRI','102936','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',24.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',88.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102936_USAGE','conversion','ESRI','102936','ESRI','161','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102936_USAGE','conversion','ESRI','102936','ESRI','151','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102936','Cassini_Bangladesh_Zone_03_Rajshahi',NULL,'ESRI','Chain','EPSG','4042','ESRI','102936',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102936_USAGE','projected_crs','ESRI','102936','ESRI','161','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','162','Bangladesh - Bogura','Bangladesh - Bogura',24.5333,25.2667,88.9166,89.75,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102936_USAGE','projected_crs','ESRI','102936','ESRI','151','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','152','Bangladesh - Bogura','Bangladesh - Bogura',24.5333,25.2667,88.9166,89.75,0); INSERT INTO "conversion" VALUES('ESRI','102937','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',24.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',89.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102937_USAGE','conversion','ESRI','102937','ESRI','162','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102937_USAGE','conversion','ESRI','102937','ESRI','152','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102937','Cassini_Bangladesh_Zone_04_Bogura',NULL,'ESRI','Chain','EPSG','4042','ESRI','102937',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102937_USAGE','projected_crs','ESRI','102937','ESRI','162','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','163','Bangladesh - Pabna','Bangladesh - Pabna',23.8,24.7667,88.9833,89.8167,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102937_USAGE','projected_crs','ESRI','102937','ESRI','152','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','153','Bangladesh - Pabna','Bangladesh - Pabna',23.8,24.7667,88.9833,89.8167,0); INSERT INTO "projected_crs" VALUES('ESRI','102938','Cassini_Bangladesh_Zone_05_Pabna',NULL,'ESRI','Chain','EPSG','4042','ESRI','102937',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102938_USAGE','projected_crs','ESRI','102938','ESRI','163','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','164','Bangladesh - Mymensingh','Bangladesh - Mymensingh',23.95,24.4334,89.6333,91.25,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102938_USAGE','projected_crs','ESRI','102938','ESRI','153','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','154','Bangladesh - Mymensingh','Bangladesh - Mymensingh',23.95,24.4334,89.6333,91.25,0); INSERT INTO "conversion" VALUES('ESRI','102939','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',24.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102939_USAGE','conversion','ESRI','102939','ESRI','164','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102939_USAGE','conversion','ESRI','102939','ESRI','154','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102939','Cassini_Bangladesh_Zone_06_Mymensingh',NULL,'ESRI','Chain','EPSG','4042','ESRI','102939',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102939_USAGE','projected_crs','ESRI','102939','ESRI','164','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','165','Bangladesh - Dhaka','Bangladesh - Dhaka',23.3666,24.3334,89.6833,90.9834,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102939_USAGE','projected_crs','ESRI','102939','ESRI','154','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','155','Bangladesh - Dhaka','Bangladesh - Dhaka',23.3666,24.3334,89.6833,90.9834,0); INSERT INTO "projected_crs" VALUES('ESRI','102940','Cassini_Bangladesh_Zone_07_Dhaka',NULL,'ESRI','Chain','EPSG','4042','ESRI','102939',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102940_USAGE','projected_crs','ESRI','102940','ESRI','165','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','166','Bangladesh - Faridpur','Bangladesh - Faridpur',22.8333,23.9,89.2833,89.5834,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102940_USAGE','projected_crs','ESRI','102940','ESRI','155','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','156','Bangladesh - Faridpur','Bangladesh - Faridpur',22.8333,23.9,89.2833,89.5834,0); INSERT INTO "conversion" VALUES('ESRI','102941','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',23.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102941_USAGE','conversion','ESRI','102941','ESRI','166','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102941_USAGE','conversion','ESRI','102941','ESRI','156','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102941','Cassini_Bangladesh_Zone_08_Faridpur',NULL,'ESRI','Chain','EPSG','4042','ESRI','102941',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102941_USAGE','projected_crs','ESRI','102941','ESRI','166','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','167','Bangladesh - Sylhet','Bangladesh - Sylhet',23.9666,25.2,90.9166,92.4834,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102941_USAGE','projected_crs','ESRI','102941','ESRI','156','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','157','Bangladesh - Sylhet','Bangladesh - Sylhet',23.9666,25.2,90.9166,92.4834,0); INSERT INTO "conversion" VALUES('ESRI','102942','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',24.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',92.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102942_USAGE','conversion','ESRI','102942','ESRI','167','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102942_USAGE','conversion','ESRI','102942','ESRI','157','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102942','Cassini_Bangladesh_Zone_09_Sylhet',NULL,'ESRI','Chain','EPSG','4042','ESRI','102942',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102942_USAGE','projected_crs','ESRI','102942','ESRI','167','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','168','Bangladesh - Kushtia','Bangladesh - Kushtia',23.3666,24.2167,88.55,89.35,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102942_USAGE','projected_crs','ESRI','102942','ESRI','157','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','158','Bangladesh - Kushtia','Bangladesh - Kushtia',23.3666,24.2167,88.55,89.35,0); INSERT INTO "conversion" VALUES('ESRI','102943','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',23.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',89.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102943_USAGE','conversion','ESRI','102943','ESRI','168','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102943_USAGE','conversion','ESRI','102943','ESRI','158','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102943','Cassini_Bangladesh_Zone_10_Kushtia',NULL,'ESRI','Chain','EPSG','4042','ESRI','102943',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102943_USAGE','projected_crs','ESRI','102943','ESRI','168','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','169','Bangladesh - Joshore','Bangladesh - Joshore',22.7833,23.7667,88.6833,89.8,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102943_USAGE','projected_crs','ESRI','102943','ESRI','158','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','159','Bangladesh - Joshore','Bangladesh - Joshore',22.7833,23.7667,88.6833,89.8,0); INSERT INTO "projected_crs" VALUES('ESRI','102944','Cassini_Bangladesh_Zone_11_Joshore',NULL,'ESRI','Chain','EPSG','4042','ESRI','102943',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102944_USAGE','projected_crs','ESRI','102944','ESRI','169','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','170','Bangladesh - Khulna','Bangladesh - Khulna',21.6333,23.0,88.8833,89.95,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102944_USAGE','projected_crs','ESRI','102944','ESRI','159','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','160','Bangladesh - Khulna','Bangladesh - Khulna',21.6333,23.0,88.8833,89.95,0); INSERT INTO "conversion" VALUES('ESRI','102945','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',22.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',89.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102945_USAGE','conversion','ESRI','102945','ESRI','170','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102945_USAGE','conversion','ESRI','102945','ESRI','160','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102945','Cassini_Bangladesh_Zone_12_Khulna',NULL,'ESRI','Chain','EPSG','4042','ESRI','102945',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102945_USAGE','projected_crs','ESRI','102945','ESRI','170','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','171','Bangladesh - Barishal','Bangladesh - Barishal',21.7833,23.0667,89.85,91.0334,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102945_USAGE','projected_crs','ESRI','102945','ESRI','160','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','161','Bangladesh - Barishal','Bangladesh - Barishal',21.7833,23.0667,89.85,91.0334,0); INSERT INTO "conversion" VALUES('ESRI','102946','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',22.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.5,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102946_USAGE','conversion','ESRI','102946','ESRI','171','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102946_USAGE','conversion','ESRI','102946','ESRI','161','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102946','Cassini_Bangladesh_Zone_13_Barishal',NULL,'ESRI','Chain','EPSG','4042','ESRI','102946',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102946_USAGE','projected_crs','ESRI','102946','ESRI','171','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','172','Bangladesh - Cumilla','Bangladesh - Cumilla',22.9666,24.2667,90.5166,91.3667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102946_USAGE','projected_crs','ESRI','102946','ESRI','161','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','162','Bangladesh - Cumilla','Bangladesh - Cumilla',22.9666,24.2667,90.5166,91.3667,0); INSERT INTO "conversion" VALUES('ESRI','102947','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',23.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',91.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102947_USAGE','conversion','ESRI','102947','ESRI','172','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102947_USAGE','conversion','ESRI','102947','ESRI','162','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102947','Cassini_Bangladesh_Zone_14_Cumilla',NULL,'ESRI','Chain','EPSG','4042','ESRI','102947',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102947_USAGE','projected_crs','ESRI','102947','ESRI','172','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','173','Bangladesh - Noakhali','Bangladesh - Noakhali',22.0166,23.2834,90.65,91.5667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102947_USAGE','projected_crs','ESRI','102947','ESRI','162','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','163','Bangladesh - Noakhali','Bangladesh - Noakhali',22.0166,23.2834,90.65,91.5667,0); INSERT INTO "projected_crs" VALUES('ESRI','102948','Cassini_Bangladesh_Zone_15_Noakhali',NULL,'ESRI','Chain','EPSG','4042','ESRI','102947',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102948_USAGE','projected_crs','ESRI','102948','ESRI','173','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','174','Bangladesh - Chottogram','Bangladesh - Chottogram',20.5833,22.9834,91.3,92.3667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102948_USAGE','projected_crs','ESRI','102948','ESRI','163','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','164','Bangladesh - Chottogram','Bangladesh - Chottogram',20.5833,22.9834,91.3,92.3667,0); INSERT INTO "conversion" VALUES('ESRI','102949','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',22.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',92.0,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102949_USAGE','conversion','ESRI','102949','ESRI','174','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102949_USAGE','conversion','ESRI','102949','ESRI','164','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102949','Cassini_Bangladesh_Zone_16_Chottogram',NULL,'ESRI','Chain','EPSG','4042','ESRI','102949',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102949_USAGE','projected_crs','ESRI','102949','ESRI','174','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','175','Bangladesh - CHT','Bangladesh - CHT',21.1833,23.7334,91.7,92.6667,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102949_USAGE','projected_crs','ESRI','102949','ESRI','164','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','165','Bangladesh - CHT','Bangladesh - CHT',21.1833,23.7334,91.7,92.6667,0); INSERT INTO "conversion" VALUES('ESRI','102950','unnamed',NULL,'EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',22.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',92.25,'EPSG','9102','EPSG','8806','False easting',0.0,'EPSG','9097','EPSG','8807','False northing',0.0,'EPSG','9097',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102950_USAGE','conversion','ESRI','102950','ESRI','175','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102950_USAGE','conversion','ESRI','102950','ESRI','165','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102950','Cassini_Bangladesh_Zone_17_CHT',NULL,'ESRI','Chain','EPSG','4042','ESRI','102950',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102950_USAGE','projected_crs','ESRI','102950','ESRI','175','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102950_USAGE','projected_crs','ESRI','102950','ESRI','165','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102951','unnamed',NULL,'EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',26.0,'EPSG','9102','EPSG','8822','Longitude of false origin',90.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',23.15,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',28.8,'EPSG','9102','EPSG','8826','Easting at false origin',2743183.6991,'EPSG','9001','EPSG','8827','Northing at false origin',914395.233,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'CONV_102951_USAGE','conversion','ESRI','102951','EPSG','1041','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102951','LCC_Bangladesh',NULL,'EPSG','4400','EPSG','4326','ESRI','102951',NULL,0); @@ -12318,11 +12601,11 @@ INSERT INTO "projected_crs" VALUES('ESRI','102954','BUTM2010',NULL,'EPSG','4400' INSERT INTO "usage" VALUES('ESRI', 'PCRS_102954_USAGE','projected_crs','ESRI','102954','EPSG','1041','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102955','UTM_Gulshan',NULL,'EPSG','4400','EPSG','4682','EPSG','16490',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_102955_USAGE','projected_crs','ESRI','102955','EPSG','1041','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','176','Australia - Lord Howe Island - 158~E to 160~E (ISG 57/2)','Australia - Lord Howe Island - 158~E to 160~E (ISG 57/2)',-47.2,-28.15,158.0,160.0,0); +INSERT INTO "extent" VALUES('ESRI','166','Australia - Lord Howe Island - 158~E to 160~E (ISG 57/2)','Australia - Lord Howe Island - 158~E to 160~E (ISG 57/2)',-47.2,-28.15,158.0,160.0,0); INSERT INTO "conversion" VALUES('ESRI','102961','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99994,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_102961_USAGE','conversion','ESRI','102961','ESRI','176','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_102961_USAGE','conversion','ESRI','102961','ESRI','166','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102961','AGD_1966_ISG_57_2',NULL,'EPSG','4400','EPSG','4202','ESRI','102961',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_102961_USAGE','projected_crs','ESRI','102961','ESRI','176','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_102961_USAGE','projected_crs','ESRI','102961','ESRI','166','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','102962','unnamed',NULL,'EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',0.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-120.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',34.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',40.5,'EPSG','9102','EPSG','8826','Easting at false origin',0.0,'EPSG','9001','EPSG','8827','Northing at false origin',-4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_102962_USAGE','conversion','ESRI','102962','EPSG','1375','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','102962','NAD_1983_2011_California_Teale_Albers',NULL,'EPSG','4400','EPSG','6318','ESRI','102962',NULL,1); @@ -14259,31 +14542,31 @@ INSERT INTO "conversion" VALUES('ESRI','103585','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_103585_USAGE','conversion','ESRI','103585','EPSG','2271','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103585','NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904_Ft_US',NULL,'EPSG','4497','EPSG','6783','ESRI','103585',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103585_USAGE','projected_crs','ESRI','103585','EPSG','2271','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','177','Navajo Nation','Navajo Nation',32.8,37.75,-114.04,-106.17,0); +INSERT INTO "extent" VALUES('ESRI','167','Navajo Nation','Navajo Nation',32.8,37.75,-114.04,-106.17,0); INSERT INTO "conversion" VALUES('ESRI','103586','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',36.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-109.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00023,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',600000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_103586_USAGE','conversion','ESRI','103586','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_103586_USAGE','conversion','ESRI','103586','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103586','NAD_1983_HARN_Navajo_Nation_Coordinate_System_Meters',NULL,'EPSG','4400','EPSG','4152','ESRI','103586',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103586_USAGE','projected_crs','ESRI','103586','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103586_USAGE','projected_crs','ESRI','103586','ESRI','167','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','103587','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',36.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-109.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00023,'EPSG','9201','EPSG','8806','False easting',984250.0,'EPSG','9003','EPSG','8807','False northing',1968500.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_103587_USAGE','conversion','ESRI','103587','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_103587_USAGE','conversion','ESRI','103587','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103587','NAD_1983_HARN_Navajo_Nation_Coordinate_System_US_Feet',NULL,'EPSG','4497','EPSG','4152','ESRI','103587',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103587_USAGE','projected_crs','ESRI','103587','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103587_USAGE','projected_crs','ESRI','103587','ESRI','167','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','103588','unnamed',NULL,'EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',36.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-109.5,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00023,'EPSG','9201','EPSG','8806','False easting',984251.968503937,'EPSG','9002','EPSG','8807','False northing',1968503.937007874,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_103588_USAGE','conversion','ESRI','103588','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_103588_USAGE','conversion','ESRI','103588','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103588','NAD_1983_HARN_Navajo_Nation_Coordinate_System_Intl_Feet',NULL,'EPSG','4495','EPSG','4152','ESRI','103588',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103588_USAGE','projected_crs','ESRI','103588','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103588_USAGE','projected_crs','ESRI','103588','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103589','NAD_1983_NSRS2007_Navajo_Nation_Coordinate_System_Meters',NULL,'EPSG','4400','EPSG','4759','ESRI','103586',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103589_USAGE','projected_crs','ESRI','103589','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103589_USAGE','projected_crs','ESRI','103589','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103590','NAD_1983_NSRS2007_Navajo_Nation_Coordinate_System_US_Feet',NULL,'EPSG','4497','EPSG','4759','ESRI','103587',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103590_USAGE','projected_crs','ESRI','103590','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103590_USAGE','projected_crs','ESRI','103590','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103591','NAD_1983_NSRS2007_Navajo_Nation_Coordinate_System_Intl_Feet',NULL,'EPSG','4495','EPSG','4759','ESRI','103588',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103591_USAGE','projected_crs','ESRI','103591','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103591_USAGE','projected_crs','ESRI','103591','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103592','NAD_1983_(2011)_Navajo_Nation_Coordinate_System_Meters',NULL,'EPSG','4400','EPSG','6318','ESRI','103586',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103592_USAGE','projected_crs','ESRI','103592','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103592_USAGE','projected_crs','ESRI','103592','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103593','NAD_1983_(2011)_Navajo_Nation_Coordinate_System_US_Feet',NULL,'EPSG','4497','EPSG','6318','ESRI','103587',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103593_USAGE','projected_crs','ESRI','103593','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103593_USAGE','projected_crs','ESRI','103593','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103594','NAD_1983_(2011)_Navajo_Nation_Coordinate_System_Intl_Feet',NULL,'EPSG','4495','EPSG','6318','ESRI','103588',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103594_USAGE','projected_crs','ESRI','103594','ESRI','177','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103594_USAGE','projected_crs','ESRI','103594','ESRI','167','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103595','ONGD17_UTM_Zone_39N',NULL,'EPSG','4400','EPSG','9294','EPSG','16039',NULL,1); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103595_USAGE','projected_crs','ESRI','103595','EPSG','4322','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103596','ONGD17_UTM_Zone_40N',NULL,'EPSG','4400','EPSG','9294','EPSG','16040',NULL,1); @@ -15236,12 +15519,12 @@ INSERT INTO "projected_crs" VALUES('ESRI','103877','Moon_2000_North_Pole_Stereog INSERT INTO "usage" VALUES('ESRI', 'PCRS_103877_USAGE','projected_crs','ESRI','103877','EPSG','1996','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103878','Moon_2000_South_Pole_Stereographic',NULL,NULL,NULL,'ESRI','104903',NULL,NULL,'PROJCS["Moon_2000_South_Pole_Stereographic",GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103878_USAGE','projected_crs','ESRI','103878','EPSG','1997','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','178','Moon - Far Side','Moon - Far Side',-90.0,90.0,90.0,-90.0,0); +INSERT INTO "extent" VALUES('ESRI','168','Moon - Far Side','Moon - Far Side',-90.0,90.0,90.0,-90.0,0); INSERT INTO "projected_crs" VALUES('ESRI','103879','Moon_2000_Far_Side_Lambert_Azimuthal_Equal_Area',NULL,NULL,NULL,'ESRI','104903',NULL,NULL,'PROJCS["Moon_2000_Far_Side_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103879_USAGE','projected_crs','ESRI','103879','ESRI','178','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','179','Moon - Near Side','Moon - Near Side',-90.0,90.0,-90.0,90.0,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103879_USAGE','projected_crs','ESRI','103879','ESRI','168','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','169','Moon - Near Side','Moon - Near Side',-90.0,90.0,-90.0,90.0,0); INSERT INTO "projected_crs" VALUES('ESRI','103880','Moon_2000_Near_Side_Lambert_Azimuthal_Equal_Area',NULL,NULL,NULL,'ESRI','104903',NULL,NULL,'PROJCS["Moon_2000_Near_Side_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]',0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_103880_USAGE','projected_crs','ESRI','103880','ESRI','179','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103880_USAGE','projected_crs','ESRI','103880','ESRI','169','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103881','Moon_2000_Equidistant_Cylindrical',NULL,NULL,NULL,'ESRI','104903',NULL,NULL,'PROJCS["Moon_2000_Equidistant_Cylindrical",GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical_Ellipsoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0]]',0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103881_USAGE','projected_crs','ESRI','103881','EPSG','1262','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103882','Moon_2000_Sinusoidal',NULL,NULL,NULL,'ESRI','104903',NULL,NULL,'PROJCS["Moon_2000_Sinusoidal",GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0]]',0); @@ -15280,6 +15563,11 @@ INSERT INTO "projected_crs" VALUES('ESRI','103895','California_SRS_Epoch_2017.50 INSERT INTO "usage" VALUES('ESRI', 'PCRS_103895_USAGE','projected_crs','ESRI','103895','EPSG','2182','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103896','California_SRS_Epoch_2017.50_(NAD83)_StatePlane_CA_VI_US_Feet',NULL,'EPSG','4497','ESRI','104024','ESRI','103243',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103896_USAGE','projected_crs','ESRI','103896','EPSG','2180','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','170','Nebraska - Douglas-Sarpy County','Nebraska - Douglas-Sarpy County',40.97867215,41.42005883,-96.49199812,-95.82241321,0); +INSERT INTO "conversion" VALUES('ESRI','103897','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.18333333333333,'EPSG','9102','EPSG','8802','Longitude of natural origin',-96.05,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0000482,'EPSG','9201','EPSG','8806','False easting',131233.5958005249,'EPSG','9002','EPSG','8807','False northing',82020.99737532808,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'CONV_103897_USAGE','conversion','ESRI','103897','ESRI','170','EPSG','1024'); +INSERT INTO "projected_crs" VALUES('ESRI','103897','NAD_1983_2011_Nebraska_LDP_Douglas-Sarpy_County_Ft_Intl',NULL,'EPSG','4495','EPSG','6318','ESRI','103897',NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_103897_USAGE','projected_crs','ESRI','103897','ESRI','170','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','103900','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.36666666666667,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999999,'EPSG','9201','EPSG','8806','False easting',483000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'CONV_103900_USAGE','conversion','ESRI','103900','EPSG','1418','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','103900','NAD_1983_HARN_Adj_WI_Adams_Feet',NULL,'EPSG','4497','ESRI','104800','ESRI','103900',NULL,1); @@ -15555,413 +15843,413 @@ INSERT INTO "usage" VALUES('ESRI', 'PCRS_103976_USAGE','projected_crs','ESRI','1 INSERT INTO "projected_crs" VALUES('ESRI','103977','WGS_1984_UTM_GTM_2010',NULL,'EPSG','4400','EPSG','4326','EPSG','5222',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_103977_USAGE','projected_crs','ESRI','103977','EPSG','3249','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112000','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9992600288218829,'EPSG','9201','EPSG','8806','False easting',261910.5587031571,'EPSG','9001','EPSG','8807','False northing',70975.76209131356,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112000_USAGE','conversion','ESRI','112000','ESRI','98','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112000_USAGE','conversion','ESRI','112000','ESRI','94','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112000','OSGB36_National_Highways_A01H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112000',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112000_USAGE','projected_crs','ESRI','112000','ESRI','98','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112000_USAGE','projected_crs','ESRI','112000','ESRI','94','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112001','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993139726802819,'EPSG','9201','EPSG','8806','False easting',252927.2843542255,'EPSG','9001','EPSG','8807','False northing',70979.593633004,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112001_USAGE','conversion','ESRI','112001','ESRI','99','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112001_USAGE','conversion','ESRI','112001','ESRI','95','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112001','OSGB36_National_Highways_A02H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112001',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112001_USAGE','projected_crs','ESRI','112001','ESRI','99','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112001_USAGE','projected_crs','ESRI','112001','ESRI','95','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112002','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993649250057596,'EPSG','9201','EPSG','8806','False easting',243942.3084033331,'EPSG','9001','EPSG','8807','False northing',70983.2126911338,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112002_USAGE','conversion','ESRI','112002','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112002_USAGE','conversion','ESRI','112002','ESRI','96','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112002','OSGB36_National_Highways_A03H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112002',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112002_USAGE','projected_crs','ESRI','112002','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112002_USAGE','projected_crs','ESRI','112002','ESRI','96','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112003','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993899100658244,'EPSG','9201','EPSG','8806','False easting',243948.4071897476,'EPSG','9001','EPSG','8807','False northing',70984.98733800034,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112003_USAGE','conversion','ESRI','112003','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112003_USAGE','conversion','ESRI','112003','ESRI','96','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112003','OSGB36_National_Highways_A03H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112003',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112003_USAGE','projected_crs','ESRI','112003','ESRI','100','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112003_USAGE','projected_crs','ESRI','112003','ESRI','96','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112004','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999414883310307,'EPSG','9201','EPSG','8806','False easting',234956.1812566491,'EPSG','9001','EPSG','8807','False northing',70986.7611456259,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112004_USAGE','conversion','ESRI','112004','ESRI','101','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112004_USAGE','conversion','ESRI','112004','ESRI','97','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112004','OSGB36_National_Highways_A04H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112004',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112004_USAGE','projected_crs','ESRI','112004','ESRI','101','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112004_USAGE','projected_crs','ESRI','112004','ESRI','97','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112005','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994648466099409,'EPSG','9201','EPSG','8806','False easting',225969.1556311239,'EPSG','9001','EPSG','8807','False northing',70990.3099549106,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112005_USAGE','conversion','ESRI','112005','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112005_USAGE','conversion','ESRI','112005','ESRI','98','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112005','OSGB36_National_Highways_A05H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112005',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112005_USAGE','projected_crs','ESRI','112005','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112005_USAGE','projected_crs','ESRI','112005','ESRI','98','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112006','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994898341681397,'EPSG','9201','EPSG','8806','False easting',225974.8050718687,'EPSG','9001','EPSG','8807','False northing',70992.08477921539,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112006_USAGE','conversion','ESRI','112006','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112006_USAGE','conversion','ESRI','112006','ESRI','98','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112006','OSGB36_National_Highways_A05H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112006',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112006_USAGE','projected_crs','ESRI','112006','ESRI','102','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112006_USAGE','projected_crs','ESRI','112006','ESRI','98','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112007','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995158143222824,'EPSG','9201','EPSG','8806','False easting',215981.5338434338,'EPSG','9001','EPSG','8807','False northing',70993.93010594351,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112007_USAGE','conversion','ESRI','112007','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112007_USAGE','conversion','ESRI','112007','ESRI','99','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112007','OSGB36_National_Highways_A06H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112007',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112007_USAGE','projected_crs','ESRI','112007','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112007_USAGE','projected_crs','ESRI','112007','ESRI','99','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112008','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995408031547217,'EPSG','9201','EPSG','8806','False easting',215986.9335842702,'EPSG','9001','EPSG','8807','False northing',70995.70502075547,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112008_USAGE','conversion','ESRI','112008','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112008_USAGE','conversion','ESRI','112008','ESRI','99','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112008','OSGB36_National_Highways_A06H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112008',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112008_USAGE','projected_crs','ESRI','112008','ESRI','103','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112008_USAGE','projected_crs','ESRI','112008','ESRI','99','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112009','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995637886826517,'EPSG','9201','EPSG','8806','False easting',205992.275418417,'EPSG','9001','EPSG','8807','False northing',70997.33764421167,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112009_USAGE','conversion','ESRI','112009','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112009_USAGE','conversion','ESRI','112009','ESRI','100','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112009','OSGB36_National_Highways_A07H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112009',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112009_USAGE','projected_crs','ESRI','112009','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112009_USAGE','projected_crs','ESRI','112009','ESRI','100','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112010','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999588778714495,'EPSG','9201','EPSG','8806','False easting',205997.4254184274,'EPSG','9001','EPSG','8807','False northing',70999.11264421527,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112010_USAGE','conversion','ESRI','112010','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112010_USAGE','conversion','ESRI','112010','ESRI','100','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112010','OSGB36_National_Highways_A07H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112010',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112010_USAGE','projected_crs','ESRI','112010','ESRI','104','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112010_USAGE','projected_crs','ESRI','112010','ESRI','100','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112011','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996127672593187,'EPSG','9201','EPSG','8806','False easting',196002.2540283714,'EPSG','9001','EPSG','8807','False northing',71000.81651027738,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112011_USAGE','conversion','ESRI','112011','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112011_USAGE','conversion','ESRI','112011','ESRI','101','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112011','OSGB36_National_Highways_A08H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112011',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112011_USAGE','projected_crs','ESRI','112011','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112011_USAGE','projected_crs','ESRI','112011','ESRI','101','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112012','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996377585156724,'EPSG','9201','EPSG','8806','False easting',196007.1542684811,'EPSG','9001','EPSG','8807','False northing',71002.5915972559,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112012_USAGE','conversion','ESRI','112012','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112012_USAGE','conversion','ESRI','112012','ESRI','101','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112012','OSGB36_National_Highways_A08H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112012',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112012_USAGE','projected_crs','ESRI','112012','ESRI','105','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112012_USAGE','projected_crs','ESRI','112012','ESRI','101','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112013','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996617506361164,'EPSG','9201','EPSG','8806','False easting',185011.1930661738,'EPSG','9001','EPSG','8807','False northing',71004.29571728832,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112013_USAGE','conversion','ESRI','112013','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112013_USAGE','conversion','ESRI','112013','ESRI','102','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112013','OSGB36_National_Highways_A09H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112013',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112013_USAGE','projected_crs','ESRI','112013','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112013_USAGE','projected_crs','ESRI','112013','ESRI','102','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112014','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996867431171,'EPSG','9201','EPSG','8806','False easting',185015.8185194549,'EPSG','9001','EPSG','8807','False northing',71006.07089125027,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112014_USAGE','conversion','ESRI','112014','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112014_USAGE','conversion','ESRI','112014','ESRI','102','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112014','OSGB36_National_Highways_A09H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112014',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112014_USAGE','projected_crs','ESRI','112014','ESRI','106','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112014_USAGE','projected_crs','ESRI','112014','ESRI','102','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112015','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997127384331908,'EPSG','9201','EPSG','8806','False easting',173019.2914368838,'EPSG','9001','EPSG','8807','False northing',71007.91729490607,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112015_USAGE','conversion','ESRI','112015','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112015_USAGE','conversion','ESRI','112015','ESRI','103','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112015','OSGB36_National_Highways_A10H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112015',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112015_USAGE','projected_crs','ESRI','112015','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112015_USAGE','projected_crs','ESRI','112015','ESRI','103','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112016','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997377321889175,'EPSG','9201','EPSG','8806','False easting',173023.6170813814,'EPSG','9001','EPSG','8807','False northing',71009.69255941088,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112016_USAGE','conversion','ESRI','112016','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112016_USAGE','conversion','ESRI','112016','ESRI','103','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112016','OSGB36_National_Highways_A10H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112016',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112016_USAGE','projected_crs','ESRI','112016','ESRI','107','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112016_USAGE','projected_crs','ESRI','112016','ESRI','103','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112017','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997667311819567,'EPSG','9201','EPSG','8806','False easting',159026.3185515824,'EPSG','9001','EPSG','8807','False northing',71011.75230919718,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112017_USAGE','conversion','ESRI','112017','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112017_USAGE','conversion','ESRI','112017','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112017','OSGB36_National_Highways_A11H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112017',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112017_USAGE','projected_crs','ESRI','112017','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112017_USAGE','projected_crs','ESRI','112017','ESRI','104','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112018','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997917262875528,'EPSG','9201','EPSG','8806','False easting',159030.294358639,'EPSG','9001','EPSG','8807','False northing',71013.52766958093,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112018_USAGE','conversion','ESRI','112018','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112018_USAGE','conversion','ESRI','112018','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112018','OSGB36_National_Highways_A11H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112018',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112018_USAGE','projected_crs','ESRI','112018','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112018_USAGE','projected_crs','ESRI','112018','ESRI','104','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112019','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999816722642982,'EPSG','9201','EPSG','8806','False easting',159034.2703644983,'EPSG','9001','EPSG','8807','False northing',71015.30311873824,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112019_USAGE','conversion','ESRI','112019','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112019_USAGE','conversion','ESRI','112019','ESRI','104','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112019','OSGB36_National_Highways_A11H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112019',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112019_USAGE','projected_crs','ESRI','112019','ESRI','108','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112019_USAGE','projected_crs','ESRI','112019','ESRI','104','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112020','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998167296682084,'EPSG','9201','EPSG','8806','False easting',144031.0383232799,'EPSG','9001','EPSG','8807','False northing',71015.30361772828,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112020_USAGE','conversion','ESRI','112020','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112020_USAGE','conversion','ESRI','112020','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112020','OSGB36_National_Highways_A12H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112020',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112020_USAGE','projected_crs','ESRI','112020','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112020_USAGE','projected_crs','ESRI','112020','ESRI','105','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112021','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998417260238136,'EPSG','9201','EPSG','8806','False easting',144034.6392342722,'EPSG','9001','EPSG','8807','False northing',71017.07906689808,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112021_USAGE','conversion','ESRI','112021','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112021_USAGE','conversion','ESRI','112021','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112021','OSGB36_National_Highways_A12H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112021',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112021_USAGE','projected_crs','ESRI','112021','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112021_USAGE','projected_crs','ESRI','112021','ESRI','105','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112022','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998667236293144,'EPSG','9201','EPSG','8806','False easting',144038.2403253212,'EPSG','9001','EPSG','8807','False northing',71018.85460484587,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112022_USAGE','conversion','ESRI','112022','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112022_USAGE','conversion','ESRI','112022','ESRI','105','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112022','OSGB36_National_Highways_A12H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112022',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112022_USAGE','projected_crs','ESRI','112022','ESRI','109','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112022_USAGE','projected_crs','ESRI','112022','ESRI','105','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112023','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998647329200487,'EPSG','9201','EPSG','8806','False easting',128033.7364878587,'EPSG','9001','EPSG','8807','False northing',71018.71320810913,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112023_USAGE','conversion','ESRI','112023','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112023_USAGE','conversion','ESRI','112023','ESRI','106','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112023','OSGB36_National_Highways_A13H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112023',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112023_USAGE','projected_crs','ESRI','112023','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112023_USAGE','projected_crs','ESRI','112023','ESRI','106','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112024','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998897304757802,'EPSG','9201','EPSG','8806','False easting',128036.937451307,'EPSG','9001','EPSG','8807','False northing',71020.48874252186,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112024_USAGE','conversion','ESRI','112024','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112024_USAGE','conversion','ESRI','112024','ESRI','106','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112024','OSGB36_National_Highways_A13H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112024',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112024_USAGE','projected_crs','ESRI','112024','ESRI','110','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112024_USAGE','projected_crs','ESRI','112024','ESRI','106','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112025','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999137409943842,'EPSG','9201','EPSG','8806','False easting',111034.697926722,'EPSG','9001','EPSG','8807','False northing',71022.19416934469,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112025_USAGE','conversion','ESRI','112025','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112025_USAGE','conversion','ESRI','112025','ESRI','107','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112025','OSGB36_National_Highways_A14H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112025',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112025_USAGE','projected_crs','ESRI','112025','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112025_USAGE','projected_crs','ESRI','112025','ESRI','107','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112026','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999387397753633,'EPSG','9201','EPSG','8806','False easting',111037.4738982691,'EPSG','9001','EPSG','8807','False northing',71023.96979078473,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112026_USAGE','conversion','ESRI','112026','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112026_USAGE','conversion','ESRI','112026','ESRI','107','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112026','OSGB36_National_Highways_A14H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112026',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112026_USAGE','projected_crs','ESRI','112026','ESRI','111','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112026_USAGE','projected_crs','ESRI','112026','ESRI','107','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112027','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999667551366491,'EPSG','9201','EPSG','8806','False easting',88032.17537165637,'EPSG','9001','EPSG','8807','False northing',71025.95967485911,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112027_USAGE','conversion','ESRI','112027','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112027_USAGE','conversion','ESRI','112027','ESRI','108','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112027','OSGB36_National_Highways_A15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112027',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112027_USAGE','projected_crs','ESRI','112027','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112027_USAGE','projected_crs','ESRI','112027','ESRI','108','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112028','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999917552430316,'EPSG','9201','EPSG','8806','False easting',88034.37625857393,'EPSG','9001','EPSG','8807','False northing',71027.73539044033,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112028_USAGE','conversion','ESRI','112028','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112028_USAGE','conversion','ESRI','112028','ESRI','108','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112028','OSGB36_National_Highways_A15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112028',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112028_USAGE','projected_crs','ESRI','112028','ESRI','112','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112028_USAGE','projected_crs','ESRI','112028','ESRI','108','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112029','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000011771557166,'EPSG','9201','EPSG','8806','False easting',54022.17583441971,'EPSG','9001','EPSG','8807','False northing',71029.1571156259,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112029_USAGE','conversion','ESRI','112029','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112029_USAGE','conversion','ESRI','112029','ESRI','109','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112029','OSGB36_National_Highways_A16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112029',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112029_USAGE','projected_crs','ESRI','112029','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112029_USAGE','projected_crs','ESRI','112029','ESRI','109','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112030','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000036772789,'EPSG','9201','EPSG','8806','False easting',54023.52643946325,'EPSG','9001','EPSG','8807','False northing',71030.93291114613,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112030_USAGE','conversion','ESRI','112030','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112030_USAGE','conversion','ESRI','112030','ESRI','109','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112030','OSGB36_National_Highways_A16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112030',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112030_USAGE','projected_crs','ESRI','112030','ESRI','113','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112030_USAGE','projected_crs','ESRI','112030','ESRI','109','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112031','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999807598109365,'EPSG','9201','EPSG','8806','False easting',-24009.11134761462,'EPSG','9001','EPSG','8807','False northing',71026.9544033599,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112031_USAGE','conversion','ESRI','112031','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112031_USAGE','conversion','ESRI','112031','ESRI','110','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112031','OSGB36_National_Highways_A17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112031',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112031_USAGE','projected_crs','ESRI','112031','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112031_USAGE','projected_crs','ESRI','112031','ESRI','110','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112032','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000005760267449,'EPSG','9201','EPSG','8806','False easting',-24009.7115979077,'EPSG','9001','EPSG','8807','False northing',71028.73014381027,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112032_USAGE','conversion','ESRI','112032','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112032_USAGE','conversion','ESRI','112032','ESRI','110','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112032','OSGB36_National_Highways_A17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112032',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112032_USAGE','projected_crs','ESRI','112032','ESRI','114','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112032_USAGE','projected_crs','ESRI','112032','ESRI','110','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112033','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999277441837596,'EPSG','9201','EPSG','8806','False easting',-58018.94295715116,'EPSG','9001','EPSG','8807','False northing',71023.1887923747,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112033_USAGE','conversion','ESRI','112033','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112033_USAGE','conversion','ESRI','112033','ESRI','111','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112033','OSGB36_National_Highways_A18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112033',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112033_USAGE','projected_crs','ESRI','112033','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112033_USAGE','projected_crs','ESRI','112033','ESRI','111','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112034','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999527433148317,'EPSG','9201','EPSG','8806','False easting',-58020.39348511989,'EPSG','9001','EPSG','8807','False northing',71024.96443868124,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112034_USAGE','conversion','ESRI','112034','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112034_USAGE','conversion','ESRI','112034','ESRI','111','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112034','OSGB36_National_Highways_A18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112034',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112034_USAGE','projected_crs','ESRI','112034','ESRI','115','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112034_USAGE','projected_crs','ESRI','112034','ESRI','111','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112035','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999873734042937,'EPSG','9201','EPSG','8806','False easting',-88023.98625017522,'EPSG','9001','EPSG','8807','False northing',71019.352542755,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112035_USAGE','conversion','ESRI','112035','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112035_USAGE','conversion','ESRI','112035','ESRI','112','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112035','OSGB36_National_Highways_A19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112035',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112035_USAGE','projected_crs','ESRI','112035','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112035_USAGE','projected_crs','ESRI','112035','ESRI','112','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112036','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998987318237049,'EPSG','9201','EPSG','8806','False easting',-88026.18693235706,'EPSG','9001','EPSG','8807','False northing',71021.12809315171,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112036_USAGE','conversion','ESRI','112036','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112036_USAGE','conversion','ESRI','112036','ESRI','112','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112036','OSGB36_National_Highways_A19H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112036',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112036_USAGE','projected_crs','ESRI','112036','ESRI','116','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112036_USAGE','projected_crs','ESRI','112036','ESRI','112','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112037','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998257299268304,'EPSG','9201','EPSG','8806','False easting',-105023.5775148396,'EPSG','9001','EPSG','8807','False northing',71015.94289098677,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112037_USAGE','conversion','ESRI','112037','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112037_USAGE','conversion','ESRI','112037','ESRI','113','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112037','OSGB36_National_Highways_A20H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112037',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112037_USAGE','projected_crs','ESRI','112037','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112037_USAGE','projected_crs','ESRI','112037','ESRI','113','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112038','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998507265074503,'EPSG','9201','EPSG','8806','False easting',-105026.2032027408,'EPSG','9001','EPSG','8807','False northing',71017.718356139,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112038_USAGE','conversion','ESRI','112038','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112038_USAGE','conversion','ESRI','112038','ESRI','113','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112038','OSGB36_National_Highways_A20H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112038',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112038_USAGE','projected_crs','ESRI','112038','ESRI','117','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112038_USAGE','projected_crs','ESRI','112038','ESRI','113','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112039','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997707308768334,'EPSG','9201','EPSG','8806','False easting',-122020.6822661785,'EPSG','9001','EPSG','8807','False northing',71012.03640080881,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112039_USAGE','conversion','ESRI','112039','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112039_USAGE','conversion','ESRI','112039','ESRI','114','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112039','OSGB36_National_Highways_A21H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112039',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112039_USAGE','projected_crs','ESRI','112039','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112039_USAGE','projected_crs','ESRI','112039','ESRI','114','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112040','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997957260824256,'EPSG','9201','EPSG','8806','False easting',-122023.7328976339,'EPSG','9001','EPSG','8807','False northing',71013.81176829511,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112040_USAGE','conversion','ESRI','112040','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112040_USAGE','conversion','ESRI','112040','ESRI','114','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112040','OSGB36_National_Highways_A21H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112040',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112040_USAGE','projected_crs','ESRI','112040','ESRI','118','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112040_USAGE','projected_crs','ESRI','112040','ESRI','114','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112041','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997077393995895,'EPSG','9201','EPSG','8806','False easting',-139014.8049133809,'EPSG','9001','EPSG','8807','False northing',71007.56222194275,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112041_USAGE','conversion','ESRI','112041','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112041_USAGE','conversion','ESRI','112041','ESRI','115','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112041','OSGB36_National_Highways_A22H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112041',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112041_USAGE','projected_crs','ESRI','112041','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112041_USAGE','projected_crs','ESRI','112041','ESRI','115','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112042','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997327330303357,'EPSG','9201','EPSG','8806','False easting',-139018.280413835,'EPSG','9001','EPSG','8807','False northing',71009.3374775704,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112042_USAGE','conversion','ESRI','112042','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112042_USAGE','conversion','ESRI','112042','ESRI','115','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112042','OSGB36_National_Highways_A22H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112042',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112042_USAGE','projected_crs','ESRI','112042','ESRI','119','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112042_USAGE','projected_crs','ESRI','112042','ESRI','115','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112043','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996557524136872,'EPSG','9201','EPSG','8806','False easting',-156008.5023814753,'EPSG','9001','EPSG','8807','False northing',71003.86967362018,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112043_USAGE','conversion','ESRI','112043','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112043_USAGE','conversion','ESRI','112043','ESRI','116','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112043','OSGB36_National_Highways_A23H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112043',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112043_USAGE','projected_crs','ESRI','112043','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112043_USAGE','projected_crs','ESRI','112043','ESRI','116','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112044','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99968074474471,'EPSG','9201','EPSG','8806','False easting',-156012.4027402983,'EPSG','9001','EPSG','8807','False northing',71005.64483693065,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112044_USAGE','conversion','ESRI','112044','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112044_USAGE','conversion','ESRI','112044','ESRI','116','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112044','OSGB36_National_Highways_A23H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112044',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112044_USAGE','projected_crs','ESRI','112044','ESRI','120','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112044_USAGE','projected_crs','ESRI','112044','ESRI','116','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112045','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996127672593187,'EPSG','9201','EPSG','8806','False easting',-165001.8975238841,'EPSG','9001','EPSG','8807','False northing',71000.81651027738,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112045_USAGE','conversion','ESRI','112045','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112045_USAGE','conversion','ESRI','112045','ESRI','117','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112045','OSGB36_National_Highways_A24H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112045',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112045_USAGE','projected_crs','ESRI','112045','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112045_USAGE','projected_crs','ESRI','112045','ESRI','117','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112046','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996377585156724,'EPSG','9201','EPSG','8806','False easting',-165006.0227260173,'EPSG','9001','EPSG','8807','False northing',71002.5915972559,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112046_USAGE','conversion','ESRI','112046','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112046_USAGE','conversion','ESRI','112046','ESRI','117','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112046','OSGB36_National_Highways_A24H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112046',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112046_USAGE','projected_crs','ESRI','112046','ESRI','121','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112046_USAGE','projected_crs','ESRI','112046','ESRI','117','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112047','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995647881974643,'EPSG','9201','EPSG','8806','False easting',-175993.5763422596,'EPSG','9001','EPSG','8807','False northing',70997.40863807063,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112047_USAGE','conversion','ESRI','112047','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112047_USAGE','conversion','ESRI','112047','ESRI','118','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112047','OSGB36_National_Highways_A25H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112047',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112047_USAGE','projected_crs','ESRI','112047','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112047_USAGE','projected_crs','ESRI','112047','ESRI','118','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112048','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995897782542964,'EPSG','9201','EPSG','8806','False easting',-175997.9763466683,'EPSG','9001','EPSG','8807','False northing',70999.18363984914,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112048_USAGE','conversion','ESRI','112048','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112048_USAGE','conversion','ESRI','112048','ESRI','118','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112048','OSGB36_National_Highways_A25H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112048',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112048_USAGE','projected_crs','ESRI','112048','ESRI','122','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112048_USAGE','projected_crs','ESRI','112048','ESRI','118','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112049','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995168137411531,'EPSG','9201','EPSG','8806','False easting',-185984.2845534612,'EPSG','9001','EPSG','8807','False northing',70994.00109298788,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112049_USAGE','conversion','ESRI','112049','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112049_USAGE','conversion','ESRI','112049','ESRI','119','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112049','OSGB36_National_Highways_A26H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112049',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112049_USAGE','projected_crs','ESRI','112049','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112049_USAGE','projected_crs','ESRI','112049','ESRI','119','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112050','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995418025985787,'EPSG','9201','EPSG','8806','False easting',-185988.9343349418,'EPSG','9001','EPSG','8807','False northing',70995.77600957456,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112050_USAGE','conversion','ESRI','112050','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112050_USAGE','conversion','ESRI','112050','ESRI','119','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112050','OSGB36_National_Highways_A26H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112050',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112050_USAGE','projected_crs','ESRI','112050','ESRI','123','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112050_USAGE','projected_crs','ESRI','112050','ESRI','119','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112051','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994668452458347,'EPSG','9201','EPSG','8806','False easting',-195973.6419052653,'EPSG','9001','EPSG','8807','False northing',70990.45191466244,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112051_USAGE','conversion','ESRI','112051','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112051_USAGE','conversion','ESRI','112051','ESRI','120','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112051','OSGB36_National_Highways_A27H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112051',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112051_USAGE','projected_crs','ESRI','112051','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112051_USAGE','projected_crs','ESRI','112051','ESRI','120','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112052','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994918328540012,'EPSG','9201','EPSG','8806','False easting',-195978.5414300451,'EPSG','9001','EPSG','8807','False northing',70992.22674251634,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112052_USAGE','conversion','ESRI','112052','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112052_USAGE','conversion','ESRI','112052','ESRI','120','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112052','OSGB36_National_Highways_A27H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112052',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112052_USAGE','projected_crs','ESRI','112052','ESRI','124','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112052_USAGE','projected_crs','ESRI','112052','ESRI','120','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112053','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994158825273456,'EPSG','9201','EPSG','8806','False easting',-205961.7945968577,'EPSG','9001','EPSG','8807','False northing',70986.83211833447,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112053_USAGE','conversion','ESRI','112053','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112053_USAGE','conversion','ESRI','112053','ESRI','121','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112053','OSGB36_National_Highways_A28H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112053',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112053_USAGE','projected_crs','ESRI','112053','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112053_USAGE','projected_crs','ESRI','112053','ESRI','121','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112054','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994408688613964,'EPSG','9201','EPSG','8806','False easting',-205966.9438348191,'EPSG','9001','EPSG','8807','False northing',70988.6068556901,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112054_USAGE','conversion','ESRI','112054','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112054_USAGE','conversion','ESRI','112054','ESRI','121','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112054','OSGB36_National_Highways_A28H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112054',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112054_USAGE','projected_crs','ESRI','112054','ESRI','125','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112054_USAGE','projected_crs','ESRI','112054','ESRI','121','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112055','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993659241229034,'EPSG','9201','EPSG','8806','False easting',-214949.3800873325,'EPSG','9001','EPSG','8807','False northing',70983.28365674701,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112055_USAGE','conversion','ESRI','112055','ESRI','126','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112055_USAGE','conversion','ESRI','112055','ESRI','122','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112055','OSGB36_National_Highways_A29H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112055',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112055_USAGE','projected_crs','ESRI','112055','ESRI','126','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112055_USAGE','projected_crs','ESRI','112055','ESRI','122','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112056','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993139726802819,'EPSG','9201','EPSG','8806','False easting',-223935.6193491957,'EPSG','9001','EPSG','8807','False northing',70979.593633004,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112056_USAGE','conversion','ESRI','112056','ESRI','127','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112056_USAGE','conversion','ESRI','112056','ESRI','123','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112056','OSGB36_National_Highways_A30H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112056',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112056_USAGE','projected_crs','ESRI','112056','ESRI','127','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112056_USAGE','projected_crs','ESRI','112056','ESRI','123','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112057','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999667551366491,'EPSG','9201','EPSG','8806','False easting',88032.17537165637,'EPSG','9001','EPSG','8807','False northing',111040.5848437938,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112057_USAGE','conversion','ESRI','112057','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112057_USAGE','conversion','ESRI','112057','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112057','OSGB36_National_Highways_B15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112057',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112057_USAGE','projected_crs','ESRI','112057','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112057_USAGE','projected_crs','ESRI','112057','ESRI','124','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112058','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999917552430316,'EPSG','9201','EPSG','8806','False easting',88034.37625857393,'EPSG','9001','EPSG','8807','False northing',111043.3609625194,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112058_USAGE','conversion','ESRI','112058','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112058_USAGE','conversion','ESRI','112058','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112058','OSGB36_National_Highways_B15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112058',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112058_USAGE','projected_crs','ESRI','112058','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112058_USAGE','projected_crs','ESRI','112058','ESRI','124','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112059','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000016756599497,'EPSG','9201','EPSG','8806','False easting',88036.5772555427,'EPSG','9001','EPSG','8807','False northing',111046.1372200595,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112059_USAGE','conversion','ESRI','112059','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112059_USAGE','conversion','ESRI','112059','ESRI','124','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112059','OSGB36_National_Highways_B15H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112059',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112059_USAGE','projected_crs','ESRI','112059','ESRI','128','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112059_USAGE','projected_crs','ESRI','112059','ESRI','124','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112060','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000011771557166,'EPSG','9201','EPSG','8806','False easting',54022.17583441971,'EPSG','9001','EPSG','8807','False northing',111045.5836596405,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112060_USAGE','conversion','ESRI','112060','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112060_USAGE','conversion','ESRI','112060','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112060','OSGB36_National_Highways_B16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112060',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112060_USAGE','projected_crs','ESRI','112060','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112060_USAGE','projected_crs','ESRI','112060','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112061','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000036772789,'EPSG','9201','EPSG','8806','False easting',54023.52643946325,'EPSG','9001','EPSG','8807','False northing',111048.3599033411,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112061_USAGE','conversion','ESRI','112061','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112061_USAGE','conversion','ESRI','112061','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112061','OSGB36_National_Highways_B16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112061',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112061_USAGE','projected_crs','ESRI','112061','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112061_USAGE','projected_crs','ESRI','112061','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112062','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000061775270976,'EPSG','9201','EPSG','8806','False easting',54024.87711204128,'EPSG','9001','EPSG','8807','False northing',111051.1362858626,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112062_USAGE','conversion','ESRI','112062','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112062_USAGE','conversion','ESRI','112062','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112062','OSGB36_National_Highways_B16H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112062',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112062_USAGE','projected_crs','ESRI','112062','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112062_USAGE','projected_crs','ESRI','112062','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112063','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000086779003184,'EPSG','9201','EPSG','8806','False easting',54026.22785215884,'EPSG','9001','EPSG','8807','False northing',111053.9128072154,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112063_USAGE','conversion','ESRI','112063','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112063_USAGE','conversion','ESRI','112063','ESRI','125','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112063','OSGB36_National_Highways_B16H4',NULL,'EPSG','4400','EPSG','4277','ESRI','112063',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112063_USAGE','projected_crs','ESRI','112063','ESRI','129','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112063_USAGE','projected_crs','ESRI','112063','ESRI','125','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112064','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999807598109365,'EPSG','9201','EPSG','8806','False easting',-24009.11134761462,'EPSG','9001','EPSG','8807','False northing',111042.1399827176,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112064_USAGE','conversion','ESRI','112064','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112064_USAGE','conversion','ESRI','112064','ESRI','126','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112064','OSGB36_National_Highways_B17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112064',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112064_USAGE','projected_crs','ESRI','112064','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112064_USAGE','projected_crs','ESRI','112064','ESRI','126','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112065','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000005760267449,'EPSG','9201','EPSG','8806','False easting',-24009.7115979077,'EPSG','9001','EPSG','8807','False northing',111044.9161403231,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112065_USAGE','conversion','ESRI','112065','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112065_USAGE','conversion','ESRI','112065','ESRI','126','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112065','OSGB36_National_Highways_B17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112065',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112065_USAGE','projected_crs','ESRI','112065','ESRI','130','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112065_USAGE','projected_crs','ESRI','112065','ESRI','126','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112066','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999277441837596,'EPSG','9201','EPSG','8806','False easting',-58018.94295715116,'EPSG','9001','EPSG','8807','False northing',111036.2529007548,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112066_USAGE','conversion','ESRI','112066','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112066_USAGE','conversion','ESRI','112066','ESRI','127','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112066','OSGB36_National_Highways_B18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112066',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112066_USAGE','projected_crs','ESRI','112066','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112066_USAGE','projected_crs','ESRI','112066','ESRI','127','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112067','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999527433148317,'EPSG','9201','EPSG','8806','False easting',-58020.39348511989,'EPSG','9001','EPSG','8807','False northing',111039.0289111777,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112067_USAGE','conversion','ESRI','112067','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112067_USAGE','conversion','ESRI','112067','ESRI','127','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112067','OSGB36_National_Highways_B18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112067',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112067_USAGE','projected_crs','ESRI','112067','ESRI','131','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112067_USAGE','projected_crs','ESRI','112067','ESRI','127','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112068','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999873734042937,'EPSG','9201','EPSG','8806','False easting',-88023.98625017522,'EPSG','9001','EPSG','8807','False northing',111030.2553837437,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112068_USAGE','conversion','ESRI','112068','ESRI','132','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112068_USAGE','conversion','ESRI','112068','ESRI','128','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112068','OSGB36_National_Highways_B19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112068',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112068_USAGE','projected_crs','ESRI','112068','ESRI','132','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112068_USAGE','projected_crs','ESRI','112068','ESRI','128','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112069','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998257299268304,'EPSG','9201','EPSG','8806','False easting',-105023.5775148396,'EPSG','9001','EPSG','8807','False northing',111024.9248014019,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112069_USAGE','conversion','ESRI','112069','ESRI','133','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112069_USAGE','conversion','ESRI','112069','ESRI','129','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112069','OSGB36_National_Highways_B20H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112069',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112069_USAGE','projected_crs','ESRI','112069','ESRI','133','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112069_USAGE','projected_crs','ESRI','112069','ESRI','129','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112070','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997707308768334,'EPSG','9201','EPSG','8806','False easting',-122020.6822661785,'EPSG','9001','EPSG','8807','False northing',111018.817471687,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112070_USAGE','conversion','ESRI','112070','ESRI','134','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112070_USAGE','conversion','ESRI','112070','ESRI','130','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112070','OSGB36_National_Highways_B21H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112070',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112070_USAGE','projected_crs','ESRI','112070','ESRI','134','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112070_USAGE','projected_crs','ESRI','112070','ESRI','130','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112071','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9997087392023101,'EPSG','9201','EPSG','8806','False easting',-139014.9439413935,'EPSG','9001','EPSG','8807','False northing',111011.9336510408,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112071_USAGE','conversion','ESRI','112071','ESRI','135','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112071_USAGE','conversion','ESRI','112071','ESRI','131','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112071','OSGB36_National_Highways_B22H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112071',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112071_USAGE','projected_crs','ESRI','112071','ESRI','135','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112071_USAGE','projected_crs','ESRI','112071','ESRI','131','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112072','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996557524136872,'EPSG','9201','EPSG','8806','False easting',-156008.5023814753,'EPSG','9001','EPSG','8807','False northing',111006.0497714344,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112072_USAGE','conversion','ESRI','112072','ESRI','136','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112072_USAGE','conversion','ESRI','112072','ESRI','132','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112072','OSGB36_National_Highways_B23H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112072',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112072_USAGE','projected_crs','ESRI','112072','ESRI','136','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112072_USAGE','projected_crs','ESRI','112072','ESRI','132','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112073','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996137668720859,'EPSG','9201','EPSG','8806','False easting',-165002.0625257816,'EPSG','9001','EPSG','8807','False northing',111001.387517344,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112073_USAGE','conversion','ESRI','112073','ESRI','137','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112073_USAGE','conversion','ESRI','112073','ESRI','133','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112073','OSGB36_National_Highways_B24H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112073',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112073_USAGE','projected_crs','ESRI','112073','ESRI','137','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112073_USAGE','projected_crs','ESRI','112073','ESRI','133','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112074','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995647881974643,'EPSG','9201','EPSG','8806','False easting',-175993.5763422596,'EPSG','9001','EPSG','8807','False northing',110995.9487158569,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112074_USAGE','conversion','ESRI','112074','ESRI','138','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112074_USAGE','conversion','ESRI','112074','ESRI','134','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112074','OSGB36_National_Highways_B25H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112074',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112074_USAGE','projected_crs','ESRI','112074','ESRI','138','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112074_USAGE','projected_crs','ESRI','112074','ESRI','134','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112075','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9995168137411531,'EPSG','9201','EPSG','8806','False easting',-185984.2845534612,'EPSG','9001','EPSG','8807','False northing',110990.6214270655,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112075_USAGE','conversion','ESRI','112075','ESRI','139','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112075_USAGE','conversion','ESRI','112075','ESRI','135','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112075','OSGB36_National_Highways_B26H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112075',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112075_USAGE','projected_crs','ESRI','112075','ESRI','139','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112075_USAGE','projected_crs','ESRI','112075','ESRI','135','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112076','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994668452458347,'EPSG','9201','EPSG','8806','False easting',-195973.6419052653,'EPSG','9001','EPSG','8807','False northing',110985.0727116554,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112076_USAGE','conversion','ESRI','112076','ESRI','140','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112076_USAGE','conversion','ESRI','112076','ESRI','136','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112076','OSGB36_National_Highways_B27H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112076',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112076_USAGE','projected_crs','ESRI','112076','ESRI','140','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112076_USAGE','projected_crs','ESRI','112076','ESRI','136','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112077','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9994158825273456,'EPSG','9201','EPSG','8806','False easting',-205961.7945968577,'EPSG','9001','EPSG','8807','False northing',110979.4135934525,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112077_USAGE','conversion','ESRI','112077','ESRI','141','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112077_USAGE','conversion','ESRI','112077','ESRI','137','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112077','OSGB36_National_Highways_B28H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112077',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112077_USAGE','projected_crs','ESRI','112077','ESRI','141','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112077_USAGE','projected_crs','ESRI','112077','ESRI','137','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112078','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999366923242045,'EPSG','9201','EPSG','8806','False easting',-214949.5949836332,'EPSG','9001','EPSG','8807','False northing',110973.9769450385,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112078_USAGE','conversion','ESRI','112078','ESRI','142','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112078_USAGE','conversion','ESRI','112078','ESRI','138','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112078','OSGB36_National_Highways_B29H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112078',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112078_USAGE','projected_crs','ESRI','112078','ESRI','142','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112078_USAGE','projected_crs','ESRI','112078','ESRI','138','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112079','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9993149716955489,'EPSG','9201','EPSG','8806','False easting',-223935.8432178783,'EPSG','9001','EPSG','8807','False northing',110968.2080231451,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112079_USAGE','conversion','ESRI','112079','ESRI','143','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112079_USAGE','conversion','ESRI','112079','ESRI','139','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112079','OSGB36_National_Highways_B30H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112079',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112079_USAGE','projected_crs','ESRI','112079','ESRI','143','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112079_USAGE','projected_crs','ESRI','112079','ESRI','139','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112080','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9992610277292974,'EPSG','9201','EPSG','8806','False easting',-232920.6915322958,'EPSG','9001','EPSG','8807','False northing',110962.2178544413,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112080_USAGE','conversion','ESRI','112080','ESRI','144','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112080_USAGE','conversion','ESRI','112080','ESRI','140','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112080','OSGB36_National_Highways_B31H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112080',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112080_USAGE','projected_crs','ESRI','112080','ESRI','144','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112080_USAGE','projected_crs','ESRI','112080','ESRI','140','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112081','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9992060907870448,'EPSG','9201','EPSG','8806','False easting',-241904.3280719596,'EPSG','9001','EPSG','8807','False northing',110956.117421436,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112081_USAGE','conversion','ESRI','112081','ESRI','145','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112081_USAGE','conversion','ESRI','112081','ESRI','141','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112081','OSGB36_National_Highways_B32H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112081',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112081_USAGE','projected_crs','ESRI','112081','ESRI','145','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112081_USAGE','projected_crs','ESRI','112081','ESRI','141','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112082','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998657330368111,'EPSG','9201','EPSG','8806','False easting',128033.8645538678,'EPSG','9001','EPSG','8807','False northing',126033.3354202136,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112082_USAGE','conversion','ESRI','112082','ESRI','146','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112082_USAGE','conversion','ESRI','112082','ESRI','142','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112082','OSGB36_National_Highways_C13H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112082',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112082_USAGE','projected_crs','ESRI','112082','ESRI','146','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112082_USAGE','projected_crs','ESRI','112082','ESRI','142','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112083','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999137409943842,'EPSG','9201','EPSG','8806','False easting',111034.697926722,'EPSG','9001','EPSG','8807','False northing',126039.3868357385,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112083_USAGE','conversion','ESRI','112083','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112083_USAGE','conversion','ESRI','112083','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112083','OSGB36_National_Highways_C14H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112083',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112083_USAGE','projected_crs','ESRI','112083','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112083_USAGE','projected_crs','ESRI','112083','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112084','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999387397753633,'EPSG','9201','EPSG','8806','False easting',111037.4738982691,'EPSG','9001','EPSG','8807','False northing',126042.5379385757,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112084_USAGE','conversion','ESRI','112084','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112084_USAGE','conversion','ESRI','112084','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112084','OSGB36_National_Highways_C14H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112084',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112084_USAGE','projected_crs','ESRI','112084','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112084_USAGE','projected_crs','ESRI','112084','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112085','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999637398063597,'EPSG','9201','EPSG','8806','False easting',111040.2500086234,'EPSG','9001','EPSG','8807','False northing',126045.689198978,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112085_USAGE','conversion','ESRI','112085','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112085_USAGE','conversion','ESRI','112085','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112085','OSGB36_National_Highways_C14H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112085',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112085_USAGE','projected_crs','ESRI','112085','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112085_USAGE','projected_crs','ESRI','112085','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112086','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999887410874669,'EPSG','9201','EPSG','8806','False easting',111043.0262577955,'EPSG','9001','EPSG','8807','False northing',126048.840616957,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112086_USAGE','conversion','ESRI','112086','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112086_USAGE','conversion','ESRI','112086','ESRI','143','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112086','OSGB36_National_Highways_C14H4',NULL,'EPSG','4400','EPSG','4277','ESRI','112086',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112086_USAGE','projected_crs','ESRI','112086','ESRI','147','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112086_USAGE','projected_crs','ESRI','112086','ESRI','143','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112087','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999667551366491,'EPSG','9201','EPSG','8806','False easting',88032.17537165637,'EPSG','9001','EPSG','8807','False northing',126046.0692821443,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112087_USAGE','conversion','ESRI','112087','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112087_USAGE','conversion','ESRI','112087','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112087','OSGB36_National_Highways_C15H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112087',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112087_USAGE','projected_crs','ESRI','112087','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112087_USAGE','projected_crs','ESRI','112087','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112088','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999917552430316,'EPSG','9201','EPSG','8806','False easting',88034.37625857393,'EPSG','9001','EPSG','8807','False northing',126049.220552049,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112088_USAGE','conversion','ESRI','112088','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112088_USAGE','conversion','ESRI','112088','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112088','OSGB36_National_Highways_C15H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112088',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112088_USAGE','projected_crs','ESRI','112088','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112088_USAGE','projected_crs','ESRI','112088','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112089','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000016756599497,'EPSG','9201','EPSG','8806','False easting',88036.5772555427,'EPSG','9001','EPSG','8807','False northing',126052.371979527,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112089_USAGE','conversion','ESRI','112089','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112089_USAGE','conversion','ESRI','112089','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112089','OSGB36_National_Highways_C15H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112089',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112089_USAGE','projected_crs','ESRI','112089','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112089_USAGE','projected_crs','ESRI','112089','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112090','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000041759206141,'EPSG','9201','EPSG','8806','False easting',88038.77836257096,'EPSG','9001','EPSG','8807','False northing',126055.5235645902,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112090_USAGE','conversion','ESRI','112090','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112090_USAGE','conversion','ESRI','112090','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112090','OSGB36_National_Highways_C15H4',NULL,'EPSG','4400','EPSG','4277','ESRI','112090',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112090_USAGE','projected_crs','ESRI','112090','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112090_USAGE','projected_crs','ESRI','112090','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112091','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000066763063055,'EPSG','9201','EPSG','8806','False easting',88040.97957966694,'EPSG','9001','EPSG','8807','False northing',126058.6753072504,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112091_USAGE','conversion','ESRI','112091','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112091_USAGE','conversion','ESRI','112091','ESRI','144','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112091','OSGB36_National_Highways_C15H5',NULL,'EPSG','4400','EPSG','4277','ESRI','112091',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112091_USAGE','projected_crs','ESRI','112091','ESRI','148','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112091_USAGE','projected_crs','ESRI','112091','ESRI','144','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112092','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000011771557166,'EPSG','9201','EPSG','8806','False easting',54022.17583441971,'EPSG','9001','EPSG','8807','False northing',126051.743613646,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112092_USAGE','conversion','ESRI','112092','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112092_USAGE','conversion','ESRI','112092','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112092','OSGB36_National_Highways_C16H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112092',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112092_USAGE','projected_crs','ESRI','112092','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112092_USAGE','projected_crs','ESRI','112092','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112093','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000036772789,'EPSG','9201','EPSG','8806','False easting',54023.52643946325,'EPSG','9001','EPSG','8807','False northing',126054.8950254143,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112093_USAGE','conversion','ESRI','112093','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112093_USAGE','conversion','ESRI','112093','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112093','OSGB36_National_Highways_C16H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112093',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112093_USAGE','projected_crs','ESRI','112093','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112093_USAGE','projected_crs','ESRI','112093','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112094','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000061775270976,'EPSG','9201','EPSG','8806','False easting',54024.87711204128,'EPSG','9001','EPSG','8807','False northing',126058.046594763,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112094_USAGE','conversion','ESRI','112094','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112094_USAGE','conversion','ESRI','112094','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112094','OSGB36_National_Highways_C16H3',NULL,'EPSG','4400','EPSG','4277','ESRI','112094',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112094_USAGE','projected_crs','ESRI','112094','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112094_USAGE','projected_crs','ESRI','112094','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112095','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000086779003184,'EPSG','9201','EPSG','8806','False easting',54026.22785215884,'EPSG','9001','EPSG','8807','False northing',126061.198321704,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112095_USAGE','conversion','ESRI','112095','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112095_USAGE','conversion','ESRI','112095','ESRI','145','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112095','OSGB36_National_Highways_C16H4',NULL,'EPSG','4400','EPSG','4277','ESRI','112095',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112095_USAGE','projected_crs','ESRI','112095','ESRI','149','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112095_USAGE','projected_crs','ESRI','112095','ESRI','145','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112096','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999807598109365,'EPSG','9201','EPSG','8806','False easting',-24009.11134761462,'EPSG','9001','EPSG','8807','False northing',126047.8345749767,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112096_USAGE','conversion','ESRI','112096','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112096_USAGE','conversion','ESRI','112096','ESRI','146','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112096','OSGB36_National_Highways_C17H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112096',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112096_USAGE','projected_crs','ESRI','112096','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112096_USAGE','projected_crs','ESRI','112096','ESRI','146','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112097','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000005760267449,'EPSG','9201','EPSG','8806','False easting',-24009.7115979077,'EPSG','9001','EPSG','8807','False northing',126050.9858890154,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112097_USAGE','conversion','ESRI','112097','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112097_USAGE','conversion','ESRI','112097','ESRI','146','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112097','OSGB36_National_Highways_C17H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112097',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112097_USAGE','projected_crs','ESRI','112097','ESRI','150','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112097_USAGE','projected_crs','ESRI','112097','ESRI','146','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112098','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999277441837596,'EPSG','9201','EPSG','8806','False easting',-58018.94295715116,'EPSG','9001','EPSG','8807','False northing',126041.1519413973,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112098_USAGE','conversion','ESRI','112098','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112098_USAGE','conversion','ESRI','112098','ESRI','147','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112098','OSGB36_National_Highways_C18H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112098',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112098_USAGE','projected_crs','ESRI','112098','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112098_USAGE','projected_crs','ESRI','112098','ESRI','147','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112099','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999527433148317,'EPSG','9201','EPSG','8806','False easting',-58020.39348511989,'EPSG','9001','EPSG','8807','False northing',126044.3030883639,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112099_USAGE','conversion','ESRI','112099','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112099_USAGE','conversion','ESRI','112099','ESRI','147','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112099','OSGB36_National_Highways_C18H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112099',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112099_USAGE','projected_crs','ESRI','112099','ESRI','151','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112099_USAGE','projected_crs','ESRI','112099','ESRI','147','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112100','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.999873734042937,'EPSG','9201','EPSG','8806','False easting',-88023.98625017522,'EPSG','9001','EPSG','8807','False northing',126034.3439491145,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112100_USAGE','conversion','ESRI','112100','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112100_USAGE','conversion','ESRI','112100','ESRI','148','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112100','OSGB36_National_Highways_C19H1',NULL,'EPSG','4400','EPSG','4277','ESRI','112100',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112100_USAGE','projected_crs','ESRI','112100','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112100_USAGE','projected_crs','ESRI','112100','ESRI','148','EPSG','1024'); INSERT INTO "conversion" VALUES('ESRI','112101','unnamed',NULL,'EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',49.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-2.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9998987318237049,'EPSG','9201','EPSG','8806','False easting',-88026.18693235706,'EPSG','9001','EPSG','8807','False northing',126037.4949258749,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'CONV_112101_USAGE','conversion','ESRI','112101','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'CONV_112101_USAGE','conversion','ESRI','112101','ESRI','148','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112101','OSGB36_National_Highways_C19H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112101',NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'PCRS_112101_USAGE','projected_crs','ESRI','112101','ESRI','152','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'PCRS_112101_USAGE','projected_crs','ESRI','112101','ESRI','148','EPSG','1024'); INSERT INTO "supersession" VALUES('projected_crs','ESRI','2181','projected_crs','ESRI','102550','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','2182','projected_crs','ESRI','102551','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','2183','projected_crs','ESRI','102552','ESRI',1); @@ -16060,6 +16348,8 @@ INSERT INTO "supersession" VALUES('projected_crs','ESRI','102187','projected_crs INSERT INTO "supersession" VALUES('projected_crs','ESRI','102188','projected_crs','EPSG','3777','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102189','projected_crs','EPSG','3801','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102190','projected_crs','EPSG','3005','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102191','projected_crs','EPSG','26191','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102192','projected_crs','EPSG','26192','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102199','projected_crs','EPSG','3812','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102200','projected_crs','EPSG','2195','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102201','projected_crs','EPSG','4414','ESRI',1); @@ -16072,7 +16362,7 @@ INSERT INTO "supersession" VALUES('projected_crs','ESRI','102208','projected_crs INSERT INTO "supersession" VALUES('projected_crs','ESRI','102209','projected_crs','EPSG','3464','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102210','projected_crs','EPSG','3077','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102211','projected_crs','EPSG','3748','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102212','projected_crs','ESRI','32159','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102212','projected_crs','EPSG','32159','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102214','projected_crs','EPSG','4826','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102218','projected_crs','EPSG','9674','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102229','projected_crs','EPSG','2759','ESRI',1); @@ -16434,6 +16724,39 @@ INSERT INTO "supersession" VALUES('projected_crs','ESRI','102795','projected_crs INSERT INTO "supersession" VALUES('projected_crs','ESRI','102796','projected_crs','EPSG','6249','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102797','projected_crs','EPSG','6258','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102798','projected_crs','EPSG','6265','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102901','projected_crs','EPSG','23303','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102902','projected_crs','EPSG','23301','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102903','projected_crs','EPSG','23304','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102904','projected_crs','EPSG','23302','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102905','projected_crs','EPSG','23305','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102906','projected_crs','EPSG','23307','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102907','projected_crs','EPSG','23306','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102908','projected_crs','EPSG','23308','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102909','projected_crs','EPSG','23312','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102910','projected_crs','EPSG','23314','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102911','projected_crs','EPSG','23309','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102912','projected_crs','EPSG','23315','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102913','projected_crs','EPSG','23311','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102914','projected_crs','EPSG','23313','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102915','projected_crs','EPSG','23310','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102916','projected_crs','EPSG','23320','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102917','projected_crs','EPSG','23319','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102918','projected_crs','EPSG','23316','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102919','projected_crs','EPSG','23318','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102920','projected_crs','EPSG','23317','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102921','projected_crs','EPSG','23322','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102922','projected_crs','EPSG','23321','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102923','projected_crs','EPSG','23326','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102924','projected_crs','EPSG','23323','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102925','projected_crs','EPSG','23325','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102926','projected_crs','EPSG','23328','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102927','projected_crs','EPSG','23324','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102928','projected_crs','EPSG','23327','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102929','projected_crs','EPSG','23329','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102930','projected_crs','EPSG','23331','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102931','projected_crs','EPSG','23330','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102932','projected_crs','EPSG','23332','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','102933','projected_crs','EPSG','23333','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102962','projected_crs','EPSG','6414','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102963','projected_crs','EPSG','6508','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','102965','projected_crs','EPSG','6350','ESRI',1); @@ -16792,23 +17115,24 @@ INSERT INTO "supersession" VALUES('projected_crs','ESRI','103471','projected_crs INSERT INTO "supersession" VALUES('projected_crs','ESRI','103595','projected_crs','EPSG','9295','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103596','projected_crs','EPSG','9296','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103597','projected_crs','EPSG','9297','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103696','projected_crs','ESRI','22619','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103697','projected_crs','ESRI','22620','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103698','projected_crs','ESRI','22621','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103696','projected_crs','EPSG','22619','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103697','projected_crs','EPSG','22620','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103698','projected_crs','EPSG','22621','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103794','projected_crs','EPSG','4484','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103795','projected_crs','EPSG','4485','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103796','projected_crs','EPSG','4486','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103797','projected_crs','EPSG','4487','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103798','projected_crs','EPSG','4488','ESRI',1); INSERT INTO "supersession" VALUES('projected_crs','ESRI','103799','projected_crs','EPSG','4489','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103873','projected_crs','ESRI','22615','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103874','projected_crs','ESRI','22616','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103875','projected_crs','ESRI','22617','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103876','projected_crs','ESRI','22618','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103873','projected_crs','EPSG','22615','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103874','projected_crs','EPSG','22616','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103875','projected_crs','EPSG','22617','ESRI',1); +INSERT INTO "supersession" VALUES('projected_crs','ESRI','103876','projected_crs','EPSG','22618','ESRI',1); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1027','EGM2008_Geoid','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1028','Fao_1979','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1039','New_Zealand_Vertical_Datum_2009','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1040','Dunedin_Bluff_1960','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1049','Korean_Vertical_Datum_1964','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1051','Genoa','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1054','Sri_Lanka_Vertical_Datum','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1059','Faroe_Islands_Vertical_Reference_2009','ESRI'); @@ -16899,12 +17223,24 @@ INSERT INTO alias_name VALUES('vertical_datum','EPSG','1288','British_Isles_heig INSERT INTO alias_name VALUES('vertical_datum','EPSG','1290','Lowest_Astronomical_Tide_Netherlands','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1292','Australian_Vertical_Working_Surface','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1294','Indonesian_Geoid_2020','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1296','Baltic_1986','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1297','European_Vertical_Reference_Frame_2007_Poland','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1298','Estonian_Height_System_2000','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1299','Lithuanian_Height_System_2007','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1300','Bulgarian_Height_System_2005','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1301','Norwegian_Chart_Datum','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1302','Local_Tidal_Datum_at_Pago_Pago_2020','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1303','National_Vertical_Datum_1992','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1306','Catania_1965','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1307','Cagliari_1956','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1323','Svalbard_vertical_datum_2006','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1325','Canadian_Geodetic_Vertical_Datum_of_2013_(CGG2013a)_epoch_2002','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1326','Canadian_Geodetic_Vertical_Datum_of_2013_(CGG2013a)_epoch_1997','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1328','Indonesian_Geoid_2020_version_2','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1330','Mean_Sea_Level_UK_Ireland_VORF08','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1331','Chart_Datum_UK_Ireland_VORF08','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1354','Nivellement_General_de_l_Algerie_2022','ESRI'); +INSERT INTO alias_name VALUES('vertical_datum','EPSG','1361','Chart_Datum_Portugal','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','5100','Mean_Sea_Level','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','5101','Ordnance_Datum_Newlyn','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','5102','National_Geodetic_Vertical_Datum_1929','ESRI'); @@ -17015,7 +17351,7 @@ INSERT INTO alias_name VALUES('vertical_crs','EPSG','3886','Fao_1979','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','3900','N2000_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','4440','NZVD2009_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','4458','Dunedin_Bluff_1960_height','ESRI'); -INSERT INTO alias_name VALUES('vertical_crs','EPSG','5193','Incheon_height','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','5193','KVD1964_Height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','5195','Trieste_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','5214','Genoa_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','5237','SLVD_height','ESRI'); @@ -17251,10 +17587,7 @@ INSERT INTO alias_name VALUES('vertical_crs','EPSG','9451','BI_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9458','AVWS_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9471','INAGeoid2020_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9650','Baltic_1986_height','ESRI'); -INSERT INTO "vertical_datum" VALUES('ESRI','1297','European_Vertical_Reference_Frame_2007_Poland',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '1297_USAGE','vertical_datum','ESRI','1297','EPSG','3293','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','9651','EVRF_2007_PL_height',NULL,'EPSG','6499','ESRI','1297',0); -INSERT INTO "usage" VALUES('ESRI', '9651_USAGE','vertical_crs','ESRI','9651','EPSG','3293','EPSG','1024'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','9651','EVRF_2007_PL_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9663','EH2000_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9666','LAS07_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9669','BGS2005_height','ESRI'); @@ -17265,6 +17598,13 @@ INSERT INTO alias_name VALUES('vertical_crs','EPSG','9721','Catania_1965_height' INSERT INTO alias_name VALUES('vertical_crs','EPSG','9722','Cagliari_1956_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9923','GNTRANS_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','9927','GNTRANS2016_height','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10150','MSL_UK_Ireland_VORF08_depth','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10151','CD_UK_Ireland_VORF08_depth','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10190','NGA_2022_height','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10349','ZH_Portugal_depth','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10352','Formentera_height','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10353','Alboran_height','ESRI'); +INSERT INTO alias_name VALUES('vertical_crs','EPSG','10354','Melilla_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','20000','SVD2006_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','20034','CGVD2013a(2002)_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','20035','CGVD2013a(1997)_height','ESRI'); @@ -17395,9 +17735,9 @@ INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6747_USAGE','vertical_da INSERT INTO "vertical_crs" VALUES('ESRI','115718','Greenland_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6747',0); INSERT INTO "usage" VALUES('ESRI', '115718_USAGE','vertical_crs','ESRI','115718','EPSG','1107','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6148','D_Hartebeesthoek_1994',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6148_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6148','EPSG','1215','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6148_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6148','EPSG','4540','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115719','Hartebeesthoek_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6148',0); -INSERT INTO "usage" VALUES('ESRI', '115719_USAGE','vertical_crs','ESRI','115719','EPSG','1215','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '115719_USAGE','vertical_crs','ESRI','115719','EPSG','4540','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1114','Israel_Geodetic_Datum_2005',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1114_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1114','EPSG','1126','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115720','IGD05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1114',0); @@ -17486,9 +17826,9 @@ INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106020','D_JGD_2 INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106020_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106020','EPSG','1129','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115741','JGD_2011',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106020',0); INSERT INTO "usage" VALUES('ESRI', '115741_USAGE','vertical_crs','ESRI','115741','EPSG','1129','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6737','D_Korea_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6737','D_Korea_Geodetic_Datum_2002',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6737_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6737','EPSG','1135','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115742','Korea_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6737',0); +INSERT INTO "vertical_crs" VALUES('ESRI','115742','KGD2002',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6737',0); INSERT INTO "usage" VALUES('ESRI', '115742_USAGE','vertical_crs','ESRI','115742','EPSG','1135','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6678','D_Lao_National_Datum_1997',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6678_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6678','EPSG','1138','EPSG','1024'); @@ -17676,9 +18016,9 @@ INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6674','D_SIRGAS_ INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6674_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6674','EPSG','3418','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115789','SIRGAS_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6674',0); INSERT INTO "usage" VALUES('ESRI', '115789_USAGE','vertical_crs','ESRI','115789','EPSG','3418','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1254','D_SIRGAS-Chile',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1254_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1254','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115790','SIRGAS-Chile',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1254',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1064','SIRGAS-Chile_realization_1_epoch_2002',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1064_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1064','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115790','SIRGAS-Chile_2002',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1064',0); INSERT INTO "usage" VALUES('ESRI', '115790_USAGE','vertical_crs','ESRI','115790','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1069','D_SIRGAS_ES2007.8',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1069_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1069','EPSG','1087','EPSG','1024'); @@ -17697,9 +18037,9 @@ INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6765_USAGE','vertical_da INSERT INTO "vertical_crs" VALUES('ESRI','115794','Slovenia_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6765',0); INSERT INTO "usage" VALUES('ESRI', '115794_USAGE','vertical_crs','ESRI','115794','EPSG','1212','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106995','D_Serbian_Reference_Network_1998',NULL,NULL,NULL,NULL,NULL,1); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106995_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106995','EPSG','3534','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106995_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106995','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115795','SREF98',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106995',0); -INSERT INTO "usage" VALUES('ESRI', '115795_USAGE','vertical_crs','ESRI','115795','EPSG','3534','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '115795_USAGE','vertical_crs','ESRI','115795','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1052','D_S_JTSK_05',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1052_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1052','EPSG','1079','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115796','S_JTSK/05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1052',0); @@ -17883,9 +18223,9 @@ INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1212_USAGE','vertical_da INSERT INTO "vertical_crs" VALUES('ESRI','115841','NAD_1983_(HARN_Corrected)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1212',0); INSERT INTO "usage" VALUES('ESRI', '115841_USAGE','vertical_crs','ESRI','115841','EPSG','3634','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1214','Serbian_Spatial_Reference_System_2000',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1214_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1214','EPSG','3534','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1214_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1214','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115842','SRB_ETRS89',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1214',0); -INSERT INTO "usage" VALUES('ESRI', '115842_USAGE','vertical_crs','ESRI','115842','EPSG','3534','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '115842_USAGE','vertical_crs','ESRI','115842','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1218','MOMRA_Terrestrial_Reference_Frame_2000',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1218_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1218','EPSG','1206','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115843','MTRF-2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1218',0); @@ -18038,26 +18378,186 @@ INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1062','D_POSGAR_ INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1062_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1062','EPSG','1033','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115880','POSGAR_2007',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1062',0); INSERT INTO "usage" VALUES('ESRI', '115880_USAGE','vertical_crs','ESRI','115880','EPSG','1033','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_1312','Reseau_Geodesique_Francais_1993_v2',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_1312_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_1312','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115881','RGF93_v2',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_1312',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1312','Reseau_Geodesique_Francais_1993_v2',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1312_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1312','EPSG','1096','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115881','RGF93_v2',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1312',0); INSERT INTO "usage" VALUES('ESRI', '115881_USAGE','vertical_crs','ESRI','115881','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_1313','Reseau_Geodesique_Francais_1993_v2b',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_1313_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_1313','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115882','RGF93_v2b',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_1313',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1313','Reseau_Geodesique_Francais_1993_v2b',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1313_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1313','EPSG','1096','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115882','RGF93_v2b',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1313',0); INSERT INTO "usage" VALUES('ESRI', '115882_USAGE','vertical_crs','ESRI','115882','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_1322','International_Terrestrial_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_1322_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_1322','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115883','ITRF2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_1322',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1322','International_Terrestrial_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1322_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1322','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115883','ITRF2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1322',0); INSERT INTO "usage" VALUES('ESRI', '115883_USAGE','vertical_crs','ESRI','115883','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_1327','SIRGAS-Chile_realization_5_epoch_2021',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_1327_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_1327','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115884','SIRGAS_Chile_2021_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_1327',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1327','SIRGAS-Chile_realization_5_epoch_2021',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1327_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1327','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115884','SIRGAS_Chile_2021_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1327',0); INSERT INTO "usage" VALUES('ESRI', '115884_USAGE','vertical_crs','ESRI','115884','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_1309','WGS_1984_(G2139)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_1309_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_1309','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_crs" VALUES('ESRI','115885','WGS_1984_(G2139)_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_1309',0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1309','WGS_1984_(G2139)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1309_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1309','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115885','WGS_1984_(G2139)_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1309',0); INSERT INTO "usage" VALUES('ESRI', '115885_USAGE','vertical_crs','ESRI','115885','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6181','D_Luxembourg_Reference_Frame',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6181_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6181','EPSG','1146','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115886','LUREF',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6181',0); +INSERT INTO "usage" VALUES('ESRI', '115886_USAGE','vertical_crs','ESRI','115886','EPSG','1146','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106271','D_Bermuda_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106271_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106271','EPSG','1047','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115887','Bermuda_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106271',0); +INSERT INTO "usage" VALUES('ESRI', '115887_USAGE','vertical_crs','ESRI','115887','EPSG','1047','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106225','D_Cyprus_Geodetic_Reference_System_1993',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106225_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106225','EPSG','3236','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115888','CGRS_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106225',0); +INSERT INTO "usage" VALUES('ESRI', '115888_USAGE','vertical_crs','ESRI','115888','EPSG','3236','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106258','D_ETRF_1989',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106258_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106258','EPSG','1298','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115889','ETRF_1989',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106258',0); +INSERT INTO "usage" VALUES('ESRI', '115889_USAGE','vertical_crs','ESRI','115889','EPSG','1298','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1305','ETRF2000_Poland',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1305_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1305','EPSG','1192','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115890','ETRF2000-PL',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1305',0); +INSERT INTO "usage" VALUES('ESRI', '115890_USAGE','vertical_crs','ESRI','115890','EPSG','1192','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6761','D_Croatian_Terrestrial_Reference_System',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6761_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6761','EPSG','1076','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115891','HTRS96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6761',0); +INSERT INTO "usage" VALUES('ESRI', '115891_USAGE','vertical_crs','ESRI','115891','EPSG','1076','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1272','IGb14',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1272_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1272','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115892','IGb14',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1272',0); +INSERT INTO "usage" VALUES('ESRI', '115892_USAGE','vertical_crs','ESRI','115892','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1141','IGS08',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1141_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1141','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115893','IGS08',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1141',0); +INSERT INTO "usage" VALUES('ESRI', '115893_USAGE','vertical_crs','ESRI','115893','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1268','Kingdom_of_Saudi_Arabia_Geodetic_Reference_Frame_2017',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1268_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1268','EPSG','1206','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115894','KSA-GRF17',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1268',0); +INSERT INTO "usage" VALUES('ESRI', '115894_USAGE','vertical_crs','ESRI','115894','EPSG','1206','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106009','D_Kyrgyz_Republic_2006',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106009_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106009','EPSG','1137','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115895','Kyrg-06',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106009',0); +INSERT INTO "usage" VALUES('ESRI', '115895_USAGE','vertical_crs','ESRI','115895','EPSG','1137','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6677','D_Lao_1993',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6677_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6677','EPSG','1138','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115896','Lao_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6677',0); +INSERT INTO "usage" VALUES('ESRI', '115896_USAGE','vertical_crs','ESRI','115896','EPSG','1138','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1295','Lyon_Turin_Ferroviaire_2004',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1295_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1295','EPSG','4613','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115897','LTF2004(G)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1295',0); +INSERT INTO "usage" VALUES('ESRI', '115897_USAGE','vertical_crs','ESRI','115897','EPSG','4613','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6702','D_Mauritania_1999',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6702_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6702','EPSG','1157','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115898','Mauritania_1999',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6702',0); +INSERT INTO "usage" VALUES('ESRI', '115898_USAGE','vertical_crs','ESRI','115898','EPSG','1157','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1304','Red_Geodesica_Para_Mineria_en_Chile',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1304_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1304','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115899','REDGEOMIN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1304',0); +INSERT INTO "usage" VALUES('ESRI', '115899_USAGE','vertical_crs','ESRI','115899','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1113','D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1113_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1113','EPSG','4246','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115900','RGTAAF07',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1113',0); +INSERT INTO "usage" VALUES('ESRI', '115900_USAGE','vertical_crs','ESRI','115900','EPSG','4246','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115901','RGTAAF07_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1113',0); +INSERT INTO "usage" VALUES('ESRI', '115901_USAGE','vertical_crs','ESRI','115901','EPSG','4246','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1220','Reference_System_de_Angola_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1220_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1220','EPSG','1029','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115902','RSAO13',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1220',0); +INSERT INTO "usage" VALUES('ESRI', '115902_USAGE','vertical_crs','ESRI','115902','EPSG','1029','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1243','SIRGAS-Chile_realization_2_epoch_2010',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1243_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1243','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115903','SIRGAS-Chile_2010',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1243',0); +INSERT INTO "usage" VALUES('ESRI', '115903_USAGE','vertical_crs','ESRI','115903','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1252','SIRGAS-Chile_realization_3_epoch_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1252_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1252','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115904','SIRGAS-Chile_2013',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1252',0); +INSERT INTO "usage" VALUES('ESRI', '115904_USAGE','vertical_crs','ESRI','115904','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1253','SIRGAS-Chile_realization_4_epoch_2016',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1253_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1253','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115905','SIRGAS-Chile_2016',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1253',0); +INSERT INTO "usage" VALUES('ESRI', '115905_USAGE','vertical_crs','ESRI','115905','EPSG','1066','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1293','Sistem_Referensi_Geospasial_Indonesia_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1293_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1293','EPSG','1122','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115906','SRGI2013',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1293',0); +INSERT INTO "usage" VALUES('ESRI', '115906_USAGE','vertical_crs','ESRI','115906','EPSG','1122','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106001','D_WGS_1966',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106001_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106001','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115907','WGS_1966',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106001',0); +INSERT INTO "usage" VALUES('ESRI', '115907_USAGE','vertical_crs','ESRI','115907','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6322','D_WGS_1972',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6322_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6322','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115908','WGS_1972',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6322',0); +INSERT INTO "usage" VALUES('ESRI', '115908_USAGE','vertical_crs','ESRI','115908','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6324','D_WGS_1972_BE',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6324_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6324','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115909','WGS_1972_BE',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6324',0); +INSERT INTO "usage" VALUES('ESRI', '115909_USAGE','vertical_crs','ESRI','115909','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106984','D_Mexican_Datum_of_1993',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106984_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106984','EPSG','1160','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115910','Mexican_Datum_of_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106984',0); +INSERT INTO "usage" VALUES('ESRI', '115910_USAGE','vertical_crs','ESRI','115910','EPSG','1160','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115911','RGSPM06_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106997',0); +INSERT INTO "usage" VALUES('ESRI', '115911_USAGE','vertical_crs','ESRI','115911','EPSG','1220','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115912','RGR92_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6627',0); +INSERT INTO "usage" VALUES('ESRI', '115912_USAGE','vertical_crs','ESRI','115912','EPSG','1196','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115913','RGM04_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106998',0); +INSERT INTO "usage" VALUES('ESRI', '115913_USAGE','vertical_crs','ESRI','115913','EPSG','1159','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115914','RGFG95_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6624',0); +INSERT INTO "usage" VALUES('ESRI', '115914_USAGE','vertical_crs','ESRI','115914','EPSG','1097','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115915','RGF93_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106264',0); +INSERT INTO "usage" VALUES('ESRI', '115915_USAGE','vertical_crs','ESRI','115915','EPSG','1096','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115916','RGAF09_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1073',0); +INSERT INTO "usage" VALUES('ESRI', '115916_USAGE','vertical_crs','ESRI','115916','EPSG','2824','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115917','RGWF96_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1223',0); +INSERT INTO "usage" VALUES('ESRI', '115917_USAGE','vertical_crs','ESRI','115917','EPSG','1255','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115918','RGF93_v2_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1312',0); +INSERT INTO "usage" VALUES('ESRI', '115918_USAGE','vertical_crs','ESRI','115918','EPSG','1096','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115919','RGF93_v2b_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1313',0); +INSERT INTO "usage" VALUES('ESRI', '115919_USAGE','vertical_crs','ESRI','115919','EPSG','1096','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6170','D_SIRGAS',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6170_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6170','EPSG','3448','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115920','SIRGAS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6170',0); +INSERT INTO "usage" VALUES('ESRI', '115920_USAGE','vertical_crs','ESRI','115920','EPSG','3448','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6312','D_MGI',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6312_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6312','EPSG','1321','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115921','MGI',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6312',0); +INSERT INTO "usage" VALUES('ESRI', '115921_USAGE','vertical_crs','ESRI','115921','EPSG','1321','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1333','IGS20',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1333_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1333','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115922','IGS20',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1333',0); +INSERT INTO "usage" VALUES('ESRI', '115922_USAGE','vertical_crs','ESRI','115922','EPSG','1262','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1353','ETRS89_DREF91_Realization_2016',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1353_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1353','EPSG','1103','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115923','ETRS89_DREF91_2016',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1353',0); +INSERT INTO "usage" VALUES('ESRI', '115923_USAGE','vertical_crs','ESRI','115923','EPSG','1103','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1355','Sonatrach_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1355_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1355','EPSG','1026','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115924','RGSH2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1355',0); +INSERT INTO "usage" VALUES('ESRI', '115924_USAGE','vertical_crs','ESRI','115924','EPSG','1026','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1356','Latvian_coordinate_system_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1356_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1356','EPSG','1139','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115925','LKS-2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1356',0); +INSERT INTO "usage" VALUES('ESRI', '115925_USAGE','vertical_crs','ESRI','115925','EPSG','1139','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115926','RGNC_1991-93_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6749',0); +INSERT INTO "usage" VALUES('ESRI', '115926_USAGE','vertical_crs','ESRI','115926','EPSG','1174','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1357','Reseau_Geodesique_de_Nouvelle_Caledonie_2015',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1357_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1357','EPSG','1174','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115927','RGNC15',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1357',0); +INSERT INTO "usage" VALUES('ESRI', '115927_USAGE','vertical_crs','ESRI','115927','EPSG','1174','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115928','RGNC15_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1357',0); +INSERT INTO "usage" VALUES('ESRI', '115928_USAGE','vertical_crs','ESRI','115928','EPSG','1174','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1358','BH_ETRS89',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1358_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1358','EPSG','1050','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115929','BH_ETRS89',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1358',0); +INSERT INTO "usage" VALUES('ESRI', '115929_USAGE','vertical_crs','ESRI','115929','EPSG','1050','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1329','Marco_Geocentrico_Nacional_de_Referencia_2018',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1329_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1329','EPSG','1070','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115930','MAGNA-SIRGAS_2018',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1329',0); +INSERT INTO "usage" VALUES('ESRI', '115930_USAGE','vertical_crs','ESRI','115930','EPSG','1070','EPSG','1024'); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1365','North_American_Datum_of_1983_(CSRS)_version_8',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1365_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1365','EPSG','1061','EPSG','1024'); +INSERT INTO "vertical_crs" VALUES('ESRI','115931','NAD83(CSRS)v8',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1365',0); +INSERT INTO "usage" VALUES('ESRI', '115931_USAGE','vertical_crs','ESRI','115931','EPSG','1061','EPSG','1024'); INSERT INTO alias_name VALUES('compound_crs','EPSG','3901','KKJ_Finland_Uniform_Coordinate_System_and_N60_height','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','3902','ETRS_1989_TM35FIN_and_N60_height','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','3903','ETRS_1989_TM35FIN_and_N2000_height','ESRI'); @@ -18328,11 +18828,155 @@ INSERT INTO alias_name VALUES('compound_crs','EPSG','8813','NAD_1983_Missouri_Ea INSERT INTO alias_name VALUES('compound_crs','EPSG','8814','NAD_1983_Missouri_Central_and_NAVD88_height','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','8815','NAD_1983_Missouri_West_and_NAVD88_height','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','8912','CR-SIRGAS_CRTM05_and_DACR52_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9286','ETRS_1989_and_NAP_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9289','ETRS_1989_and_LAT_NL_depth','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9290','ETRS_1989_and_MSL_NL_depth','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9306','HS2_Survey_Grid_and_HS2-VRF_height','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','9368','TPEN11_Grid_and_ODN_height','ESRI'); -INSERT INTO alias_name VALUES('compound_crs','EPSG','9462','GDA2020_+_AVWS_height','ESRI'); -INSERT INTO alias_name VALUES('compound_crs','EPSG','9463','GDA2020_+_AHD_height','ESRI'); -INSERT INTO alias_name VALUES('compound_crs','EPSG','9464','GDA94_+_AHD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9374','MML07_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9388','AbInvA96_2020_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9422','ETRS_1989_and_EVRF2019_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9423','ETRS_1989_and_EVRF2019_mean-tide_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9424','ETRS_1989_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9425','ETRS_1989_and_ODN_(Offshore)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9426','ETRS_1989_and_ODN_Orkney_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9427','ETRS_1989_and_Lerwick_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9428','ETRS_1989_and_Stornoway_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9429','ETRS_1989_and_Douglas_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9430','ETRS_1989_and_St_Marys_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9449','ETRS_1989_and_Malin_Head_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9450','ETRS_1989_and_Belfast_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9452','ETRS_1989_and_BI_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9457','GBK19_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9462','GDA2020_and_AVWS_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9463','GDA2020_and_AHD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9464','GDA94_and_AHD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9500','ETRS_1989_and_EVRF2000_Austria_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9501','MGI_and_EVRF2000_Austria_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9502','CIGD11_and_CBVD61_height_(ft)','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9503','CIGD11_and_GCVD54_height_(ft)','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9504','CIGD11_and_LCVD61_height_(ft)','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9505','ETRS_1989_and_Alicante_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9506','ETRS_1989_and_Ceuta_2_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9507','ETRS_1989_and_Ibiza_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9508','ETRS_1989_and_Mallorca_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9509','ETRS_1989_and_Menorca_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9510','REGCAN95_and_El_Hierro_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9511','REGCAN95_and_Fuerteventura_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9512','REGCAN95_and_Gran_Canaria_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9513','REGCAN95_and_La_Gomera_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9514','REGCAN95_and_La_Palma_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9515','REGCAN95_and_Lanzarote_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9516','REGCAN95_and_Tenerife_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9517','SHGD2015_and_SHVD2015_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9518','WGS_1984_and_EGM2008_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9519','FEH2010_and_FCSVR10_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9520','KSA-GRF17_and_KSA-VRF14_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9521','POSGAR_2007_and_SRVN16_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9522','NAD_1983_2011_and_PRVD02_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9523','NAD_1983_2011_and_VIVD09_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9524','NAD83(MA11)_and_GUVD04_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9525','NAD83(MA11)_and_NMVD03_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9526','NAD83(PA11)_and_ASVD02_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9527','NZGD2000_and_NZVD2009_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9528','NZGD2000_and_NZVD2016_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9529','SRGI2013_and_INAGeoid2020_v1_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9530','RGFG95_and_NGG1977_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9531','RGAF09_and_Guadeloupe_1988_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9532','RGAF09_and_IGN_1988_LS_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9533','RGAF09_and_IGN_1988_MG_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9534','RGAF09_and_IGN_1988_SB_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9535','RGAF09_and_IGN_1988_SM_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9536','RGAF09_and_IGN_2008_LD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9537','RGAF09_and_Martinique_1987_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9538','RGF93_v2_and_NGF-IGN69_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9539','RGF93_v2_and_NGF-IGN78_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9540','RGNC_1991-93_and_NGNC08_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9541','RGSPM06_and_Danger_1950_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9542','RRAF_1991_and_IGN_2008_LD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9543','ITRF2005_and_SA_LLD_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9544','NAD_1983_CSRS_v6_and_CGVD2013a(2010)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9656','ETRF2000-PL_and_Baltic_1986_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9657','ETRF2000-PL_and_EVRF2007-PL_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9705','WGS_1984_and_MSL_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9707','WGS_1984_and_EGM96_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9711','NAD_1983_CSRS_UTM_zone_23N_and_CGVD2013_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9714','NAD_1983_CSRS_UTM_zone_24N_and_CGVD2013_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9715','NAD_1983_CSRS_UTM_zone_15N_and_CGVD2013a(2010)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9723','ETRS_1989_and_Genoa_1942_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9724','ETRS_1989_and_Catania_1965_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9725','ETRS_1989_and_Cagliari_1956_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9742','EOS21_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9762','ECML14_NB_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9767','EWR2_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9785','RGF93_v2b_and_NGF-IGN69_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9870','MRH21_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9881','MOLDOR11_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9883','ETRS_1989_and_CD_Norway_depth','ESRI'); INSERT INTO alias_name VALUES('compound_crs','EPSG','9897','HVC_LUREF_Luxembourg_TM_and_NG95','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9907','ETRS_1989_and_Ostend_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9920','OSGB36_British_National_Grid_and_BI_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9922','ETRS_1989_ITM_and_BI_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9928','DB_REF2003_zone_2','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9929','DB_REF2003_zone_3','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9930','DB_REF2003_zone_4','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9931','DB_REF2003_zone_5','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9932','DB_REF2016_zone_2','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9933','DB_REF2016_zone_3','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9934','DB_REF2016_zone_4','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9935','DB_REF2016_zone_5','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9944','EBBWV14_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9948','ISN93_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9949','ISN2004_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9950','ISN2016_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9951','ISN93_Lambert_1993_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9952','ISN2004_Lambert_2004_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9953','ISN2016_Lambert_2016_and_ISH2004_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9968','HULLEE13_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9973','SCM22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','9978','FNL22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10156','ETRS_1989_and_MSL_UK_Ireland_VORF08_depth','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10157','ETRS_1989_and_CD_UK_Ireland_VORF08_depth','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10162','JGD2011_Japan_Plane_Rectangular_CS_I_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10163','JGD2011_Japan_Plane_Rectangular_CS_II_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10164','JGD2011_Japan_Plane_Rectangular_CS_III_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10165','JGD2011_Japan_Plane_Rectangular_CS_IV_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10166','JGD2011_Japan_Plane_Rectangular_CS_V_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10167','JGD2011_Japan_Plane_Rectangular_CS_VI_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10168','JGD2011_Japan_Plane_Rectangular_CS_VII_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10169','JGD2011_Japan_Plane_Rectangular_CS_VIII_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10170','JGD2011_Japan_Plane_Rectangular_CS_IX_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10171','JGD2011_Japan_Plane_Rectangular_CS_X_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10172','JGD2011_Japan_Plane_Rectangular_CS_XI_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10173','JGD2011_Japan_Plane_Rectangular_CS_XII_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10174','JGD2011_Japan_Plane_Rectangular_CS_XIII_and_JGD2011_(vertical)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10184','DoPw22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10189','ShAb07_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10195','CNH22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10200','CWS13_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10208','DIBA15_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10213','GWPBS22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10218','GWWAB22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10223','GWWWA22_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10228','MALS09_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10236','OxWo08_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10241','SYC20_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10245','Slovenia_1996_and_SVS2010_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10246','Slovenia_1996_Slovene_National_Grid_and_SVS2010_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10276','SMITB20_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10281','RBEPP12_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10293','ETRS_1989_DREF91_2016_and_DHHN2016_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10318','RGNC15_(lon-lat)_and_NGNC08_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10355','ETRS89_and_Formentera_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10356','ETRS89_and_Alboran_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10357','ETRS89_and_Melilla_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10365','KGD2002_and_KVD1964_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','10472','COV23_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','20001','ETRS_1989_and_SVD2006_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','20003','MWC18_Grid_and_ODN_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','20037','NAD_1983_CSRS_v4_and_CGVD2013a(2002)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','20038','NAD_1983_CSRS_v3_and_CGVD2013a(1997)_height','ESRI'); +INSERT INTO alias_name VALUES('compound_crs','EPSG','20043','SRGI2013_and_INAGeoid2020_v2_height','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',1024,'MGI_To_ETRS_1989_4','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',1055,'Ain_el_Abd_To_WGS_1984_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',1056,'Ain_El_Abd_To_WGS_1984_4','ESRI'); @@ -19189,8 +19833,11 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5066,'Aratu_To_S INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5067,'Aratu_To_WGS_1984_21','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5077,'Karbala_1979_Polservice_To_IGRS_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5078,'Karbala_1979_Polservice_To_WGS_1984_2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5189,'Korean_1985_To_Korea_2000_1','ESRI'); +INSERT INTO "alias_name" VALUES('other_transformation','EPSG',5133,'Tokyo_1892_to_Tokyo_1','ESRI'); +INSERT INTO "alias_name" VALUES('other_transformation','EPSG',5134,'Tokyo_1892_to_Korean_1985_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5189,'Korean_1985_To_KGD2002_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5191,'Korean_1985_To_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',5192,'Tokyo_1892_to_WGS_84_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5194,'VN_2000_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5226,'S_JTSK/05_To_ETRS_1989_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5227,'S_JTSK/05_To_WGS_1984_1','ESRI'); @@ -19212,7 +19859,7 @@ INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',5339,'OSGB_1936_To_ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5350,'Campo_Inchauspe_To_POSGAR_2007_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5351,'POSGAR_2007_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5374,'MARGEN_To_WGS_1984_1','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5375,'SIRGAS-Chile_To_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5375,'SIRGAS-Chile_2002_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5376,'CR05_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5377,'MARCARIO_SOLIS_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5378,'Peru96_To_WGS_1984_1','ESRI'); @@ -19226,7 +19873,7 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5474,'Ocotepeque INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5483,'LUREF_To_ETRS_1989_4','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5484,'LUREF_To_WGS_1984_4','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5485,'LUREF_To_ETRS_1989_3','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5486,'LUREF_1930_To_WGS_1984_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5486,'LUREF_To_WGS_1984_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5491,'Fort_Desaix_To_RGAF09_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5492,'Sainte_Anne_To_RGAF09_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',5493,'Fort_Marigot_To_RGAF09_1','ESRI'); @@ -19330,14 +19977,14 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6945,'AGD_1966_T INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',6946,'TM75_To_ETRS_1989_3_NTv2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',6947,'TM75_To_WGS_1984_4_NTv2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',6948,'RD/83_To_ETRS_1989_2_NTv2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6949,'PSAD_1956_To_SIRGAS-Chile_1','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6950,'PSAD_1956_To_SIRGAS-Chile_2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6951,'PSAD_1956_To_SIRGAS-Chile_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6949,'PSAD_1956_To_SIRGAS-Chile_2002_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6950,'PSAD_1956_To_SIRGAS-Chile_2002_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6951,'PSAD_1956_To_SIRGAS-Chile_2002_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6960,'VN_2000_To_WGS_1984_2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6967,'SAD_1969_To_SIRGAS-Chile_1','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6968,'SAD_1969_To_SIRGAS-Chile_2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6969,'SAD_1969_To_SIRGAS-Chile_3','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6970,'SAD_1969_To_SIRGAS-Chile_4','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6967,'SAD_1969_To_SIRGAS-Chile_2002_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6968,'SAD_1969_To_SIRGAS-Chile_2002_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6969,'SAD_1969_To_SIRGAS-Chile_2002_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6970,'SAD_1969_To_SIRGAS-Chile_2002_4','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6971,'PSAD_1956_To_WGS_1984_15','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6972,'PSAD_1956_To_WGS_1984_16','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',6973,'PSAD_1956_To_WGS_1984_17','ESRI'); @@ -19360,17 +20007,20 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','7377','ONGD14_To_WGS_1984_1' INSERT INTO "usage" VALUES('ESRI', '7377_USAGE','helmert_transformation','ESRI','7377','EPSG','1183','EPSG','1024'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7442,'Nord_Sahara_1959_To_WGS_1984_10','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7443,'ONGD14_To_WGS_1984_2','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7448,'SAD_1969_To_SIRGAS-Chile_1','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7449,'SAD_1969_To_SIRGAS-Chile_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7448,'SAD_1969_To_SIRGAS-Chile_2002_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7449,'SAD_1969_To_SIRGAS-Chile_2002_3','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',7673,'CH1903_To_CHTRF95_1_NTv2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',7674,'CH1903_To_ETRS_1989_2_NTv2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7675,'MGI_1901_To_ETRS_1989_6','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7676,'MGI_1901_To_WGS_1984_11','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7697,'Egypt_1907_To_WGS_1984_4','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7698,'NAD_1927_To_WGS_1984_89','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',7709,'OSGB36_to_ETRS89_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',7710,'OSGB36_to_WGS_1984_9','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7720,'CGRS93_To_ETRS_1989_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7721,'CGRS93_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',7788,'CH1903_To_WGS_1984_3_NTv2','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',7811,'NTF_(Paris)_to_RGF93_v1_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7833,'Albanian_1987_To_ETRS_1989_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7834,'Albanian_1987_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7835,'Pulkovo_1942_Adj_1958_To_WGS_1984_22','ESRI'); @@ -19383,7 +20033,7 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7896,'SHGD2015_T INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7897,'St_Helena_Tritan_To_SHGD2015_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',7898,'St_Helena_Tritan_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8048,'GDA_1994_To_GDA2020_1','ESRI'); -INSERT INTO "helmert_transformation" VALUES('ESRI','8049','ITRF_2014_To_GDA2020_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9000','EPSG','7844',0.03,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,-0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','8049','ITRF_2014_To_GDA2020_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7912','EPSG','7843',0.03,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,-0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '8049_USAGE','helmert_transformation','ESRI','8049','EPSG','4177','EPSG','1024'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8094,'NTF_Paris_To_WGS_1984','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8174,'Bogota_Bogota_To_WGS_1984','ESRI'); @@ -19401,11 +20051,16 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8365,'ETRS_1989_ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8367,'S-JTSK_[JTSK03]_To_ETRS_1989_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8368,'S-JTSK_[JTSK03]_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8369,'Belge_1972_To_ETRS_1989_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8435,'Macao_2008_to_Macao_1920_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8436,'Macao_2008_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8438,'Macao_1920_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8439,'Hong_Kong_Geodetic_CS_to_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8444,'GDA_1994_To_GDA2020_NTv2_4_Christmas','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8445,'GDA_1994_To_GDA2020_NTv2_5_Cocos_Keeling','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8446,'GDA_1994_To_GDA2020_NTv2_3_Conformal','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8447,'GDA_1994_To_GDA2020_NTv2_2_Conformal_and_Distortion','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8450,'GDA2020_To_WGS_1984_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8452,'Batavia_to_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8517,'Chos_Malal_1914_To_WGS_1984','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8532,'Indian_1960_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8537,'Egypt_1907_To_WGS_1984_2','ESRI'); @@ -19421,7 +20076,14 @@ INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8556,'NAD_1983_To_N INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8559,'NAD_1983_NSRS2007_To_2011_NADCON5_3D_CONUS_1','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8561,'Old_Hawaiian_To_NAD_1983_2','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8562,'Nord_Sahara_1959_To_WGS_1984_3','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8636,'Carthage_(Paris)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8638,'Makassar_(Jakarta)_to_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8639,'Belge_1972_To_ETRS_1989_3','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8641,'Segara_(Jakarta)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8642,'S-JTSK_(Ferro)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8644,'Greek_(Athens)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8648,'Lisbon_1890_(Lisbon)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8649,'Lisbon_1890_(Lisbon)_to_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('concatenated_operation','EPSG',8650,'Palestine_1923_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8660,'NAD_1983_To_NAD_1983_HARN_49','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8661,'NAD_1983_HARN_To_PA11_NADCON5_3D_Hawaii_1','ESRI'); @@ -19432,7 +20094,6 @@ INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8669,'NAD_1983_To_N INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',8673,'NAD_1983_NSRS2007_To_2011_NADCON5_3D_PRVI_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8674,'La_Canoa_To_PSAD56_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8680,'MGI_1901_To_ETRS_1989_7','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8681,'MGI_1901_To_WGS_1984_12','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8688,'MGI_1901_To_WGS_1984_16','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8689,'MGI_1901_To_Slovenia_1996_12','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8695,'Camacupa_To_Camacupa_2015_1','ESRI'); @@ -19485,6 +20146,7 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8894,'SRB_ETRS89 INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8895,'CHTRF95_To_ETRS_1989_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8968,'CR05_To_CR-SIRGAS_1_deprecated','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8969,'CR05_To_WGS_1984_2_deprecated','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',8971,'NAD83_to_NAD83(2011)_1','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9105,'ATS_1977_To_NAD_1983_1_Nova_Scotia','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9106,'ATS_1977_To_NAD_1983_CSRS_v6_4_Nova_Scotia','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9107,'NAD_1927_To_NAD_1983_CSRS_v3_5_Ontario','ESRI'); @@ -19560,7 +20222,7 @@ INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9386,'ETRS89_to_AbI INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9408,'ED50_to_ETRS89_16','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9409,'ED50_to_ETRS89_17','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9454,'ETRS89_to_GBK19-IRF_1','ESRI'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9459','ATRF_2014_To_GDA_2020_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9309','EPSG','7844',0.03,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9459','ATRF_2014_To_GDA_2020_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9308','EPSG','7843',0.03,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9459_USAGE','helmert_transformation','ESRI','9459','EPSG','4177','EPSG','1024'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9472,'DGN95_to_SRGI2013_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9486,'MGI_1901_to_WGS_1984_15','ESRI'); @@ -19569,83 +20231,89 @@ INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9496,'MGI_1901_to_S INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9550,'NAD83_to_NAD83(CSRS)v6_10','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9676,'Israel_1993_to_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9679,'Gulshan_303_to_WGS_1984_2','ESRI'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9682','ITRF_2014_To_GDA_1994_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9000','EPSG','4283',0.035,-61.55,10.87,40.19,'EPSG','1025',39.4924,32.7221,32.8979,'EPSG','1031',0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9682','ITRF_2014_To_GDA_1994_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7912','EPSG','4939',0.035,-61.55,10.87,40.19,'EPSG','1025',39.4924,32.7221,32.8979,'EPSG','1031',0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9682_USAGE','helmert_transformation','ESRI','9682','EPSG','4177','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9684','ATRF_2014_To_GDA_1994_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9309','EPSG','4283',0.035,-61.55,10.87,40.19,'EPSG','1025',39.4924,32.7221,32.8979,'EPSG','1031',0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9684','ATRF_2014_To_GDA_1994_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9308','EPSG','4939',0.035,-61.55,10.87,40.19,'EPSG','1025',39.4924,32.7221,32.8979,'EPSG','1031',0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00150379,0.00118346,0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9684_USAGE','helmert_transformation','ESRI','9684','EPSG','4177','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9686','GDA_1994_To_WGS_1984_G1762_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','4283','EPSG','9057',0.25,61.55,-10.87,-40.19,'EPSG','1025',-39.4924,-32.7221,-32.8979,'EPSG','1031',-0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.00150379,-0.00118346,-0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9686','GDA_1994_To_WGS_1984_G1762_AT2020',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','4939','EPSG','7665',0.25,61.55,-10.87,-40.19,'EPSG','1025',-39.4924,-32.7221,-32.8979,'EPSG','1031',-0.009994,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.00150379,-0.00118346,-0.00120716,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9686_USAGE','helmert_transformation','ESRI','9686','EPSG','4177','EPSG','1024'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9688,'GDA_1994_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9689,'GDA_1994_To_WGS_1984_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9690,'WGS_1984_To_GDA2020_3','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9691,'WGS_1984_To_GDA2020_4','ESRI'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9703','ETRF2000-PL_to_ETRS89_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9702','EPSG','4258',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9703_USAGE','helmert_transformation','ESRI','9703','EPSG','1192','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9743','PN68_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9403','EPSG','4326',44.0,-307.0,-92.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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9743_USAGE','helmert_transformation','ESRI','9743','EPSG','3873','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9751','CR05_to_CR-SIRGAS_1',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','5365','EPSG','8907',0.5,-0.16959,0.35312,0.51846,'EPSG','9001',-0.03385,0.16325,-0.03446,'EPSG','9104',0.03693,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9751_USAGE','helmert_transformation','ESRI','9751','EPSG','1074','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9752','CR05_To_WGS_1984_2',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','5365','EPSG','4326',1.0,-0.16959,0.35312,0.51846,'EPSG','9001',-0.03385,0.16325,-0.03446,'EPSG','9104',0.03693,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9752_USAGE','helmert_transformation','ESRI','9752','EPSG','1074','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9769','RGWF96_To_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8900','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9769_USAGE','helmert_transformation','ESRI','9769','EPSG','1255','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9770','RGTAAF07_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7073','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9770_USAGE','helmert_transformation','ESRI','9770','EPSG','4246','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9771','TGD2005_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5886','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9771_USAGE','helmert_transformation','ESRI','9771','EPSG','1234','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9772','ETRF2000-PL_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9702','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9772_USAGE','helmert_transformation','ESRI','9772','EPSG','1192','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9773','GSK-2011_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7683','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9773_USAGE','helmert_transformation','ESRI','9773','EPSG','1198','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9774','NAD_1983_(2011)_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','6318','EPSG','4326',2.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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9774_USAGE','helmert_transformation','ESRI','9774','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9788','RGF93_v2_to_RGF93_v2b',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','9777','EPSG','9782',0.005,-0.017,0.058,0.009,'EPSG','9001',0.001305,0.00068,-0.001467,'EPSG','9104',-0.00072,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9788_USAGE','helmert_transformation','ESRI','9788','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9789','RGF93_v2_to_ETRS_1989_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9777','EPSG','4258',0.02,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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9789_USAGE','helmert_transformation','ESRI','9789','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9790','RGF93_v2b_to_ETRS_1989_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9782','EPSG','4258',0.01,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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9790_USAGE','helmert_transformation','ESRI','9790','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9791','RGF93_v2_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9777','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9791_USAGE','helmert_transformation','ESRI','9791','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9792','RGF93_v2b_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9782','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9792_USAGE','helmert_transformation','ESRI','9792','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9882','RGF93_v1_to_RGF93_v2_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4171','EPSG','9777',0.05,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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9882_USAGE','helmert_transformation','ESRI','9882','EPSG','1096','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9898','LUREF_To_ETRS_1989_5',NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4181','EPSG','4258',0.0,-265.8979,76.9761,20.2504,'EPSG','9001',0.43335,3.11447,-2.63637,'EPSG','9104',0.4752,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4103620.3891,440486.4152,4846923.4466,'EPSG','9001',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9898_USAGE','helmert_transformation','ESRI','9898','EPSG','1146','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9899','LUREF_To_ETRS_1989_6',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4181','EPSG','4258',0.0,-189.033,14.1335,-43.0901,'EPSG','9001',0.43331,3.11448,-2.63636,'EPSG','9104',0.4752,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9899_USAGE','helmert_transformation','ESRI','9899','EPSG','1146','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9901','UCS-2000_to_ETRS_1989_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5561','EPSG','4258',1.0,24.0,-121.0,-76.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,0); -INSERT INTO "usage" VALUES('ESRI', '9901_USAGE','helmert_transformation','ESRI','9901','EPSG','1242','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9904','Camacupa_1948_to_RSAO13_3',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4220','EPSG','8699',8.0,-43.0,-337.0,-233.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,0); -INSERT INTO "usage" VALUES('ESRI', '9904_USAGE','helmert_transformation','ESRI','9904','EPSG','2319','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9905','Camacupa_1948_to_RSAO13_4',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4220','EPSG','8699',10.0,-41.057,-374.564,-226.287,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.219,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9905_USAGE','helmert_transformation','ESRI','9905','EPSG','2323','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9906','Malongo_1987_to_RSAO13_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4259','EPSG','8699',5.0,-254.1,-5.36,-100.29,'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,0); -INSERT INTO "usage" VALUES('ESRI', '9906_USAGE','helmert_transformation','ESRI','9906','EPSG','3180','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9936','JGD2011_to_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','6668','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9936_USAGE','helmert_transformation','ESRI','9936','EPSG','1129','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9937','LUREF_To_ETRS_1989_7',NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4181','EPSG','4258',0.0,-265.9196,76.9506,20.2222,'EPSG','9001',0.48171,3.09948,-2.68639,'EPSG','9104',0.46346,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4101567.0943,440245.0881,4848681.4115,'EPSG','9001',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9937_USAGE','helmert_transformation','ESRI','9937','EPSG','1146','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9938','LUREF_To_ETRS_1989_8',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4181','EPSG','4258',0.0,-189.228,12.0035,-42.6303,'EPSG','9001',0.48171,3.09948,-2.68639,'EPSG','9104',0.46346,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '9938_USAGE','helmert_transformation','ESRI','9938','EPSG','1146','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9991','ITRF2014_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','9990',0.001,0.0014,0.0009,-0.0014,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00042,'EPSG','9202',0.0,0.0001,-0.0002,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9703,'ETRF2000-PL_to_ETRS89_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9732,'Monte_Mario_to_ED50_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9733,'Monte_Mario_to_IGM95_4','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9734,'Monte_Mario_to_RDN2008_5','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9735,'ED50_to_IGM95_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9736,'ED50_to_RDN2008_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9737,'IGM95_to_RDN2008_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9740,'ETRS89_to_EOS21-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9743,'PN68_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9751,'CR05_to_CR-SIRGAS_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9752,'CR05_To_WGS_1984_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9759,'ETRS89_to_ECML14_NB-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9764,'ETRS89_to_EWR2-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9768,'Kyrg-06_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9769,'RGWF96_To_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9770,'RGTAAF07_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9771,'TGD2005_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9772,'ETRF2000-PL_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9773,'GSK-2011_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9774,'NAD_1983_(2011)_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9788,'RGF93_v2_to_RGF93_v2b','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9789,'RGF93_v2_to_ETRS_1989_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9790,'RGF93_v2b_to_ETRS_1989_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9791,'RGF93_v2_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9792,'RGF93_v2b_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9795,'NAD83_to_NAD83(CSRS)v7_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9867,'ETRS_1989_to_MRH21-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9878,'ETRS_1989_to_MOLDOR11-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9882,'RGF93_v1_to_RGF93_v2_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9886,'NAD_1927_to_NAD83(CSRS)v2_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9887,'NAD_1983_to_NAD83(CSRS)v2_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9890,'RGF93_v2_to_NTF_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9891,'RGF93_v2b_to_NTF_2','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9896,'JGD2000_to_WGS_1984_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9898,'LUREF_To_ETRS_1989_5','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9899,'LUREF_To_ETRS_1989_6','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9901,'UCS-2000_to_ETRS_1989_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9904,'Camacupa_1948_to_RSAO13_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9905,'Camacupa_1948_to_RSAO13_4','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9906,'Malongo_1987_to_RSAO13_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9910,'MGI_To_ETRS_1989_8','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9913,'Hong_Kong_1980_to_Hong_Kong_Geodetic_CS_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9936,'JGD2011_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9937,'LUREF_To_ETRS_1989_7','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',9938,'LUREF_To_ETRS_1989_8','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9940,'DHDN_to_ETRS89_11','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9941,'ETRS_1989_to_EBBWV14-IRF_1','ESRI'); +INSERT INTO "helmert_transformation" VALUES('ESRI','9962','WGS_1984_G873_To_G1150_AT2005_KD',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7659','EPSG','7661',0.03,1.1,-4.7,22.0,'EPSG','1025',0.0,0.0,0.16,'EPSG','1031',1.45,'EPSG','1028',0.0,0.6,1.4,'EPSG','1027',0.0,0.0,0.02,'EPSG','1032',-0.01,'EPSG','1030',2005.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '9962_USAGE','helmert_transformation','ESRI','9962','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','9963','WGS_1984_G1150_To_G1674_AT2005_KD',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7661','EPSG','7663',0.02,-2.4,1.6,23.2,'EPSG','1025',-0.27,0.27,-0.38,'EPSG','1031',2.08,'EPSG','1028',-0.1,-0.1,1.8,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',-0.08,'EPSG','1030',2005.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '9963_USAGE','helmert_transformation','ESRI','9963','EPSG','1262','EPSG','1024'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9965,'ETRS_1989_to_HULLEE13-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9970,'ETRS_1989_to_SCM22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9975,'ETRS_1989_to_FNL22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9979,'SIRGAS_1995_to_SIRGAS_2000_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',9980,'SIRGAS_2000_to_SIRGAS-CON_SIR17P01_1','ESRI'); +INSERT INTO "helmert_transformation" VALUES('ESRI','9991','ITRF2014_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','9989',0.001,0.0014,0.0009,-0.0014,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00042,'EPSG','9202',0.0,0.0001,-0.0002,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9991_USAGE','helmert_transformation','ESRI','9991','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9992','ITRF_2008_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','9990',0.01,-0.0002,-0.001,-0.0033,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00029,'EPSG','9202',0.0,0.0001,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00003,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9992','ITRF_2008_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','9989',0.01,-0.0002,-0.001,-0.0033,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00029,'EPSG','9202',0.0,0.0001,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00003,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9992_USAGE','helmert_transformation','ESRI','9992','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9993','ITRF_2005_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8998','EPSG','9990',0.01,-0.0027,-0.0001,0.0014,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00065,'EPSG','9202',-0.0003,0.0001,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00003,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9993','ITRF_2005_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7910','EPSG','9989',0.01,-0.0027,-0.0001,0.0014,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00065,'EPSG','9202',-0.0003,0.0001,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00003,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9993_USAGE','helmert_transformation','ESRI','9993','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9994','ITRF_2000_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','9990',0.01,0.0002,-0.0008,0.0342,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00225,'EPSG','9202',-0.0001,0.0,0.0017,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00011,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9994','ITRF_2000_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','9989',0.01,0.0002,-0.0008,0.0342,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00225,'EPSG','9202',-0.0001,0.0,0.0017,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',-0.00011,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9994_USAGE','helmert_transformation','ESRI','9994','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9995','ITRF_1997_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8996','EPSG','9990',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9995','ITRF_1997_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7908','EPSG','9989',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9995_USAGE','helmert_transformation','ESRI','9995','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9996','ITRF_1996_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8995','EPSG','9990',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9996','ITRF_1996_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7907','EPSG','9989',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9996_USAGE','helmert_transformation','ESRI','9996','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9997','ITRF_1994_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8994','EPSG','9990',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9997','ITRF_1994_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7906','EPSG','9989',0.01,-0.0065,0.0039,0.0779,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00398,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9997_USAGE','helmert_transformation','ESRI','9997','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9998','ITRF_1993_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8993','EPSG','9990',0.01,0.0658,-0.0019,0.0713,'EPSG','9001',0.00336,0.00433,-0.00075,'EPSG','9104',-0.00447,'EPSG','9202',0.0028,0.0002,0.0023,'EPSG','1042',0.00011,0.00019,-0.00007,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9998','ITRF_1993_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7905','EPSG','9989',0.01,0.0658,-0.0019,0.0713,'EPSG','9001',0.00336,0.00433,-0.00075,'EPSG','9104',-0.00447,'EPSG','9202',0.0028,0.0002,0.0023,'EPSG','1042',0.00011,0.00019,-0.00007,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9998_USAGE','helmert_transformation','ESRI','9998','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','9999','ITRF_1992_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8992','EPSG','9990',0.01,-0.0145,0.0019,0.0859,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00327,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','9999','ITRF_1992_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7904','EPSG','9989',0.01,-0.0145,0.0019,0.0859,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00327,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '9999_USAGE','helmert_transformation','ESRI','9999','EPSG','1262','EPSG','1024'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10085,'Trinidad_1903_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10086,'Jamaica_1969_To_WGS_1972_1','ESRI'); @@ -19656,22 +20324,53 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10092,'Aratu_To_ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10093,'Aratu_To_WGS_1984_9','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10098,'KKJ_To_ETRS_1989_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10099,'KKJ_To_WGS_1984_2_JHS153','ESRI'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10100','ITRF_1991_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8991','EPSG','9990',0.01,-0.0265,-0.0121,0.0919,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00467,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','10100','ITRF_1991_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7903','EPSG','9989',0.01,-0.0265,-0.0121,0.0919,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00467,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '10100_USAGE','helmert_transformation','ESRI','10100','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10103','ITRF_1990_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8990','EPSG','9990',0.01,-0.0245,-0.0081,0.1079,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00497,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','10103','ITRF_1990_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7902','EPSG','9989',0.01,-0.0245,-0.0081,0.1079,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00497,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '10103_USAGE','helmert_transformation','ESRI','10103','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10104','ITRF_1989_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8989','EPSG','9990',0.01,-0.0295,-0.0321,0.1459,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00837,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','10104','ITRF_1989_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7901','EPSG','9989',0.01,-0.0295,-0.0321,0.1459,'EPSG','9001',0.0,0.0,-0.00036,'EPSG','9104',-0.00837,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '10104_USAGE','helmert_transformation','ESRI','10104','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10105','ITRF_1988_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8988','EPSG','9990',0.01,-0.0245,0.0039,0.1699,'EPSG','9001',-0.0001,0.0,-0.00036,'EPSG','9104',-0.01147,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','10105','ITRF_1988_TO_ITRF2020_AT2015_1',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7900','EPSG','9989',0.01,-0.0245,0.0039,0.1699,'EPSG','9001',-0.0001,0.0,-0.00036,'EPSG','9104',-0.01147,'EPSG','9202',-0.0001,0.0006,0.0031,'EPSG','1042',0.0,0.0,-0.00002,'EPSG','1043',-0.00012,'EPSG','1041',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '10105_USAGE','helmert_transformation','ESRI','10105','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10135','PSAD56_to_SIRGAS-Chile_2021_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4248','EPSG','20041',5.0,-302.0,272.0,-360.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,0); -INSERT INTO "usage" VALUES('ESRI', '10135_USAGE','helmert_transformation','ESRI','10135','EPSG','4231','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10136','PSAD56_to_SIRGAS-Chile_2021_2',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4248','EPSG','20041',5.0,-328.0,340.0,-329.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,0); -INSERT INTO "usage" VALUES('ESRI', '10136_USAGE','helmert_transformation','ESRI','10136','EPSG','4222','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10137','PSAD56_to_SIRGAS-Chile_2021_3',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4248','EPSG','20041',5.0,-352.0,403.0,-287.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,0); -INSERT INTO "usage" VALUES('ESRI', '10137_USAGE','helmert_transformation','ESRI','10137','EPSG','4221','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','10138','SAD69_to_SIRGAS-Chile_2021_(4)',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4618','EPSG','20041',5.0,-79.0,13.0,-14.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,0); -INSERT INTO "usage" VALUES('ESRI', '10138_USAGE','helmert_transformation','ESRI','10138','EPSG','2805','EPSG','1024'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10108,'ETRS_1989_to_MWC18-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10135,'PSAD56_to_SIRGAS-Chile_2021_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10136,'PSAD56_to_SIRGAS-Chile_2021_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10137,'PSAD56_to_SIRGAS-Chile_2021_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10138,'SAD69_to_SIRGAS-Chile_2021_(4)','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10149,'MAGNA-SIRGAS_2018_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10161,'ETRS89_to_S34J-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10181,'ETRS89_to_DoPw22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10186,'ETRS89_to_ShAb07-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10192,'ETRS89_to_CNH22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10197,'ETRS89_to_CWS13-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10205,'ETRS89_to_DIBA15-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10210,'ETRS89_to_GWPBS22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10215,'ETRS89_to_GWWAB22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10220,'ETRS89_to_GWWWA22-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10225,'ETRS89_to_MALS09-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10230,'ETRS89_to_OxWo08-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10238,'ETRS89_to_SYC20-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10251,'ETRS89_to_S34S-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10255,'ETRS89_to_S45B-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10259,'ETRS89_to_GS-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10263,'ETRS89_to_GSB-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10264,'RGSH2020_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10267,'ETRS89_to_KK-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10271,'ETRS89_to_Ostenfeld-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10273,'ETRS89_to_SMITB20-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10278,'ETRS89_to_RBEPP12-IRF_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10296,'Nord_Sahara_1959_to_WGS_1984_11','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10321,'RGNC91-93_to_RGNC15_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10324,'RGNC15_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10330,'BH_ETRS89_to_ETRS89_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10333,'BH_ETRS89_to_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10339,'Nord_Sahara_1959_to_RGSH2020_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10340,'Nord_Sahara_1959_to_RGSH2020_2','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10341,'Nord_Sahara_1959_to_RGSH2020_3','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10342,'Nord_Sahara_1959_to_RGSH2020_4','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10343,'Nord_Sahara_1959_to_RGSH2020_5','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',10344,'Nord_Sahara_1959_to_RGSH2020_6','ESRI'); +INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',10469,'ETRS89_to_COV23-IRF_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15483,'Tokyo_To_JGD_2000_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15484,'Tokyo_To_WGS_1984_108','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15485,'SAD_1969_To_SIRGAS_2000_1','ESRI'); @@ -19685,7 +20384,6 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15699,'NAD_1927_ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15701,'Kalianpur_1962_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15702,'Kalianpur_1962_To_WGS_1984_3','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15703,'Kalianpur_1962_To_WGS_1984_4','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15704,'Kalianpur_1962_To_WGS_1984_5','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15705,'Minna_To_WGS_1984_12','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15706,'Minna_To_WGS_1984_13','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15707,'ELD_1979_To_WGS_1984_6','ESRI'); @@ -19798,7 +20496,7 @@ INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15827,'Old_Hawai INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15828,'Old_Hawaiian_To_WGS_1984_5','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15829,'Little_Cayman_1961_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15830,'Grand_Cayman_1959_To_WGS_1984_1','ESRI'); -INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15831,'Korea_2000_To_WGS_1984_1','ESRI'); +INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15831,'KGD2002_To_WGS_1984_1','ESRI'); INSERT INTO "alias_name" VALUES('helmert_transformation','EPSG',15833,'RGPF_To_WGS_1984_2','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',15834,'NAD_1983_To_HARN_North_Carolina','ESRI'); INSERT INTO "alias_name" VALUES('grid_transformation','EPSG',15835,'NAD_1983_To_WGS_1984_North_Carolina_55','ESRI'); @@ -19937,9 +20635,9 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108017','NAD_1983_PACP00_To_ INSERT INTO "usage" VALUES('ESRI', '108017_USAGE','helmert_transformation','ESRI','108017','EPSG','4162','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108018','NAD_1983_MARP00_To_WGS_1984',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9072','EPSG','4326',0.1,-0.9102,2.0141,0.5602,'EPSG','9001',-0.029039,-0.010065,-0.010101,'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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108018_USAGE','helmert_transformation','ESRI','108018','EPSG','4167','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','180','Israel, Palestine Territory, and Jordan','Israel, Palestine Territory, and Jordan',29.19,33.53,32.99,39.3,0); +INSERT INTO "extent" VALUES('ESRI','171','Israel, Palestine Territory, and Jordan','Israel, Palestine Territory, and Jordan',29.19,33.53,32.99,39.3,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108021','WGS_1984_To_Israel_CoordFrame',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4326','EPSG','4141',1.0,-24.0024,-17.1032,-17.8444,'EPSG','9001',-0.33009,-1.85269,1.66969,'EPSG','9104',5.4248,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108021_USAGE','helmert_transformation','ESRI','108021','ESRI','180','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108021_USAGE','helmert_transformation','ESRI','108021','ESRI','171','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108023','Datum_Lisboa_Hayford_To_WGS_1984_NTv2',NULL,'EPSG','9615','NTv2','ESRI','104106','EPSG','4326',0.1,'EPSG','8656','Latitude and longitude difference file','portugal/DLX_ETRS89_geo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108023_USAGE','grid_transformation','ESRI','108023','EPSG','1294','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108024','Datum_Lisboa_Hayford_To_ETRS_1989_NTv2',NULL,'EPSG','9615','NTv2','ESRI','104106','EPSG','4258',0.1,'EPSG','8656','Latitude and longitude difference file','portugal/DLX_ETRS89_geo',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -19969,11 +20667,11 @@ INSERT INTO "usage" VALUES('ESRI', '108035_USAGE','helmert_transformation','ESRI INSERT INTO "helmert_transformation" VALUES('ESRI','108036','ITRF_2000_To_ITRF_2005_1',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','8997','EPSG','8998',0.01,-0.0001,0.0008,0.0058,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.0004,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108036_USAGE','helmert_transformation','ESRI','108036','EPSG','1262','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108037','Macao_2008_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8431','EPSG','4326',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108037_USAGE','helmert_transformation','ESRI','108037','ESRI','50','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108037_USAGE','helmert_transformation','ESRI','108037','ESRI','52','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108038','Macao_2008_To_ITRF_2005',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8431','EPSG','8998',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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108038_USAGE','helmert_transformation','ESRI','108038','ESRI','50','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108038_USAGE','helmert_transformation','ESRI','108038','ESRI','52','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108039','Macao_2008_To_Observatorio_Meteorologico_1965_1',NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','8431','ESRI','104126',3.0,202.865,303.99,155.873,'EPSG','9001',34.067,-76.126,-32.647,'EPSG','9104',-6.096,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,-2361757.652,5417232.187,2391453.053,'EPSG','9001',NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108039_USAGE','helmert_transformation','ESRI','108039','ESRI','50','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108039_USAGE','helmert_transformation','ESRI','108039','ESRI','52','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108042','Amersfoort_To_WGS_1984_NTv2',NULL,'EPSG','9615','NTv2','EPSG','4289','EPSG','4326',0.2,'EPSG','8656','Latitude and longitude difference file','netherlands/rdtrans2008',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108042_USAGE','grid_transformation','ESRI','108042','EPSG','1275','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108043','Egypt_1907_To_WGS_1984_2',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4229','EPSG','4326',5.0,-121.8,98.1,-10.7,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.2263,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -19986,6 +20684,8 @@ INSERT INTO "grid_transformation" VALUES('ESRI','108046','NAD_1983_HARN_To_NSRS2 INSERT INTO "usage" VALUES('ESRI', '108046_USAGE','grid_transformation','ESRI','108046','EPSG','3634','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108047','NAD_1983_NSRS2007_To_2011_GEOCON11_CONUS',NULL,'EPSG','9615','NTv2','EPSG','4759','EPSG','6318',0.05,'EPSG','8656','Latitude and longitude difference file','gc_nad83_2007_2011_conus_shifts',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108047_USAGE','grid_transformation','ESRI','108047','EPSG','1323','EPSG','1024'); +INSERT INTO "grid_transformation" VALUES('ESRI','108049','NAD_1983_NSRS2007_To_2011_GEOCON11_Puerto_Rico_Virgin_Islands',NULL,'EPSG','9615','NTv2','EPSG','4759','EPSG','6318',0.05,'EPSG','8656','Latitude and longitude difference file','gc_nad83_2007_2011_prvi_shifts',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108049_USAGE','grid_transformation','ESRI','108049','EPSG','3634','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108050','ETRS_1989_To_Xrail84_1',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4258','ESRI','104050',0.5,19.019,115.122,-97.287,'EPSG','9001',3.577824,-3.484437,-2.767646,'EPSG','9104',18.6084754,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108050_USAGE','helmert_transformation','ESRI','108050','ESRI','2','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108051','WGS_1984_To_Xrail84_1',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4326','ESRI','104050',0.5,19.019,115.122,-97.287,'EPSG','9001',3.577824,-3.484437,-2.767646,'EPSG','9104',18.6084754,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20072,9 +20772,8 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108106','Tokyo_To_WGS_1984_2 INSERT INTO "usage" VALUES('ESRI', '108106_USAGE','helmert_transformation','ESRI','108106','EPSG','3957','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108107','JGD_2000_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4612','EPSG','4326',4.0,-1.126,-0.077,-0.037,'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,0); INSERT INTO "usage" VALUES('ESRI', '108107_USAGE','helmert_transformation','ESRI','108107','EPSG','1135','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','181','Japan - NTv2','Japan - NTv2',20.0,47.0,121.0,154.0,0); INSERT INTO "grid_transformation" VALUES('ESRI','108109','Tokyo_To_WGS_1984_NTv2',NULL,'EPSG','9615','NTv2','EPSG','4301','EPSG','4326',1.0,'EPSG','8656','Latitude and longitude difference file','japan/tky2jgd',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108109_USAGE','grid_transformation','ESRI','108109','ESRI','181','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108109_USAGE','grid_transformation','ESRI','108109','EPSG','3957','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108110','Datum_73_To_WGS_1984_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4274','EPSG','4326',5.0,-223.237,110.193,36.649,'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,0); INSERT INTO "usage" VALUES('ESRI', '108110_USAGE','helmert_transformation','ESRI','108110','EPSG','1294','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108111','ED_1950_To_WGS_1984_PT3',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4230','EPSG','4326',NULL,-86.277,-108.879,-120.181,'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,0); @@ -20093,8 +20792,6 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108117','Sao_Braz_To_WGS_198 INSERT INTO "usage" VALUES('ESRI', '108117_USAGE','helmert_transformation','ESRI','108117','EPSG','1345','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108119','ED_1950_To_WGS_1984_NTv2_Baleares',NULL,'EPSG','9615','NTv2','EPSG','4230','EPSG','4326',1.0,'EPSG','8656','Latitude and longitude difference file','spain/baleares',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108119_USAGE','grid_transformation','ESRI','108119','EPSG','2335','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108120','Datum_73_To_WGS_1984_2',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4274','EPSG','4326',1.0,-239.749,88.181,30.488,'EPSG','9001',-0.26,-0.08,-1.21,'EPSG','9104',2.23,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108120_USAGE','helmert_transformation','ESRI','108120','EPSG','1294','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108121','ED_1950_To_WGS_1984_PT7',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4230','EPSG','4326',NULL,-68.863,-134.888,-111.49,'EPSG','9001',0.53,0.14,-0.57,'EPSG','9104',-3.4,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108121_USAGE','helmert_transformation','ESRI','108121','EPSG','1294','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108122','Graciosa_Base_SW_1948_To_WGS_1984_2',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','ESRI','37241','EPSG','4326',1.0,-103.088,162.481,-28.276,'EPSG','9001',-0.17,-0.08,-0.17,'EPSG','9104',-1.5,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20115,15 +20812,15 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108130','NTF_To_RGF_1993_1', INSERT INTO "usage" VALUES('ESRI', '108130_USAGE','helmert_transformation','ESRI','108130','EPSG','3694','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108136','ED_1950_To_WGS_1984_NTv2_Peninsula',NULL,'EPSG','9615','NTv2','EPSG','4230','EPSG','4326',1.0,'EPSG','8656','Latitude and longitude difference file','spain/peninsula',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108136_USAGE','grid_transformation','ESRI','108136','EPSG','4605','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','182','Northern Marianas - Rota','Northern Marianas - Rota',14.0,14.75,145.0,146.0,0); +INSERT INTO "extent" VALUES('ESRI','172','Northern Marianas - Rota','Northern Marianas - Rota',14.0,14.75,145.0,146.0,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108137','Guam_1963_To_HARN_Marianas_Rota',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152',NULL,-96.234,-252.601,258.222,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108137_USAGE','helmert_transformation','ESRI','108137','ESRI','182','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','183','Northern Marianas - Saipan','Northern Marianas - Saipan',14.75,15.5,145.0,146.0,0); +INSERT INTO "usage" VALUES('ESRI', '108137_USAGE','helmert_transformation','ESRI','108137','ESRI','172','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','173','Northern Marianas - Saipan','Northern Marianas - Saipan',14.75,15.5,145.0,146.0,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108138','Guam_1963_To_HARN_Marianas_Saipan',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152',NULL,-91.766,-255.817,255.702,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108138_USAGE','helmert_transformation','ESRI','108138','ESRI','183','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','184','Northern Marianas - Tinian and Aguijan','Northern Marianas - Tinian and Aguijan',14.75,15.13333333333333,145.5,145.75,0); +INSERT INTO "usage" VALUES('ESRI', '108138_USAGE','helmert_transformation','ESRI','108138','ESRI','173','EPSG','1024'); +INSERT INTO "extent" VALUES('ESRI','174','Northern Marianas - Tinian and Aguijan','Northern Marianas - Tinian and Aguijan',14.75,15.13333333333333,145.5,145.75,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108139','Guam_1963_To_HARN_Marianas_Tinian_Aguijan',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152',NULL,-93.062,-255.309,256.696,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108139_USAGE','helmert_transformation','ESRI','108139','ESRI','184','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108139_USAGE','helmert_transformation','ESRI','108139','ESRI','174','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108145','NGO_1948_Oslo_To_WGS_1984',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4817','EPSG','4326',5.0,319.08,37.81,463.57,'EPSG','9001',-6.2970588,1.2903926,5.712916338,'EPSG','9104',10.819,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108145_USAGE','helmert_transformation','ESRI','108145','EPSG','1352','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108146','NGO_1948_Oslo_To_ETRS_1989_1',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4817','EPSG','4258',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20178,27 +20875,27 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108172','Sao_Braz_To_PTRA08_ INSERT INTO "usage" VALUES('ESRI', '108172_USAGE','helmert_transformation','ESRI','108172','EPSG','1345','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108173','Sao_Braz_To_PTRA08_2_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013',0.03,-249.507,179.302,119.92,'EPSG','9001',1.406,2.423,-0.479,'EPSG','9104',0.952,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108173_USAGE','helmert_transformation','ESRI','108173','EPSG','2871','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','185','Azores - Santa Maria Island','Azores - Santa Maria Island',36.9,37.1,-25.25,-24.95,0); +INSERT INTO "extent" VALUES('ESRI','175','Azores - Santa Maria Island','Azores - Santa Maria Island',36.9,37.1,-25.25,-24.95,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108174','Sao_Braz_To_PTRA08_3_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013',0.01,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108174_USAGE','helmert_transformation','ESRI','108174','ESRI','185','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108174_USAGE','helmert_transformation','ESRI','108174','ESRI','175','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108175','Sao_Braz_To_PTRA08_1_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013',0.8,-204.926,140.353,55.063,'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,0); INSERT INTO "usage" VALUES('ESRI', '108175_USAGE','helmert_transformation','ESRI','108175','EPSG','1345','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108176','Sao_Braz_To_PTRA08_2_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013',0.8,-204.519,140.159,55.404,'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,0); INSERT INTO "usage" VALUES('ESRI', '108176_USAGE','helmert_transformation','ESRI','108176','EPSG','2871','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108177','Sao_Braz_To_PTRA08_3_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013',0.8,-205.808,140.771,54.326,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108177_USAGE','helmert_transformation','ESRI','108177','ESRI','185','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108177_USAGE','helmert_transformation','ESRI','108177','ESRI','175','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108178','Sao_Braz_To_WGS_1984_1_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326',0.035,-269.089,186.247,155.667,'EPSG','9001',2.005,3.606,-0.366,'EPSG','9104',0.097,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108178_USAGE','helmert_transformation','ESRI','108178','EPSG','1345','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108179','Sao_Braz_To_WGS_1984_2_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326',0.04,-249.507,179.302,119.92,'EPSG','9001',1.406,2.423,-0.479,'EPSG','9104',0.952,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108179_USAGE','helmert_transformation','ESRI','108179','EPSG','2871','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108180','Sao_Braz_To_WGS_1984_3_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326',0.03,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108180_USAGE','helmert_transformation','ESRI','108180','ESRI','185','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108180_USAGE','helmert_transformation','ESRI','108180','ESRI','175','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108181','Sao_Braz_To_WGS_1984_1_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326',0.9,-204.926,140.353,55.063,'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,0); INSERT INTO "usage" VALUES('ESRI', '108181_USAGE','helmert_transformation','ESRI','108181','EPSG','1345','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108182','Sao_Braz_To_WGS_1984_2_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326',0.9,-204.519,140.159,55.404,'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,0); INSERT INTO "usage" VALUES('ESRI', '108182_USAGE','helmert_transformation','ESRI','108182','EPSG','2871','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108183','Sao_Braz_To_WGS_1984_3_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326',0.9,-205.808,140.771,54.326,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108183_USAGE','helmert_transformation','ESRI','108183','ESRI','185','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108183_USAGE','helmert_transformation','ESRI','108183','ESRI','175','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108184','Graciosa_1948_To_PTRA08_1_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37241','EPSG','5013',0.18,-185.391,122.266,35.989,'EPSG','9001',0.12,3.18,2.046,'EPSG','9104',-1.053,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108184_USAGE','helmert_transformation','ESRI','108184','EPSG','1301','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108185','Graciosa_1948_To_PTRA08_2_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37241','EPSG','5013',0.005,-76.822,257.457,-12.817,'EPSG','9001',2.136,-0.033,-2.392,'EPSG','9104',-0.031,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20225,8 +20922,6 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108196','Hungarian_1972_To_E INSERT INTO "usage" VALUES('ESRI', '108196_USAGE','helmert_transformation','ESRI','108196','EPSG','1119','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108197','IRENET95_To_ETRF_1989',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4173','EPSG','9059',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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108197_USAGE','helmert_transformation','ESRI','108197','EPSG','1305','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108198','Pulkovo_1942_To_ETRF_1989',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4284','EPSG','9059',2.0,24.0,-123.0,-94.0,'EPSG','9001',-0.02,0.25,0.13,'EPSG','9104',1.1,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108198_USAGE','helmert_transformation','ESRI','108198','EPSG','1343','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108199','RGF_1993_To_ETRF_1989_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4171','EPSG','9059',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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108199_USAGE','helmert_transformation','ESRI','108199','EPSG','1096','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108201','NGO_1948_To_WGS_1984',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4273','EPSG','4326',5.0,319.08,37.81,463.57,'EPSG','9001',-6.2970588,1.2903926,5.712916338,'EPSG','9104',10.819,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20249,15 +20944,15 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108212','SWEREF99_To_RT90',N INSERT INTO "usage" VALUES('ESRI', '108212_USAGE','helmert_transformation','ESRI','108212','EPSG','1225','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108213','WGS_1984_To_RT90',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4326','EPSG','4124',NULL,-414.0978567149,-41.3381489658,-603.0627177516,'EPSG','9001',-0.8550434314,2.1413465185,-7.0227209516,'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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108213_USAGE','helmert_transformation','ESRI','108213','EPSG','1225','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','186','Iceland - NADCON','Iceland - NADCON',63.2700005,66.6600003,-24.6499996,-13.2499999,0); +INSERT INTO "extent" VALUES('ESRI','176','Iceland - NADCON','Iceland - NADCON',63.2700005,66.6600003,-24.6499996,-13.2499999,0); INSERT INTO "grid_transformation" VALUES('ESRI','108214','ISN_1993_To_ISN_2004',NULL,'EPSG','9615','NTv2','EPSG','4659','EPSG','5324',0.05,'EPSG','8656','Latitude and longitude difference file','icegrid2004',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108214_USAGE','grid_transformation','ESRI','108214','ESRI','186','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108214_USAGE','grid_transformation','ESRI','108214','ESRI','176','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108216','ISN_2004_To_ISN_1993',NULL,'EPSG','9615','NTv2','EPSG','5324','EPSG','4659',0.05,'EPSG','8656','Latitude and longitude difference file','ICEGRID93',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108216_USAGE','grid_transformation','ESRI','108216','ESRI','186','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108216_USAGE','grid_transformation','ESRI','108216','ESRI','176','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108217','La_Canoa_To_SIRGAS',NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4247','EPSG','4170',15.0,-270.933,115.599,-360.226,'EPSG','9001',-5.266,-1.238,2.381,'EPSG','9104',-5.109,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2464351.594,-5783466.613,974809.808,'EPSG','9001',NULL,0); INSERT INTO "usage" VALUES('ESRI', '108217_USAGE','helmert_transformation','ESRI','108217','EPSG','3327','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108220','Palestine_1923_To_WGS_1984_1X',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4281','EPSG','4326',1.5,-181.0,-122.0,225.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,0); -INSERT INTO "usage" VALUES('ESRI', '108220_USAGE','helmert_transformation','ESRI','108220','EPSG','1126','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108220_USAGE','helmert_transformation','ESRI','108220','EPSG','1356','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108222','Datum_Lisboa_Hayford_To_Datum_73_1',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104106','EPSG','4274',5.0,-80.809,-170.77,66.991,'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,0); INSERT INTO "usage" VALUES('ESRI', '108222_USAGE','helmert_transformation','ESRI','108222','EPSG','1294','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108223','Datum_Lisboa_Hayford_To_Datum_73_2',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','ESRI','104106','EPSG','4274',5.0,-49.137,-179.924,95.757,'EPSG','9001',1.955,-0.328,1.423,'EPSG','9104',-6.827,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20328,8 +21023,6 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108277','D48_To_WGS_1984',NU INSERT INTO "usage" VALUES('ESRI', '108277_USAGE','helmert_transformation','ESRI','108277','EPSG','1212','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108278','Voirol_1875_Grad_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104139','EPSG','4326',44.0,-73.0,-247.0,227.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,0); INSERT INTO "usage" VALUES('ESRI', '108278_USAGE','helmert_transformation','ESRI','108278','EPSG','1365','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108279','Merchich_Degree_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104261','EPSG','4326',7.0,31.0,146.0,47.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,0); -INSERT INTO "usage" VALUES('ESRI', '108279_USAGE','helmert_transformation','ESRI','108279','EPSG','3280','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108280','ITRF_2000_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8997','EPSG','4326',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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108280_USAGE','helmert_transformation','ESRI','108280','EPSG','1262','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108281','ITRF_2000_To_NAD_1983_HARN',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','8997','EPSG','4152',0.1,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20360,26 +21053,26 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108296','Graciosa_1948_To_WG INSERT INTO "usage" VALUES('ESRI', '108296_USAGE','helmert_transformation','ESRI','108296','EPSG','2875','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108297','Graciosa_1948_To_WGS_1984_6_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37241','EPSG','4326',0.2,-106.235,166.236,-37.768,'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,0); INSERT INTO "usage" VALUES('ESRI', '108297_USAGE','helmert_transformation','ESRI','108297','EPSG','2872','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','187','USA - Idaho and Montana','USA - Idaho and Montana',41.0,49.38,-119.0,-104.0,0); +INSERT INTO "extent" VALUES('ESRI','177','USA - Idaho and Montana','USA - Idaho and Montana',41.0,49.38,-119.0,-104.0,0); INSERT INTO "grid_transformation" VALUES('ESRI','108298','NAD_1983_To_HARN_Montana_Idaho',NULL,'EPSG','9615','NTv2','EPSG','4269','EPSG','4152',0.05,'EPSG','8656','Latitude and longitude difference file','imhpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108298_USAGE','grid_transformation','ESRI','108298','ESRI','187','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108298_USAGE','grid_transformation','ESRI','108298','ESRI','177','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108299','Guam_1963_To_WGS_1984_Saipan',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4326',NULL,59.935,118.4,-10.871,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108299_USAGE','helmert_transformation','ESRI','108299','ESRI','183','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108299_USAGE','helmert_transformation','ESRI','108299','ESRI','173','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108300','NAD_1983_HARN_To_WGS_1984_Saipan',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4152','EPSG','4326',NULL,1.2,0.4,0.55,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108300_USAGE','helmert_transformation','ESRI','108300','ESRI','183','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108300_USAGE','helmert_transformation','ESRI','108300','ESRI','173','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108302','ATS_1977_To_NAD_1983_CSRS_NTv2_Maritimes',NULL,'EPSG','9615','NTv2','EPSG','4122','EPSG','4617',NULL,'EPSG','8656','Latitude and longitude difference file','canada/GS7783',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108302_USAGE','grid_transformation','ESRI','108302','EPSG','1283','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108303','Pohnpei_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104109','EPSG','4326',NULL,-89.121,-348.182,260.871,'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,0); INSERT INTO "usage" VALUES('ESRI', '108303_USAGE','helmert_transformation','ESRI','108303','EPSG','1161','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108304','Guam_1963_To_NAD_1983_HARN_Saipan',NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152',NULL,'EPSG','8656','Latitude and longitude difference file','c1hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108304_USAGE','grid_transformation','ESRI','108304','ESRI','183','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108304_USAGE','grid_transformation','ESRI','108304','ESRI','173','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108305','Guam_1963_To_NAD_1983_HARN_Rota',NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152',NULL,'EPSG','8656','Latitude and longitude difference file','c2hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108305_USAGE','grid_transformation','ESRI','108305','ESRI','182','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108305_USAGE','grid_transformation','ESRI','108305','ESRI','172','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108306','Old_Hawaiian_To_NAD_1983_HARN_Hawaii',NULL,'EPSG','9615','NTv2','EPSG','4135','EPSG','4152',0.05,'EPSG','8656','Latitude and longitude difference file','ohdhihpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108306_USAGE','grid_transformation','ESRI','108306','EPSG','1334','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','188','Pacific - USA interests Pacific and Mariana plates','Pacific - USA interests Pacific and Mariana plates',-17.56,31.8,129.48,-151.27,0); +INSERT INTO "extent" VALUES('ESRI','178','Pacific - USA interests Pacific and Mariana plates','Pacific - USA interests Pacific and Mariana plates',-17.56,31.8,129.48,-151.27,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108307','NAD_1983_HARN_PACP00_MARP00_To_WGS_1984',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4152','EPSG','4326',NULL,-0.9102,2.0141,0.5602,'EPSG','9001',-0.029039,-0.010065,-0.010101,'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,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108307_USAGE','helmert_transformation','ESRI','108307','ESRI','188','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108307_USAGE','helmert_transformation','ESRI','108307','ESRI','178','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108330','Old_Hawaiian_Intl_1924_To_WGS_1984_Mean',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104138','EPSG','4326',38.0,201.0,-228.0,-346.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,0); INSERT INTO "usage" VALUES('ESRI', '108330_USAGE','helmert_transformation','ESRI','108330','EPSG','1334','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108331','Old_Hawaiian_Intl_1924_To_WGS_1984_Hawaii',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104138','EPSG','4326',44.0,229.0,-222.0,-348.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,0); @@ -20398,27 +21091,27 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108337','Hong_Kong_1980_To_I INSERT INTO "usage" VALUES('ESRI', '108337_USAGE','helmert_transformation','ESRI','108337','EPSG','1118','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108341','Observatorio_Meteorologico_1939_To_PTRA08_1_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013',0.03,-487.978,-226.275,102.787,'EPSG','9001',-0.743,1.677,2.087,'EPSG','9104',1.485,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108341_USAGE','helmert_transformation','ESRI','108341','EPSG','1344','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','189','Azores - Flores Island','Azores - Flores Island',39.35,39.5,-31.3,-31.1,0); +INSERT INTO "extent" VALUES('ESRI','179','Azores - Flores Island','Azores - Flores Island',39.35,39.5,-31.3,-31.1,0); INSERT INTO "helmert_transformation" VALUES('ESRI','108342','Observatorio_Meteorologico_1939_To_PTRA08_2_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013',0.02,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108342_USAGE','helmert_transformation','ESRI','108342','ESRI','189','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108342_USAGE','helmert_transformation','ESRI','108342','ESRI','179','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108343','Observatorio_Meteorologico_1939_To_PTRA08_3_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013',0.07,-1333.976,-487.235,945.031,'EPSG','9001',6.674,35.963,20.438,'EPSG','9104',-11.187,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108343_USAGE','helmert_transformation','ESRI','108343','EPSG','3685','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108344','Observatorio_Meteorologico_1939_To_PTRA08_1_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013',0.06,-423.058,-172.868,83.772,'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,0); INSERT INTO "usage" VALUES('ESRI', '108344_USAGE','helmert_transformation','ESRI','108344','EPSG','1344','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108345','Observatorio_Meteorologico_1939_To_PTRA08_2_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013',0.056,-423.053,-172.871,83.771,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108345_USAGE','helmert_transformation','ESRI','108345','ESRI','189','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108345_USAGE','helmert_transformation','ESRI','108345','ESRI','179','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108346','Observatorio_Meteorologico_1939_To_PTRA08_3_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013',0.064,-423.024,-172.923,83.83,'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,0); INSERT INTO "usage" VALUES('ESRI', '108346_USAGE','helmert_transformation','ESRI','108346','EPSG','3685','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108347','Observatorio_Meteorologico_1939_To_WGS_1984_1_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326',0.06,-487.978,-226.275,102.787,'EPSG','9001',-0.743,1.677,2.087,'EPSG','9104',1.485,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108347_USAGE','helmert_transformation','ESRI','108347','EPSG','1344','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108348','Observatorio_Meteorologico_1939_To_WGS_1984_2_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326',0.05,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108348_USAGE','helmert_transformation','ESRI','108348','ESRI','189','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108348_USAGE','helmert_transformation','ESRI','108348','ESRI','179','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108349','Observatorio_Meteorologico_1939_To_WGS_1984_3_7par',NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326',0.1,-1333.976,-487.235,945.031,'EPSG','9001',6.674,35.963,20.438,'EPSG','9104',-11.187,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108349_USAGE','helmert_transformation','ESRI','108349','EPSG','3685','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108350','Observatorio_Meteorologico_1939_To_WGS_1984_1_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326',0.1,-423.058,-172.868,83.772,'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,0); INSERT INTO "usage" VALUES('ESRI', '108350_USAGE','helmert_transformation','ESRI','108350','EPSG','1344','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108351','Observatorio_Meteorologico_1939_To_WGS_1984_2_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326',0.08,-423.053,-172.871,83.771,'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,0); -INSERT INTO "usage" VALUES('ESRI', '108351_USAGE','helmert_transformation','ESRI','108351','ESRI','189','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108351_USAGE','helmert_transformation','ESRI','108351','ESRI','179','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108352','Observatorio_Meteorologico_1939_To_WGS_1984_3_3par',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326',0.085,-423.024,-172.923,83.83,'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,0); INSERT INTO "usage" VALUES('ESRI', '108352_USAGE','helmert_transformation','ESRI','108352','EPSG','3685','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108353','ITRF_2000_To_NAD_1983_2011',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','8997','EPSG','6318',0.1,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -20467,15 +21160,15 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108376','Barbados_1938_To_WG INSERT INTO "usage" VALUES('ESRI', '108376_USAGE','helmert_transformation','ESRI','108376','EPSG','3218','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108377','NAD_1983_HARN_To_NAD_1983_MA11',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4152','EPSG','6325',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,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108377_USAGE','helmert_transformation','ESRI','108377','EPSG','4167','EPSG','1024'); -INSERT INTO "extent" VALUES('ESRI','190','Australia - Lord Howe and Norfolk Islands onshore','Australia - Lord Howe and Norfolk Islands onshore',-32.3333,-28.6333,158.8,168.3333,0); +INSERT INTO "extent" VALUES('ESRI','180','Australia - Lord Howe and Norfolk Islands onshore','Australia - Lord Howe and Norfolk Islands onshore',-32.3333,-28.6333,158.8,168.3333,0); INSERT INTO "grid_transformation" VALUES('ESRI','108440','WGS_1984_To_GDA2020_NTv2_CPD_plus_Lord_Howe_Norfolk',NULL,'EPSG','9615','NTv2','EPSG','4326','EPSG','7844',3.2,'EPSG','8656','Latitude and longitude difference file','australia/gda94_gda2020_CPD_plus_lordhowe_norfolk',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108440_USAGE','grid_transformation','ESRI','108440','ESRI','190','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108440_USAGE','grid_transformation','ESRI','108440','ESRI','180','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108441','GDA_1994_To_WGS_1984_NTv2_CPD_plus_Lord_Howe_Norfolk',NULL,'EPSG','9615','NTv2','EPSG','4283','EPSG','4326',3.1,'EPSG','8656','Latitude and longitude difference file','australia/gda94_gda2020_CPD_plus_lordhowe_norfolk',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108441_USAGE','grid_transformation','ESRI','108441','ESRI','190','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108441_USAGE','grid_transformation','ESRI','108441','ESRI','180','EPSG','1024'); INSERT INTO "other_transformation" VALUES('ESRI','108442','ATRF_2014_To_GDA2020_Null',NULL,'EPSG','9619','Geographic2D offsets','EPSG','9309','EPSG','7844',0.005,'EPSG','8601','Latitude offset',0,'EPSG','9104','EPSG','8602','Longitude offset',0,'EPSG','9104',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108442_USAGE','other_transformation','ESRI','108442','EPSG','4177','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108443','GDA_1994_To_GDA2020_NTv2_CPD_plus_Lord_Howe_Norfolk',NULL,'EPSG','9615','NTv2','EPSG','4283','EPSG','7844',0.05,'EPSG','8656','Latitude and longitude difference file','australia/gda94_gda2020_CPD_plus_lordhowe_norfolk',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "usage" VALUES('ESRI', '108443_USAGE','grid_transformation','ESRI','108443','ESRI','190','EPSG','1024'); +INSERT INTO "usage" VALUES('ESRI', '108443_USAGE','grid_transformation','ESRI','108443','ESRI','180','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108448','Bab_South_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104112','EPSG','4326',NULL,-185.583,-230.096,281.361,'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,0); INSERT INTO "usage" VALUES('ESRI', '108448_USAGE','helmert_transformation','ESRI','108448','EPSG','1185','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108449','Majuro_To_WGS_1984',NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104113','EPSG','4326',NULL,25.1,-275.6,222.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,NULL,0); @@ -20490,161 +21183,173 @@ INSERT INTO "grid_transformation" VALUES('ESRI','108453','AGD_1984_To_GDA_1994_N INSERT INTO "usage" VALUES('ESRI', '108453_USAGE','grid_transformation','ESRI','108453','EPSG','4021','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('ESRI','108457','Amersfoort_To_WGS_1984_2008_MB',NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4289','EPSG','4326',0.5,593.0248,25.9984,478.7459,'EPSG','9001',0.3989573882431337,-0.3439878173782826,1.877401639980446,'EPSG','9104',4.0725,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3903453.1482,368135.3134,5012970.3051,'EPSG','9001',NULL,0); INSERT INTO "usage" VALUES('ESRI', '108457_USAGE','helmert_transformation','ESRI','108457','EPSG','1275','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108465','WGS_1984_Transit_To_G730_Fixed_At_1990.5_KD',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','8888','EPSG','9053',0.283,-58.0,521.0,239.0,'EPSG','1025',18.3,-0.3,7.0,'EPSG','1031',10.7,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108465_USAGE','helmert_transformation','ESRI','108465','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108466','WGS_1984_G730_To_G873_Fixed_At_1995.5_KD',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9053','EPSG','9054',0.121,-20.0,-16.0,14.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',-0.69,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108466_USAGE','helmert_transformation','ESRI','108466','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108467','WGS_1984_G873_To_G1150_Fixed_At_1999.5_KD',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9054','EPSG','9055',0.202,1.1,-8.0,14.3,'EPSG','1025',0.0,0.0,0.05,'EPSG','1031',1.505,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108467_USAGE','helmert_transformation','ESRI','108467','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108468','WGS_1984_G1150_To_G1674_Fixed_At_2007.5_KD',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9055','EPSG','9056',0.404,-2.65,1.35,27.7,'EPSG','1025',-0.27,0.27,-0.38,'EPSG','1031',1.88,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108468_USAGE','helmert_transformation','ESRI','108468','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108469','WGS_1984_G1674_To_G1762_Fixed_At_2012.5_KD',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9056','EPSG','9057',0.04,-4.0,3.0,4.0,'EPSG','1025',0.27,-0.27,0.38,'EPSG','1031',-6.9,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108469_USAGE','helmert_transformation','ESRI','108469','EPSG','1262','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108471','RGNC_1991_To_IGN72_Grande_Terre_NTv2',NULL,'EPSG','9615','NTv2','EPSG','4645','EPSG','4662',0.1,'EPSG','8656','Latitude and longitude difference file','france/RGNC1991_IGN72GrandeTerre',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108471_USAGE','grid_transformation','ESRI','108471','EPSG','2822','EPSG','1024'); INSERT INTO "grid_transformation" VALUES('ESRI','108472','RGNC_1991_To_NEA74_Noumea_NTv2',NULL,'EPSG','9615','NTv2','EPSG','4645','EPSG','4644',NULL,'EPSG','8656','Latitude and longitude difference file','france/RGNC1991_NEA74Noumea',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108472_USAGE','grid_transformation','ESRI','108472','EPSG','2823','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108501','ITRF_2014_To_ITRF_2008_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8999',NULL,0.0016,0.0019,0.0024,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00002,'EPSG','9202',0.0,0.0,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108474','WGS_1984_G1762_To_G2139_Fixed_At_2016.0_NGA',NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','9057','EPSG','9755',0.01,5.8,-6.4,7.0,'EPSG','1025',0.08,0.04,0.12,'EPSG','1031',-4.4,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('ESRI', '108474_USAGE','helmert_transformation','ESRI','108474','EPSG','1262','EPSG','1024'); +INSERT INTO "helmert_transformation" VALUES('ESRI','108501','ITRF_2014_To_ITRF_2008_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7911',NULL,0.0016,0.0019,0.0024,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',-0.00002,'EPSG','9202',0.0,0.0,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108501_USAGE','helmert_transformation','ESRI','108501','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108502','ITRF_2014_To_ITRF_2005_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8998',NULL,0.0026,0.001,-0.0023,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00092,'EPSG','9202',0.0003,0.0,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108502','ITRF_2014_To_ITRF_2005_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7910',NULL,0.0026,0.001,-0.0023,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00092,'EPSG','9202',0.0003,0.0,-0.0001,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108502_USAGE','helmert_transformation','ESRI','108502','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108503','ITRF_2014_To_ITRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8997',NULL,0.0007,0.0012,-0.0261,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108503','ITRF_2014_To_ITRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7909',NULL,0.0007,0.0012,-0.0261,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108503_USAGE','helmert_transformation','ESRI','108503','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108504','ITRF_2014_To_ITRF_1997_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8996',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108504','ITRF_2014_To_ITRF_1997_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7908',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108504_USAGE','helmert_transformation','ESRI','108504','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108505','ITRF_2014_To_ITRF_1996_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8995',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108505','ITRF_2014_To_ITRF_1996_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7907',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108505_USAGE','helmert_transformation','ESRI','108505','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108506','ITRF_2014_To_ITRF_1994_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8994',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108506','ITRF_2014_To_ITRF_1994_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7906',NULL,0.0074,-0.0005,-0.0628,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.0038,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108506_USAGE','helmert_transformation','ESRI','108506','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108507','ITRF_2014_To_ITRF_1993_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8993',NULL,-0.0504,0.0033,-0.0602,'EPSG','9001',-0.00281,-0.00338,0.0004,'EPSG','9104',0.00429,'EPSG','9202',-0.0028,-0.0001,-0.0025,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108507','ITRF_2014_To_ITRF_1993_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7905',NULL,-0.0504,0.0033,-0.0602,'EPSG','9001',-0.00281,-0.00338,0.0004,'EPSG','9104',0.00429,'EPSG','9202',-0.0028,-0.0001,-0.0025,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108507_USAGE','helmert_transformation','ESRI','108507','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108508','ITRF_2014_To_ITRF_1992_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8992',NULL,0.0154,0.0015,-0.0708,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00309,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108508','ITRF_2014_To_ITRF_1992_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7904',NULL,0.0154,0.0015,-0.0708,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00309,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108508_USAGE','helmert_transformation','ESRI','108508','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108509','ITRF_2014_To_ITRF_1991_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8991',NULL,0.0274,0.0155,-0.0768,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00449,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108509','ITRF_2014_To_ITRF_1991_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7903',NULL,0.0274,0.0155,-0.0768,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00449,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108509_USAGE','helmert_transformation','ESRI','108509','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108510','ITRF_2014_To_ITRF_1990_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8990',NULL,0.0254,0.0115,-0.0928,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00479,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108510','ITRF_2014_To_ITRF_1990_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7902',NULL,0.0254,0.0115,-0.0928,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00479,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108510_USAGE','helmert_transformation','ESRI','108510','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108511','ITRF_2014_To_ITRF_1989_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8989',NULL,0.0304,0.0355,-0.1308,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00819,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108511','ITRF_2014_To_ITRF_1989_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7901',NULL,0.0304,0.0355,-0.1308,'EPSG','9001',0.0,0.0,0.00026,'EPSG','9104',0.00819,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108511_USAGE','helmert_transformation','ESRI','108511','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108512','ITRF_2014_To_ITRF_1988_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','8988',NULL,0.0254,-0.0005,-0.1548,'EPSG','9001',0.0001,0.0,0.00026,'EPSG','9104',0.01129,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108512','ITRF_2014_To_ITRF_1988_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7900',NULL,0.0254,-0.0005,-0.1548,'EPSG','9001',0.0001,0.0,0.00026,'EPSG','9104',0.01129,'EPSG','9202',0.0001,-0.0005,-0.0033,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108512_USAGE','helmert_transformation','ESRI','108512','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108513','ITRF_2008_To_ITRF_2005_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8998',NULL,-0.002,-0.0009,-0.0047,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00094,'EPSG','9202',0.0003,0.0,0.0,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108513','ITRF_2008_To_ITRF_2005_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7910',NULL,-0.002,-0.0009,-0.0047,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00094,'EPSG','9202',0.0003,0.0,0.0,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108513_USAGE','helmert_transformation','ESRI','108513','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108514','ITRF_2008_To_ITRF_2000_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8997',NULL,-0.0019,-0.0017,-0.0105,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00134,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00008,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108514','ITRF_2008_To_ITRF_2000_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7909',NULL,-0.0019,-0.0017,-0.0105,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00134,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00008,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108514_USAGE','helmert_transformation','ESRI','108514','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108515','ITRF_2008_To_ITRF_1997_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8996',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108515','ITRF_2008_To_ITRF_1997_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7908',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108515_USAGE','helmert_transformation','ESRI','108515','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108516','ITRF_2008_To_ITRF_1996_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8995',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108516','ITRF_2008_To_ITRF_1996_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7907',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108516_USAGE','helmert_transformation','ESRI','108516','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108517','ITRF_2008_To_ITRF_1994_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8994',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108517','ITRF_2008_To_ITRF_1994_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7906',NULL,0.0048,0.0026,-0.0332,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00292,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108517_USAGE','helmert_transformation','ESRI','108517','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108518','ITRF_2008_To_ITRF_1993_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8993',NULL,-0.024,0.0024,-0.0386,'EPSG','9001',-0.00171,-0.00148,-0.0003,'EPSG','9104',0.00341,'EPSG','9202',-0.0028,-0.0001,-0.0024,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108518','ITRF_2008_To_ITRF_1993_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7905',NULL,-0.024,0.0024,-0.0386,'EPSG','9001',-0.00171,-0.00148,-0.0003,'EPSG','9104',0.00341,'EPSG','9202',-0.0028,-0.0001,-0.0024,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108518_USAGE','helmert_transformation','ESRI','108518','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108519','ITRF_2008_To_ITRF_1992_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8992',NULL,0.0128,0.0046,-0.0412,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00221,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108519','ITRF_2008_To_ITRF_1992_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7904',NULL,0.0128,0.0046,-0.0412,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00221,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108519_USAGE','helmert_transformation','ESRI','108519','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108520','ITRF_2008_To_ITRF_1991_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8991',NULL,0.0248,0.0186,-0.0472,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00361,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108520','ITRF_2008_To_ITRF_1991_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7903',NULL,0.0248,0.0186,-0.0472,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00361,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108520_USAGE','helmert_transformation','ESRI','108520','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108521','ITRF_2008_To_ITRF_1990_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8990',NULL,0.0228,0.0146,-0.0632,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00391,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108521','ITRF_2008_To_ITRF_1990_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7902',NULL,0.0228,0.0146,-0.0632,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00391,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108521_USAGE','helmert_transformation','ESRI','108521','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108522','ITRF_2008_To_ITRF_1989_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8989',NULL,0.0278,0.0386,-0.1012,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00731,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108522','ITRF_2008_To_ITRF_1989_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7901',NULL,0.0278,0.0386,-0.1012,'EPSG','9001',0.0,0.0,0.00006,'EPSG','9104',0.00731,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108522_USAGE','helmert_transformation','ESRI','108522','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108523','ITRF_2008_To_ITRF_1988_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','8988',NULL,0.0228,0.0026,-0.1252,'EPSG','9001',0.0001,0.0,0.00006,'EPSG','9104',0.01041,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108523','ITRF_2008_To_ITRF_1988_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7900',NULL,0.0228,0.0026,-0.1252,'EPSG','9001',0.0001,0.0,0.00006,'EPSG','9104',0.01041,'EPSG','9202',0.0001,-0.0005,-0.0032,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00009,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108523_USAGE','helmert_transformation','ESRI','108523','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108524','ITRF_2005_To_ITRF_2000_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8998','EPSG','8997',NULL,0.0001,-0.0008,-0.0058,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0004,'EPSG','9202',-0.0002,0.0001,-0.0018,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00008,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108524','ITRF_2005_To_ITRF_2000_AT2000',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7910','EPSG','7909',NULL,0.0001,-0.0008,-0.0058,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0004,'EPSG','9202',-0.0002,0.0001,-0.0018,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.00008,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108524_USAGE','helmert_transformation','ESRI','108524','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108525','ITRF_2000_To_ITRF_1997_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8996',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108525','ITRF_2000_To_ITRF_1997_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7908',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108525_USAGE','helmert_transformation','ESRI','108525','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108526','ITRF_2000_To_ITRF_1996_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8995',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108526','ITRF_2000_To_ITRF_1996_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7907',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108526_USAGE','helmert_transformation','ESRI','108526','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108527','ITRF_2000_To_ITRF_1994_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8994',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108527','ITRF_2000_To_ITRF_1994_AT1997',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7906',NULL,0.0067,0.0061,-0.0185,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.00155,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108527_USAGE','helmert_transformation','ESRI','108527','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108528','ITRF_2000_To_ITRF_1993_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8993',NULL,0.0127,0.0065,-0.0209,'EPSG','9001',-0.00039,0.0008,-0.00114,'EPSG','9104',0.00195,'EPSG','9202',-0.0029,-0.0002,-0.0006,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108528','ITRF_2000_To_ITRF_1993_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7905',NULL,0.0127,0.0065,-0.0209,'EPSG','9001',-0.00039,0.0008,-0.00114,'EPSG','9104',0.00195,'EPSG','9202',-0.0029,-0.0002,-0.0006,'EPSG','1042',-0.00011,-0.00019,0.00007,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108528_USAGE','helmert_transformation','ESRI','108528','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108529','ITRF_2000_To_ITRF_1992_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8992',NULL,0.0147,0.0135,-0.0139,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00075,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108529','ITRF_2000_To_ITRF_1992_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7904',NULL,0.0147,0.0135,-0.0139,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00075,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108529_USAGE','helmert_transformation','ESRI','108529','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108530','ITRF_2000_To_ITRF_1991_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8991',NULL,0.0267,0.0275,-0.0199,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00215,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108530','ITRF_2000_To_ITRF_1991_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7903',NULL,0.0267,0.0275,-0.0199,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00215,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108530_USAGE','helmert_transformation','ESRI','108530','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108531','ITRF_2000_To_ITRF_1990_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8990',NULL,0.0247,0.0235,-0.0359,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00245,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108531','ITRF_2000_To_ITRF_1990_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7902',NULL,0.0247,0.0235,-0.0359,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00245,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108531_USAGE','helmert_transformation','ESRI','108531','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108532','ITRF_2000_To_ITRF_1989_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8989',NULL,0.0297,0.0475,-0.0739,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00585,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108532','ITRF_2000_To_ITRF_1989_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7901',NULL,0.0297,0.0475,-0.0739,'EPSG','9001',0.0,0.0,-0.00018,'EPSG','9104',0.00585,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108532_USAGE','helmert_transformation','ESRI','108532','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108533','ITRF_2000_To_ITRF_1988_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','8988',NULL,0.0247,0.0115,-0.0979,'EPSG','9001',0.0001,0.0,-0.00018,'EPSG','9104',0.00895,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108533','ITRF_2000_To_ITRF_1988_AT1988',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7900',NULL,0.0247,0.0115,-0.0979,'EPSG','9001',0.0001,0.0,-0.00018,'EPSG','9104',0.00895,'EPSG','9202',0.0,-0.0006,-0.0014,'EPSG','1042',0.0,0.0,0.00002,'EPSG','1043',0.00001,'EPSG','1041',1988.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108533_USAGE','helmert_transformation','ESRI','108533','EPSG','1262','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108535','ITRF_1997_To_ETRF_1997_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8996','EPSG','9066',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108535','ITRF_1997_To_ETRF_1997_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7908','EPSG','7929',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108535_USAGE','helmert_transformation','ESRI','108535','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108536','ITRF_1996_To_ETRF_1996_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8995','EPSG','9065',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108536','ITRF_1996_To_ETRF_1996_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7907','EPSG','7927',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108536_USAGE','helmert_transformation','ESRI','108536','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108537','ITRF_1994_To_ETRF_1994_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8994','EPSG','9064',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108537','ITRF_1994_To_ETRF_1994_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7906','EPSG','7925',NULL,0.041,0.041,-0.049,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0002,0.0005,-0.00065,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108537_USAGE','helmert_transformation','ESRI','108537','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108538','ITRF_1993_To_ETRF_1993_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8993','EPSG','9063',NULL,0.019,0.053,-0.021,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00032,0.00078,-0.00067,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108538','ITRF_1993_To_ETRF_1993_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7905','EPSG','7923',NULL,0.019,0.053,-0.021,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00032,0.00078,-0.00067,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108538_USAGE','helmert_transformation','ESRI','108538','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108539','ITRF_1992_To_ETRF_1992_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8992','EPSG','9062',NULL,0.038,0.04,-0.037,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00021,0.00052,-0.00068,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108539','ITRF_1992_To_ETRF_1992_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7904','EPSG','7921',NULL,0.038,0.04,-0.037,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00021,0.00052,-0.00068,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108539_USAGE','helmert_transformation','ESRI','108539','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108540','ITRF_1991_To_ETRF_1991_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8991','EPSG','9061',NULL,0.021,0.025,-0.037,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00021,0.00052,-0.00068,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108540','ITRF_1991_To_ETRF_1991_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7903','EPSG','7919',NULL,0.021,0.025,-0.037,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00021,0.00052,-0.00068,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108540_USAGE','helmert_transformation','ESRI','108540','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108541','ITRF_1990_To_ETRF_1990_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8990','EPSG','9060',NULL,0.019,0.028,-0.023,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00011,0.00057,-0.00071,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108541','ITRF_1990_To_ETRF_1990_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7902','EPSG','7917',NULL,0.019,0.028,-0.023,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00011,0.00057,-0.00071,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108541_USAGE','helmert_transformation','ESRI','108541','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108542','ITRF_1989_To_ETRF_1989_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8989','EPSG','9059',NULL,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00011,0.00057,-0.00071,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108542','ITRF_1989_To_ETRF_1989_AT1989',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7901','EPSG','7915',NULL,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.00011,0.00057,-0.00071,'EPSG','1043',0.0,'EPSG','1041',1989.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108542_USAGE','helmert_transformation','ESRI','108542','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108543','ITRF_2014_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','9069',NULL,0.0,0.0,0.0,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',0.0,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108543','ITRF_2014_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','8403',NULL,0.0,0.0,0.0,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',0.0,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108543_USAGE','helmert_transformation','ESRI','108543','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108544','ITRF_2008_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','9069',NULL,-0.0016,-0.0019,-0.0024,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',0.00002,'EPSG','9202',0.0,0.0,0.0001,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108544','ITRF_2008_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','8403',NULL,-0.0016,-0.0019,-0.0024,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',0.00002,'EPSG','9202',0.0,0.0,0.0001,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108544_USAGE','helmert_transformation','ESRI','108544','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108545','ITRF_2005_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8998','EPSG','9069',NULL,-0.0026,-0.001,0.0023,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',-0.00092,'EPSG','9202',-0.0003,0.0,0.0001,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108545','ITRF_2005_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7910','EPSG','8403',NULL,-0.0026,-0.001,0.0023,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',-0.00092,'EPSG','9202',-0.0003,0.0,0.0001,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00003,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108545_USAGE','helmert_transformation','ESRI','108545','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108546','ITRF_2000_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','9069',NULL,-0.0007,-0.0012,0.0261,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',-0.00212,'EPSG','9202',-0.0001,-0.0001,0.0019,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108546','ITRF_2000_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','8403',NULL,-0.0007,-0.0012,0.0261,'EPSG','9001',0.001785,0.011151,-0.01617,'EPSG','9104',-0.00212,'EPSG','9202',-0.0001,-0.0001,0.0019,'EPSG','1042',0.000085,0.000531,-0.00077,'EPSG','1043',-0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108546_USAGE','helmert_transformation','ESRI','108546','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108547','ITRF_1997_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8996','EPSG','9069',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108547','ITRF_1997_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7908','EPSG','8403',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108547_USAGE','helmert_transformation','ESRI','108547','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108548','ITRF_1996_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8995','EPSG','9069',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108548','ITRF_1996_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7907','EPSG','8403',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108548_USAGE','helmert_transformation','ESRI','108548','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108549','ITRF_1994_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8994','EPSG','9069',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108549','ITRF_1994_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7906','EPSG','8403',NULL,-0.0074,0.0005,0.0628,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.0038,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108549_USAGE','helmert_transformation','ESRI','108549','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108550','ITRF_1993_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8993','EPSG','9069',NULL,0.0504,-0.0033,0.0602,'EPSG','9001',0.004595,0.014531,-0.01657,'EPSG','9104',-0.00429,'EPSG','9202',0.0028,0.0001,0.0025,'EPSG','1042',0.000195,0.000721,-0.00084,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108550','ITRF_1993_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7905','EPSG','8403',NULL,0.0504,-0.0033,0.0602,'EPSG','9001',0.004595,0.014531,-0.01657,'EPSG','9104',-0.00429,'EPSG','9202',0.0028,0.0001,0.0025,'EPSG','1042',0.000195,0.000721,-0.00084,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108550_USAGE','helmert_transformation','ESRI','108550','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108551','ITRF_1992_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8992','EPSG','9069',NULL,-0.0154,-0.0015,0.0708,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00309,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108551','ITRF_1992_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7904','EPSG','8403',NULL,-0.0154,-0.0015,0.0708,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00309,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108551_USAGE','helmert_transformation','ESRI','108551','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108552','ITRF_1991_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8991','EPSG','9069',NULL,-0.0274,-0.0155,0.0768,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00449,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108552','ITRF_1991_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7903','EPSG','8403',NULL,-0.0274,-0.0155,0.0768,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00449,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108552_USAGE','helmert_transformation','ESRI','108552','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108553','ITRF_1990_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8990','EPSG','9069',NULL,-0.0254,-0.0115,0.0928,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00479,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108553','ITRF_1990_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7902','EPSG','8403',NULL,-0.0254,-0.0115,0.0928,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00479,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108553_USAGE','helmert_transformation','ESRI','108553','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108554','ITRF_1989_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8989','EPSG','9069',NULL,-0.0304,-0.0355,0.1308,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00819,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108554','ITRF_1989_To_ETRF_2014_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7901','EPSG','8403',NULL,-0.0304,-0.0355,0.1308,'EPSG','9001',0.001785,0.011151,-0.01643,'EPSG','9104',-0.00819,'EPSG','9202',-0.0001,0.0005,0.0033,'EPSG','1042',0.000085,0.000531,-0.00079,'EPSG','1043',-0.00012,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108554_USAGE','helmert_transformation','ESRI','108554','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108555','ITRF_2014_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','9000','EPSG','9067',NULL,0.0547,0.0522,-0.0741,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108555','ITRF_2014_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7912','EPSG','7931',NULL,0.0547,0.0522,-0.0741,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108555_USAGE','helmert_transformation','ESRI','108555','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108556','ITRF_2008_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8999','EPSG','9067',NULL,0.0531,0.0503,-0.0765,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.00214,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00008,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108556','ITRF_2008_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7911','EPSG','7931',NULL,0.0531,0.0503,-0.0765,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.00214,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00008,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108556_USAGE','helmert_transformation','ESRI','108556','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108557','ITRF_2005_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8998','EPSG','9067',NULL,0.0521,0.0512,-0.0718,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.0012,'EPSG','9202',-0.0002,0.0001,-0.0018,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00008,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108557','ITRF_2005_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7910','EPSG','7931',NULL,0.0521,0.0512,-0.0718,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.0012,'EPSG','9202',-0.0002,0.0001,-0.0018,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.00008,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108557_USAGE','helmert_transformation','ESRI','108557','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108558','ITRF_2000_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8997','EPSG','9067',NULL,0.054,0.051,-0.048,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.0,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108558','ITRF_2000_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7909','EPSG','7931',NULL,0.054,0.051,-0.048,'EPSG','9001',0.001701,0.01029,-0.016632,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.000081,0.00049,-0.000792,'EPSG','1043',0.0,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108558_USAGE','helmert_transformation','ESRI','108558','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108559','ITRF_1997_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8996','EPSG','9067',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108559','ITRF_1997_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7908','EPSG','7931',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108559_USAGE','helmert_transformation','ESRI','108559','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108560','ITRF_1996_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8995','EPSG','9067',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108560','ITRF_1996_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7907','EPSG','7931',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108560_USAGE','helmert_transformation','ESRI','108560','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108561','ITRF_1994_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8994','EPSG','9067',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108561','ITRF_1994_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7906','EPSG','7931',NULL,0.0473,0.0527,-0.0113,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00168,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108561_USAGE','helmert_transformation','ESRI','108561','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108562','ITRF_1993_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8993','EPSG','9067',NULL,0.1051,0.0489,-0.0139,'EPSG','9001',0.004511,0.01367,-0.017032,'EPSG','9104',-0.00217,'EPSG','9202',0.0029,0.0002,0.0006,'EPSG','1042',0.000191,0.00068,-0.000862,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108562','ITRF_1993_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7905','EPSG','7931',NULL,0.1051,0.0489,-0.0139,'EPSG','9001',0.004511,0.01367,-0.017032,'EPSG','9104',-0.00217,'EPSG','9202',0.0029,0.0002,0.0006,'EPSG','1042',0.000191,0.00068,-0.000862,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108562_USAGE','helmert_transformation','ESRI','108562','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108563','ITRF_1992_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8992','EPSG','9067',NULL,0.0393,0.0507,-0.0033,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00097,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108563','ITRF_1992_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7904','EPSG','7931',NULL,0.0393,0.0507,-0.0033,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00097,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108563_USAGE','helmert_transformation','ESRI','108563','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108564','ITRF_1991_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8991','EPSG','9067',NULL,0.0273,0.0367,0.0027,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00237,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108564','ITRF_1991_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7903','EPSG','7931',NULL,0.0273,0.0367,0.0027,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00237,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108564_USAGE','helmert_transformation','ESRI','108564','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108565','ITRF_1990_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8990','EPSG','9067',NULL,0.0293,0.0407,0.0187,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00267,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108565','ITRF_1990_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7902','EPSG','7931',NULL,0.0293,0.0407,0.0187,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00267,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108565_USAGE','helmert_transformation','ESRI','108565','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108566','ITRF_1989_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','8989','EPSG','9067',NULL,0.0243,0.0167,0.0567,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00607,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108566','ITRF_1989_To_ETRF_2000_AT2010',NULL,'EPSG','1054','Time-dependent Position Vector tfm (geog2D)','EPSG','7901','EPSG','7931',NULL,0.0243,0.0167,0.0567,'EPSG','9001',0.001701,0.01029,-0.016892,'EPSG','9104',-0.00607,'EPSG','9202',0.0,0.0006,0.0014,'EPSG','1042',0.000081,0.00049,-0.000812,'EPSG','1043',-0.00001,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108566_USAGE','helmert_transformation','ESRI','108566','EPSG','1298','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108567','ITRF_2000_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','8997','EPSG','6783',NULL,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',0.0007,-0.0007,0.0005,'EPSG','1042',0.000067,-0.000757,-0.000051,'EPSG','1043',-0.00018,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108567','ITRF_2000_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7909','EPSG','6782',NULL,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',0.0007,-0.0007,0.0005,'EPSG','1042',0.000067,-0.000757,-0.000051,'EPSG','1043',-0.00018,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108567_USAGE','helmert_transformation','ESRI','108567','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108568','ITRF_1997_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','8996','EPSG','6783',NULL,0.9889,-1.9074,-0.503,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',-0.00093,'EPSG','9202',0.0007,-0.0001,0.0019,'EPSG','1042',0.000067,-0.000757,-0.000031,'EPSG','1043',-0.00019,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108568','ITRF_1997_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7908','EPSG','6782',NULL,0.9889,-1.9074,-0.503,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',-0.00093,'EPSG','9202',0.0007,-0.0001,0.0019,'EPSG','1042',0.000067,-0.000757,-0.000031,'EPSG','1043',-0.00019,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108568_USAGE','helmert_transformation','ESRI','108568','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108569','ITRF_1996_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','8995','EPSG','6783',NULL,0.991,-1.9072,-0.5129,'EPSG','9001',0.02579,0.00965,0.01166,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0000532,-0.0007423,-0.0000316,'EPSG','1043',0.0,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108569','ITRF_1996_To_NAD_1983_CORS96_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7907','EPSG','6782',NULL,0.991,-1.9072,-0.5129,'EPSG','9001',0.02579,0.00965,0.01166,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',0.0000532,-0.0007423,-0.0000316,'EPSG','1043',0.0,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108569_USAGE','helmert_transformation','ESRI','108569','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108571','IGS08_To_NAD_1983_2011_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9014','EPSG','6318',NULL,0.99343,-1.90331,-0.52655,'EPSG','9001',0.02591467,0.00942645,0.01159935,'EPSG','9104',0.00171504,'EPSG','9202',0.00079,-0.0006,-0.00134,'EPSG','1042',0.00006667,-0.00075744,-0.00005133,'EPSG','1043',-0.00010201,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108571','IGS08_To_NAD_1983_2011_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9013','EPSG','6319',NULL,0.99343,-1.90331,-0.52655,'EPSG','9001',0.02591467,0.00942645,0.01159935,'EPSG','9104',0.00171504,'EPSG','9202',0.00079,-0.0006,-0.00134,'EPSG','1042',0.00006667,-0.00075744,-0.00005133,'EPSG','1043',-0.00010201,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108571_USAGE','helmert_transformation','ESRI','108571','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108572','IGS08_To_NAD_1983_PA11_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9014','EPSG','6322',NULL,0.908,-2.0161,-0.5653,'EPSG','9001',0.027741,0.013469,0.002712,'EPSG','9104',0.0011,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.00008,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108572','IGS08_To_NAD_1983_PA11_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9013','EPSG','6321',NULL,0.908,-2.0161,-0.5653,'EPSG','9001',0.027741,0.013469,0.002712,'EPSG','9104',0.0011,'EPSG','9202',0.0001,0.0001,-0.0018,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.00008,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108572_USAGE','helmert_transformation','ESRI','108572','EPSG','4162','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108573','IGS08_To_NAD_1983_MA11_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9014','EPSG','6325',NULL,0.908,-2.0161,-0.5653,'EPSG','9001',0.028971,0.01042,0.008928,'EPSG','9104',0.0011,'EPSG','9202',0.0001,-0.0001,-0.0018,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.00008,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108573','IGS08_To_NAD_1983_MA11_AT1997',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9013','EPSG','6324',NULL,0.908,-2.0161,-0.5653,'EPSG','9001',0.028971,0.01042,0.008928,'EPSG','9104',0.0011,'EPSG','9202',0.0001,-0.0001,-0.0018,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.00008,'EPSG','1041',1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108573_USAGE','helmert_transformation','ESRI','108573','EPSG','4167','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108574','ITRF_2014_To_NAD_1983_2011_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9000','EPSG','6318',NULL,1.0053,-1.90921,-0.54157,'EPSG','9001',0.0267815,-0.00042078,0.01093254,'EPSG','9104',0.00036891,'EPSG','9202',0.00079,-0.0006,-0.00144,'EPSG','1042',0.00006669,-0.00075749,-0.00005129,'EPSG','1043',-0.00007201,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108574','ITRF_2014_To_NAD_1983_2011_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7912','EPSG','6319',NULL,1.0053,-1.90921,-0.54157,'EPSG','9001',0.0267815,-0.00042078,0.01093254,'EPSG','9104',0.00036891,'EPSG','9202',0.00079,-0.0006,-0.00144,'EPSG','1042',0.00006669,-0.00075749,-0.00005129,'EPSG','1043',-0.00007201,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108574_USAGE','helmert_transformation','ESRI','108574','EPSG','1511','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108575','ITRF_2014_To_NAD_1983_PA11_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9000','EPSG','6322',NULL,0.9109,-2.0129,-0.5863,'EPSG','9001',0.022749,0.02656,-0.025706,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108575','ITRF_2014_To_NAD_1983_PA11_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7912','EPSG','6321',NULL,0.9109,-2.0129,-0.5863,'EPSG','9001',0.022749,0.02656,-0.025706,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108575_USAGE','helmert_transformation','ESRI','108575','EPSG','4162','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108576','ITRF_2014_To_NAD_1983_MA11_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','9000','EPSG','6325',NULL,0.9109,-2.0129,-0.5863,'EPSG','9001',0.028711,0.011785,0.004417,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108576','ITRF_2014_To_NAD_1983_MA11_AT2010',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7912','EPSG','6324',NULL,0.9109,-2.0129,-0.5863,'EPSG','9001',0.028711,0.011785,0.004417,'EPSG','9104',0.00212,'EPSG','9202',0.0001,0.0001,-0.0019,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.00011,'EPSG','1041',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108576_USAGE','helmert_transformation','ESRI','108576','EPSG','4167','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108577','ITRF_2000_To_NAD_1983_PACP00_AT1993',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','8997','EPSG','9075',NULL,0.9102,-2.0141,-0.5602,'EPSG','9001',0.029039,0.010065,0.010101,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.0,'EPSG','1041',1993.62,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108577','ITRF_2000_To_NAD_1983_PACP00_AT1993',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7909','EPSG','9074',NULL,0.9102,-2.0141,-0.5602,'EPSG','9001',0.029039,0.010065,0.010101,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.000384,0.001007,-0.002186,'EPSG','1043',0.0,'EPSG','1041',1993.62,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108577_USAGE','helmert_transformation','ESRI','108577','EPSG','4162','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('ESRI','108578','ITRF_2000_To_NAD_1983_MARP00_AT1993',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','8997','EPSG','9072',NULL,0.9102,-2.0141,-0.5602,'EPSG','9001',0.029039,0.010065,0.010101,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.0,'EPSG','1041',1993.62,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "helmert_transformation" VALUES('ESRI','108578','ITRF_2000_To_NAD_1983_MARP00_AT1993',NULL,'EPSG','1057','Time-dependent Coordinate Frame rotation (geog2D)','EPSG','7909','EPSG','9071',NULL,0.9102,-2.0141,-0.5602,'EPSG','9001',0.029039,0.010065,0.010101,'EPSG','9104',0.0,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',-0.00002,0.000105,-0.000347,'EPSG','1043',0.0,'EPSG','1041',1993.62,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '108578_USAGE','helmert_transformation','ESRI','108578','EPSG','4167','EPSG','1024'); ------------------ -- ESRI grid names @@ -20679,6 +21384,7 @@ VALUES -- 'gc_nad83_harn_2007_alaska_shifts': no mapping -- 'gc_nad83_harn_2007_prvi_shifts': no mapping -- 'gc_nad83_2007_2011_conus_shifts': no mapping +-- 'gc_nad83_2007_2011_prvi_shifts': no mapping -- 'uk/osgb36_xrail84': no mapping -- 'japan/tky2jgd': no mapping -- 'icegrid2004': no mapping diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index d5a2c9c37a..43beb23e18 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -569,12 +569,15 @@ def import_geogcs(): datum_written = set() + # last 2 ones epoch,model are actually missing in most records... + assert nfields == 17 + while True: try: row = next(reader) except StopIteration: break - assert len(row) == nfields, row + assert len(row) in (nfields, nfields -2), (row, header, len(row), nfields) code = row[idx_wkid] latestWkid = row[idx_latestWkid] @@ -917,6 +920,10 @@ def get_wkt_unit(UNIT_NAME, UNIT_VALUE, is_rate=False) -> Unit: uom_auth_name = 'EPSG' uom_code = '1041' if is_rate else '9202' assert UNIT_VALUE == '0.000001', UNIT_VALUE + elif UNIT_NAME == 'Parts_Per_Billion': + uom_auth_name = 'EPSG' + uom_code = '1030' if is_rate else '1028' + assert UNIT_VALUE == '0.000000001', UNIT_VALUE elif UNIT_NAME == 'Unity': assert not is_rate uom_auth_name = 'EPSG' @@ -1451,8 +1458,6 @@ def import_projcs(): 'Lambert Conic Conformal (1SP)'] assert params['Scale_Factor'].unit.uom_code == '9201', 'Unhandled scale unit {}'.format( params['Scale_Factor'].unit.uom_code) - assert params['Standard_Parallel_1'].value == params['Latitude_Of_Origin'].value - assert params['Standard_Parallel_1'].unit == params['Latitude_Of_Origin'].unit elif method == 'Lambert_Conformal_Conic' and 'Standard_Parallel_2' in params: conversion_mapping = MAPPED_PROJCS_WITH_EXTRA_LOGIC['Lambert_Conformal_Conic']['Lambert Conic Conformal (2SP)'] @@ -1647,6 +1652,8 @@ def import_vertcs(): idx_rlon = header.index('rlon') assert idx_rlon >= 0 + assert nfields == 17 + vdatum_written = set() sql = """-- vertical coordinate system for ellipsoidal height. Not really ISO 19111 valid...""" @@ -1661,7 +1668,7 @@ def import_vertcs(): row = next(reader) except StopIteration: break - assert len(row) == nfields, row + assert len(row) in (nfields, nfields - 2), (row, len(row), nfields) code = row[idx_wkid] latestWkid = row[idx_latestWkid] diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp index e94ea86cba..ab44f31da9 100644 --- a/test/unit/test_crs.cpp +++ b/test/unit/test_crs.cpp @@ -697,9 +697,10 @@ TEST(crs, EPSG_4807_as_WKT1_ESRI_with_database) { WKTFormatterNNPtr f(WKTFormatter::create( WKTFormatter::Convention::WKT1_ESRI, DatabaseContext::create())); EXPECT_EQ(crs->exportToWKT(f.get()), - "GEOGCS[\"GCS_NTF_Paris\",DATUM[\"D_NTF\",SPHEROID[\"Clarke_1880_" - "IGN\",6378249.2,293.466021293627]],PRIMEM[\"Paris\",2.33722917]," - "UNIT[\"Grad\",0.015707963267949]]"); + "GEOGCS[\"GCS_NTF_Paris\"," + "DATUM[\"Nouvelle_Triangulation_Francaise_(Paris)\"," + "SPHEROID[\"Clarke_1880_IGN\",6378249.2,293.466021293627]]," + "PRIMEM[\"Paris\",2.33722917],UNIT[\"Grad\",0.015707963267949]]"); } // --------------------------------------------------------------------------- @@ -993,20 +994,20 @@ TEST(crs, EPSG_27561_projected_with_geodetic_in_grad_as_PROJ_string_and_WKT1) { WKTFormatter::create(WKTFormatter::Convention::WKT1_ESRI, DatabaseContext::create()) .get()); - EXPECT_EQ( - wkt1_esri, - "PROJCS[\"NTF_Paris_Lambert_Nord_France\",GEOGCS[\"GCS_NTF_Paris\"," - "DATUM[\"D_NTF\",SPHEROID[\"Clarke_1880_IGN\",6378249.2," - "293.4660213]],PRIMEM[\"Paris\",2.33722917000759]," - "UNIT[\"Grad\",0.015707963268]]," - "PROJECTION[\"Lambert_Conformal_Conic\"]," - "PARAMETER[\"False_Easting\",600000.0]," - "PARAMETER[\"False_Northing\",200000.0]," - "PARAMETER[\"Central_Meridian\",0.0]," - "PARAMETER[\"Standard_Parallel_1\",55.0]," - "PARAMETER[\"Scale_Factor\",0.999877341]," - "PARAMETER[\"Latitude_Of_Origin\",55.0]," - "UNIT[\"Meter\",1.0]]"); + EXPECT_EQ(wkt1_esri, "PROJCS[\"NTF_Paris_Lambert_Nord_France\"," + "GEOGCS[\"GCS_NTF_Paris\"," + "DATUM[\"Nouvelle_Triangulation_Francaise_(Paris)\"," + "SPHEROID[\"Clarke_1880_IGN\",6378249.2,293.4660213]]," + "PRIMEM[\"Paris\",2.33722917000759]," + "UNIT[\"Grad\",0.015707963268]]," + "PROJECTION[\"Lambert_Conformal_Conic\"]," + "PARAMETER[\"False_Easting\",600000.0]," + "PARAMETER[\"False_Northing\",200000.0]," + "PARAMETER[\"Central_Meridian\",0.0]," + "PARAMETER[\"Standard_Parallel_1\",55.0]," + "PARAMETER[\"Scale_Factor\",0.999877341]," + "PARAMETER[\"Latitude_Of_Origin\",55.0]," + "UNIT[\"Meter\",1.0]]"); } // --------------------------------------------------------------------------- From dc184bdae544057e3ab13fe00679f71bc4327710 Mon Sep 17 00:00:00 2001 From: Olli Raisa Date: Thu, 2 Nov 2023 22:10:55 +0200 Subject: [PATCH 076/199] SSL_OPTIONS: set SSL options on Curl library (#3936) --- CMakeLists.txt | 7 +++++++ src/networkfilemanager.cpp | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index dcd5021c6c..862570c12e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -228,6 +228,13 @@ if(ENABLE_CURL) INTERFACE_LINK_LIBRARIES "${CURL_LIBRARIES}" ) endif() + + # Curl SSL options are described in + # https://curl.se/libcurl/c/CURLOPT_SSL_OPTIONS.html + #set(CURLSSLOPT_NO_REVOKE 2) + #set(SSL_OPTIONS ${CURLSSLOPT_NO_REVOKE}) + #add_compile_definitions(SSL_OPTIONS=${SSL_OPTIONS}) + else() message(SEND_ERROR "curl dependency not found!") endif() diff --git a/src/networkfilemanager.cpp b/src/networkfilemanager.cpp index ee1d63ffa2..e94606e6b3 100644 --- a/src/networkfilemanager.cpp +++ b/src/networkfilemanager.cpp @@ -1620,6 +1620,13 @@ CurlFileHandle::CurlFileHandle(PJ_CONTEXT *ctx, const char *url, CURL *handle) CHECK_RET(ctx, curl_easy_setopt(handle, CURLOPT_SSL_VERIFYHOST, 0L)); } +#if defined(SSL_OPTIONS) + // https://curl.se/libcurl/c/CURLOPT_SSL_OPTIONS.html + auto ssl_options = static_cast(SSL_OPTIONS); + CHECK_RET(ctx, + curl_easy_setopt(handle, CURLOPT_SSL_OPTIONS, ssl_options)); +#endif + const auto ca_bundle_path = pj_context_get_bundle_path(ctx); if (!ca_bundle_path.empty()) { CHECK_RET(ctx, curl_easy_setopt(handle, CURLOPT_CAINFO, From 93fdba660b4c6d3f838311e258f587a40a07da5b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 4 Nov 2023 22:22:29 +0100 Subject: [PATCH 077/199] Formatting fix [ci skip] --- src/networkfilemanager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/networkfilemanager.cpp b/src/networkfilemanager.cpp index e94606e6b3..9bdc069460 100644 --- a/src/networkfilemanager.cpp +++ b/src/networkfilemanager.cpp @@ -1623,8 +1623,7 @@ CurlFileHandle::CurlFileHandle(PJ_CONTEXT *ctx, const char *url, CURL *handle) #if defined(SSL_OPTIONS) // https://curl.se/libcurl/c/CURLOPT_SSL_OPTIONS.html auto ssl_options = static_cast(SSL_OPTIONS); - CHECK_RET(ctx, - curl_easy_setopt(handle, CURLOPT_SSL_OPTIONS, ssl_options)); + CHECK_RET(ctx, curl_easy_setopt(handle, CURLOPT_SSL_OPTIONS, ssl_options)); #endif const auto ca_bundle_path = pj_context_get_bundle_path(ctx); From e9c0e8c80595315921f2ae715a8ca6eca4a19558 Mon Sep 17 00:00:00 2001 From: drons Date: Sun, 5 Nov 2023 00:58:08 +0300 Subject: [PATCH 078/199] createOperations(): Fix possible null dereference on invalid WKT input (#3945) --- src/iso19111/factory.cpp | 7 ++++++- test/unit/test_factory.cpp | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 7b2d1634c1..5115030cce 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -5045,8 +5045,13 @@ AuthorityFactory::createGeodeticCRS(const std::string &code) const { crs::GeographicCRSNNPtr AuthorityFactory::createGeographicCRS(const std::string &code) const { - return NN_NO_CHECK(util::nn_dynamic_pointer_cast( + auto crs(util::nn_dynamic_pointer_cast( createGeodeticCRS(code, true))); + if (!crs) { + throw NoSuchAuthorityCodeException("geographicCRS not found", + d->authority(), code); + } + return NN_NO_CHECK(crs); } // --------------------------------------------------------------------------- diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index f2a4d96371..ee575e3aa5 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -598,6 +598,18 @@ TEST(factory, AuthorityFactory_createGeodeticCRS_geocentric) { // --------------------------------------------------------------------------- +TEST(factory, AuthorityFactory_createGeographicCRS) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto crs = factory->createGeographicCRS("4979"); + ASSERT_TRUE(nn_dynamic_pointer_cast(crs) != nullptr); + ASSERT_EQ(crs->identifiers().size(), 1U); + EXPECT_EQ(crs->identifiers()[0]->code(), "4979"); + + EXPECT_THROW(factory->createGeographicCRS("4978"), FactoryException); +} + +// --------------------------------------------------------------------------- + TEST(factory, AuthorityFactory_createVerticalCRS) { auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); EXPECT_THROW(factory->createVerticalCRS("-1"), From 6f9fd55e38b9515476083e44200253ed877a695a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 10 Nov 2023 18:27:07 +0100 Subject: [PATCH 079/199] proj_factor: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian --- src/4D_api.cpp | 42 ++++++++++++++++++++++++++++++------ test/unit/gie_self_tests.cpp | 28 ++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 6451a11971..d79fec8fd1 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -2886,6 +2886,16 @@ PJ_FACTORS proj_factors(PJ *P, PJ_COORD lp) { const auto type = proj_get_type(P); + if (type == PJ_TYPE_COMPOUND_CRS) { + auto ctx = P->ctx; + auto horiz = proj_crs_get_sub_crs(ctx, P, 0); + if (horiz) { + auto ret = proj_factors(horiz, lp); + proj_destroy(horiz); + return ret; + } + } + if (type == PJ_TYPE_PROJECTED_CRS) { // If it is a projected CRS, then compute the factors on the conversion // associated to it. We need to start from a temporary geographic CRS @@ -2899,14 +2909,34 @@ PJ_FACTORS proj_factors(PJ *P, PJ_COORD lp) { auto ctx = P->ctx; auto geodetic_crs = proj_get_source_crs(ctx, P); assert(geodetic_crs); - auto datum = proj_crs_get_datum(ctx, geodetic_crs); - auto datum_ensemble = proj_crs_get_datum_ensemble(ctx, geodetic_crs); + auto pm = proj_get_prime_meridian(ctx, geodetic_crs); + double pm_longitude = 0; + proj_prime_meridian_get_parameters(ctx, pm, &pm_longitude, nullptr, + nullptr); + proj_destroy(pm); + PJ *geogCRSNormalized; auto cs = proj_create_ellipsoidal_2D_cs( ctx, PJ_ELLPS2D_LONGITUDE_LATITUDE, "Radian", 1.0); - auto geogCRSNormalized = proj_create_geographic_crs_from_datum( - ctx, "unnamed crs", datum ? datum : datum_ensemble, cs); - proj_destroy(datum); - proj_destroy(datum_ensemble); + if (pm_longitude != 0) { + auto ellipsoid = proj_get_ellipsoid(ctx, geodetic_crs); + double semi_major_metre = 0; + double inv_flattening = 0; + proj_ellipsoid_get_parameters(ctx, ellipsoid, &semi_major_metre, + nullptr, nullptr, &inv_flattening); + geogCRSNormalized = proj_create_geographic_crs( + ctx, "unname crs", "unnamed datum", proj_get_name(ellipsoid), + semi_major_metre, inv_flattening, "reference prime meridian", 0, + nullptr, 0, cs); + proj_destroy(ellipsoid); + } else { + auto datum = proj_crs_get_datum(ctx, geodetic_crs); + auto datum_ensemble = + proj_crs_get_datum_ensemble(ctx, geodetic_crs); + geogCRSNormalized = proj_create_geographic_crs_from_datum( + ctx, "unnamed crs", datum ? datum : datum_ensemble, cs); + proj_destroy(datum); + proj_destroy(datum_ensemble); + } proj_destroy(cs); auto conversion = proj_crs_get_coordoperation(ctx, P); auto projCS = proj_create_cartesian_2D_cs( diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp index 646e1cb718..6650126068 100644 --- a/test/unit/gie_self_tests.cpp +++ b/test/unit/gie_self_tests.cpp @@ -590,6 +590,34 @@ TEST(gie, info_functions) { proj_destroy(P); } + // Test with a projected CRS whose datum has a non-Greenwich prime meridian + { + P = proj_create(PJ_DEFAULT_CTX, "EPSG:27571"); + + PJ_COORD c; + c.lp.lam = proj_torad(0.0689738); + c.lp.phi = proj_torad(49.508567); + const auto factors2 = proj_factors(P, c); + + EXPECT_NEAR(factors2.meridional_scale, 1 - 12.26478760 * 1e-5, 1e-8); + + proj_destroy(P); + } + + // Test with a compound CRS of a projected CRS + { + P = proj_create(PJ_DEFAULT_CTX, "EPSG:5972"); + + PJ_COORD c; + c.lp.lam = proj_torad(10.729030600); + c.lp.phi = proj_torad(59.916494500); + const auto factors2 = proj_factors(P, c); + + EXPECT_NEAR(factors2.meridional_scale, 1 - 28.54587730 * 1e-5, 1e-8); + + proj_destroy(P); + } + // Test with a geographic CRS --> error { P = proj_create(PJ_DEFAULT_CTX, "EPSG:4326"); From 3e33c27c17cd25712dace6e26214bb8e25356043 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 10 Nov 2023 19:37:36 +0100 Subject: [PATCH 080/199] proj: projection factors: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian --- src/apps/proj.cpp | 51 +++++++++++++++++++++++++++++++------- test/cli/testproj | 15 +++++++++++ test/cli/testproj_out.dist | 2 ++ 3 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 515461993f..099c4b5dce 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -537,7 +537,20 @@ int main(int argc, char **argv) { eargc--; // logic copied from proj_factors function if (PJ *P = proj_create(nullptr, ocrs.c_str())) { - const auto type = proj_get_type(P); + auto type = proj_get_type(P); + auto ctx = P->ctx; + if (type == PJ_TYPE_COMPOUND_CRS) { + auto horiz = proj_crs_get_sub_crs(ctx, P, 0); + if (horiz) { + if (proj_get_type(horiz) == PJ_TYPE_PROJECTED_CRS) { + proj_destroy(P); + P = horiz; + type = proj_get_type(P); + } else { + proj_destroy(horiz); + } + } + } if (type == PJ_TYPE_PROJECTED_CRS) { try { auto crs = dynamic_cast( @@ -548,18 +561,38 @@ int main(int argc, char **argv) { dir == NS_PROJ::cs::AxisDirection::SOUTH; } catch (...) { } - auto ctx = P->ctx; auto geodetic_crs = proj_get_source_crs(ctx, P); assert(geodetic_crs); - auto datum = proj_crs_get_datum(ctx, geodetic_crs); - auto datum_ensemble = - proj_crs_get_datum_ensemble(ctx, geodetic_crs); + auto pm = proj_get_prime_meridian(ctx, geodetic_crs); + double pm_longitude = 0; + proj_prime_meridian_get_parameters(ctx, pm, &pm_longitude, + nullptr, nullptr); + proj_destroy(pm); + PJ *geogCRSNormalized; auto cs = proj_create_ellipsoidal_2D_cs( ctx, PJ_ELLPS2D_LONGITUDE_LATITUDE, "Radian", 1.0); - auto geogCRSNormalized = proj_create_geographic_crs_from_datum( - ctx, "unnamed crs", datum ? datum : datum_ensemble, cs); - proj_destroy(datum); - proj_destroy(datum_ensemble); + if (pm_longitude != 0) { + auto ellipsoid = proj_get_ellipsoid(ctx, geodetic_crs); + double semi_major_metre = 0; + double inv_flattening = 0; + proj_ellipsoid_get_parameters(ctx, ellipsoid, + &semi_major_metre, nullptr, + nullptr, &inv_flattening); + geogCRSNormalized = proj_create_geographic_crs( + ctx, "unname crs", "unnamed datum", + proj_get_name(ellipsoid), semi_major_metre, + inv_flattening, "reference prime meridian", 0, nullptr, + 0, cs); + proj_destroy(ellipsoid); + } else { + auto datum = proj_crs_get_datum(ctx, geodetic_crs); + auto datum_ensemble = + proj_crs_get_datum_ensemble(ctx, geodetic_crs); + geogCRSNormalized = proj_create_geographic_crs_from_datum( + ctx, "unnamed crs", datum ? datum : datum_ensemble, cs); + proj_destroy(datum); + proj_destroy(datum_ensemble); + } proj_destroy(cs); Proj = proj_create_crs_to_crs_from_pj(ctx, geogCRSNormalized, P, nullptr, nullptr); diff --git a/test/cli/testproj b/test/cli/testproj index 375f53cdbf..67f937430a 100755 --- a/test/cli/testproj +++ b/test/cli/testproj @@ -41,6 +41,21 @@ echo "Test CRS option" $EXE EPSG:32620 -S >>${OUT} <>${OUT} <>${OUT} < ${OUT}.tmp +mv ${OUT}.tmp ${OUT} # # do 'diff' with distribution results diff --git a/test/cli/testproj_out.dist b/test/cli/testproj_out.dist index 73320d0a1e..f7b6036a8a 100644 --- a/test/cli/testproj_out.dist +++ b/test/cli/testproj_out.dist @@ -1,2 +1,4 @@ 2 49 2.000 49.000 500000.00 0.00 <0.9996 0.9996 0.9992 0 0.9996 0.9996> +600000.00 1200000.00 <0.999877 0.999877 0.999755 0 0.999877 0.999877> +500000.00 0.00 <0.9996 0.9996 0.9992 0 0.9996 0.9996> From 1f9b636b0ad7cb1a10a2af3661c7dde7a8c96c2b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 16 Nov 2023 22:49:42 +0100 Subject: [PATCH 081/199] pj_get_suggested_operation(): tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation --- cmake/ProjTest.cmake | 11 ++++++++--- data/tests/fr_ign_RAGTBT2016.tif | Bin 0 -> 33374 bytes src/4D_api.cpp | 21 ++++++++++++--------- src/iso19111/c_api.cpp | 2 +- src/proj_internal.h | 16 +++++++++++----- test/cli/testvarious | 12 ++++++++++++ test/cli/tv_out.dist | 4 ++++ 7 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 data/tests/fr_ign_RAGTBT2016.tif diff --git a/cmake/ProjTest.cmake b/cmake/ProjTest.cmake index 5e035917f0..3de3fb4ce1 100644 --- a/cmake/ProjTest.cmake +++ b/cmake/ProjTest.cmake @@ -3,10 +3,15 @@ # function(proj_test_set_properties TESTNAME) - set_property(TEST ${TESTNAME} - PROPERTY ENVIRONMENT - "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES" + set(_env "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES" "PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests") + if(TIFF_ENABLED) + set(_env ${_env} "TIFF_ENABLED=YES") + else() + set(_env ${_env} "TIFF_ENABLED=NO") + endif() + set_property(TEST ${TESTNAME} + PROPERTY ENVIRONMENT ${_env}) endfunction() function(proj_add_test_script_sh SH_NAME BIN_USE) diff --git a/data/tests/fr_ign_RAGTBT2016.tif b/data/tests/fr_ign_RAGTBT2016.tif new file mode 100644 index 0000000000000000000000000000000000000000..f3479a9aca5b6ddebeeaa4056697759e0f5fbe2f GIT binary patch literal 33374 zcmZ^K1C%ArvTob9d$;YLY1_7K+qP{^+qP|M+UB%v&g=i&bJn`=y?b-l-ubPJ$f&HW zh}s#EQ4$i=K&n7MKrnQ405KC=6GsDQ6Jvm(2f)bM&c#^I&feL=#=_G?&&=7v)Rf-d z1K`R;&j_HS`-fk~#M!{uz}W!c^v%HuU}R)sWM%n>280R(1PlrU{4F=?`wRSU?EZ~G z{*3|O81&y5>KjA+8~@V>0T=|x^}D_R0Rln>2K$#BR4^bQ^#8_#@o)T(Ow51tNcjQ* z;r+Y)yDJd$w;Z(ZIuaBJi09w!-w;UYzv1*i5FnTDww!MQLJ%C#KlGyS&Vj*jKoH-! z>l@dGf&NR5;WyF$n`rz!NdA8Y`dzrigaxGkGZDNn006gyvxyDB*1*PuhuFZ;#6Zu^ zRL{l9gqT;<(ZJTo1V9H6uywYuwl;D4hGH%T#wOnrZEwQO@K3-0SAesDqnU}bo{^)I zo{7DanVylI@wcQOY(LokXMSZ3c@bh>RS`vH2_XS#JvmWPB@tykF%da2MFDwn2_ZdY zIlcc-|7Qs*vJ%Swk^*otu(7xPz6eHQfTP_%z{S?W+1bPXdjK{j&W``fh=oOzgcK#@ zl_lh4iT{5Q#wJcijuziKWoJvwYi43+VXWt3YwTie@K4Ks2E@(qf6pn*=MPqPb}E3g-G93W045H0 zc7VBwg_*hYf4IJo7!D6I{goB=j= z#ula)-z)~sfNv5z0}~Si69?6|_WtwvR^RUf7zhODTUq~A1AVJKFpvW}5Yj)jJ^FVa z4o)U!PG+`mOXB?30VHhVXyN*wv%1+iTK!|05@ND||57G;fSkRFEkN4B$i&vk1Yqv$ zZ12R$z~JWQM*nS^)&_?3W_B*F^rnssZuWFWcDBwYw$2PL_SSX=#!d|1=VN7H{K4># z2)%!aFfyUHH#P-w&tB{XS61G5|0~z(>~;*dr6c54>Kx%LAwiu70f2?0Sy z1-JDp(E0CEM!y%ld~fdGx7y(?C+=f7#;Q*G+DG5**~Z*%IjWHwY+Ed>bS^(kr!23j zYx=+0jDEZ=vb`Rk?!dKD!C)`$`n!Rc1i%EmyuiS~$jG-jJViyuhiJ*li;GQ7&JPc8 z(bCeiRaF-k7kJrt+1lJ)AAyVp$PUmJ8sKE;D)2HkIzB>1EKW35T3(Q1rQI|1wgkF8 z0YnK*w-FK%(9pLIyXd*;>E0*yl9uZUBw}&+lVf93+$k9u9>kxk35&@^LoY!+w4Z21 zEaF8wQtejUZ`9yXZj*$W;8sHhzN*>9ruu*1=r`nTISGkWSsqKCd*b#l9Prx^g1kf7 zTfgqZNy9os){@jb>G6B#UhDAhUr@amY&(uYY!^_yQgb&qXNg~p|FT45cqMj`in6J- z%1L01Uh|NPhQ|=JSkP2%kIw&`tgP9t7+kb+>fz5SVlR968^-tcm)&=ELa+aBt2bA? z|0N{s(p+H2P+ylEs0v6v4_Li_aFhf9ASERy3eeAgfq=yagZ(bJxLjNm6clWTxj@oT zAzK!gNcb3I4`koSkh7x z2TaP-b0h-Jo)bo1LN+`u#`lA=!5QMzjA-&noj%1il)W2up3Sq(=kcO0BBi4;4qQUL z=@^UoS0F}~6#t=hgW$OXbtuJGa$)iE(z2pg7qjU2EcltM{F~SngA!$n^Uu;Ug$^gx ziMtkI)9^P(v}(qP$?&rlFwOL^i4LCUZ=lg21^CRf$<(6B(2Fh&s!U0eY%@Kk)nUkM9y5GYc@7d+ zp*LZ}l6=SB)2tkWkPXbjFb>l|XmV{V6u7jfF}@$nJ;7;d8p>f8a~)D@Mo*i6rpLE+ z!9AOJB-qJ=f;n@f5rj5 zm~QH?BLUk%?^Uu;cI3q&12hEhYr?-eJ!u8yD)L=47KoimO6%V0Qmzt!Q93GRP8|Y< zy>-#l9%IpZJ1Dfy1Wweqn9ZN>S`=iaFH-|Xja=p}YY%UeZWb0U3Q<3;VKIIU9az@; zWF_}#6LoohSqA7yOI(0Xum9N^p7@KO$|sV~mz8o!{2Sd{T&>Q*p$?cX-VAskFiuV! z${g4sJQ^-Bl};TiBRwOa&feb92~-t~NOg#;*u>c62rWhBN0akoj5J`>(CB*iaR2HE z7Y)If47$#dk^?%B47m=Zo5vd~5o3`(H8U|WF*_Lv(`%RC{3hQqa_%$@G-9n3nD+GG z&u!t1ij*aRh(%KGId!o`j@1oo3Uyy0{yo@hq3r7H9nYaZ?^DL!> z;kXjM^v8U`oRu!x=rjvPpOpvxySwNN=_}&)6y@|_Jgd(>uAWr?2>(QGl!_Rpd($h~ z(#~^@qw^e}$|D7Aw9spIRo>n?28}Pd`n$o_-qOQXg%dOFuRwgHpqrb33Vl#j`x^%$ zb$ei1FeEx441QP+vTz~RCd$cyDUf;)=a4u(c_?yPm|zh}O-)r@2@U*w_|59__K=jA z?!v~(G&}y2fb_QDA|XmuAle8@)x<<1P5&0W(AcKIutY>)HC$YD3=A}R`&N=5cCvL` zQ56Y>`j;`jBOIm$S0+igxdE3u{pN86UIP+W-HDibi^w0?WXw4FB3K`TZzlJX^=N#$ zEoOCNlw%_~X;#xNEHW?*li-~bIRL1n?=LAI;Tj}#a@ z43U`P1DwC70C|vy1m?~^2%-*LmuCSS4MdTYn4BDs<;Fb>o*{m)cMy!J(=L1Oi^^_A4kE{tt0 zDSFV*xTB9%0t)xvYA|%=;5RjR!}jurANut z$*@dvuNm**enU>*h#v*w;vR=X#q>fyo%l96->@d6o7L!m+dasGWCyyv*c!fTW)nC8NTtkltb$y49W|Q+6)aHG`;Q(|Plyq6(`5vD+njfhLE=Kh5sExgFt~U& zp>cUZLvCYjc~E0fhX|(n`T7J%V!@zKZ=WtKYM6z~_;tn#>4;+U_TP+`1(MK%@S&sZ z3=zoZ#~L$QQOx-8d`f@OMfFNi%Kc8JE5ZKImxwR@V8GKrWzjYgn8?Qi9KLck7Z z;!S{`Fm#L!AO{A92L~bbkx>Hs1KPsFr6#E>h?`u1X;PPCYjSvf`;q7CZ=vORj&4$o zBm$Z9-515f!z!F0jg0mSh)D{G2Lyvayt{d}ZckwZVHFR{K-|l170EW=DmE;%CBi)DRg;qrZ8B z2?>t5(bc9q=11of=SpYQ(28R*SSP{1E@Z=xTIGdHHiOspkBXsy1|gGBy-J{jGE$XZ zU%DQZyhh3oYDp8=u^qZ%()fi;TpPUpMG5?B*Cz1~2FHX2g@wbTm6n#awzh|y;n%ux zxP^`opBoSqigBd{KnVGnU+nYYZmI%sl}jg9rj6v!F0wYb;>=PFar+9kJ& z2Nt;0B2|Pu0?cciWCe1N=#pcE6%DIAH%{?DR`?M*fkAOx_tnD zs>sOolG%)ZIl1kB`X#35ozZX&+|kf)EZnltdVskH2eYsGqlaTe%fP{fV=~s|k>Wt+ z0%2(@#=|PuK*O@ID90WI-g()dWAO^m1X13sUr6s8bZ zsAV9mxdmSw#y7^YLXYK~3r%Q2`%JgtM1MhN2(_-LeUvsUv#acd&hEI2=AS=XYX{Hp z`YFCiF?N8*6RF{PV7c^HLDkj&Xovm5FD2#Lj*;;m>J}Q>z7AMDYjTjcY`(%dC_gXVgd!r(0YbNRc7f?yvpgpnn2K1HRg6MT`)YwH9_eK8q~3i6H`i` zzqxX>Mi3dAmL8{1o_XJx;Sv0PkzdtCnPoXM@`p^J+=XVE{R#Bcs+eZ5pmaiYi_m>) zwD-QWvZw={gvm1jd zYuhQe+`{Ra+VqF%(+Tv}ssJ1nVU!lCNQ-P-O%7}OHjlbogD^wbMP7=+oBHM88cI#0 zMqCz`6N~dWK>gx`;s?ZVvVT3!JYp9WbJ|+3w>5cHETgJc#e?TmD9e+2!NQU1_|PY! zQ}(#}Rpus#njU5EmRHKkxwGg?0yOx76VbEe-IbrlYIl|O*Bfg3M(@V*-dA_shkFpG zO?_ZJG?Ip%o`!~wj+WNWs&M%vIXMCWTJTeRf!1}K4vmu;S?=^jG34iuM0sqI2bGp92`jH_6Z1hYS4^m7=hd2O>z7^vLiXZDr|O)H^-#I z(RkKjh4}i-GfFzBq{pmsq!<%HPTLr}WZ$YIa!2}0LiTAhTVZnHRI)Y-6XlexnWa~j zF~^-Jq*%?JmV#Gma;<#dzPI&f_RCU_dTW9O(bEx^w(NdqN{WrRK#UD_>qg(5&cp`; ztRESb`H(G;>WxDk(@#|*1r1GIT}@pLovgCUXlqDm#!GI5Z)0Oni%tEs7J zIEJe;bQ&U5R2dc{?U`q&Kf0G0;!fUf9caCSmWw81UQV$3u4zD7a9CI{1SBLlI5;Gz zDo8+;dxt-ev5k$bHtvqzjFR)cuVZY-V^%Brt->{RT@Y*-$;-9;ECDAt8AH))YqmKj&{NVDniZ=}RQhH8CacuWjO?VGLf z5nEo~NNw@Pj@O3Y-b+x?hmbn&cbJCY=hL6Fg}3#)g@KRF&CLN~oYWW>X*_N34>}!z zl!Lr&Fi}zRv8KAZg2_(+6f|@|m4>Q<%ElO4-TvVoE*73AkYsRP2d?Ed5)6M|fj=7d zn1sB(K0m*{zP`P@xW0ca;zXsoW;#|+3^lsoz@^$|eF~#Vy+O-kn{N~@vyWQrX1fnh zxDV(GhC?%4o#3>;SVNOS8fsu(^%{eay-?5yPYcf9W&Q4oRQH)6q1egk+d*k45o((a zsu1a_$s4O?&!S=83t%tzrA2r2Gd}2EUtL$Ya7lp(wP>GRGV&?X*rtOX#sbr9qBz);cMtwQa6wTL6O?5{{;kcxzQbGqc3NWUCw*=1 z3UuHJfB%X+VKP>*RShKfKGaVpAG&B}{+}Gpn>N?ajv8AS| zrT)R}k(HB^@%yEtuCAe_r?)XQFw(zKacAc;_Pxr2h{q5$4M&&FqXD3zV5Gz=fc;rs z-CXyqtxWT?H-8B*he~a8F9UKz5sMb2=}4=KI;Di;CDuRuE@o*L*GdYHM^5AWEwDY%vV0QV5z z1Y{F%MvFufZvb3HX?2Q|sky$^?tXy?1053{&5MQWb^`#Dw03q@1~aw{3i@7eJ-@$Q zfr9StU!NZ#7!R*+F7nH1MIElc$~(NXf~=0mgM=z`i=F2!K~Ku$V}=Y`6<}qEJYcV0 zLgsdVA(2F+rDoUw1P$Pvg&h;3JmB;$r*=VXl%>~@w{e#-Y&|K8cDR$of)nrz zyRC1&PI6Roi1|VSFYpJ_EOk#bpQDjQtb5UKxi$UdX;l@adD@*`j0iJbA?0(rGgjU5 zKz_aB>zj}jN!7D>6(W8Rlj#3=>Th%pZev$ZKX0^}Y;0snIxsRqO;XZ3##9BOOIL4W ze*u_;R$cNVW&mSd`ffF$RDX{txBQUTv zo)$}A<4{9C<2 zyCbH$wp9gPVr2o31Fgs7(wpf1m}b_yIPAdO>o|ph-9`7lWa1v#4GsVJ-Stkt%*cpZU9u6&IEXK+Of&oY^-tZ)4Y7ayahv@$;jHTVwcKCUBf z+PEvDu^xdY=8lblLgq`#it8dwB$=wZ@gkl~(@N<&ttD0i}b7S6Pc!z+0(J ztD~N@#9rVX=^mq!zgkLvP)tEy$*R!A86AIfG~1a!u-!)eBF&h`jVn=s*@h9}R4_M% zirq$%P$cY1hrU<7YUJhWqxS4>7$nbN;)=DNOOi4;HFUMl*j^v+#_yj9mN9i^%u$ZG zVm;tmRyTPS&lZEg6pauhINIrS_h>7Ly=*3zd%Er4nx4o#bLgE5eEqcW>b=8N|H>zW zM;x9wTR9r8RXP|H5()|`L{(yGyqBWEO<#3y0~T@}eGxH303FtWV1^&R6T{Q!bVgfh>wr0y30_I-c8ynlLlaDKkIxw&(Gc6D;J zulvcuG&irTq)^bp6$g6UebKW?+Cs}ckSX)`O1G2Yv5L*XTLUR4iZD@DBP|JS#+}N4 z$d)RL;P}Y7gU&;_NWQcB($gr|Im*h=sRX;>B1SG@Eeh43?f9CoJA%^s7ge{<`R(-j z@q|o6a}LD$xm$DQ^eCHMv4NrAL{Cjro>x>8fr63MU6a!zke_d`2e<`J4i?Dczl9VW9-aI> zxHY{sJ^k(R45NYpxL{F1b?APWh9}tgxu)3tRSxQ|LsmPF_^0Xt5UX`VSfP?Bz z_-P2mM33=&^k{l8AL;0;#>m2=Lwr0fFHvmjv2zQfQ^&Ezm5B0F+ruM$>ooElhu}?W z0J6T6K}3K0+Emq5I=rRWsDn^ufI{wVBx}^vTCe4AV;^+^%#m!8QqNR zg5;CC-dyRkoD}`N2*J+#FejS*<9V_a`wWGQR2CC`@KWo=^wt|;CIbUS$DW*k4JR6z z7oWr~nXLvlH}N3IBi-!ujpM4bGd*SJXlCPZif^!?yL$^E_1Xpe(*cni1j&L?EzNWk zGR)J<%ggia{T*_o1oKa-0Nen@x{xGHG@Yc1Ig#>79w#3RhNfq-!Ct^}3Up++)Ho$& z<@eSIZidF%h0F6TA{ZzV2o^M)Kg3wF50Qd{laoVeXj0|9t{In=zUo60s|vbtG1-ss zl_n1q5OW6Y#ZJhme3%_4E`^+FV%vrX&EL4(mmtMwrL}TsdK1k-YT;fyH7P89{YD!O z6(6=4@~5zoLaa%9LD)JCmoaZxlPi{pO))IN+wwy{jx*vhojX60Nv@YFo79r<+((4c zpQHF-D3_s1s?0R8`te^h?{$yS6Ue8Ri&R$+oI(_t7p|_WHk!X(I>*K&mDl4ZE_K&f z!QPQvJ^B8jy1v0t^1eZBopfyMlhZ2*F*`fAzb{h*AN!nRLE+Ew3h{QYnn?aVujmj! zu=r4d)_B_5UEUxd_Q*`o*c>A0E_6DeMpjZ{YS*8>zF%`U_s{qDpmuq}*ksiHXrMGeZq z_Vo!}XI^G+qu=|`e>i@(w7_bFockomwt)XYewh?4r*F6{t@3$^&W08zpHud z#C7n?Ip$j{l-fewE6aD_DVydTYvN?ahg|kn7$w@h=cT&&dno=0BO|E>q|zA=OHyiG z`b3|F_~vH)<-CQ{`$&!Tw?tq=EdSTRtXmU5#Sd)|ZV>IM;`Z`{?U}2ZnHu^VJM+8q zi_JSu2y%KNeQ;))lNX^d1OZCryddm58hJ=qX)G*^@6fmlybY+3lav=GL#|IxPtS>D zB*WR!C459=W#heWUwBYq(4elD7ZE-rhWqA9(inRi%1&A9nB`N56ePwtIAUa4R%!^di~KTw18SA&JYR0L0JIZ0P&`6L zu$|omy4&0G$iuL3_Mle)sq;|c;r@OC{e68qBO@D2ed5H1T@V7~GYUg_t?VNJy@qPDjth z7G~r+;Cy2S#`)Zq_R8PXMeJRMs*?w&Jap96n5W|P+I|a_Xw;t@XC+H**dW@mZ|pJQ z@g-{ei0w`*)EtLZ=ZdASGb6S6wf7-YQf?ppcDHnEXm}kwDy^rZ>+QRXs=F8(pS^{| zX~GpYeo4oIO)C84S6ScCOsLigLRHc$IZj()s|TXtSC?m*n)4Snky69L##X4ZceuTQ zhJk^Gjf#*OpP;F<1TkQ0+&YJ8FqA_?baSKJxdrP3%H4+nClmvU{PnB)S9NtvN^wX+ zK+VtK$Ra>=uG;AnW~IpM`w`odE(|y2o%bQ0R(?dqzL*jC-_~3;&5!+!FtaezhVBu? zcwuU4BBEFDVtjnr(zl1%6-F=5DIH#eSj^!_b)Kr4_cPY(!Lhy~VqxqO@5T6pGh#Bh zmNL(nZeer`zMq*uQZlqHt%;7kBz=#YXy;w(JL02-@R;7~I9eg?p!-G%VAP$}aeh|T zzHZy5A2>c=vvt;lemy=oP6$zfP_Ry~llFdUVqR8Guno;_=GKmP=L5{jQ9>^Ait++9 z<8$eAg)ZOM1)XVUdbBHCD-bM%Yt27UP*ZNCZ*Xt|hJsJI;Q+yQ<&Qg7%6{nrlnBBP zoUOj0u9cCMadvK5UO6@?8F>qHW8dADPE)S!xE4D9am%O?pENPB+Kz~BCFX@Ed0#8v z>sL-F?PRhX)|S}JUk57RFsIN_H;1fIL-?0}#JP7$A?aplE@1sbaHj>T+@$uRWRJk( z+A;Gvfsi9M*PyH-vi*_s+8xdd;)1-MTjl&n&ctRpIIM1XnK)!20*0Pd&KXCr#3`EU$;9wC=QC$rUA+eRIb%b>_ z&@O+bfTtB8jfTnXZUomSe^f49Eh{T4DJdE!R3j36Iu{ivbOU-_1XoXp=f#-RiZOq& ztt*1?5{vr<0(`R}BDM%GI|`qsgku}$unrAr ztF%`k_FHyxo71vQy_g~M+mBke%K4bLO8ta(Ts>b;a3ht2nYuv6py%TLgK=Wxm=eTU zkMI=O5c~Hf8`3HHR_Z6@q@kzb#>;j(zuL2LX>-?yIjZy4)|*W}$n{paN@lewd> zgNXq==!vA6m=$aTc5q$}QQ1UqTSq`hjtMzQDStI-Pzjtul7KuS><~=TC`2+OG>8)o zDF}2_RY3!_;ONl8$np$90~ruJq!xw9=e$`7Wv6|^+?P%Uv0gWhn2Apzg|b#uJw5nC$%D!df7e9)aviL6Rm0Jd*yFCBpjkVl%ZeA9rHurJrXihXt%b2n-;9(;%AXsUp zrmCu}<+oJj{q@A5il+PO$EeBytnkxxRaG_@{6+N*4b9+l?EX`bFQ|+_l&XED>gk!8 zSf{5aWtEg;k`XYlca3!{EIB={z2R%yHR1zh0gMgKv~LNgM-^gImEJD_x^VB}f+J--nB9Zj46PSW{0I^Vp* zf%v(-Ov_Tigll4{aEdqtgIaNok;#3y7gE?_gp7=ymYk|0ud1}d#>~>%)X>tvDkcE> z5%H_L`UhZWU;#!XG9#nDK0l`=wIs42I-OEGJ}&E5NPus{GM1k6m2AI>Lyu7=b~9;t z(b+Ud%7iAHLiuNZ?OdzhA1+ve!gW*S_a1T%NpM5Ok^B z)dx=5qRE@9dubTCR*5Z5l=#)Hweep4%XZhj%B3jS?XCn?y}mOLCTb5Og&j;m7g?!^ zt<_K93@;wFC#StFhYX{(s(LYvTOw6$UtaHAcJH06Cw_rP8%LdpeA!uF%uKwT%*?Cs z>K2yPrx&<*8R$ad`obZrqZL_IS}tWhDM zEm>{aSU}syU{8dkW-%Dnso&7tkQ^FV(1wr+%E)(rGo|)o^Mp1*FGW+M{x1Ff9PULq zD454e=x|d$h}|;fi>qZa6eNUWD~9sHz)f)?;pH8D4=r)rSu0UP5$)a#LGX_3LVM^8 zzN=Y5Z(_HprDzhTqP9Be^Q?XqiN~`lrz89)g)IiJt1XXfR z9BQ+X9NgJ9m9#FchxEd2jP7%mwdes9qi0v%k+l>YGN+58rh=e4H%;{i@O!iZ#s0D% zpS( zK}A(L9xdqh#=hY@e{@b!K|7bLh{2Nagc19;%iG{Bb$Ok)(06E)ru{y|R_FIQ!yj{* zyTzy^+KXTC=N~0PoJc+)NBrsp%#GY?nSb5?-dVRMY<5O+ve@1=|2+5SwpqH%Rta#6 z)d-dbBhQ7Y4pN)F^itJc!0uM|^SL{@Lw!ozgdV>-AH>lcGR)CV<8_%%1avwv-W19Z zo~sq=j7`XuS#Rlo-8A+lq~fO>A$Ht-GVrkS{^Vqz+gO@kUXQl6w6wlF!^O!;*HG6L zGMk#ChyGg^STktTEDvG_Tg@+A9VBLx2^5AGl^oqwkQf@78k>_t&se)#fT+*J2B~NW zHUtrGXlPtkTNxy;q#B=u9&+#GSjWsV_gg_p5s$mevU9b{Nwu#j8<%4Km7rifi{9}{ zd?fAoz`m%zp35_B!xo+GrP5+P?v=>qK7^QLvQhYP*2o~saf^L##(60JL~-2EZ!5~X zR47s!=H@$JV7jgEKxOEhSr6y=cgjiwp4Wj_#}WB^nB|t)2b08h;sCPhk`n`xBdQbY z=CN5&Tje%O!YPSk!L6YyAq`*NT~M38?cYCs{wBBzuY0Y*(J=^*Pmj(`z>N!wtE;OZ z>e#>1HFQ?{hJrj_T3gz;sJ8_1lOJ{pkXR-*3s!t?1O|v{iRtOVFX)<>iXjB0w8W%f zvt1tHWTyNDzLVL1LO6`CjsXdR8}mCZBo2IVSM^oQEiA|@#6yN-D7TGVWZ=4F%FYFL zuN3q#c08+E$QgLZ`{Uhu&?8&S@GNG*lVvbEWG|AZJSc+gFK#*dd^#Q1*FdyBa;KYr z_A$yfP}+u)u8?4rlq}@ruU;2Due~T9txETAfjIFMsbEg{tloOe-B0xXAJOE>$@-KPG{#J1^64LU^d=>!}m zqib9#)DTkq#-ar**stxSlGf<3etv!234z$sKg?!BHLt5L$}f2 z&{*?vQ#lBL#cYw(;uj-1W|2m zda!%A7Z@x8)$NxZ9i83PRZvh6NiC>{Y&@5VM8_`)L=y_}_U&+XaAx9EOz^7+8+d0| z#VZk&7Uksu-0q9g5J#<}9tyL=UvKut55mk;Gw<6A$-s1 zJ3TowCt+1iK{F;D`cA1@OE)hcQ*ellbaW`>H`|d2jJJMD;UDhXhdmb2q(d;#H&pVb zPC*^;v;QltV$DOqK%2!Ya5XGNybNKnF9+qmSWgi@t9X6;yGPela! zRy#}ht69u!zM-+!iBSM@lhNRqLRkpW~Afl#~<&w`f?MwcwM>R#Zt~E9PcLW+wXK>8$>Q2z8Q3 ziHl1Fv6F&_lG@WrQcqA1fO^R1in0KJx zfz@As-?Z3;{(`>+t&T{6?U~&rZOY}e#)uTP3@ex2^u_eo!tQ4J*`h}e&LP7(os^rO zjf_%IRgk!oaMWKQTygt4_WP)IMIU!l^8?IGk4}v5R;x={Hf~CM`jMu~xQcS$KJd0Y zZXZRPn5=LxBRkzD?`SGT3DE;0ZnH=0?TtgW+b}=z-La4BUaIp~O7C^vM{oaKCsc5N z0Mq8$+S>A_`g8e*k%^6vl9QX$PT%V4*#*iB0SF3=WEmaq5^C6)OTmVv(VAs~kWFUa z0D_It#3)@K4HPDNDpFE%vLHT6BFY`i#N9+>^Wg9tAZ)QC_LhKH=bGdw!63LfZjz@>P&p&taN*k*rEhFKN$ye$9P;|E*$kYAOI& z)oCr+ibMSHA?nnEz(k9{`1d3lshgN`Hr2{U#<^J>3+d7f?P85iZx^ve?%48&;(#q4 z#r%fX_4c{fjyMJ6uQ`p^)d@^dY!-|}Nh%kg9S~Q60-QezxUcW$YguaBMQq}sB36f2 z)T+J$M|P$Nt?i#Av^zyd?|3KgJ3Sn$YfI3A@;XbS&*;tYF=MGSJ=+20A+_na!9!k@ z3c4Ywv8J$S>wXOJbKV;S8NY(Ug2HkU=}F0H>4~X`fCGr>iRgi&qq4g|#`05=lU0sX zRF)Q5f2g1z9T^u1fT2Llq=v+1W=E$7M@Ob5My4`LKUZn}C0Rner$(U_J1;bW6^7U& zMUL7!K&G`Trmrvc*~()DJPFI{O?s>a3zrlXfoSWN9M;9uzsWGL50B%$E0@%jzLz}7 z9KljN4uo{ZFi67b;u)2NA!4BO3~`8}b#*-HHz?FktJsIv6HV8l1igy>29LDb8X>Gr zXYz%sr%~nBaOds=M6j8uHQse*zqUfp+Zn8hD*AqPD}C~-X(j-`e7x0km3CGa*A}+8 z*g4sHLu14wg=J*~#Dwl;HWbytB@!tFe#dLs-c?ju~>(Ohlfe?CbC(n zX#(97lvF|X3o1xq;o#8%b_2b$r<|41jJ?FEEU-?~)f2Iu)hr&mSJ9!JcHgoSlR?rD(M1d=1gWq8oe9ort2=6LAYX5sE_!z*xe)w^&RNYFKgs_Ccns#SP z`OxLTs7f}ss5s2W{b~#vbqq0WYk1UI*J!lxL818tHd#AlT}YGutDEN%zgp&T37v2! zWogmR*3#1~|BgiHL@TgF_xCu{}{Zx@SCNl7jqirof%VqQX4k z7S(ZepO>S~DjJoH`6(GW6894{>bkTyp+B0CC#Oy*1T>Ya>%=K6$qBwyM$j%U>{X71 zaGxT$(7rOo8YOHqj_m3Po)nQWx+-p+`6Hvstnx$0eH4De0$#4=9^7aNgFY0&=ZhQO zji3&LPUGw@lTwM8&3xeaDEPR}hkHLzY^yaDIi5#8Pw5SZ!F^t1s`w8WijNo!UWZo; zt}8md{F`m6{wm+@>3Fz&9*Y{QnT__P)vuv%x)>7UNOE#oLNt|w2Vsy=lodhceTNni z@0ag{czt=14Ga{JCD@VB6%3e=6_EX-+Jc*!;Gjg99UB}I9UWmB5(@^14fhT0iTYqL zX?Wo6g_WD&<`fIxle`ep>D%DWmWt@NQs{H?li!Qj(r8rL)^Zly57fzQEyG!e!A577 zTl~5Ctfn?u0t7Yz^%%#7AyOfeec;&$j&V;=&uWuq$}Ebyi<0x%V_aTL`xxAs6Vm~= zEJitk?3;{*O3^AFe%=#H*;With-0yGRq644TCeq%o*L)ZT=0ho5}~n=R1x0Wja(Y9 zlR3dV5|b@;9}vle_Ee`Ap;b1ZbuHHu73V-S)&4mNhw6xHe=;)XjApu_Y;ZYKj660fmL*kmEqIgB( zh69Z3ed6N$NS0a#C58DVMfsos(Z3G#LTxG z%bM4>9y;I406HO^eJz{i+{X!O3Vu(0{J*LUz>6mpe|~}+7lpxPbRI$eyat|a6;@K@ zF)KgUBW%A|aB81V%=~jYvG#0n;F^CFcXDO28uL_%Zmez1V<2;u>h{!Mey7AS_z+9@LjX#lk>De0g+AzQ7hSQ^W69Sa$b!4~{S~0->R!f*8Rd zK|nD>p$GToe&YiXEi3?75)=IelNj-uS-ALe^S;yCC~#3h;Yn$bY$;?NyQpRZWF8h| z7*aaU|7>TcDmY4Y;t8LqZh0H^tXAd*Y^oMZgmj^42z_~L?(44bI9$f8Tg_|gNc~#J zjnnN};=8a4+>77%97_uKlPr1jZ8g$-dCU)r#UV_Vok~)CwlAZb1yBkp)yAZ7U&(UC ziW%7q?BhCwa2+cbHKab1V(x>~VqVq<1t?>>@zLzWzZ%{Av+oU0+uMe|IIYqrDfPXP zb>spMr9gHXoN#W!b%#rqLTpI|Y2(99c5l`l!ur*fWjj@ndI8oV@KT}ob8BqtD_dq+}# zku1#G$+J;#b*^jTWZ_iMZ1;wJz}z`~Z%zL0dzo5!L=WUKPL}7xV{MIIF9^$t#j$ZM zS73tr@jNxwH#9ZV-%r*Deh>r=3j@L)3`8Xu7$_L%4~w;^MMXwUPen~kOiW7;c7S?# zd>~}gHcint8+I06X!h+2?f!A)3gB4SQ#_43)qpJZ(oC5&T@gb*6d|tO9gxtCJ@Vfm zW2>&ZZbCBA5*Nr4p~p<|sTVvV$XbSgYgq)}i1$*+BV=o4lRNJA?io%2D<yr- z&1CCQdm33vZuNA>*OM`7Ivo@5BUQ`b)8(3ycBc! zRziHN{KWh;L%z%(6`vZo0JJVoK40|u$JofwNdNTAC>bdLKne0741@h96E`$xn@Jb-ct4i2#b9reD*C{^sFI_ruye3U>e#*wYz+I4f@ zPY0l%-OM1Vd>AA`B|CC2SQ<+^J;#iWt|fOL5My!Zf8oEJxa@@q%29w&-&4w#*zBQ2 z_{tYfd--{ILeq@IN}6t0k*xHzPk+hyYpKgf=qju$0zKiK0xV~kBZ9Y}^aKUw+_}a* zIgzkHWq987ZA91xsTSbX+SqX5`DX_=eP^ISr{crt1;)zG&ce#l`b}9wRaIl<=GBR& zp}4ra+sp72_KO&JoIupEj09H^T@zxgoxf=Ax8OKZB)YjGRNcVv%=F|a$q-~vPWm{* z0L2hun6i+693}*9bU33n8a-SBh&@Q=z#u%23IruAA0Hwn7cPyYiu)^)Bpb#9w*G@> zi2{B<0&0appf!HrXbE|#Wtb!((TtC$dbaHRGox{J;kBj)8@HuuWQcW+g;K@*V;P^V!ducyW@i~LLmpn^E{?qsm8q$b912;Q*P6N+cqMBQP+OU%u+G3;W%#nH`e3O0IF;(v zjo#o~U*FJ5a7i&iN1~C*)#5tqOzPF38;S!r{E4{6c)(g3wd$xKPp|AOz7O1QQel0P*wka&tq^ zeL!ts2}L6=Zs-{hkkx&Bh|J^7^SgfG`5~hwI_#Y;@A_^qCd)}ECqFe?^J%M=wC9c! z8+qB+aX#S?GBV^b;%!Dc!uCZ04$h;>u6K7w8Z}t1hGU!^OSLHR%ikMKdZX4S{oI94 z1W!t>UrAQNsGo9V9JA@v^L;FFw5QUE%sjJirY16ON}OTp zP0wy{*{*%%x24-ZmRJ53mY;t@p{=vCtE;`a;nPQ;E1!X1LH0B^x3;&9j?FFOualC} z(0gjs6km5=$?+6oSlgd=n4l58#f0pA19m(xLH0SUO2Y^4>!Pomk0HXA=DG8 zpzMdA9~FSOxHwR(KtF&U=;rPzmiu?^fBMofzBjaQIF>y#8#dN5lYWZO7f~o@mc_}r z@1D8fx_%kOT9zQi+M|$o?mlAuw|66j%KemaDybE2nESq&ialX9bNhT<(VJYo8*8=9 zolad#7Yf(b*2?;v@cQ?=%HE^S48LId!&t{shIK`o>0NTRXC@rL|>fXl?<60E3){ zmJwB4fwTo&P(4mtYszRDn5gL)nV2}(*f>B&!_6%y%+Dt%$j8sa2eg74%?mH;c~sy9 zi3%SiBv1%~!VWhtiYACBK4^i_ajs?IuYqSXh~q-m?^8bs%l0x=O6Xo#?>L`5j`&13 zBz!ODVPpsLA>tg*8iL!iusmeM={d!ShsU}oMaro!+4)yxj)fmdK7HX@RoV>gopuAU zwVbBKy2q-jyrFhC7hwbOtkcRirNJTT+)d`S;@K3L*YLcn2EFTY?QUvmWmi=6)6>VZ zrr4f3=lfq|Wm{N&rsj7j{P>A&zQ@=#IMCbM+1glLQTeF`s_{1?k)P{Yx(0`bXE8T$ zDJke^K=1*iFhHULm|;XMI%I+t9)eKB2-RGf*@0B>bAiAEk{^HzKlHR12p4WtqygH3 zI>0T!hl`VI>)}IaP@vUC&_h|_s>vCuF%D->!I@;5PFfA+!s=`iuJLv+Nb|7DUcCI; zJc*IWVANJwhNsYDT88-4h*P|&sXoD%=g*&Cxq2f6k-##|tcM|RMBd?|tz@riN)zo% z?(^l`l8@OfEK-|iRPDN==nY0w%*|wTWG{%*M=f>oSX?q1l<;Q1rg{?=wL$NBq1G&i zC;!w4=iDx5<%h)iuk>Vxs>z?l(#>uC4i0RRxmf#-;`&h(s+TJ^gD7 z7+56aG?a{V%nXpE(1D1<$b@QeVrFJxW@4hFX96|`YK;RXgbUh{k{il{`S~CofP8SH z(d=M!DsOR^tOB!6LdT-*CIlE6!L-5F@5=xh}S`x#h1v3YK zk1P!NbGJS5MtI0HZAah6=WvC@$vl_wC456Rr^zo6%!SmHIiDaix2kX?jOR?fO1A76 zPl4HjGm&Smk)d}|{kWV(2`}%W^MJU4INb&DjVKqPOyU5!dLss-arPOzcPrRAgN>bwmz|qS0D6)GA1b>+4KyyOSj5ANE~`L- z199|Ca`;hC*aWH~A{Oi{`^e%nXZ}X4)ziW+j&lr8y^@@nl=za{w^3-2jtN9|(1OL2-ovt->f~=%7Qoh)>-|ZdYJSi3M zpI~LX=D0t@^1D#;2Uti)Mn@o4TIzwYR8~~g)YVqk0^icm-8Zy2y+%MlLdHM^RcvXQ zP>*b2qGyI0vcUktvb9|Tu(nWB0yifrsC=`p(2El-A;6meGPu#If*#NpAh7ra1fU%` zptAzm&w!o)nD$(lksu()MlVJ6^5fJP3h#P#F(cXFNhJ_pLY|*G}?ers6=~Spp zBEcU?q^72Lj%&2VB+%J!XcJ9JY1EiBu|rr)?; zOboiQvC)Cvp4OJe`kLy>in6lG%5tDCHO*bEJu{2z1eo|Flr&USjI_Y5Ffy>TWD(1`=BFI;F)xY3%z#j_QG(5S$KMa3m$ zABgn|&FI)?rMncr{$w+%LZM`H7yH-|PQQjo{=9yxyOsz&qXZHXEPAnYvnzKMSb{~` zdY*;vc{TZz=>hfpu{Q#9d#RaU-O}0gP8zpp4$Ulh7p4+`Ya~H^Ty3^hP5st~56iBn zix|DxzBZ>?q^9{p9a#P)&8nFc(d!A=NE@L-59Vh#RvMQ5>2@V6|IQt5*YmU!8h=uf zzlH@9gB!%4fu5e0mZpZ<>Z*zlAIi!paN}=E5AJ5 z9+K*i*Ox($w?~@H)6bB?qd6or{L+yb&Dyp^&G#-g2j>%!_Za9)nx%G|jA;FWH& zaQAzMR)x#e)B{=k`?VPoRo_|*TihH-OI{Pz@JL@zcT00KlnIr8c>Cewhq4c4m5nXP-tpOGY#bs&QVI&FL`wziEFgnz>u-FeXm#fgdI$XPKmv8}RY1UcC-q)=o+^x`->E zW*+deg(oaSE4$y|kvZ+#NPTI78xcbU@Z2W%{~{|p{_+11gnlnD-@~HU+dJ6T-PO{J zY;35hE-QWW?*03>AIocN8=8jurxrJHafwOyP*I>B2YTcxP$D#6-%vqSY@vKf2%0T|3yX-rC8XpOS7VQBRa!|EOsCxR z$&0%y&j@G8#w)!$7k+7=wth&fcnr54f4F3*^Fpe!*zg?!{AAY;w~7b7>n<_q9B-Yx z@AyU}Fz*O|_^smlaoofwsm-ci{l~}apLlnDUL}1aaFXWi!TbA?pXTv}3l|Ma0$s_y zMxq+JsC93^^AYQdhva1sKfk&2$+&GGlS~^8;3Zs(=Utmz0)OdLF*A z(2hA=`1r!TT(5)LZmq_zmU!Pww|S-&Iocg`?F4MTVL&>bo&7>J^X z1$Gx0*l|=;zyPr@K&8988-^ZoXpn~Yx^6t@@hGUz`#sOMIN$niChi$oXPve9t^fY- zeeLVo=(U6EVjdJdF?i#JZ4A1zNrNYDbwsUa6br5UrNmV<(fN(uJPaE|~^hg9MBoZ!x~QreeTnY&2Y<(4Ow{danDVC~c-;rW@DOkLU8A>2Zo@ zRF|>RSTohE<{uu&vCHuvz{=0+{QpZv)rPNbNbDgCNCp&bJT$LDvd9+*qM=zu z+l$$=w=_y{-p)23AH3x@n@@$~g`Iy`>xFMABqzU?cUS2>Xy`J|X*RpPn>s#T+~EA3 z2RrMgD0B|p4>{I7{SRm5w-Vx?B-%en3i3+1o!r>eN+beRDJv^3&Ph*5N&&3o<`BTfY|BjVqnB7$8=lLQ3?d1046 zvPB*_s^x304A+S8vQn@J2aK(vx~7JfV|nb3`4%3{31-@JZ=4@apnQUoaJFZTY%EQP z4ZTaB*Zz2=TllFO)#xpk`gJ-F-J^VTSMJ8ki9a?IU6{z5)lX+N3HC<$s(40Yd$kg^ zSFOSXskW0y`4%I=0a?aZ`{P!42y5}`9pO=Pmb_{4A=>2?uqtz(cU3X!?-Mt8eCI(0 zYe3BKy*|@on_bI|mG9D@U+(?*ty;<=u>71A-`1MKzRv2(%94_@lEU1K#KhFp)QsHR z{JfIVI&$am%mf`BJ%~Y^0%#ryj4*T~;*zkj2?tkpFeu0h;!wnqioO`E!imB>34=z0 zke~n$H=iKf7XnXeS-@E1mH_okZifM(+{hMisSwws9;``kW7cUkiF3163&6UXKr#n;Om zIm)}T+tI|M|8PNQW3Tz{C)?bXCo6yVD&HF3AO7m!{+<5~Ru-Y;UqOiSadky0xvi?A zDz~h%I6p5VF)2AUB{M50JG;21ir70eGDAbjz|O|bFNo$BgVk9v+`@_<(%vS5h9~m> zRbUfGdQ(IfQff33gaib5xp?7*vxRI4R_Y`rrDS2_6HWpEgXGIKoR*@^lO- z<_z2!9q1e$xB1HRlfJ$*5;7b)&r?gL%P*6>Y(uRhM%K${oJ#Gbv$J>>^uBGb*sSM_ za;_{+fDjqXbxu2E&ng;Pty2GIiOj2_=1J}rO-(mz$|I)_v#r_nX;b&Xs5_2fJTbbL zStjjVh@9_io!H|<9ZxH6b7^H))XUmYGcR$DUA##4pTo-c{ro?vlKh_pA>`$CZB=b^ zLv?LkVF@h8r6(l4GBr;OmVQmO%w|c zqWr5ID<-}mD_A5)LRb-mn~L~=F9z@k!>J&E6}$|{l4YbN#9(<}K|xtnT}4MrOT%ua z>&azXQ#r4krzhN>m_3g9Bkp;E&IW}_rZD=x>?7&ucc+Zqn-7gE&ndsR z;nx)IKC67!CCaY$vPDVA5H1lWKiEC1s%bp)^WEiMzcH%qE8q#2y4v6Mu1Z-;KW(Q~ zO`k&WdeSRdw_~9 zx|*80`ufI(vZA75$Vz-%Vp2**dUi%$WocJ+e<$_uJR2k2@=EiOqqooF3+BwP=Y{3vi|-GA80Z?na*0y&xCg!)Tp5Q5Num@y*&9a1E}S-f z`Qqh%UMp9xHDl!a{GVM8@UIoyVZR~HWE=BEO~vP@_TC$^*&Z*hU-S=TG(1_ozNML1UQkj}oSU8$8ylaPoRN{5URGFE)!f-lH!#FG%gV!tL7~LpP!9>D zYe@=73r_rN#a;rW!N9KoRzwg~L;xz-g*5;O3p|%y5RCz>phWO^aWM(Jj3To29fy~Y zh9O8@Qw45gb&Pv^U30CG!-ipt80a?=yzqT>=0)6>(E3i7I}i2ZFdq$vhk zN*;b8l&BaAI1FG*Xzv$f^k9UF?SQL`T_Qq@WRFgSPo z^F!g~$I2px<;P@bX;_vpEKA-j&PrN+O+|S%slU0RqO!awCoM5HDmEc8H7zAMKfAiB zhSb?MIW@t&f|W-EEr1r4lLVm1Do994!Y~9_0lY~32@4EBSWzspV2CUi3Bxr3xW2g1 z@&Xqf0UqMwlF-r0%Sz#;C1n+qKpLd3tOZrdz@b(?T;xjr$TF6(kB zIw;E1J(KJ8twXPG5=Mq~%hV$k!jBxTt6wA5Kj706X?cX_B-h1tZOjH*cls?NdFV~5 z6g3~Kg&J}7ax_vuEM9&&^LN6sMB=sbhrEG)^PA~EU#mOSC%#!_`-qij5p(^-BjB<0GpX8epT zpXiO7N39GTzVuW28_7j88FizJHUB>=-@PI^b3U;a_?4!nhT48od45JpLNwHsLt)tEf_jF@$@brRAmJk+{mLs*n{8Z$CXn8OLU;=IA`_pt#M(loyqhr3u(k z+CS89&+`}zo_zIQh&8kRc49H>Du**zg^yvk&Yut8#=B0RahGzsA^&lrq00f6p~R3& zy>_Z6xInU8ry^`U!#&qVl&SA1SZtbBW}6UE;|<-Z~nO*fJ{uRG_x5amDSF$sRw$B?9vz43b&`fe82gnA9V(oXqjKIkWe9ogMDm_bLfb9Df8^$+5`sEnXM0F*|=G$B2ju%7Or`v zO!)U_y1W0MW#u>D7iXmbq{|INVoPfWsi7i2Gc_ST4n(0eAS_vFg~>H_<@IfSUuG$( z>4k;(bhFbFD`Ki?5;S%3$wGfPOqtwQh!1z9=ZZWU!^ z<&~6FAS=Mzk{Xk@)Nd%1jON3I-?&X<_qcW6wqqAUafj_0Uk5aA($G#Ry)rJkx}DD} z?&8U_Gvya=kFuV3eEOi_f;jcvbfO!l3ofBLWDmACQ1FD@Av_?&S*MSV?0ngKwX+Ca zxlVbEmwma2h;t}Qrn|tN8=u#vu1jrId{7jJ-!kpo7poWEIDDelVD#?86}y)qD}T>~ z{$s2xo+2&IN^@IlQ)6ROb6Z<;eL3*9NeOXrG4V+$X{o6N*=ePvbxov}fvFiLCT<}d zUR+8J?ly&IG9lYdCH{0Of1-l<1`zB5CBU_O?QntT_Df13{Y}uX0GF&RD<`L{_*GZ5 z+5+!i7K#jha}Kk9r%}MV)z3f9ti5n&eWd>|?U8YuAVpVYca=A#KPG4Ccod_LWADuG@ zNv=)#p4x_HyS|uw$@y4>Lg^7ABM%?a^$EYZnk&kXwe6u(<+5jGi8hvBr^~;3{~0Uo z?QJd1%}vd%EyTL=qU^Nf_{4;`grww@w5;6Zg0g~|=Ehd?#0)J1N}NkVQbtx%Sq`WI zh(N%2K(8Vp_Ge{fAx~cT5k_cPVC7$pad5CAhyF+rZBdGjU~=e}S{ijR>U0iBTrl)%c`18(|6Rs&)2 z4kd8eX&K5Y?;iW)ai0G9*mJ2j0YP+R%+|wMMrE$~Rab1_bol?}ANId+{ij*^H*D?q zw|yj1TT5$eb8{nLr8qA$EfHQRsj2B1*~OWK#YNTiU9Hozb6k{Y5wwytURD8~q9P&r zm#i#wtcZwU7xsaCy}o8XP+Sn1!NPU~Nsuke0&fg11qB5qB}H|3)DvJu715PEA~E_y zzWbr%9pR>~hbmX@_4X;>nH=F)eY3scaL-mk=q36p+oR8~;DQvmvodBhMPn*Z=xZ&y~j5`Vhdh4mlw!sb=fpR^!b&X6h`MnoJgFiT6z!9F-eMW80iO3E5a3W_Qq2C2%b z16J;vrSFOM{E+GG$NH{a-k6w9u_0M>)PhUJc3s*5hJb1LPhBy0PZP~;?lGP_`)p(r zRrwPiX-)n1U2Tt!9|$>6O{0yCB1ODr@xJV^MIrlEy%ej-h7B8=6|7DcMi!{62?g*d z@MKx4?{(KEws$j1cU=kFqDCf*>h+W4@6}l`XGxxD50-qT3A;RhW$=(;woSThr>%rA>FkgO;%BX=WA=KC@HDJ z`ih3ChL+Y~u9-`3w7{F100!%-Jq~9AaTN0OhXsx1qAuwv9eLn~$DZeL;d)s1>9Da- zkN69!iaQ<-8uiyybJO3uO+52238IO%XPWsGe@Gmq64E6d1& ztw)}x`m70SDYHmC_9*^E&f~)hF)SGwo9}(NH$N|cmXnmE$%u&3;uARgWdA>el_l1i zf5FPHU|EutFP$BvwzgJ~ITP!uD~t29Gg4EMfLqDP%F4;hD<~_-kS4`~rYBa1-LsffYwgETgw1d(MzWD+8BAsgh8jjY0e6-n5xA`e3jJirt_v{hA9 z)Zs_Cc&J@e{C+$nC@+&GawAom86ov(JKagVg~$zlrUUO7DjwYA&Xp(|d7r*A>i+0$ z)tS_b#`=dn6nQmPSsqB2ofs-rvGcS$At|aB(A*LhrdQ#JR^RoQK`)Fg94O0Fc=(YG zdKwz&BDCl!c?tgAYuObmEXxjk2*f0WJWCiFsve^eXeZ7`?WvxfSJGTo-j-rVS@=1re62(n8=^Qj?)u$;!#j&nwQYE~#xKc212^@-hgE zgER*Gz@xmxFvzx3F)kXnmW)GO|49)?QRE3BW@nL9JwY36GZ8#b2-5)vnK0X)3-*`kS zl&}r$4wlUOuaTi*%vS^b>-^LqE8P!c(*+$+WCax z>V^$GTf?QURPOx5+dBL9UF(HLvnYLb_O1JNxT@?)mvMWS+oo*I?kEbSl_YH1|a)dF{$4PZ%2OHWUSJ-0>qa9U--BMwh_gU$TV)(S85zd*h#WCb z|8lBUoMPsAi(%p{9vgC1IGQ|ikvrboZ*ZwP)>)xw+8g6IIr#}dKMKpgKFoJ_c9PoLTU%S28XM}W;0%Y1^o(=> zOLlI4L1AH4Wo<)S=fK1?6AOwDCytyQDJda_6#-c=+>|ViMJ+JF|JMX6WNs$(xPk(F zNCPE2W&tH8DI*7RASG2ODVkb3I=Xtg1YI3%JuOWwO>H>$F7Mi|v&V4Sp7WWjh3X$r zQ&6JUsc_w$IOu9Vj$Ru;+1b;clST7LsCcW?DK^IAF7Gw>GjdRKL=$e-nwP#haN`W~ z<*c!aF21+N>JO}4x6WYywJ)YQd>@@eQ;l!eIlkM!dmGK#@uQ|M7&k`krdqS}InTjp zjz1ppomqQytJnFRxWYRd&kw|3&>X8q?~YqmtSn+!esH$%?WYBkrEkBx`+<{xeL>aT z4TYtx4OUp{tILZEa_IK_>)i?X9-NzLtx~PuOg<&*R$esBJ3k$MWWEAN5c>B}ly3H1kO# zPV9WER%36+yzIF2(QeUB(lPdw7?ugUJuhW)`F63N9*M!-JRMp_a^3K}U+BuCBlW4v zo|UB*geZPibfZ`bmLKz=MW1xNJzc=Ev_n{$;Ec>-c(O)TRwiJju&|`0s;0iVgFG}k zO-&=j&MqM&4hKttyhjKHXG{Ut0$70)Vt{~fA(KCl(YyliSUJEDCkGol7aTH#l0f0` zvIRB{tQYZY~qZ-M=u}>Tl zRp+91J8o5qah(n~&L^Ezx|&*l;Juqnql}7u!7%wcH2e(^?&G6WQ*rb);yr4U}-3-9|ki-T7vC zzQj1{Lu1cgwflto`d!m4{|r_ZhvlcN`~sFAgynCnF!uKJba!=hK+DohtgWsrEdt7t zlbxNJ1!7QfMOAHGM@PrV|X5p{HxVboyG0uO^{6?HE zHwQZl2Ny4&APPh*Nvw=K;%t$@c6x>cQ&T&0GcyYl0>Ox&qo=3Kt8qHJ;c4+*7i|?1 zp8HJvW(sG@dX3pl>z-99PgCM=P#>l0nSF1!%R#G5BxL)FNd@CAxAqoht@&i#C3ah= zZ?$s)!<}dCcV^Q%x#*jI+y_hcchwb2YTHb99lkt= zF%w=9zqX!N_oQLqpu_mOXG(b)HRMEIA3xMGWo1!eS#jZMt$EG#Uo%uP*< zP4o=(^{VK1KA8Cu|HzFw%6+8s3HxW}ElDV;wP+=`JD)4O-mG@Z37_|QxH9nm$tTi5 zF1W1?JIf<)r=W5Ss;?l|Iwcbw@YtkGhec z>@aD#y-I1Pm-#I|;rFA#a=m{%Wt*`oEZ<;%BWj(lhYeqyi?D!P9-RV#{vX21kFfm8 z$o}LX7Ki2AHX7vaA$2k}@wB8Nypp)7&!BGcr9#NzKZ_!NbiX z1ka4)gZ6|ECdYzsvlutPgo6VPUFG6}vmN+&k(1bYxY$_%D{vr{u!tBAm|GQ`n!1*b zp1!_;0m0bR+}_gC($>=4%+$=l$iN_?u778jV*SPK9R7{EWhvHGbJ`t*n61)lD&wB) z3d5@&d{>icD^v1zbnl#(1Bw6OT#DF*$2nEo-yh#D-ioeZKs|gnXp>P*F172JSM}}n ze|0zNqQs!)T#4xmtz3WiatHauZFb@<9$vb8AzL?vWhzp8Gp6A=+G%I! zHW>-(gl5|NhnE*C-v^M{=c!lFGqQ1Ua=~-65jeQvpea~B0ZedlaayQQp0{jQQ|gmxec~S7c^3bX+q}K4g5a-h$noW9+S!Btz1pvA z2Z1kPs$YkhyRj#lBEsFGLm*lQXJ)&SF}@^k+a>DvuY33D zaqVoSRk+{|TK~rFLw`s*JrV1>@afp~P4)+M1eYr-e`Djv_LaX~OAztH$M0j+5}<$w z7r776(hH(cJ21Dz`udvc%JTA(lHwwOOMYHKd3i^7*YNBF71atl1{M}JZaCtDlO0@~ zaMTnp9LUQ9A`mN_V7sun}m6T;PwR8;$1ULxZ z!otDQ%G%D#($d`0$i&!)E9^?0ZbjD}{p|--T}7v^YM4H?y^ih33>9@KoE{sD7j7FJdc zPJW;>Xd$#TP6i}G^6J`pP*Y6J%`Gh*tpF?5mX;Ql#=x|&k4oW3_r)rv2@|8aE>rT< z?aVPK=B$a1cr)Vdpjek}7n~V*7gNa^wBz8pja7cEC$P-gCr5P4>7L7%;wH>Kc!s?1 zF*n>xY8pKxPZIQ{NlMQ<`;_|Z-3gZva>V*r_0S0HwRMAMv(HB!<)@1E3zauxr}I00 zw&dA?J7-qpuU(tsz4pn9HuOR2`Q^0teQ8#H0n6{<@%K-Qq(I-i@%I5%`hl=?cC^7R zmd1wq+G-GoKp;Z2rMR({Od9(#3s|A1VPIqdw6L-;GqW(W09XJw>>NN}7Fc12mIbl` z!w>ihA_abn3y2RI%PlH_QIM0B*HF;WH!=n34{)_sPS)1e_EuJw7FNb)W+v|lw+T`k z^d6X8ysLHM*6P@kY;j8aHSZn3+MUc~DSzO_qMj3*p8k@af|mJS)tRdb>fD*mlv}5* zEWMH~cI;VQ{U%~BG4B8^MW#2aMTDIvHsr>8Tdi(^@fxfhi6H8CzV?tI_3jDdk-P4) z-UXwg(>Z>;tfeXvFE`Di+n0ZrQT(qp&Oq3*}EgFHX`T&h{Ht zg!=p7Pj63WM>||XY=W@VR8>}#m6ZbD0+QyY&fdZCnYnoY3oSh(Gcz+2Be<9$EC3Ex zHps`{bOo7O#sN_Qvck&F&d-kG!w3tA;AJHh)#Nl(3h5%+LZ-w3kNqNLc_|!!UBJVk5iCWSVR~niIY-L(9l%W)-p8*M#b9JW|fVtje|8{ z#oE-;!ra~1IIEd^L;u^svo18H_bdo|DQ`1)H0(a^vKkX2*&EVxmDN|*YehY;!)X4n zfB|2(M@}xsJ8MUAHU($;&^J?^&hGhk{zjgYnYS!RLB6YoUvcK;%DK=+$gdaa>{Ktm zJet2!yQrAb!fV#%b3^0~w-uLDuLd@(V7QuXW%=r3fMU~_m?jl_&zTvHWzWj*!16sS zzXQwS!t(WlI8>E^e!vP`LTp32DI4nRs)1*zsI020sI6}#^$w1WPfkwHQmmk+p#cvX z8d?MvNDB)qgoG2q0(1pog&PDQPBu0+7^+|*#K|wfAufy+6PK2fQBc#+CMfEgTUgoJ z+1jnPwY7Dywg#@n6l6mjhYuggJjE^ccI{a=!^BdRldqlC4l{VHJDX8`V{Z5751Zo3 z(miyBtS{=+78E@Adqi;CI9C+(`1>EfZkwLI7_&r5x){E-xf3*lOt zpO(}4E8nrQn6OYRfy=)I%aX$KuMg6|uJjEI^a69+fh-Hb1!p2mohzzpfWFiaTS>hG zBV%8_OiV-5LP-fSA|Nny(7OOukWd6*0rmujAWq%q%S|vYU+wV-zRjT3+sIGnZk;_FFUx)n+aC1`D-Ujf1b*AS8J1Y$#7 zO;uHGU0rQ$O;c-UPyf*H$jFz;soA-C@BqPxiiVDkftmR$D+{o2ax7GCxgaVa0s&ux z=n5Mb7molBRuY55OUWxLYiQ`{X#!TP?HnA|IM~}e0amPRKn$`7oVtxSwoE~t-nhT# zvkiygp6H01bOCi;FR6FmS>fox(JB;m){2LP>v$B=>Fs0I%;(P!XGMfG23~*HeS2%L zbMmwo>l+LA`}fL1&I$Sk(XOfx-*rIg$!*c~+%Im8JjZrsU5(Getgv2oy0WCOEb{r^_SXtSa z0KXEprMWqa{AiFMiP-Irbl!N~ zS99-oProP98qQLMQ`i}JJnMOCdwSq)-_4HJh)H}R<;>N%+fmkSrvCs|{#&pt8iW=; z>kkY-RU!96W$9i}7TER#IH`wMLsL7c8=^D-!qE7{%+$ox3?eKv^bAZ)Osq_-(A+NA zS}p__4p_ql#+DiJzaX<_<=_z%5EPaWmX(rK12ITX-M|d6V(;MS;^=6<3bJBtVs2q} zjN)Xo6v_j2zDwyy+6(G7;(=9mnX5nE5_7!JuQw3)Sn4_E?zOGxu0nez;>%o3hkev0 zUaSTFuRNccJ=rI98+F9*7EqP@6!Z3%aH~tn+O*hcPl^-n8+52{JH~Ge=&O~->YlK5 z%y~e$Sxq!ewEFe7eYFSPFm2m6eR;~WNYy=)+2QTg3&!(z+?H2wHgf&nfMv0|?YD8r zbPz@$fC|tSWDOBnL0E7P;{6qG<%7#Kj50ono= zf)?TrctGdEjwC@$3#@Q5bF!j4aPP**_CY-Vm| z;~Uvr=ZI2&qTc0^y-ED@UE)x*`$$Z{?YcD#{bE;*3kZP|PA^^zI?#u=I^`9kJ5D>K|k3T(4T3SMO(Wz zw<=4``{1$S!`RtlTYX#`4T{4G*Poz82a&j49Bzw$3X^MCH}nr>dT)99AmAxuWp?hb?T=_GT`)|zRI;pD`S*n7-+|?C zLFju{C@7r<2L}53$bDpTUmx@=up|e95Uln$)He{Dnp)aO;A(I0>L2JI8XKROn4FrP zo2Q_n20@5{ff1xbtnARxF03*mW(D8@b%haeztGI^z!PqN3xuQrf-Dt9;KA-c>*|G z;8<4B&_iXRhsh4ilwt5eEDHye6~wPFAte}2E;epHem*QlL_$tcRaIHjz`(>5*cHgi zN=L_)wpJFV7KX+q#=HE3DNY^UfM>fEK-j5aqOWC>u9bhtJ4VQgCu{TwC0)&l(!JHs zRz;V}o<4tTB+BKTjb@ltKS9mkTx-)G*2Nb*;#-1QqtjhiMf*laWBo&V1qB5ynhqtO z@0{)z-|(@#k515aedAiDbvJi#AFHE_D&Z1tx-VDdWEGn4TlxeWqK z(|{Gq6*RQ;^z;n$49q}SVEGM+LP+Y&&dv@JBxYcJVO9-D;^pB+35keHN-HWUsp;q& z8Jk<$+BrBmxdL5TX=7n-YGzPK>Gd@>L4ThqF-TxtoAmfQd2w6l9q?~_$ACx(x7 zxkRmdGx7T1a%5%cy!k&YEK9Pob!cd45V@dl=|+MOV1-C*f@dc*H8#OB6u?b$OM4G_ zU>MljagYhk0$rh|g~CF|0DxfUY=2nPbL0GXeH!(5QCm0h{U)O~0r6ZTc#CT1O#0 zK4OXxs_WIM$Tnu>C(0s!GM%~3-$Q2-s~V%zaxVTOp)Bu9<+R^nPulZ)OSi0I;3zq+ zHELwYvMgCyvLN>#7M8_WL2h>p4-XFw17Lu>^dmtCnp=2$4-k}=uku1{Y#=t1y2<^6 z!y{u~#;0ax=2xtsp`oLrr>A3pL5PE!8!;+KN(6gZVAley@xuin4sISEAq)zOk&zWs zQP0xHf!G*Ab6y;zd#0D-%3&?|DV;nah3X8^w z;BX462rI^BNR8jY#nI8h$;_Bwgs`%2zCAxL|HE;)5uF_Y+;KB&sg>QTJu_J@8{H37 zU9ZMtd^=39f6bbKH6!VaimWj=-AndV9((M7pSUL={49-wZ#<`B;{#{+8?Uf}`6o_B zM9fnN3g*k-934sa)(uvtR2Qjh61;RAvmw+%=4K3sl&AQs@fP7VhQf2RaLp| STpEY{Rp^HeCI1J`+8bB&;)nqN literal 0 HcmV?d00001 diff --git a/src/4D_api.cpp b/src/4D_api.cpp index d79fec8fd1..0b47902178 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -328,6 +328,8 @@ int pj_get_suggested_operation(PJ_CONTEXT *, // the one that has the smallest area (alt.accuracy == bestAccuracy && alt.pseudoArea < opList[iBest].pseudoArea && + !(alt.isUnknownAreaName && + !opList[iBest].isUnknownAreaName) && !opList[iBest].isPriorityOp)) && !alt.isOffshore)) { @@ -1693,7 +1695,7 @@ static PJ *add_coord_op_to_list( int idxInOriginalList, PJ *op, double west_lon, double south_lat, double east_lon, double north_lat, PJ *pjGeogToSrc, PJ *pjGeogToDst, const PJ *pjSrcGeocentricToLonLat, const PJ *pjDstGeocentricToLonLat, - bool isOffshore, std::vector &altCoordOps) { + const char *areaName, std::vector &altCoordOps) { /*****************************************************************************/ double minxSrc; @@ -1742,8 +1744,8 @@ static PJ *add_coord_op_to_list( const double accuracy = proj_coordoperation_get_accuracy(op->ctx, op); altCoordOps.emplace_back( idxInOriginalList, minxSrc, minySrc, maxxSrc, maxySrc, minxDst, - minyDst, maxxDst, maxyDst, op, name, accuracy, pseudoArea, - isOffshore, pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat); + minyDst, maxxDst, maxyDst, op, name, accuracy, pseudoArea, areaName, + pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat); op = nullptr; } return op; @@ -2018,23 +2020,22 @@ pj_create_prepared_operations(PJ_CONTEXT *ctx, const PJ *source_crs, north_lat = 90; } - const bool isOffshore = areaName && strstr(areaName, "- offshore"); if (west_lon <= east_lon) { op = add_coord_op_to_list( i, op, west_lon, south_lat, east_lon, north_lat, pjGeogToSrc, pjGeogToDst, pjSrcGeocentricToLonLat, - pjDstGeocentricToLonLat, isOffshore, preparedOpList); + pjDstGeocentricToLonLat, areaName, preparedOpList); } else { auto op_clone = proj_clone(ctx, op); op = add_coord_op_to_list( i, op, west_lon, south_lat, 180, north_lat, pjGeogToSrc, pjGeogToDst, pjSrcGeocentricToLonLat, - pjDstGeocentricToLonLat, isOffshore, preparedOpList); + pjDstGeocentricToLonLat, areaName, preparedOpList); op_clone = add_coord_op_to_list( i, op_clone, -180, south_lat, east_lon, north_lat, pjGeogToSrc, pjGeogToDst, pjSrcGeocentricToLonLat, - pjDstGeocentricToLonLat, isOffshore, preparedOpList); + pjDstGeocentricToLonLat, areaName, preparedOpList); proj_destroy(op_clone); } @@ -3019,13 +3020,15 @@ PJCoordOperation::PJCoordOperation( int idxInOriginalListIn, double minxSrcIn, double minySrcIn, double maxxSrcIn, double maxySrcIn, double minxDstIn, double minyDstIn, double maxxDstIn, double maxyDstIn, PJ *pjIn, const std::string &nameIn, - double accuracyIn, double pseudoAreaIn, bool isOffshoreIn, + double accuracyIn, double pseudoAreaIn, const char *areaNameIn, const PJ *pjSrcGeocentricToLonLatIn, const PJ *pjDstGeocentricToLonLatIn) : idxInOriginalList(idxInOriginalListIn), minxSrc(minxSrcIn), minySrc(minySrcIn), maxxSrc(maxxSrcIn), maxySrc(maxySrcIn), minxDst(minxDstIn), minyDst(minyDstIn), maxxDst(maxxDstIn), maxyDst(maxyDstIn), pj(pjIn), name(nameIn), accuracy(accuracyIn), - pseudoArea(pseudoAreaIn), isOffshore(isOffshoreIn), + pseudoArea(pseudoAreaIn), areaName(areaNameIn ? areaNameIn : ""), + isOffshore(areaName.find("- offshore") != std::string::npos), + isUnknownAreaName(areaName.empty() || areaName == "unknown"), isPriorityOp(isSpecialCaseForNAD83_to_NAD83HARN(name) || isSpecialCaseForGDA94_to_WGS84(name) || isSpecialCaseForWGS84_to_GDA2020(name)), diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 59ea970f96..1ec48bd3b8 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -9135,7 +9135,7 @@ PJ *proj_normalize_for_visualization(PJ_CONTEXT *ctx, const PJ *obj) { alt.idxInOriginalList, minxSrc, minySrc, maxxSrc, maxySrc, minxDst, minyDst, maxxDst, maxyDst, pjNormalized, co->nameStr(), alt.accuracy, - alt.pseudoArea, alt.isOffshore, + alt.pseudoArea, alt.areaName.c_str(), alt.pjSrcGeocentricToLonLat, alt.pjDstGeocentricToLonLat); } diff --git a/src/proj_internal.h b/src/proj_internal.h index 409b1a5f32..f2a9a9a98b 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -343,7 +343,9 @@ struct PJCoordOperation { std::string name{}; double accuracy = -1.0; double pseudoArea = 0.0; + std::string areaName{}; bool isOffshore = false; + bool isUnknownAreaName = false; bool isPriorityOp = false; bool srcIsLonLatDegree = false; bool srcIsLatLonDegree = false; @@ -364,8 +366,8 @@ struct PJCoordOperation { double minySrcIn, double maxxSrcIn, double maxySrcIn, double minxDstIn, double minyDstIn, double maxxDstIn, double maxyDstIn, PJ *pjIn, const std::string &nameIn, - double accuracyIn, double pseudoAreaIn, bool isOffshoreIn, - const PJ *pjSrcGeocentricToLonLatIn, + double accuracyIn, double pseudoAreaIn, + const char *areaName, const PJ *pjSrcGeocentricToLonLatIn, const PJ *pjDstGeocentricToLonLatIn); PJCoordOperation(const PJCoordOperation &) = delete; @@ -377,7 +379,9 @@ struct PJCoordOperation { minyDst(other.minyDst), maxxDst(other.maxxDst), maxyDst(other.maxyDst), pj(proj_clone(ctx, other.pj)), name(std::move(other.name)), accuracy(other.accuracy), - pseudoArea(other.pseudoArea), isOffshore(other.isOffshore), + pseudoArea(other.pseudoArea), areaName(other.areaName), + isOffshore(other.isOffshore), + isUnknownAreaName(other.isUnknownAreaName), isPriorityOp(other.isPriorityOp), srcIsLonLatDegree(other.srcIsLonLatDegree), srcIsLatLonDegree(other.srcIsLatLonDegree), @@ -399,7 +403,9 @@ struct PJCoordOperation { minyDst(other.minyDst), maxxDst(other.maxxDst), maxyDst(other.maxyDst), name(std::move(other.name)), accuracy(other.accuracy), pseudoArea(other.pseudoArea), - isOffshore(other.isOffshore), isPriorityOp(other.isPriorityOp), + areaName(std::move(other.areaName)), isOffshore(other.isOffshore), + isUnknownAreaName(other.isUnknownAreaName), + isPriorityOp(other.isPriorityOp), srcIsLonLatDegree(other.srcIsLonLatDegree), srcIsLatLonDegree(other.srcIsLatLonDegree), dstIsLonLatDegree(other.dstIsLonLatDegree), @@ -422,7 +428,7 @@ struct PJCoordOperation { maxxDst == other.maxxDst && maxyDst == other.maxyDst && name == other.name && proj_is_equivalent_to(pj, other.pj, PJ_COMP_STRICT) && - accuracy == other.accuracy && isOffshore == other.isOffshore; + accuracy == other.accuracy && areaName == other.areaName; } bool operator!=(const PJCoordOperation &other) const { diff --git a/test/cli/testvarious b/test/cli/testvarious index a9589f500e..ed91426d91 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1359,6 +1359,18 @@ $EXE -d 3 +proj=topocentric +datum=WGS84 +X_0=-3982059.42 +Y_0=3331314.88 +Z_0=3 0 0 0 EOF +echo "##############################################################" >> ${OUT} +echo "Test cs2cs EPSG:5488 (RGAF09) to EPSG:4559+5757 (RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height)" >> ${OUT} +echo "Check that we use the horizontal transformation for Guadeloupe (RRAF 1991 to RGAF09 (2)), and not the one for Martinique" >> ${OUT} +# +if test "${TIFF_ENABLED}" = "yes"; then +PROJ_DATA=${PROJ_DATA}:${PROJ_DATA}/tests $EXE -d 3 EPSG:5488 EPSG:4559+5757 >> ${OUT} <> ${OUT} +fi + # Done! # do 'diff' with distribution results diff --git a/test/cli/tv_out.dist b/test/cli/tv_out.dist index 7dd56e5433..5e748b87f7 100644 --- a/test/cli/tv_out.dist +++ b/test/cli/tv_out.dist @@ -649,3 +649,7 @@ Test --t_epoch ############################################################## Test +proj=topocentric +datum=WGS84 +X_0=-3982059.42 +Y_0=3331314.88 +Z_0=3692463.58 +no_defs +type=crs +to EPSG:4978 0 0 0 -3982059.420 3331314.880 3692463.580 +############################################################## +Test cs2cs EPSG:5488 (RGAF09) to EPSG:4559+5757 (RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height) +Check that we use the horizontal transformation for Guadeloupe (RRAF 1991 to RGAF09 (2)), and not the one for Martinique +661991.318 1796999.201 93.846 From d1314c06d8040355e6a041db3b8cd9952ffc5b83 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 19 Nov 2023 19:47:03 +0100 Subject: [PATCH 082/199] Move static NameSpace::GLOBAL definition in static.cpp to avoid 'static initialization fiasco' (fixes various Coverity warnings) --- src/iso19111/static.cpp | 4 ++++ src/iso19111/util.cpp | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/iso19111/static.cpp b/src/iso19111/static.cpp index 3c4c8ddced..9362610311 100644 --- a/src/iso19111/static.cpp +++ b/src/iso19111/static.cpp @@ -66,6 +66,10 @@ NS_PROJ_START // --------------------------------------------------------------------------- +const NameSpaceNNPtr NameSpace::GLOBAL(NameSpace::createGLOBAL()); + +// --------------------------------------------------------------------------- + /** \brief Key to set the authority citation of a metadata::Identifier. * * The value is to be provided as a string or a metadata::Citation. diff --git a/src/iso19111/util.cpp b/src/iso19111/util.cpp index 70f738b8af..e72f3af7b0 100644 --- a/src/iso19111/util.cpp +++ b/src/iso19111/util.cpp @@ -494,10 +494,6 @@ NameSpaceNNPtr NameSpace::createGLOBAL() { // --------------------------------------------------------------------------- -const NameSpaceNNPtr NameSpace::GLOBAL(NameSpace::createGLOBAL()); - -// --------------------------------------------------------------------------- - //! @cond Doxygen_Suppress struct LocalName::Private { NameSpacePtr scope{}; From 4935b6f87e3bc2aead2c682d55e817b52fc5d0b4 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 19 Nov 2023 20:19:51 +0100 Subject: [PATCH 083/199] Make sure test of 1f9b636b0ad7cb1a10a2af3661c7dde7a8c96c2b is actually run --- test/cli/testvarious | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/cli/testvarious b/test/cli/testvarious index ed91426d91..45c00cfa02 100755 --- a/test/cli/testvarious +++ b/test/cli/testvarious @@ -1363,12 +1363,12 @@ echo "##############################################################" >> ${OUT} echo "Test cs2cs EPSG:5488 (RGAF09) to EPSG:4559+5757 (RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height)" >> ${OUT} echo "Check that we use the horizontal transformation for Guadeloupe (RRAF 1991 to RGAF09 (2)), and not the one for Martinique" >> ${OUT} # -if test "${TIFF_ENABLED}" = "yes"; then +if test "${TIFF_ENABLED}" = "YES"; then PROJ_DATA=${PROJ_DATA}:${PROJ_DATA}/tests $EXE -d 3 EPSG:5488 EPSG:4559+5757 >> ${OUT} <> ${OUT} +printf "661991.318\t1796999.201 93.846\n" >> ${OUT} fi From b65b88a77ab584b516785f2128958a85b49b920a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 21 Nov 2023 21:21:07 +0100 Subject: [PATCH 084/199] horner: allow arbitrary input type of coordinate Avoids workaround of https://lists.osgeo.org/pipermail/proj/2023-November/011167.html to be able to deal with geographic coordinates --- src/transformations/horner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformations/horner.cpp b/src/transformations/horner.cpp index 5160239dd1..d72107c63e 100644 --- a/src/transformations/horner.cpp +++ b/src/transformations/horner.cpp @@ -559,7 +559,7 @@ PJ *PROJECTION(horner) { P->inv3d = nullptr; P->fwd = nullptr; P->inv = nullptr; - P->left = P->right = PJ_IO_UNITS_PROJECTED; + P->left = P->right = PJ_IO_UNITS_WHATEVER; P->destructor = horner_freeup; /* Polynomial degree specified? */ From e5fcda6eded2f216f43f501dc2326bcf5dc94fec Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:36:21 +0100 Subject: [PATCH 085/199] apps/CMakeLists.txt: disable CMAKE_UNITY_BUILD --- src/apps/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/apps/CMakeLists.txt b/src/apps/CMakeLists.txt index 5c63cab787..d3389883f2 100644 --- a/src/apps/CMakeLists.txt +++ b/src/apps/CMakeLists.txt @@ -1,3 +1,5 @@ +set(CMAKE_UNITY_BUILD OFF) + # Configure executable builds option(BUILD_APPS "Build PROJ applications (default value for BUILD_CCT, BUILD_CS2CS, etc.)" From 3c83daa6f089eba0ba6f18380e761393efe43799 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:36:43 +0100 Subject: [PATCH 086/199] tests: tune/disable CMAKE_UNITY_BUILD --- test/unit/CMakeLists.txt | 9 +++++++-- test/unit/test_primitives.hpp | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index e58b11931a..1d2b197704 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -133,7 +133,7 @@ else() PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) endif() -add_executable(proj_test_cpp_api +set(PROJ_TEST_CPP_API_SOURCES main.cpp test_util.cpp test_common.cpp @@ -147,6 +147,11 @@ add_executable(proj_test_cpp_api test_factory.cpp test_c_api.cpp test_grids.cpp) +add_executable(proj_test_cpp_api ${PROJ_TEST_CPP_API_SOURCES}) +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16) + set_property(SOURCE ${PROJ_TEST_CPP_API_SOURCES} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +endif () + target_link_libraries(proj_test_cpp_api PRIVATE GTest::gtest PRIVATE ${PROJ_LIBRARIES} @@ -157,7 +162,7 @@ set_property(TEST proj_test_cpp_api if(TIFF_ENABLED) target_compile_definitions(proj_test_cpp_api PRIVATE -DTIFF_ENABLED) endif() - + add_executable(gie_self_tests main.cpp gie_self_tests.cpp) diff --git a/test/unit/test_primitives.hpp b/test/unit/test_primitives.hpp index 45c0df1cd7..49ee83a6ac 100644 --- a/test/unit/test_primitives.hpp +++ b/test/unit/test_primitives.hpp @@ -26,6 +26,9 @@ * DEALINGS IN THE SOFTWARE. ****************************************************************************/ +#ifndef TEST_PRIMITIVES_HPP_INCLUDED +#define TEST_PRIMITIVES_HPP_INCLUDED + #include "gtest_include.h" #ifndef FROM_PROJ_CPP @@ -99,3 +102,5 @@ static ::testing::AssertionResult ComparePROJString(const char *m_expr, << m_expr << " and " << n_expr << " (" << m << " and " << n << ") are different"; } + +#endif /* TEST_PRIMITIVES_HPP_INCLUDED */ From 8a997a76e9f0117e9d46d0b6009f331d8e112110 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:54:23 +0100 Subject: [PATCH 087/199] lru_cache.hpp: avoid conflict with osgeo::proj::operation::k --- include/proj/internal/lru_cache.hpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/include/proj/internal/lru_cache.hpp b/include/proj/internal/lru_cache.hpp index e9f177c713..f343ef1d01 100644 --- a/include/proj/internal/lru_cache.hpp +++ b/include/proj/internal/lru_cache.hpp @@ -73,7 +73,7 @@ template struct KeyValuePair { K key; V value; - KeyValuePair(const K &k, const V &v) : key(k), value(v) {} + KeyValuePair(const K &keyIn, const V &v) : key(keyIn), value(v) {} }; /** @@ -122,17 +122,17 @@ class Cache { cache_.clear(); keys_.clear(); } - void insert(const Key &k, const Value &v) { + void insert(const Key &key, const Value &v) { Guard g(lock_); - const auto iter = cache_.find(k); + const auto iter = cache_.find(key); if (iter != cache_.end()) { iter->second->value = v; keys_.splice(keys_.begin(), keys_, iter->second); return; } - keys_.emplace_front(k, v); - cache_[k] = keys_.begin(); + keys_.emplace_front(key, v); + cache_[key] = keys_.begin(); prune(); } bool tryGet(const Key &kIn, Value &vOut) { @@ -149,9 +149,9 @@ class Cache { * The const reference returned here is only * guaranteed to be valid till the next insert/delete */ - const Value &get(const Key &k) { + const Value &get(const Key &key) { Guard g(lock_); - const auto iter = cache_.find(k); + const auto iter = cache_.find(key); if (iter == cache_.end()) { throw KeyNotFound(); } @@ -163,9 +163,9 @@ class Cache { * The const reference returned here is only * guaranteed to be valid till the next insert/delete */ - const Value *getPtr(const Key &k) { + const Value *getPtr(const Key &key) { Guard g(lock_); - const auto iter = cache_.find(k); + const auto iter = cache_.find(key); if (iter == cache_.end()) { return nullptr; } @@ -176,10 +176,10 @@ class Cache { /** * returns a copy of the stored object (if found) */ - Value getCopy(const Key &k) { return get(k); } - bool remove(const Key &k) { + Value getCopy(const Key &key) { return get(key); } + bool remove(const Key &key) { Guard g(lock_); - auto iter = cache_.find(k); + auto iter = cache_.find(key); if (iter == cache_.end()) { return false; } @@ -187,9 +187,9 @@ class Cache { cache_.erase(iter); return true; } - bool contains(const Key &k) { + bool contains(const Key &key) { Guard g(lock_); - return cache_.find(k) != cache_.end(); + return cache_.find(key) != cache_.end(); } size_t getMaxSize() const { return maxSize_; } From 35ddd24dc63cba63faf6e7fcbdd221a55b8c6aae Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:37:25 +0100 Subject: [PATCH 088/199] Various fixes to make cmake -DCMAKE_UNITY_BUILD=ON work --- src/conversions/axisswap.cpp | 44 +++---- src/conversions/cart.cpp | 2 +- src/conversions/geoc.cpp | 2 +- src/conversions/geocent.cpp | 2 +- src/conversions/noop.cpp | 2 +- src/conversions/topocentric.cpp | 2 +- src/conversions/unitconvert.cpp | 2 +- src/iso19111/operation/parammappings.cpp | 6 +- src/lib_proj.cmake | 14 +++ src/list.cpp | 2 + src/networkfilemanager.cpp | 21 ++-- src/proj_internal.h | 10 +- src/projections/adams.cpp | 25 ++-- src/projections/aea.cpp | 47 ++++---- src/projections/aeqd.cpp | 73 ++++++------ src/projections/airy.cpp | 12 +- src/projections/aitoff.cpp | 43 +++---- src/projections/august.cpp | 2 +- src/projections/bacon.cpp | 30 ++--- src/projections/bertin1953.cpp | 10 +- src/projections/bipc.cpp | 32 ++++- src/projections/boggs.cpp | 8 +- src/projections/bonne.cpp | 28 ++--- src/projections/calcofi.cpp | 2 +- src/projections/cass.cpp | 12 +- src/projections/cc.cpp | 2 +- src/projections/ccon.cpp | 24 ++-- src/projections/cea.cpp | 20 ++-- src/projections/chamb.cpp | 13 ++- src/projections/col_urban.cpp | 12 +- src/projections/collg.cpp | 6 +- src/projections/comill.cpp | 12 +- src/projections/crast.cpp | 2 +- src/projections/denoy.cpp | 8 +- src/projections/eck1.cpp | 2 +- src/projections/eck2.cpp | 2 +- src/projections/eck3.cpp | 8 +- src/projections/eck4.cpp | 2 +- src/projections/eck5.cpp | 2 +- src/projections/eqc.cpp | 12 +- src/projections/eqdc.cpp | 36 +++--- src/projections/eqearth.cpp | 24 ++-- src/projections/fahey.cpp | 2 +- src/projections/fouc_s.cpp | 15 ++- src/projections/gall.cpp | 2 +- src/projections/geos.cpp | 16 +-- src/projections/gins8.cpp | 2 +- src/projections/gn_sinu.cpp | 64 +++++----- src/projections/gnom.cpp | 52 ++++----- src/projections/goode.cpp | 27 +++-- src/projections/gstmerc.cpp | 14 ++- src/projections/hammer.cpp | 14 ++- src/projections/hatano.cpp | 16 ++- src/projections/healpix.cpp | 66 +++++++---- src/projections/igh.cpp | 109 +++++++++-------- src/projections/igh_o.cpp | 115 +++++++++--------- src/projections/imoll.cpp | 69 ++++++----- src/projections/imoll_o.cpp | 100 +++++++++------- src/projections/imw_p.cpp | 29 ++--- src/projections/isea.cpp | 26 ++++- src/projections/krovak.cpp | 17 ++- src/projections/labrd.cpp | 2 +- src/projections/laea.cpp | 105 ++++++++--------- src/projections/lagrng.cpp | 12 +- src/projections/larr.cpp | 2 +- src/projections/lask.cpp | 2 +- src/projections/latlong.cpp | 8 +- src/projections/lcc.cpp | 14 ++- src/projections/lcca.cpp | 23 ++-- src/projections/loxim.cpp | 14 ++- src/projections/mbt_fps.cpp | 11 +- src/projections/mbtfpp.cpp | 9 +- src/projections/mbtfpq.cpp | 12 +- src/projections/merc.cpp | 4 +- src/projections/mill.cpp | 2 +- src/projections/mod_ster.cpp | 55 +++++---- src/projections/moll.cpp | 29 ++--- src/projections/natearth.cpp | 20 +++- src/projections/natearth2.cpp | 20 +++- src/projections/nell.cpp | 5 +- src/projections/nell_h.cpp | 5 +- src/projections/nicol.cpp | 2 +- src/projections/nsper.cpp | 64 +++++----- src/projections/nzmg.cpp | 25 ++-- src/projections/ob_tran.cpp | 28 +++-- src/projections/ocea.cpp | 12 +- src/projections/oea.cpp | 12 +- src/projections/omerc.cpp | 15 ++- src/projections/ortho.cpp | 57 ++++----- src/projections/patterson.cpp | 14 ++- src/projections/poly.cpp | 28 +++-- src/projections/putp2.cpp | 9 +- src/projections/putp3.cpp | 28 +++-- src/projections/putp4p.cpp | 18 +-- src/projections/putp5.cpp | 21 ++-- src/projections/putp6.cpp | 22 ++-- src/projections/qsc.cpp | 142 ++++++++++++----------- src/projections/robin.cpp | 2 +- src/projections/rouss.cpp | 20 ++-- src/projections/rpoly.cpp | 12 +- src/projections/s2.cpp | 12 +- src/projections/sch.cpp | 28 ++--- src/projections/sconics.cpp | 62 +++++----- src/projections/som.cpp | 38 +++--- src/projections/somerc.cpp | 15 ++- src/projections/stere.cpp | 41 ++++--- src/projections/sterea.cpp | 2 +- src/projections/sts.cpp | 38 +++--- src/projections/tcc.cpp | 2 +- src/projections/tcea.cpp | 2 +- src/projections/times.cpp | 2 +- src/projections/tmerc.cpp | 6 +- src/projections/tobmerc.cpp | 2 +- src/projections/tpeqd.cpp | 12 +- src/projections/urm5.cpp | 10 +- src/projections/urmfps.cpp | 37 +++--- src/projections/vandg.cpp | 10 +- src/projections/vandg2.cpp | 18 +-- src/projections/vandg4.cpp | 2 +- src/projections/wag2.cpp | 7 +- src/projections/wag3.cpp | 17 +-- src/projections/wag7.cpp | 2 +- src/projections/wink1.cpp | 17 +-- src/projections/wink2.cpp | 18 +-- src/transformations/affine.cpp | 4 +- src/transformations/defmodel.cpp | 2 +- src/transformations/deformation.cpp | 70 ++++++----- src/transformations/gridshift.cpp | 27 ++--- src/transformations/helmert.cpp | 4 +- src/transformations/hgridshift.cpp | 60 +++++----- src/transformations/horner.cpp | 2 +- src/transformations/molodensky.cpp | 38 +++--- src/transformations/tinshift.cpp | 23 ++-- src/transformations/vertoffset.cpp | 2 +- src/transformations/vgridshift.cpp | 60 +++++----- src/transformations/xyzgridshift.cpp | 28 ++--- 136 files changed, 1706 insertions(+), 1274 deletions(-) diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index dce442f8f3..f6c46fb31e 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -65,7 +65,7 @@ It is only necessary to specify the axes that are affected by the swap PROJ_HEAD(axisswap, "Axis ordering"); namespace { // anonymous namespace -struct pj_opaque { +struct pj_axisswap_data { unsigned int axis[4]; int sign[4]; }; @@ -73,8 +73,8 @@ struct pj_opaque { static int sign(int x) { return (x > 0) - (x < 0); } -static PJ_XY forward_2d(PJ_LP lp, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static PJ_XY pj_axisswap_forward_2d(PJ_LP lp, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; PJ_XY xy; double in[2] = {lp.lam, lp.phi}; @@ -83,8 +83,8 @@ static PJ_XY forward_2d(PJ_LP lp, PJ *P) { return xy; } -static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static PJ_LP pj_axisswap_reverse_2d(PJ_XY xy, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; unsigned int i; PJ_COORD out, in; @@ -98,8 +98,8 @@ static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { return out.lp; } -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static PJ_XYZ pj_axisswap_forward_3d(PJ_LPZ lpz, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; unsigned int i; PJ_COORD out, in; @@ -114,8 +114,8 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return out.xyz; } -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static PJ_LPZ pj_axisswap_reverse_3d(PJ_XYZ xyz, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; unsigned int i; PJ_COORD in, out; @@ -134,8 +134,8 @@ static void swap_xy_4d(PJ_COORD &coo, PJ *) { std::swap(coo.xyzt.x, coo.xyzt.y); } -static void forward_4d(PJ_COORD &coo, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static void pj_axisswap_forward_4d(PJ_COORD &coo, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; unsigned int i; PJ_COORD out; @@ -144,8 +144,8 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { coo = out; } -static void reverse_4d(PJ_COORD &coo, PJ *P) { - struct pj_opaque *Q = (struct pj_opaque *)P->opaque; +static void pj_axisswap_reverse_4d(PJ_COORD &coo, PJ *P) { + struct pj_axisswap_data *Q = (struct pj_axisswap_data *)P->opaque; unsigned int i; PJ_COORD out; @@ -156,10 +156,10 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { } /***********************************************************************/ -PJ *CONVERSION(axisswap, 0) { +PJ *PJ_CONVERSION(axisswap, 0) { /***********************************************************************/ - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_axisswap_data *Q = static_cast( + calloc(1, sizeof(struct pj_axisswap_data))); char *s; unsigned int i, j, n = 0; @@ -266,12 +266,12 @@ PJ *CONVERSION(axisswap, 0) { /* only map fwd/inv functions that are possible with the given axis setup */ if (n == 4) { - P->fwd4d = forward_4d; - P->inv4d = reverse_4d; + P->fwd4d = pj_axisswap_forward_4d; + P->inv4d = pj_axisswap_reverse_4d; } if (n == 3 && Q->axis[0] < 3 && Q->axis[1] < 3 && Q->axis[2] < 3) { - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd3d = pj_axisswap_forward_3d; + P->inv3d = pj_axisswap_reverse_3d; } if (n == 2) { if (Q->axis[0] == 1 && Q->sign[0] == 1 && Q->axis[1] == 0 && @@ -279,8 +279,8 @@ PJ *CONVERSION(axisswap, 0) { P->fwd4d = swap_xy_4d; P->inv4d = swap_xy_4d; } else if (Q->axis[0] < 2 && Q->axis[1] < 2) { - P->fwd = forward_2d; - P->inv = reverse_2d; + P->fwd = pj_axisswap_forward_2d; + P->inv = pj_axisswap_reverse_2d; } } diff --git a/src/conversions/cart.cpp b/src/conversions/cart.cpp index 4fc8210935..b3394e8882 100644 --- a/src/conversions/cart.cpp +++ b/src/conversions/cart.cpp @@ -224,7 +224,7 @@ static PJ_LP cart_reverse(PJ_XY xy, PJ *P) { } /*********************************************************************/ -PJ *CONVERSION(cart, 1) { +PJ *PJ_CONVERSION(cart, 1) { /*********************************************************************/ P->fwd3d = cartesian; P->inv3d = geodetic; diff --git a/src/conversions/geoc.cpp b/src/conversions/geoc.cpp index 4f8d14988b..c15fffd092 100644 --- a/src/conversions/geoc.cpp +++ b/src/conversions/geoc.cpp @@ -45,7 +45,7 @@ static void inverse(PJ_COORD &coo, PJ *P) { coo = pj_geocentric_latitude(P, PJ_INV, coo); } -static PJ *CONVERSION(geoc, 1) { +static PJ *PJ_CONVERSION(geoc, 1) { P->inv4d = inverse; P->fwd4d = forward; diff --git a/src/conversions/geocent.cpp b/src/conversions/geocent.cpp index a2bc19fe73..f086b12f07 100644 --- a/src/conversions/geocent.cpp +++ b/src/conversions/geocent.cpp @@ -50,7 +50,7 @@ static PJ_LP inverse(PJ_XY xy, PJ *P) { return lp; } -PJ *CONVERSION(geocent, 0) { +PJ *PJ_CONVERSION(geocent, 0) { P->is_geocent = 1; P->x0 = 0.0; P->y0 = 0.0; diff --git a/src/conversions/noop.cpp b/src/conversions/noop.cpp index a153ca7f7b..726c8f3a5e 100644 --- a/src/conversions/noop.cpp +++ b/src/conversions/noop.cpp @@ -6,7 +6,7 @@ PROJ_HEAD(noop, "No operation"); static void noop(PJ_COORD &, PJ *) {} -PJ *CONVERSION(noop, 0) { +PJ *PJ_CONVERSION(noop, 0) { P->fwd4d = noop; P->inv4d = noop; P->left = PJ_IO_UNITS_WHATEVER; diff --git a/src/conversions/topocentric.cpp b/src/conversions/topocentric.cpp index 63e389cbef..c949b38253 100644 --- a/src/conversions/topocentric.cpp +++ b/src/conversions/topocentric.cpp @@ -75,7 +75,7 @@ static void topocentric_inv(PJ_COORD &coo, PJ *P) { } /*********************************************************************/ -PJ *CONVERSION(topocentric, 1) { +PJ *PJ_CONVERSION(topocentric, 1) { /*********************************************************************/ struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp index 08a7dfc9cd..c283aab8f0 100644 --- a/src/conversions/unitconvert.cpp +++ b/src/conversions/unitconvert.cpp @@ -437,7 +437,7 @@ static double get_unit_conversion_factor(const char *name, int *p_is_linear, } /***********************************************************************/ -PJ *CONVERSION(unitconvert, 0) { +PJ *PJ_CONVERSION(unitconvert, 0) { /***********************************************************************/ struct pj_opaque_unitconvert *Q = static_cast( diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 1f1515ad2a..00b9b46cce 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -922,7 +922,7 @@ const MethodMapping *getProjectionMethodMappings(size_t &nElts) { #define METHOD_NAME_CODE(method) \ { EPSG_NAME_METHOD_##method, EPSG_CODE_METHOD_##method } -const struct MethodNameCode methodNameCodes[] = { +const struct MethodNameCode methodNameCodesList[] = { // Projection methods METHOD_NAME_CODE(TRANSVERSE_MERCATOR), METHOD_NAME_CODE(TRANSVERSE_MERCATOR_SOUTH_ORIENTATED), @@ -1011,8 +1011,8 @@ const struct MethodNameCode methodNameCodes[] = { }; const MethodNameCode *getMethodNameCodes(size_t &nElts) { - nElts = sizeof(methodNameCodes) / sizeof(methodNameCodes[0]); - return methodNameCodes; + nElts = sizeof(methodNameCodesList) / sizeof(methodNameCodesList[0]); + return methodNameCodesList; } #define PARAM_NAME_CODE(method) \ diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index c49310f16c..7409e6f387 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -258,6 +258,20 @@ set(SRC_LIBPROJ_CORE ${CMAKE_CURRENT_BINARY_DIR}/proj_config.h ) +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16) + set_property(SOURCE list.cpp # because if sets DO_NOT_DEFINE_PROJ_HEAD + transformations/defmodel.cpp # Evaluator class conflict + transformations/tinshift.cpp # Evaluator class conflict + wkt1_parser.cpp + wkt2_parser.cpp + wkt1_generated_parser.c + wkt2_generated_parser.c + PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + if(WIN32) + set_property(SOURCE networkfilemanager.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + endif() +endif () + set(HEADERS_LIBPROJ proj.h proj_experimental.h diff --git a/src/list.cpp b/src/list.cpp index 13edbf5d61..0b3ccf07c2 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -1,6 +1,8 @@ /* Projection System: default list of projections */ +#define DO_NOT_DEFINE_PROJ_HEAD + #include "proj.h" #include "proj_internal.h" diff --git a/src/networkfilemanager.cpp b/src/networkfilemanager.cpp index 9bdc069460..35358e6782 100644 --- a/src/networkfilemanager.cpp +++ b/src/networkfilemanager.cpp @@ -1955,24 +1955,25 @@ NS_PROJ_END // --------------------------------------------------------------------------- #ifdef WIN32 -static const char dir_chars[] = "/\\"; +static const char nfm_dir_chars[] = "/\\"; #else -static const char dir_chars[] = "/"; +static const char nfm_dir_chars[] = "/"; #endif -static bool is_tilde_slash(const char *name) { - return *name == '~' && strchr(dir_chars, name[1]); +static bool nfm_is_tilde_slash(const char *name) { + return *name == '~' && strchr(nfm_dir_chars, name[1]); } -static bool is_rel_or_absolute_filename(const char *name) { - return strchr(dir_chars, *name) || - (*name == '.' && strchr(dir_chars, name[1])) || - (!strncmp(name, "..", 2) && strchr(dir_chars, name[2])) || - (name[0] != '\0' && name[1] == ':' && strchr(dir_chars, name[2])); +static bool nfm_is_rel_or_absolute_filename(const char *name) { + return strchr(nfm_dir_chars, *name) || + (*name == '.' && strchr(nfm_dir_chars, name[1])) || + (!strncmp(name, "..", 2) && strchr(nfm_dir_chars, name[2])) || + (name[0] != '\0' && name[1] == ':' && + strchr(nfm_dir_chars, name[2])); } static std::string build_url(PJ_CONTEXT *ctx, const char *name) { - if (!is_tilde_slash(name) && !is_rel_or_absolute_filename(name) && + if (!nfm_is_tilde_slash(name) && !nfm_is_rel_or_absolute_filename(name) && !starts_with(name, "http://") && !starts_with(name, "https://")) { std::string remote_file(proj_context_get_url_endpoint(ctx)); if (!remote_file.empty()) { diff --git a/src/proj_internal.h b/src/proj_internal.h index f2a9a9a98b..fb558ee6a9 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -838,7 +838,7 @@ struct pj_ctx { static pj_ctx createDefault(); }; -#ifdef PJ_LIB_ +#ifndef DO_NOT_DEFINE_PROJ_HEAD #define PROJ_HEAD(name, desc) static const char des_##name[] = desc #define OPERATION(name, NEED_ELLPS) \ @@ -865,14 +865,14 @@ struct pj_ctx { PJ *pj_projection_specific_setup_##name(PJ *P) /* In ISO19000 lingo, an operation is either a conversion or a transformation */ -#define CONVERSION(name, need_ellps) OPERATION(name, need_ellps) -#define TRANSFORMATION(name, need_ellps) OPERATION(name, need_ellps) +#define PJ_CONVERSION(name, need_ellps) OPERATION(name, need_ellps) +#define PJ_TRANSFORMATION(name, need_ellps) OPERATION(name, need_ellps) /* In PROJ.4 a projection is a conversion taking angular input and giving scaled * linear output */ -#define PROJECTION(name) CONVERSION(name, 1) +#define PJ_PROJECTION(name) PJ_CONVERSION(name, 1) -#endif /* def PJ_LIB_ */ +#endif /* DO_NOT_DEFINE_PROJ_HEAD */ /* procedure prototypes */ double PROJ_DLL dmstor(const char *, char **); diff --git a/src/projections/adams.cpp b/src/projections/adams.cpp index 5ae71c95dd..af33f4bf6f 100644 --- a/src/projections/adams.cpp +++ b/src/projections/adams.cpp @@ -70,7 +70,7 @@ enum peirce_shape { PEIRCE_Q_VERTICAL, }; -struct pj_opaque { +struct pj_adams_data { projection_type mode; peirce_shape pqshape; double scrollx = 0.0; @@ -113,8 +113,8 @@ static PJ_XY adams_forward(PJ_LP lp, PJ *P) { double a = 0., b = 0.; bool sm = false, sn = false; PJ_XY xy; - const struct pj_opaque *Q = - static_cast(P->opaque); + const struct pj_adams_data *Q = + static_cast(P->opaque); switch (Q->mode) { case GUYOU: @@ -386,9 +386,9 @@ static PJ_LP peirce_q_diamond_inverse(PJ_XY xy, PJ *P) { return pj_generic_inverse_2d(xy, P, lp, deltaXYTolerance); } -static PJ *setup(PJ *P, projection_type mode) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +static PJ *pj_adams_setup(PJ *P, projection_type mode) { + struct pj_adams_data *Q = static_cast( + calloc(1, sizeof(struct pj_adams_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -458,12 +458,15 @@ static PJ *setup(PJ *P, projection_type mode) { return P; } -PJ *PROJECTION(guyou) { return setup(P, GUYOU); } +PJ *PJ_PROJECTION(guyou) { return pj_adams_setup(P, GUYOU); } -PJ *PROJECTION(peirce_q) { return setup(P, PEIRCE_Q); } +PJ *PJ_PROJECTION(peirce_q) { return pj_adams_setup(P, PEIRCE_Q); } -PJ *PROJECTION(adams_hemi) { return setup(P, ADAMS_HEMI); } +PJ *PJ_PROJECTION(adams_hemi) { return pj_adams_setup(P, ADAMS_HEMI); } -PJ *PROJECTION(adams_ws1) { return setup(P, ADAMS_WS1); } +PJ *PJ_PROJECTION(adams_ws1) { return pj_adams_setup(P, ADAMS_WS1); } -PJ *PROJECTION(adams_ws2) { return setup(P, ADAMS_WS2); } +PJ *PJ_PROJECTION(adams_ws2) { return pj_adams_setup(P, ADAMS_WS2); } + +#undef TOL +#undef RSQRT2 diff --git a/src/projections/aea.cpp b/src/projections/aea.cpp index 528e815d98..c4e66d4658 100644 --- a/src/projections/aea.cpp +++ b/src/projections/aea.cpp @@ -69,7 +69,7 @@ static double phi1_(double qs, double Te, double Tone_es) { } namespace { // anonymous namespace -struct pj_opaque { +struct pj_aea { double ec; double n; double c; @@ -84,20 +84,20 @@ struct pj_opaque { }; } // anonymous namespace -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_aea_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } static PJ_XY aea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoid/spheroid, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aea *Q = static_cast(P->opaque); Q->rho = Q->c - (Q->ellips ? Q->n * pj_qsfn(sin(lp.phi), P->e, P->one_es) : Q->n2 * sin(lp.phi)); if (Q->rho < 0.) { @@ -113,7 +113,7 @@ static PJ_XY aea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoid/spheroid, forward */ static PJ_LP aea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoid/spheroid, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aea *Q = static_cast(P->opaque); xy.y = Q->rho0 - xy.y; Q->rho = hypot(xy.x, xy.y); if (Q->rho != 0.0) { @@ -155,7 +155,7 @@ static PJ_LP aea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoid/spheroid, inverse */ } static PJ *setup(PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aea *Q = static_cast(P->opaque); P->inv = aea_e_inverse; P->fwd = aea_e_forward; @@ -163,17 +163,17 @@ static PJ *setup(PJ *P) { if (fabs(Q->phi1) > M_HALFPI) { proj_log_error(P, _("Invalid value for lat_1: |lat_1| should be <= 90°")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_aea_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (fabs(Q->phi2) > M_HALFPI) { proj_log_error(P, _("Invalid value for lat_2: |lat_2| should be <= 90°")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_aea_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (fabs(Q->phi1 + Q->phi2) < EPS10) { proj_log_error(P, _("Invalid value for lat_1 and lat_2: |lat_1 + " "lat_2| should be > 0")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_aea_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } double sinphi = sin(Q->phi1); Q->n = sinphi; @@ -185,7 +185,7 @@ static PJ *setup(PJ *P) { Q->en = pj_enfn(P->n); if (Q->en == nullptr) - return destructor(P, 0); + return pj_aea_destructor(P, 0); m1 = pj_msfn(sinphi, cosphi, P->es); ml1 = pj_qsfn(sinphi, P->e, P->one_es); if (secant) { /* secant cone */ @@ -196,13 +196,14 @@ static PJ *setup(PJ *P) { m2 = pj_msfn(sinphi, cosphi, P->es); ml2 = pj_qsfn(sinphi, P->e, P->one_es); if (ml2 == ml1) - return destructor(P, 0); + return pj_aea_destructor(P, 0); Q->n = (m1 * m1 - m2 * m2) / (ml2 - ml1); if (Q->n == 0) { // Not quite, but es is very close to 1... proj_log_error(P, _("Invalid value for eccentricity")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_aea_destructor(P, + PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } } Q->ec = 1. - .5 * P->one_es * log((1. - P->e) / (1. + P->e)) / P->e; @@ -222,28 +223,34 @@ static PJ *setup(PJ *P) { return P; } -PJ *PROJECTION(aea) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(aea) { + struct pj_aea *Q = + static_cast(calloc(1, sizeof(struct pj_aea))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_aea_destructor; Q->phi1 = pj_param(P->ctx, P->params, "rlat_1").f; Q->phi2 = pj_param(P->ctx, P->params, "rlat_2").f; return setup(P); } -PJ *PROJECTION(leac) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(leac) { + struct pj_aea *Q = + static_cast(calloc(1, sizeof(struct pj_aea))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_aea_destructor; Q->phi2 = pj_param(P->ctx, P->params, "rlat_1").f; Q->phi1 = pj_param(P->ctx, P->params, "bsouth").i ? -M_HALFPI : M_HALFPI; return setup(P); } + +#undef EPS10 +#undef TOL7 +#undef N_ITER +#undef EPSILON +#undef TOL diff --git a/src/projections/aeqd.cpp b/src/projections/aeqd.cpp index 783d2f9689..594256a778 100644 --- a/src/projections/aeqd.cpp +++ b/src/projections/aeqd.cpp @@ -32,12 +32,12 @@ #include #include -namespace { // anonymous namespace +namespace pj_aeqd_ns { enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_aeqd_data { double sinph0; double cosph0; double *en; @@ -46,7 +46,7 @@ struct pj_opaque { double Mp; double He; double G; - enum Mode mode; + enum ::pj_aeqd_ns::Mode mode; struct geod_geodesic g; }; } // anonymous namespace @@ -63,13 +63,13 @@ static PJ *destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } static PJ_XY e_guam_fwd(PJ_LP lp, PJ *P) { /* Guam elliptical */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); double cosphi, sinphi, t; cosphi = cos(lp.phi); @@ -84,25 +84,25 @@ static PJ_XY e_guam_fwd(PJ_LP lp, PJ *P) { /* Guam elliptical */ static PJ_XY aeqd_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); double coslam, cosphi, sinphi, rho; double azi1, azi2, s12; double lat1, lon1, lat2, lon2; coslam = cos(lp.lam); switch (Q->mode) { - case N_POLE: + case pj_aeqd_ns::N_POLE: coslam = -coslam; PROJ_FALLTHROUGH; - case S_POLE: + case pj_aeqd_ns::S_POLE: cosphi = cos(lp.phi); sinphi = sin(lp.phi); rho = fabs(Q->Mp - pj_mlfn(lp.phi, sinphi, cosphi, Q->en)); xy.x = rho * sin(lp.lam); xy.y = rho * coslam; break; - case EQUIT: - case OBLIQ: + case pj_aeqd_ns::EQUIT: + case pj_aeqd_ns::OBLIQ: if (fabs(lp.lam) < EPS10 && fabs(lp.phi - P->phi0) < EPS10) { xy.x = xy.y = 0.; break; @@ -124,9 +124,9 @@ static PJ_XY aeqd_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_XY aeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); - if (Q->mode == EQUIT) { + if (Q->mode == pj_aeqd_ns::EQUIT) { const double cosphi = cos(lp.phi); const double sinphi = sin(lp.phi); const double coslam = cos(lp.lam); @@ -147,7 +147,7 @@ static PJ_XY aeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ xy.x = xy.y * cosphi * sinlam; xy.y *= sinphi; } - } else if (Q->mode == OBLIQ) { + } else if (Q->mode == pj_aeqd_ns::OBLIQ) { const double cosphi = cos(lp.phi); const double sinphi = sin(lp.phi); const double coslam = cos(lp.lam); @@ -172,7 +172,7 @@ static PJ_XY aeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } else { double coslam = cos(lp.lam); double sinlam = sin(lp.lam); - if (Q->mode == N_POLE) { + if (Q->mode == pj_aeqd_ns::N_POLE) { lp.phi = -lp.phi; coslam = -coslam; } @@ -189,7 +189,7 @@ static PJ_XY aeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP e_guam_inv(PJ_XY xy, PJ *P) { /* Guam elliptical */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); double x2, t = 0.0; int i; @@ -206,7 +206,7 @@ static PJ_LP e_guam_inv(PJ_XY xy, PJ *P) { /* Guam elliptical */ static PJ_LP aeqd_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); double azi1, azi2, s12, lat1, lon1, lat2, lon2; if ((s12 = hypot(xy.x, xy.y)) < EPS10) { @@ -214,7 +214,7 @@ static PJ_LP aeqd_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ lp.lam = 0.; return (lp); } - if (Q->mode == OBLIQ || Q->mode == EQUIT) { + if (Q->mode == pj_aeqd_ns::OBLIQ || Q->mode == pj_aeqd_ns::EQUIT) { lat1 = P->phi0 / DEG_TO_RAD; lon1 = 0; azi1 = atan2(xy.x, xy.y) / DEG_TO_RAD; // Clockwise from north @@ -222,16 +222,16 @@ static PJ_LP aeqd_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ lp.phi = lat2 * DEG_TO_RAD; lp.lam = lon2 * DEG_TO_RAD; } else { /* Polar */ - lp.phi = - pj_inv_mlfn(Q->mode == N_POLE ? Q->Mp - s12 : Q->Mp + s12, Q->en); - lp.lam = atan2(xy.x, Q->mode == N_POLE ? -xy.y : xy.y); + lp.phi = pj_inv_mlfn( + Q->mode == pj_aeqd_ns::N_POLE ? Q->Mp - s12 : Q->Mp + s12, Q->en); + lp.lam = atan2(xy.x, Q->mode == pj_aeqd_ns::N_POLE ? -xy.y : xy.y); } return lp; } static PJ_LP aeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aeqd_data *Q = static_cast(P->opaque); double cosc, c_rh, sinc; c_rh = hypot(xy.x, xy.y); @@ -246,10 +246,10 @@ static PJ_LP aeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.lam = 0.; return (lp); } - if (Q->mode == OBLIQ || Q->mode == EQUIT) { + if (Q->mode == pj_aeqd_ns::OBLIQ || Q->mode == pj_aeqd_ns::EQUIT) { sinc = sin(c_rh); cosc = cos(c_rh); - if (Q->mode == EQUIT) { + if (Q->mode == pj_aeqd_ns::EQUIT) { lp.phi = aasin(P->ctx, xy.y * sinc / c_rh); xy.x *= sinc; xy.y = cosc * c_rh; @@ -260,7 +260,7 @@ static PJ_LP aeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ xy.x *= sinc * Q->cosph0; } lp.lam = xy.y == 0. ? 0. : atan2(xy.x, xy.y); - } else if (Q->mode == N_POLE) { + } else if (Q->mode == pj_aeqd_ns::N_POLE) { lp.phi = M_HALFPI - c_rh; lp.lam = atan2(xy.x, -xy.y); } else { @@ -270,9 +270,9 @@ static PJ_LP aeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(aeqd) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(aeqd) { + struct pj_aeqd_data *Q = static_cast( + calloc(1, sizeof(struct pj_aeqd_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -281,15 +281,15 @@ PJ *PROJECTION(aeqd) { geod_init(&Q->g, 1, P->f); if (fabs(fabs(P->phi0) - M_HALFPI) < EPS10) { - Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + Q->mode = P->phi0 < 0. ? pj_aeqd_ns::S_POLE : pj_aeqd_ns::N_POLE; Q->sinph0 = P->phi0 < 0. ? -1. : 1.; Q->cosph0 = 0.; } else if (fabs(P->phi0) < EPS10) { - Q->mode = EQUIT; + Q->mode = pj_aeqd_ns::EQUIT; Q->sinph0 = 0.; Q->cosph0 = 1.; } else { - Q->mode = OBLIQ; + Q->mode = pj_aeqd_ns::OBLIQ; Q->sinph0 = sin(P->phi0); Q->cosph0 = cos(P->phi0); } @@ -305,14 +305,14 @@ PJ *PROJECTION(aeqd) { P->fwd = e_guam_fwd; } else { switch (Q->mode) { - case N_POLE: + case pj_aeqd_ns::N_POLE: Q->Mp = pj_mlfn(M_HALFPI, 1., 0., Q->en); break; - case S_POLE: + case pj_aeqd_ns::S_POLE: Q->Mp = pj_mlfn(-M_HALFPI, -1., 0., Q->en); break; - case EQUIT: - case OBLIQ: + case pj_aeqd_ns::EQUIT: + case pj_aeqd_ns::OBLIQ: Q->N1 = 1. / sqrt(1. - P->es * Q->sinph0 * Q->sinph0); Q->He = P->e / sqrt(P->one_es); Q->G = Q->sinph0 * Q->He; @@ -326,3 +326,6 @@ PJ *PROJECTION(aeqd) { return P; } + +#undef EPS10 +#undef TOL diff --git a/src/projections/airy.cpp b/src/projections/airy.cpp index 5996209f50..2094fa1da6 100644 --- a/src/projections/airy.cpp +++ b/src/projections/airy.cpp @@ -38,7 +38,7 @@ enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; } // anonymous namespace namespace { // anonymous namespace -struct pj_opaque { +struct pj_airy { double p_halfpi; double sinph0; double cosph0; @@ -52,7 +52,7 @@ struct pj_opaque { static PJ_XY airy_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_airy *Q = static_cast(P->opaque); double sinlam, coslam, cosphi, sinphi, t, s, Krho, cosz; sinlam = sin(lp.lam); @@ -107,11 +107,11 @@ static PJ_XY airy_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(airy) { +PJ *PJ_PROJECTION(airy) { double beta; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_airy *Q = + static_cast(calloc(1, sizeof(struct pj_airy))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -147,3 +147,5 @@ PJ *PROJECTION(airy) { P->es = 0.; return P; } + +#undef EPS diff --git a/src/projections/aitoff.cpp b/src/projections/aitoff.cpp index 79b3df0e89..bd3b19d043 100644 --- a/src/projections/aitoff.cpp +++ b/src/projections/aitoff.cpp @@ -36,14 +36,14 @@ #include "proj.h" #include "proj_internal.h" -namespace { // anonymous namespace +namespace pj_aitoff_ns { enum Mode { AITOFF = 0, WINKEL_TRIPEL = 1 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_aitoff_data { double cosphi1; - enum Mode mode; + enum pj_aitoff_ns::Mode mode; }; } // anonymous namespace @@ -56,7 +56,7 @@ FORWARD(aitoff_s_forward); /* spheroid */ static PJ_XY aitoff_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aitoff_data *Q = static_cast(P->opaque); double c, d; #if 0 @@ -74,7 +74,7 @@ static PJ_XY aitoff_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ xy.y *= d * sin(lp.phi); } else xy.x = xy.y = 0.; - if (Q->mode == WINKEL_TRIPEL) { + if (Q->mode == pj_aitoff_ns::WINKEL_TRIPEL) { xy.x = (xy.x + lp.lam * Q->cosphi1) * 0.5; xy.y = (xy.y + lp.phi) * 0.5; } @@ -105,7 +105,7 @@ static PJ_XY aitoff_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP aitoff_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_aitoff_data *Q = static_cast(P->opaque); int iter, MAXITER = 10, round = 0, MAXROUND = 20; double EPSILON = 1e-12, D, C, f1, f2, f1p, f1l, f2p, f2l, dp, dl, sl, sp, cp, cl, x, y; @@ -141,7 +141,7 @@ static PJ_LP aitoff_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ f1l = cp * cp * sl * sl / C + D * cp * cl * sp * sp; f2p = sp * sp * cl / C + D * sl * sl * cp; f2l = 0.5 * (sp * cp * sl / C - D * sp * cp * cp * sl * cl); - if (Q->mode == WINKEL_TRIPEL) { + if (Q->mode == pj_aitoff_ns::WINKEL_TRIPEL) { f1 = 0.5 * (f1 + lp.lam * Q->cosphi1); f2 = 0.5 * (f2 + lp.phi); f1p *= 0.5; @@ -167,7 +167,8 @@ static PJ_LP aitoff_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.phi -= 2. * (lp.phi + M_PI_2); /* correct if symmetrical solution for Aitoff */ - if ((fabs(fabs(lp.phi) - M_PI_2) < EPSILON) && (Q->mode == AITOFF)) + if ((fabs(fabs(lp.phi) - M_PI_2) < EPSILON) && + (Q->mode == pj_aitoff_ns::AITOFF)) lp.lam = 0.; /* if pole in Aitoff, return longitude of 0 */ /* calculate x,y coordinates with solution obtained */ @@ -178,7 +179,7 @@ static PJ_LP aitoff_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ y *= D * sin(lp.phi); } else x = y = 0.; - if (Q->mode == WINKEL_TRIPEL) { + if (Q->mode == pj_aitoff_ns::WINKEL_TRIPEL) { x = (x + lp.lam * Q->cosphi1) * 0.5; y = (y + lp.phi) * 0.5; } @@ -197,32 +198,32 @@ static PJ_LP aitoff_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *setup(PJ *P) { +static PJ *pj_aitoff_setup(PJ *P) { P->inv = aitoff_s_inverse; P->fwd = aitoff_s_forward; P->es = 0.; return P; } -PJ *PROJECTION(aitoff) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(aitoff) { + struct pj_aitoff_data *Q = static_cast( + calloc(1, sizeof(struct pj_aitoff_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - Q->mode = AITOFF; - return setup(P); + Q->mode = pj_aitoff_ns::AITOFF; + return pj_aitoff_setup(P); } -PJ *PROJECTION(wintri) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wintri) { + struct pj_aitoff_data *Q = static_cast( + calloc(1, sizeof(struct pj_aitoff_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - Q->mode = WINKEL_TRIPEL; + Q->mode = pj_aitoff_ns::WINKEL_TRIPEL; if (pj_param(P->ctx, P->params, "tlat_1").i) { if ((Q->cosphi1 = cos(pj_param(P->ctx, P->params, "rlat_1").f)) == 0.) { proj_log_error( @@ -232,5 +233,5 @@ PJ *PROJECTION(wintri) { } } else /* 50d28' or acos(2/pi) */ Q->cosphi1 = 0.636619772367581343; - return setup(P); + return pj_aitoff_setup(P); } diff --git a/src/projections/august.cpp b/src/projections/august.cpp index d373979012..83c6514dba 100644 --- a/src/projections/august.cpp +++ b/src/projections/august.cpp @@ -26,7 +26,7 @@ static PJ_XY august_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return (xy); } -PJ *PROJECTION(august) { +PJ *PJ_PROJECTION(august) { P->inv = nullptr; P->fwd = august_s_forward; P->es = 0.; diff --git a/src/projections/bacon.cpp b/src/projections/bacon.cpp index 7e054c1706..afd532b0de 100644 --- a/src/projections/bacon.cpp +++ b/src/projections/bacon.cpp @@ -1,5 +1,3 @@ -#define HLFPI2 2.46740110027233965467 /* (pi/2)^2 */ -#define EPS 1e-10 #define PJ_LIB_ #include #include @@ -7,8 +5,11 @@ #include "proj.h" #include "proj_internal.h" +#define HLFPI2 2.46740110027233965467 /* (pi/2)^2 */ +#define EPS 1e-10 + namespace { // anonymous namespace -struct pj_opaque { +struct pj_bacon { int bacn; int ortl; }; @@ -20,7 +21,7 @@ PROJ_HEAD(bacon, "Bacon Globular") "\n\tMisc Sph, no inv"; static PJ_XY bacon_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bacon *Q = static_cast(P->opaque); double ax, f; xy.y = Q->bacn ? M_HALFPI * sin(lp.phi) : lp.phi; @@ -39,9 +40,9 @@ static PJ_XY bacon_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return (xy); } -PJ *PROJECTION(bacon) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(bacon) { + struct pj_bacon *Q = + static_cast(calloc(1, sizeof(struct pj_bacon))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -53,9 +54,9 @@ PJ *PROJECTION(bacon) { return P; } -PJ *PROJECTION(apian) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(apian) { + struct pj_bacon *Q = + static_cast(calloc(1, sizeof(struct pj_bacon))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -66,9 +67,9 @@ PJ *PROJECTION(apian) { return P; } -PJ *PROJECTION(ortel) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(ortel) { + struct pj_bacon *Q = + static_cast(calloc(1, sizeof(struct pj_bacon))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -79,3 +80,6 @@ PJ *PROJECTION(ortel) { P->fwd = bacon_s_forward; return P; } + +#undef HLFPI2 +#undef EPS diff --git a/src/projections/bertin1953.cpp b/src/projections/bertin1953.cpp index d2fca01263..8a2e427557 100644 --- a/src/projections/bertin1953.cpp +++ b/src/projections/bertin1953.cpp @@ -21,7 +21,7 @@ PROJ_HEAD(bertin1953, "Bertin 1953") "\n\tMisc Sph no inv."; namespace { // anonymous namespace -struct pj_opaque { +struct pj_bertin1953 { double cos_delta_phi, sin_delta_phi, cos_delta_gamma, sin_delta_gamma, deltaLambda; }; @@ -29,7 +29,7 @@ struct pj_opaque { static PJ_XY bertin1953_s_forward(PJ_LP lp, PJ *P) { PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bertin1953 *Q = static_cast(P->opaque); double fu = 1.4, k = 12., w = 1.68, d; @@ -73,9 +73,9 @@ static PJ_XY bertin1953_s_forward(PJ_LP lp, PJ *P) { return xy; } -PJ *PROJECTION(bertin1953) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(bertin1953) { + struct pj_bertin1953 *Q = static_cast( + calloc(1, sizeof(struct pj_bertin1953))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/bipc.cpp b/src/projections/bipc.cpp index 8a1416e71f..4b62a9f49c 100644 --- a/src/projections/bipc.cpp +++ b/src/projections/bipc.cpp @@ -29,14 +29,14 @@ PROJ_HEAD(bipc, "Bipolar conic of western hemisphere") "\n\tConic Sph"; #define R104 1.81514242207410275904 namespace { // anonymous namespace -struct pj_opaque { +struct pj_bipc_data { int noskew; }; } // anonymous namespace static PJ_XY bipc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bipc_data *Q = static_cast(P->opaque); double cphi, sphi, tphi, t, al, Az, z, Av, cdlam, sdlam, r; int tag; @@ -117,7 +117,7 @@ static PJ_XY bipc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP bipc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bipc_data *Q = static_cast(P->opaque); double t, r, rp, rl, al, z = 0.0, fAz, Az, s, c, Av; int neg, i; @@ -164,9 +164,9 @@ static PJ_LP bipc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(bipc) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(bipc) { + struct pj_bipc_data *Q = static_cast( + calloc(1, sizeof(struct pj_bipc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -177,3 +177,23 @@ PJ *PROJECTION(bipc) { P->es = 0.; return P; } + +#undef EPS +#undef EPS10 +#undef ONEEPS +#undef NITER +#undef lamB +#undef n +#undef F +#undef Azab +#undef Azba +#undef T +#undef rhoc +#undef cAzc +#undef sAzc +#undef C45 +#undef S45 +#undef C20 +#undef S20 +#undef R110 +#undef R104 diff --git a/src/projections/boggs.cpp b/src/projections/boggs.cpp index 0a825d698f..8d37e3cf72 100644 --- a/src/projections/boggs.cpp +++ b/src/projections/boggs.cpp @@ -35,8 +35,14 @@ static PJ_XY boggs_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return (xy); } -PJ *PROJECTION(boggs) { +PJ *PJ_PROJECTION(boggs) { P->es = 0.; P->fwd = boggs_s_forward; return P; } + +#undef NITER +#undef EPS +#undef FXC +#undef FXC2 +#undef FYC diff --git a/src/projections/bonne.cpp b/src/projections/bonne.cpp index 4ac4f41e2d..b61e2e34db 100644 --- a/src/projections/bonne.cpp +++ b/src/projections/bonne.cpp @@ -9,7 +9,7 @@ PROJ_HEAD(bonne, "Bonne (Werner lat_1=90)") #define EPS10 1e-10 namespace { // anonymous namespace -struct pj_opaque { +struct pj_bonne_data { double phi1; double cphi1; double am1; @@ -20,7 +20,7 @@ struct pj_opaque { static PJ_XY bonne_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bonne_data *Q = static_cast(P->opaque); double rh, E, c; E = sin(lp.phi); @@ -39,7 +39,7 @@ static PJ_XY bonne_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_XY bonne_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bonne_data *Q = static_cast(P->opaque); double E, rh; rh = Q->cphi1 + Q->phi1 - lp.phi; @@ -54,7 +54,7 @@ static PJ_XY bonne_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP bonne_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bonne_data *Q = static_cast(P->opaque); xy.y = Q->cphi1 - xy.y; const double rh = copysign(hypot(xy.x, xy.y), Q->phi1); @@ -79,7 +79,7 @@ static PJ_LP bonne_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ static PJ_LP bonne_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_bonne_data *Q = static_cast(P->opaque); xy.y = Q->am1 - xy.y; const double rh = copysign(hypot(xy.x, xy.y), Q->phi1); @@ -102,36 +102,36 @@ static PJ_LP bonne_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_bonne_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(bonne) { +PJ *PJ_PROJECTION(bonne) { double c; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_bonne_data *Q = static_cast( + calloc(1, sizeof(struct pj_bonne_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_bonne_destructor; Q->phi1 = pj_param(P->ctx, P->params, "rlat_1").f; if (fabs(Q->phi1) < EPS10) { proj_log_error(P, _("Invalid value for lat_1: |lat_1| should be > 0")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_bonne_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (P->es != 0.0) { Q->en = pj_enfn(P->n); if (nullptr == Q->en) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_bonne_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); Q->am1 = sin(Q->phi1); c = cos(Q->phi1); Q->m1 = pj_mlfn(Q->phi1, Q->am1, c, Q->en); @@ -148,3 +148,5 @@ PJ *PROJECTION(bonne) { } return P; } + +#undef EPS10 diff --git a/src/projections/calcofi.cpp b/src/projections/calcofi.cpp index b37b49b72c..28d68a9ae9 100644 --- a/src/projections/calcofi.cpp +++ b/src/projections/calcofi.cpp @@ -130,7 +130,7 @@ static PJ_LP calcofi_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(calcofi) { +PJ *PJ_PROJECTION(calcofi) { P->opaque = nullptr; /* if the user has specified +lon_0 or +k0 for some reason, diff --git a/src/projections/cass.cpp b/src/projections/cass.cpp index 257b55a6f5..66ea3399dc 100644 --- a/src/projections/cass.cpp +++ b/src/projections/cass.cpp @@ -91,7 +91,7 @@ static PJ_LP cass_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_cass_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; @@ -102,7 +102,7 @@ static PJ *destructor(PJ *P, int errlev) { /* Destructor */ return pj_default_destructor(P, errlev); } -PJ *PROJECTION(cass) { +PJ *PJ_PROJECTION(cass) { /* Spheroidal? */ if (0 == P->es) { @@ -117,7 +117,7 @@ PJ *PROJECTION(cass) { P->opaque = Q; if (nullptr == P->opaque) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); - P->destructor = destructor; + P->destructor = pj_cass_destructor; Q->en = pj_enfn(P->n); if (nullptr == Q->en) @@ -131,3 +131,9 @@ PJ *PROJECTION(cass) { return P; } + +#undef C1 +#undef C2 +#undef C3 +#undef C4 +#undef C5 diff --git a/src/projections/cc.cpp b/src/projections/cc.cpp index 518d45e310..04d122d6d2 100644 --- a/src/projections/cc.cpp +++ b/src/projections/cc.cpp @@ -27,7 +27,7 @@ static PJ_LP cc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(cc) { +PJ *PJ_PROJECTION(cc) { P->es = 0.; P->inv = cc_s_inverse; diff --git a/src/projections/ccon.cpp b/src/projections/ccon.cpp index 4fba56d323..3fed99f863 100644 --- a/src/projections/ccon.cpp +++ b/src/projections/ccon.cpp @@ -29,7 +29,7 @@ #define EPS10 1e-10 namespace { // anonymous namespace -struct pj_opaque { +struct pj_ccon_data { double phi1; double ctgphi1; double sinphi1; @@ -43,7 +43,7 @@ PROJ_HEAD(ccon, "Central Conic") static PJ_XY ccon_forward(PJ_LP lp, PJ *P) { PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ccon_data *Q = static_cast(P->opaque); double r; r = Q->ctgphi1 - tan(lp.phi - Q->phi1); @@ -55,7 +55,7 @@ static PJ_XY ccon_forward(PJ_LP lp, PJ *P) { static PJ_LP ccon_inverse(PJ_XY xy, PJ *P) { PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ccon_data *Q = static_cast(P->opaque); xy.y = Q->ctgphi1 - xy.y; lp.phi = Q->phi1 - atan(hypot(xy.x, xy.y) - Q->ctgphi1); @@ -64,33 +64,33 @@ static PJ_LP ccon_inverse(PJ_XY xy, PJ *P) { return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_ccon_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(ccon) { +PJ *PJ_PROJECTION(ccon) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_ccon_data *Q = static_cast( + calloc(1, sizeof(struct pj_ccon_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_ccon_destructor; Q->phi1 = pj_param(P->ctx, P->params, "rlat_1").f; if (fabs(Q->phi1) < EPS10) { proj_log_error(P, _("Invalid value for lat_1: |lat_1| should be > 0")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_ccon_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (!(Q->en = pj_enfn(P->n))) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_ccon_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); Q->sinphi1 = sin(Q->phi1); Q->cosphi1 = cos(Q->phi1); @@ -101,3 +101,5 @@ PJ *PROJECTION(ccon) { return P; } + +#undef EPS10 diff --git a/src/projections/cea.cpp b/src/projections/cea.cpp index f5b95119c3..9af9dd5915 100644 --- a/src/projections/cea.cpp +++ b/src/projections/cea.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_cea_data { double qp; double *apa; }; @@ -33,8 +33,8 @@ static PJ_XY cea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP cea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; lp.phi = pj_authlat(asin(2. * xy.y * P->k0 / - static_cast(P->opaque)->qp), - static_cast(P->opaque)->apa); + static_cast(P->opaque)->qp), + static_cast(P->opaque)->apa); lp.lam = xy.x / P->k0; return lp; } @@ -57,25 +57,25 @@ static PJ_LP cea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_cea_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->apa); + free(static_cast(P->opaque)->apa); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(cea) { +PJ *PJ_PROJECTION(cea) { double t = 0.0; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_cea_data *Q = static_cast( + calloc(1, sizeof(struct pj_cea_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_cea_destructor; if (pj_param(P->ctx, P->params, "tlat_ts").i) { t = pj_param(P->ctx, P->params, "rlat_ts").f; @@ -105,3 +105,5 @@ PJ *PROJECTION(cea) { return P; } + +#undef EPS diff --git a/src/projections/chamb.cpp b/src/projections/chamb.cpp index 15934c0dc7..c1ae3a55dd 100644 --- a/src/projections/chamb.cpp +++ b/src/projections/chamb.cpp @@ -10,7 +10,7 @@ typedef struct { double r, Az; } VECT; namespace { // anonymous namespace -struct pj_opaque { +struct pj_chamb { struct { /* control point data */ double phi, lam; double cosphi, sinphi; @@ -58,7 +58,7 @@ static double lc(PJ_CONTEXT *ctx, double b, double c, double a) { static PJ_XY chamb_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_chamb *Q = static_cast(P->opaque); double sinphi, cosphi, a; VECT v[3]; int i, j; @@ -100,11 +100,11 @@ static PJ_XY chamb_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(chamb) { +PJ *PJ_PROJECTION(chamb) { int i, j; char line[10]; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_chamb *Q = + static_cast(calloc(1, sizeof(struct pj_chamb))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -149,3 +149,6 @@ PJ *PROJECTION(chamb) { return P; } + +#undef THIRD +#undef TOL diff --git a/src/projections/col_urban.cpp b/src/projections/col_urban.cpp index a680059bbd..f0a93aaf37 100644 --- a/src/projections/col_urban.cpp +++ b/src/projections/col_urban.cpp @@ -14,7 +14,7 @@ PROJ_HEAD(col_urban, "Colombia Urban") namespace { // anonymous namespace -struct pj_opaque { +struct pj_col_urban { double h0; // height of projection origin, divided by semi-major axis (a) double rho0; // adimensional value, contrary to Guidance note 7.2 double A; @@ -26,7 +26,7 @@ struct pj_opaque { static PJ_XY col_urban_forward(PJ_LP lp, PJ *P) { PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_col_urban *Q = static_cast(P->opaque); const double cosphi = cos(lp.phi); const double sinphi = sin(lp.phi); @@ -45,7 +45,7 @@ static PJ_XY col_urban_forward(PJ_LP lp, PJ *P) { static PJ_LP col_urban_inverse(PJ_XY xy, PJ *P) { PJ_LP lp; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_col_urban *Q = static_cast(P->opaque); lp.phi = P->phi0 + xy.y / Q->D - Q->B * (xy.x / Q->C) * (xy.x / Q->C); const double sinphi = sin(lp.phi); @@ -55,9 +55,9 @@ static PJ_LP col_urban_inverse(PJ_XY xy, PJ *P) { return lp; } -PJ *PROJECTION(col_urban) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(col_urban) { + struct pj_col_urban *Q = static_cast( + calloc(1, sizeof(struct pj_col_urban))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/collg.cpp b/src/projections/collg.cpp index 169d1ca23c..cb335ae240 100644 --- a/src/projections/collg.cpp +++ b/src/projections/collg.cpp @@ -44,10 +44,14 @@ static PJ_LP collg_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(collg) { +PJ *PJ_PROJECTION(collg) { P->es = 0.0; P->inv = collg_s_inverse; P->fwd = collg_s_forward; return P; } + +#undef FXC +#undef FYC +#undef ONEEPS diff --git a/src/projections/comill.cpp b/src/projections/comill.cpp index 9fbd8a26d6..38769c15be 100644 --- a/src/projections/comill.cpp +++ b/src/projections/comill.cpp @@ -75,7 +75,7 @@ static PJ_LP comill_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(comill) { +PJ *PJ_PROJECTION(comill) { P->es = 0; P->inv = comill_s_inverse; @@ -83,3 +83,13 @@ PJ *PROJECTION(comill) { return P; } + +#undef K1 +#undef K2 +#undef K3 +#undef C1 +#undef C2 +#undef C3 +#undef EPS +#undef MAX_Y +#undef MAX_ITER diff --git a/src/projections/crast.cpp b/src/projections/crast.cpp index e6359315a1..2559d3b28a 100644 --- a/src/projections/crast.cpp +++ b/src/projections/crast.cpp @@ -29,7 +29,7 @@ static PJ_LP crast_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(crast) { +PJ *PJ_PROJECTION(crast) { P->es = 0.0; P->inv = crast_s_inverse; P->fwd = crast_s_forward; diff --git a/src/projections/denoy.cpp b/src/projections/denoy.cpp index 20f365a0df..d4f51083f2 100644 --- a/src/projections/denoy.cpp +++ b/src/projections/denoy.cpp @@ -23,9 +23,15 @@ static PJ_XY denoy_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(denoy) { +PJ *PJ_PROJECTION(denoy) { P->es = 0.0; P->fwd = denoy_s_forward; return P; } + +#undef C0 +#undef C1 +#undef C3 +#undef D1 +#undef D5 diff --git a/src/projections/eck1.cpp b/src/projections/eck1.cpp index b748e50607..aac191a231 100644 --- a/src/projections/eck1.cpp +++ b/src/projections/eck1.cpp @@ -28,7 +28,7 @@ static PJ_LP eck1_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(eck1) { +PJ *PJ_PROJECTION(eck1) { P->es = 0.0; P->inv = eck1_s_inverse; P->fwd = eck1_s_forward; diff --git a/src/projections/eck2.cpp b/src/projections/eck2.cpp index 916562940b..8d57f9e6a3 100644 --- a/src/projections/eck2.cpp +++ b/src/projections/eck2.cpp @@ -45,7 +45,7 @@ static PJ_LP eck2_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(eck2) { +PJ *PJ_PROJECTION(eck2) { P->es = 0.; P->inv = eck2_s_inverse; P->fwd = eck2_s_forward; diff --git a/src/projections/eck3.cpp b/src/projections/eck3.cpp index 73cd4e6639..f5e51ca428 100644 --- a/src/projections/eck3.cpp +++ b/src/projections/eck3.cpp @@ -47,7 +47,7 @@ static PJ *setup(PJ *P) { return P; } -PJ *PROJECTION(eck3) { +PJ *PJ_PROJECTION(eck3) { struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); if (nullptr == Q) @@ -62,7 +62,7 @@ PJ *PROJECTION(eck3) { return setup(P); } -PJ *PROJECTION(kav7) { +PJ *PJ_PROJECTION(kav7) { struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); if (nullptr == Q) @@ -80,7 +80,7 @@ PJ *PROJECTION(kav7) { return setup(P); } -PJ *PROJECTION(wag6) { +PJ *PJ_PROJECTION(wag6) { struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); if (nullptr == Q) @@ -95,7 +95,7 @@ PJ *PROJECTION(wag6) { return setup(P); } -PJ *PROJECTION(putp1) { +PJ *PJ_PROJECTION(putp1) { struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); if (nullptr == Q) diff --git a/src/projections/eck4.cpp b/src/projections/eck4.cpp index 6bef543dbc..56f97fa4ae 100644 --- a/src/projections/eck4.cpp +++ b/src/projections/eck4.cpp @@ -82,7 +82,7 @@ static PJ_LP eck4_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(eck4) { +PJ *PJ_PROJECTION(eck4) { P->es = 0.0; P->inv = eck4_s_inverse; P->fwd = eck4_s_forward; diff --git a/src/projections/eck5.cpp b/src/projections/eck5.cpp index 226956874a..29cccba00d 100644 --- a/src/projections/eck5.cpp +++ b/src/projections/eck5.cpp @@ -30,7 +30,7 @@ static PJ_LP eck5_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(eck5) { +PJ *PJ_PROJECTION(eck5) { P->es = 0.0; P->inv = eck5_s_inverse; P->fwd = eck5_s_forward; diff --git a/src/projections/eqc.cpp b/src/projections/eqc.cpp index 8b5d9e189c..aff1730e20 100644 --- a/src/projections/eqc.cpp +++ b/src/projections/eqc.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_eqc_data { double rc; }; } // anonymous namespace @@ -17,7 +17,7 @@ PROJ_HEAD(eqc, "Equidistant Cylindrical (Plate Carree)") static PJ_XY eqc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqc_data *Q = static_cast(P->opaque); xy.x = Q->rc * lp.lam; xy.y = lp.phi - P->phi0; @@ -27,7 +27,7 @@ static PJ_XY eqc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP eqc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqc_data *Q = static_cast(P->opaque); lp.lam = xy.x / Q->rc; lp.phi = xy.y + P->phi0; @@ -35,9 +35,9 @@ static PJ_LP eqc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(eqc) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(eqc) { + struct pj_eqc_data *Q = static_cast( + calloc(1, sizeof(struct pj_eqc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/eqdc.cpp b/src/projections/eqdc.cpp index 1cac4fb2f6..b25bff0e1e 100644 --- a/src/projections/eqdc.cpp +++ b/src/projections/eqdc.cpp @@ -8,7 +8,7 @@ #include namespace { // anonymous namespace -struct pj_opaque { +struct pj_eqdc_data { double phi1; double phi2; double n; @@ -26,7 +26,7 @@ PROJ_HEAD(eqdc, "Equidistant Conic") static PJ_XY eqdc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqdc_data *Q = static_cast(P->opaque); Q->rho = Q->c - @@ -40,7 +40,7 @@ static PJ_XY eqdc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP eqdc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqdc_data *Q = static_cast(P->opaque); if ((Q->rho = hypot(xy.x, xy.y = Q->rho0 - xy.y)) != 0.0) { if (Q->n < 0.) { @@ -59,27 +59,27 @@ static PJ_LP eqdc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_eqdc_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(eqdc) { +PJ *PJ_PROJECTION(eqdc) { double cosphi, sinphi; int secant; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_eqdc_data *Q = static_cast( + calloc(1, sizeof(struct pj_eqdc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_eqdc_destructor; Q->phi1 = pj_param(P->ctx, P->params, "rlat_1").f; Q->phi2 = pj_param(P->ctx, P->params, "rlat_2").f; @@ -87,22 +87,22 @@ PJ *PROJECTION(eqdc) { if (fabs(Q->phi1) > M_HALFPI) { proj_log_error(P, _("Invalid value for lat_1: |lat_1| should be <= 90°")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (fabs(Q->phi2) > M_HALFPI) { proj_log_error(P, _("Invalid value for lat_2: |lat_2| should be <= 90°")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (fabs(Q->phi1 + Q->phi2) < EPS10) { proj_log_error(P, _("Invalid value for lat_1 and lat_2: |lat_1 + " "lat_2| should be > 0")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (!(Q->en = pj_enfn(P->n))) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_eqdc_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); sinphi = sin(Q->phi1); Q->n = sinphi; @@ -120,13 +120,15 @@ PJ *PROJECTION(eqdc) { const double ml2 = pj_mlfn(Q->phi2, sinphi, cosphi, Q->en); if (ml1 == ml2) { proj_log_error(P, _("Eccentricity too close to 1")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } Q->n = (m1 - pj_msfn(sinphi, cosphi, P->es)) / (ml2 - ml1); if (Q->n == 0) { // Not quite, but es is very close to 1... proj_log_error(P, _("Invalid value for eccentricity")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } } Q->c = ml1 + m1 / Q->n; @@ -137,7 +139,7 @@ PJ *PROJECTION(eqdc) { if (Q->n == 0) { proj_log_error(P, _("Invalid value for lat_1 and lat_2: lat_1 + " "lat_2 should be > 0")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_eqdc_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } Q->c = Q->phi1 + cos(Q->phi1) / Q->n; Q->rho0 = Q->c - P->phi0; @@ -148,3 +150,5 @@ PJ *PROJECTION(eqdc) { return P; } + +#undef EPS10 diff --git a/src/projections/eqearth.cpp b/src/projections/eqearth.cpp index d78da37a66..adf5139174 100644 --- a/src/projections/eqearth.cpp +++ b/src/projections/eqearth.cpp @@ -33,7 +33,7 @@ PROJ_HEAD(eqearth, "Equal Earth") "\n\tPCyl, Sph&Ell"; #define MAX_ITER 12 namespace { // anonymous namespace -struct pj_opaque { +struct pj_eqearth { double qp; double rqda; double *apa; @@ -43,7 +43,7 @@ struct pj_opaque { static PJ_XY eqearth_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal/spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqearth *Q = static_cast(P->opaque); double sbeta; double psi, psi2, psi6; @@ -78,7 +78,7 @@ static PJ_XY eqearth_e_forward(PJ_LP lp, static PJ_LP eqearth_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal/spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_eqearth *Q = static_cast(P->opaque); double yc, y2, y6; int i; @@ -141,13 +141,13 @@ static PJ *destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->apa); + free(static_cast(P->opaque)->apa); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(eqearth) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(eqearth) { + struct pj_eqearth *Q = + static_cast(calloc(1, sizeof(struct pj_eqearth))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -167,3 +167,13 @@ PJ *PROJECTION(eqearth) { return P; } + +#undef A1 +#undef A2 +#undef A3 +#undef A4 +#undef M + +#undef MAX_Y +#undef EPS +#undef MAX_ITER diff --git a/src/projections/fahey.cpp b/src/projections/fahey.cpp index 7cb05191c7..ef24bbd8fd 100644 --- a/src/projections/fahey.cpp +++ b/src/projections/fahey.cpp @@ -30,7 +30,7 @@ static PJ_LP fahey_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(fahey) { +PJ *PJ_PROJECTION(fahey) { P->es = 0.; P->inv = fahey_s_inverse; P->fwd = fahey_s_forward; diff --git a/src/projections/fouc_s.cpp b/src/projections/fouc_s.cpp index f84e3f05c1..8e4db3b7c5 100644 --- a/src/projections/fouc_s.cpp +++ b/src/projections/fouc_s.cpp @@ -12,14 +12,14 @@ PROJ_HEAD(fouc_s, "Foucaut Sinusoidal") "\n\tPCyl, Sph"; #define LOOP_TOL 1e-7 namespace { // anonymous namespace -struct pj_opaque { +struct pj_fouc_s_data { double n, n1; }; } // anonymous namespace static PJ_XY fouc_s_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_fouc_s_data *Q = static_cast(P->opaque); double t; t = cos(lp.phi); @@ -30,7 +30,7 @@ static PJ_XY fouc_s_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP fouc_s_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_fouc_s_data *Q = static_cast(P->opaque); int i; if (Q->n != 0.0) { @@ -51,9 +51,9 @@ static PJ_LP fouc_s_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(fouc_s) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(fouc_s) { + struct pj_fouc_s_data *Q = static_cast( + calloc(1, sizeof(struct pj_fouc_s_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -71,3 +71,6 @@ PJ *PROJECTION(fouc_s) { P->fwd = fouc_s_s_forward; return P; } + +#undef MAX_ITER +#undef LOOP_TOL diff --git a/src/projections/gall.cpp b/src/projections/gall.cpp index 2a957a1067..4c2f399bae 100644 --- a/src/projections/gall.cpp +++ b/src/projections/gall.cpp @@ -32,7 +32,7 @@ static PJ_LP gall_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(gall) { +PJ *PJ_PROJECTION(gall) { P->es = 0.0; P->inv = gall_s_inverse; diff --git a/src/projections/geos.cpp b/src/projections/geos.cpp index 30d70be1c0..5909fc7aef 100644 --- a/src/projections/geos.cpp +++ b/src/projections/geos.cpp @@ -37,7 +37,7 @@ #include namespace { // anonymous namespace -struct pj_opaque { +struct pj_geos_data { double h; double radius_p; double radius_p2; @@ -53,7 +53,7 @@ PROJ_HEAD(geos, "Geostationary Satellite View") "\n\tAzi, Sph&Ell\n\th="; static PJ_XY geos_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_geos_data *Q = static_cast(P->opaque); double Vx, Vy, Vz, tmp; /* Calculation of the three components of the vector from satellite to @@ -81,7 +81,7 @@ static PJ_XY geos_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_XY geos_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_geos_data *Q = static_cast(P->opaque); double r, Vx, Vy, Vz, tmp; /* Calculation of geocentric latitude. */ @@ -116,7 +116,7 @@ static PJ_XY geos_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP geos_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_geos_data *Q = static_cast(P->opaque); double Vx, Vy, Vz, a, b, k; /* Setting three components of vector from satellite to position.*/ @@ -153,7 +153,7 @@ static PJ_LP geos_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ static PJ_LP geos_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_geos_data *Q = static_cast(P->opaque); double Vx, Vy, Vz, a, b, k; /* Setting three components of vector from satellite to position.*/ @@ -191,10 +191,10 @@ static PJ_LP geos_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(geos) { +PJ *PJ_PROJECTION(geos) { char *sweep_axis; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_geos_data *Q = static_cast( + calloc(1, sizeof(struct pj_geos_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/gins8.cpp b/src/projections/gins8.cpp index 6e44d52cd2..6a7005854f 100644 --- a/src/projections/gins8.cpp +++ b/src/projections/gins8.cpp @@ -22,7 +22,7 @@ static PJ_XY gins8_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(gins8) { +PJ *PJ_PROJECTION(gins8) { P->es = 0.0; P->inv = nullptr; P->fwd = gins8_s_forward; diff --git a/src/projections/gn_sinu.cpp b/src/projections/gn_sinu.cpp index 3bb9ab4c68..97a8b1b191 100644 --- a/src/projections/gn_sinu.cpp +++ b/src/projections/gn_sinu.cpp @@ -16,7 +16,7 @@ PROJ_HEAD(mbtfps, "McBryde-Thomas Flat-Polar Sinusoidal") "\n\tPCyl, Sph"; #define LOOP_TOL 1e-7 namespace { // anonymous namespace -struct pj_opaque { +struct pj_gn_sinu_data { double *en; double m, n, C_x, C_y; }; @@ -27,8 +27,8 @@ static PJ_XY gn_sinu_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ const double s = sin(lp.phi); const double c = cos(lp.phi); - xy.y = - pj_mlfn(lp.phi, s, c, static_cast(P->opaque)->en); + xy.y = pj_mlfn(lp.phi, s, c, + static_cast(P->opaque)->en); xy.x = lp.lam * c / sqrt(1. - P->es * s * s); return xy; } @@ -37,7 +37,8 @@ static PJ_LP gn_sinu_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; double s; - lp.phi = pj_inv_mlfn(xy.y, static_cast(P->opaque)->en); + lp.phi = + pj_inv_mlfn(xy.y, static_cast(P->opaque)->en); s = fabs(lp.phi); if (s < M_HALFPI) { s = sin(lp.phi); @@ -53,7 +54,8 @@ static PJ_LP gn_sinu_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ static PJ_XY gn_sinu_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gn_sinu_data *Q = + static_cast(P->opaque); if (Q->m == 0.0) lp.phi = Q->n != 1. ? aasin(P->ctx, Q->n * sin(lp.phi)) : lp.phi; @@ -81,7 +83,8 @@ static PJ_XY gn_sinu_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP gn_sinu_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gn_sinu_data *Q = + static_cast(P->opaque); xy.y /= Q->C_y; lp.phi = (Q->m != 0.0) @@ -91,20 +94,21 @@ static PJ_LP gn_sinu_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_gn_sinu_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } /* for spheres, only */ -static void setup(PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); +static void pj_gn_sinu_setup(PJ *P) { + struct pj_gn_sinu_data *Q = + static_cast(P->opaque); P->es = 0; P->inv = gn_sinu_s_inverse; P->fwd = gn_sinu_s_forward; @@ -113,13 +117,13 @@ static void setup(PJ *P) { Q->C_x = Q->C_y / (Q->m + 1.); } -PJ *PROJECTION(sinu) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(sinu) { + struct pj_gn_sinu_data *Q = static_cast( + calloc(1, sizeof(struct pj_gn_sinu_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_gn_sinu_destructor; if (!(Q->en = pj_enfn(P->n))) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -130,48 +134,48 @@ PJ *PROJECTION(sinu) { } else { Q->n = 1.; Q->m = 0.; - setup(P); + pj_gn_sinu_setup(P); } return P; } -PJ *PROJECTION(eck6) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(eck6) { + struct pj_gn_sinu_data *Q = static_cast( + calloc(1, sizeof(struct pj_gn_sinu_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_gn_sinu_destructor; Q->m = 1.; Q->n = 2.570796326794896619231321691; - setup(P); + pj_gn_sinu_setup(P); return P; } -PJ *PROJECTION(mbtfps) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(mbtfps) { + struct pj_gn_sinu_data *Q = static_cast( + calloc(1, sizeof(struct pj_gn_sinu_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_gn_sinu_destructor; Q->m = 0.5; Q->n = 1.785398163397448309615660845; - setup(P); + pj_gn_sinu_setup(P); return P; } -PJ *PROJECTION(gn_sinu) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(gn_sinu) { + struct pj_gn_sinu_data *Q = static_cast( + calloc(1, sizeof(struct pj_gn_sinu_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_gn_sinu_destructor; if (!pj_param(P->ctx, P->params, "tn").i) { proj_log_error(P, _("Missing parameter n.")); @@ -193,7 +197,7 @@ PJ *PROJECTION(gn_sinu) { return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } - setup(P); + pj_gn_sinu_setup(P); return P; } diff --git a/src/projections/gnom.cpp b/src/projections/gnom.cpp index b6498af1b7..f6dd984cc4 100644 --- a/src/projections/gnom.cpp +++ b/src/projections/gnom.cpp @@ -12,22 +12,22 @@ PROJ_HEAD(gnom, "Gnomonic") "\n\tAzi, Sph"; #define EPS10 1.e-10 -namespace { // anonymous namespace +namespace pj_gnom_ns { enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_gnom_data { double sinph0; double cosph0; - enum Mode mode; + enum pj_gnom_ns::Mode mode; struct geod_geodesic g; }; } // anonymous namespace static PJ_XY gnom_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gnom_data *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; sinphi = sin(lp.phi); @@ -35,16 +35,16 @@ static PJ_XY gnom_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ coslam = cos(lp.lam); switch (Q->mode) { - case EQUIT: + case pj_gnom_ns::EQUIT: xy.y = cosphi * coslam; break; - case OBLIQ: + case pj_gnom_ns::OBLIQ: xy.y = Q->sinph0 * sinphi + Q->cosph0 * cosphi * coslam; break; - case S_POLE: + case pj_gnom_ns::S_POLE: xy.y = -sinphi; break; - case N_POLE: + case pj_gnom_ns::N_POLE: xy.y = sinphi; break; } @@ -56,16 +56,16 @@ static PJ_XY gnom_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ xy.x = (xy.y = 1. / xy.y) * cosphi * sin(lp.lam); switch (Q->mode) { - case EQUIT: + case pj_gnom_ns::EQUIT: xy.y *= sinphi; break; - case OBLIQ: + case pj_gnom_ns::OBLIQ: xy.y *= Q->cosph0 * sinphi - Q->sinph0 * cosphi * coslam; break; - case N_POLE: + case pj_gnom_ns::N_POLE: coslam = -coslam; PROJ_FALLTHROUGH; - case S_POLE: + case pj_gnom_ns::S_POLE: xy.y *= cosphi * coslam; break; } @@ -74,7 +74,7 @@ static PJ_XY gnom_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP gnom_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gnom_data *Q = static_cast(P->opaque); double rh, cosz, sinz; rh = hypot(xy.x, xy.y); @@ -86,7 +86,7 @@ static PJ_LP gnom_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.lam = 0.; } else { switch (Q->mode) { - case OBLIQ: + case pj_gnom_ns::OBLIQ: lp.phi = cosz * Q->sinph0 + xy.y * sinz * Q->cosph0 / rh; if (fabs(lp.phi) >= 1.) lp.phi = lp.phi > 0. ? M_HALFPI : -M_HALFPI; @@ -95,7 +95,7 @@ static PJ_LP gnom_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ xy.y = (cosz - Q->sinph0 * sin(lp.phi)) * rh; xy.x *= sinz * Q->cosph0; break; - case EQUIT: + case pj_gnom_ns::EQUIT: lp.phi = xy.y * sinz / rh; if (fabs(lp.phi) >= 1.) lp.phi = lp.phi > 0. ? M_HALFPI : -M_HALFPI; @@ -104,10 +104,10 @@ static PJ_LP gnom_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ xy.y = cosz * rh; xy.x *= sinz; break; - case S_POLE: + case pj_gnom_ns::S_POLE: lp.phi -= M_HALFPI; break; - case N_POLE: + case pj_gnom_ns::N_POLE: lp.phi = M_HALFPI - lp.phi; xy.y = -xy.y; break; @@ -119,7 +119,7 @@ static PJ_LP gnom_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ static PJ_XY gnom_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gnom_data *Q = static_cast(P->opaque); double lat0 = P->phi0 / DEG_TO_RAD, lon0 = 0, lat1 = lp.phi / DEG_TO_RAD, lon1 = lp.lam / DEG_TO_RAD, azi0, m, M; @@ -143,7 +143,7 @@ static PJ_LP gnom_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ static const double eps_ = 0.01 * sqrt(DBL_EPSILON); PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gnom_data *Q = static_cast(P->opaque); double lat0 = P->phi0 / DEG_TO_RAD, lon0 = 0, azi0 = atan2(xy.x, xy.y) / DEG_TO_RAD, // Clockwise from north @@ -182,20 +182,20 @@ static PJ_LP gnom_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(gnom) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(gnom) { + struct pj_gnom_data *Q = static_cast( + calloc(1, sizeof(struct pj_gnom_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; if (P->es == 0) { if (fabs(fabs(P->phi0) - M_HALFPI) < EPS10) { - Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + Q->mode = P->phi0 < 0. ? pj_gnom_ns::S_POLE : pj_gnom_ns::N_POLE; } else if (fabs(P->phi0) < EPS10) { - Q->mode = EQUIT; + Q->mode = pj_gnom_ns::EQUIT; } else { - Q->mode = OBLIQ; + Q->mode = pj_gnom_ns::OBLIQ; Q->sinph0 = sin(P->phi0); Q->cosph0 = cos(P->phi0); } diff --git a/src/projections/goode.cpp b/src/projections/goode.cpp index dbe4d0c6c0..93177aac01 100644 --- a/src/projections/goode.cpp +++ b/src/projections/goode.cpp @@ -14,7 +14,7 @@ PROJ_HEAD(goode, "Goode Homolosine") "\n\tPCyl, Sph"; C_NAMESPACE PJ *pj_sinu(PJ *), *pj_moll(PJ *); namespace { // anonymous namespace -struct pj_opaque { +struct pj_goode_data { PJ *sinu; PJ *moll; }; @@ -22,7 +22,7 @@ struct pj_opaque { static PJ_XY goode_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_goode_data *Q = static_cast(P->opaque); if (fabs(lp.phi) <= PHI_LIM) xy = Q->sinu->fwd(lp, Q->sinu); @@ -35,7 +35,7 @@ static PJ_XY goode_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP goode_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_goode_data *Q = static_cast(P->opaque); if (fabs(xy.y) <= PHI_LIM) lp = Q->sinu->inv(xy, Q->sinu); @@ -46,39 +46,42 @@ static PJ_LP goode_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *goode_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - proj_destroy(static_cast(P->opaque)->sinu); - proj_destroy(static_cast(P->opaque)->moll); + proj_destroy(static_cast(P->opaque)->sinu); + proj_destroy(static_cast(P->opaque)->moll); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(goode) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(goode) { + struct pj_goode_data *Q = static_cast( + calloc(1, sizeof(struct pj_goode_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = goode_destructor; P->es = 0.; Q->sinu = pj_sinu(nullptr); Q->moll = pj_moll(nullptr); if (Q->sinu == nullptr || Q->moll == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return goode_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); Q->sinu->es = 0.; Q->sinu->ctx = P->ctx; Q->moll->ctx = P->ctx; Q->sinu = pj_sinu(Q->sinu); Q->moll = pj_moll(Q->moll); if (Q->sinu == nullptr || Q->moll == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return goode_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->fwd = goode_s_forward; P->inv = goode_s_inverse; return P; } + +#undef Y_COR +#undef PHI_LIM diff --git a/src/projections/gstmerc.cpp b/src/projections/gstmerc.cpp index 648afc8bf8..81d63fe4ef 100644 --- a/src/projections/gstmerc.cpp +++ b/src/projections/gstmerc.cpp @@ -11,7 +11,7 @@ PROJ_HEAD(gstmerc, "\n\tCyl, Sph&Ell\n\tlat_0= lon_0= k_0="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_gstmerc_data { double lamc; double phic; double c; @@ -24,7 +24,8 @@ struct pj_opaque { static PJ_XY gstmerc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gstmerc_data *Q = + static_cast(P->opaque); double L, Ls, sinLs1, Ls1; L = Q->n1 * lp.lam; @@ -39,7 +40,8 @@ static PJ_XY gstmerc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP gstmerc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_gstmerc_data *Q = + static_cast(P->opaque); double L, LC, sinC; L = atan(sinh((xy.x * P->a - Q->XS) / Q->n2) / @@ -53,9 +55,9 @@ static PJ_LP gstmerc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(gstmerc) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(gstmerc) { + struct pj_gstmerc_data *Q = static_cast( + calloc(1, sizeof(struct pj_gstmerc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp index 95893a110b..7353b6a254 100644 --- a/src/projections/hammer.cpp +++ b/src/projections/hammer.cpp @@ -12,7 +12,7 @@ PROJ_HEAD(hammer, "Hammer & Eckert-Greifendorff") #define EPS 1.0e-10 namespace { // anonymous namespace -struct pj_opaque { +struct pq_hammer { double w; double m, rm; }; @@ -20,7 +20,7 @@ struct pj_opaque { static PJ_XY hammer_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pq_hammer *Q = static_cast(P->opaque); double cosphi, d; cosphi = cos(lp.phi); @@ -38,7 +38,7 @@ static PJ_XY hammer_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP hammer_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pq_hammer *Q = static_cast(P->opaque); double z; z = sqrt(1. - 0.25 * Q->w * Q->w * xy.x * xy.x - 0.25 * xy.y * xy.y); @@ -53,9 +53,9 @@ static PJ_LP hammer_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(hammer) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(hammer) { + struct pq_hammer *Q = + static_cast(calloc(1, sizeof(struct pq_hammer))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -88,3 +88,5 @@ PJ *PROJECTION(hammer) { return P; } + +#undef EPS diff --git a/src/projections/hatano.cpp b/src/projections/hatano.cpp index 56b3f3d3c7..956d4e3f70 100644 --- a/src/projections/hatano.cpp +++ b/src/projections/hatano.cpp @@ -72,10 +72,24 @@ static PJ_LP hatano_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(hatano) { +PJ *PJ_PROJECTION(hatano) { P->es = 0.; P->inv = hatano_s_inverse; P->fwd = hatano_s_forward; return P; } + +#undef NITER +#undef EPS +#undef ONETOL +#undef CN +#undef CSz +#undef RCN +#undef RCS +#undef FYCN +#undef FYCS +#undef RYCN +#undef RYCS +#undef FXC +#undef RXC diff --git a/src/projections/healpix.cpp b/src/projections/healpix.cpp index ca18ae6555..e3d97b09e0 100644 --- a/src/projections/healpix.cpp +++ b/src/projections/healpix.cpp @@ -67,7 +67,7 @@ PROJ_HEAD(rhealpix, "rHEALPix") "\n\tSph&Ell\n\tnorth_square= south_square="; #define EPS 1e-15 namespace { // anonymous namespace -struct pj_opaque { +struct pj_healpix_data { int north_square; int south_square; double rot_xy; @@ -229,7 +229,8 @@ static int in_image(double x, double y, int proj, int north_square, * P contains the relevant ellipsoid parameters. **/ static double auth_lat(PJ *P, double alpha, int inverse) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); if (inverse == 0) { /* Authalic latitude. */ double q = pj_qsfn(sin(alpha), P->e, 1.0 - P->es); @@ -500,18 +501,21 @@ static PJ_XY combine_caps(double x, double y, int north_square, static PJ_XY s_healpix_forward(PJ_LP lp, PJ *P) { /* sphere */ (void)P; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); return rotate(healpix_sphere(lp), -Q->rot_xy); } static PJ_XY e_healpix_forward(PJ_LP lp, PJ *P) { /* ellipsoid */ lp.phi = auth_lat(P, lp.phi, 0); - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); return rotate(healpix_sphere(lp), -Q->rot_xy); } static PJ_LP s_healpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); xy = rotate(xy, Q->rot_xy); /* Check whether (x, y) lies in the HEALPix image */ @@ -528,7 +532,8 @@ static PJ_LP s_healpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ static PJ_LP e_healpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); xy = rotate(xy, Q->rot_xy); /* Check whether (x, y) lies in the HEALPix image. */ @@ -545,14 +550,16 @@ static PJ_LP e_healpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ } static PJ_XY s_rhealpix_forward(PJ_LP lp, PJ *P) { /* sphere */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); PJ_XY xy = healpix_sphere(lp); return combine_caps(xy.x, xy.y, Q->north_square, Q->south_square, 0); } static PJ_XY e_rhealpix_forward(PJ_LP lp, PJ *P) { /* ellipsoid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); PJ_XY xy; lp.phi = auth_lat(P, lp.phi, 0); xy = healpix_sphere(lp); @@ -560,7 +567,8 @@ static PJ_XY e_rhealpix_forward(PJ_LP lp, PJ *P) { /* ellipsoid */ } static PJ_LP s_rhealpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); /* Check whether (x, y) lies in the rHEALPix image. */ if (in_image(xy.x, xy.y, 1, Q->north_square, Q->south_square) == 0) { @@ -576,7 +584,8 @@ static PJ_LP s_rhealpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ } static PJ_LP e_rhealpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_healpix_data *Q = + static_cast(P->opaque); PJ_LP lp = {0.0, 0.0}; /* Check whether (x, y) lies in the rHEALPix image. */ @@ -593,24 +602,24 @@ static PJ_LP e_rhealpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ return lp; } -static PJ *destructor(PJ *P, int errlev) { /* Destructor */ +static PJ *pj_healpix_data_destructor(PJ *P, int errlev) { /* Destructor */ if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->apa); + free(static_cast(P->opaque)->apa); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(healpix) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(healpix) { + struct pj_healpix_data *Q = static_cast( + calloc(1, sizeof(struct pj_healpix_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_healpix_data_destructor; double angle = pj_param(P->ctx, P->params, "drot_xy").f; Q->rot_xy = PJ_TORAD(angle); @@ -618,7 +627,7 @@ PJ *PROJECTION(healpix) { if (P->es != 0.0) { Q->apa = pj_authset(P->es); /* For auth_lat(). */ if (nullptr == Q->apa) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_healpix_data_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); Q->qp = pj_qsfn(1.0, P->e, P->one_es); /* For auth_lat(). */ P->a = P->a * sqrt(0.5 * Q->qp); /* Set P->a to authalic radius. */ pj_calc_ellipsoid_params( @@ -633,13 +642,13 @@ PJ *PROJECTION(healpix) { return P; } -PJ *PROJECTION(rhealpix) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(rhealpix) { + struct pj_healpix_data *Q = static_cast( + calloc(1, sizeof(struct pj_healpix_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_healpix_data_destructor; Q->north_square = pj_param(P->ctx, P->params, "inorth_square").i; Q->south_square = pj_param(P->ctx, P->params, "isouth_square").i; @@ -649,18 +658,20 @@ PJ *PROJECTION(rhealpix) { proj_log_error( P, _("Invalid value for north_square: it should be in [0,3] range.")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_healpix_data_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (Q->south_square < 0 || Q->south_square > 3) { proj_log_error( P, _("Invalid value for south_square: it should be in [0,3] range.")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_healpix_data_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (P->es != 0.0) { Q->apa = pj_authset(P->es); /* For auth_lat(). */ if (nullptr == Q->apa) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_healpix_data_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); Q->qp = pj_qsfn(1.0, P->e, P->one_es); /* For auth_lat(). */ P->a = P->a * sqrt(0.5 * Q->qp); /* Set P->a to authalic radius. */ P->ra = 1.0 / P->a; @@ -673,3 +684,10 @@ PJ *PROJECTION(rhealpix) { return P; } + +#undef R1 +#undef R2 +#undef R3 +#undef IDENT +#undef ROT +#undef EPS diff --git a/src/projections/igh.cpp b/src/projections/igh.cpp index a0a38d00f8..51181afa9b 100644 --- a/src/projections/igh.cpp +++ b/src/projections/igh.cpp @@ -13,7 +13,7 @@ This projection is a compilation of 12 separate sub-projections. Sinusoidal projections are found near the equator and Mollweide projections are found at higher latitudes. The transition between the two occurs at 40 degrees latitude and is represented by the -constant `phi_boundary`. +constant `igh_phi_boundary`. Each sub-projection is assigned an integer label numbered 1 through 12. Most of this code contains logic to assign @@ -32,41 +32,43 @@ Transition from sinusoidal to Mollweide projection Latitude (phi): 40deg 44' 11.8" */ -static const double phi_boundary = (40 + 44 / 60. + 11.8 / 3600.) * DEG_TO_RAD; - -static const double d10 = 10 * DEG_TO_RAD; -static const double d20 = 20 * DEG_TO_RAD; -static const double d30 = 30 * DEG_TO_RAD; -static const double d40 = 40 * DEG_TO_RAD; -static const double d50 = 50 * DEG_TO_RAD; -static const double d60 = 60 * DEG_TO_RAD; -static const double d80 = 80 * DEG_TO_RAD; -static const double d90 = 90 * DEG_TO_RAD; -static const double d100 = 100 * DEG_TO_RAD; -static const double d140 = 140 * DEG_TO_RAD; -static const double d160 = 160 * DEG_TO_RAD; -static const double d180 = 180 * DEG_TO_RAD; - -static const double EPSLN = - 1.e-10; /* allow a little 'slack' on zone edge positions */ +constexpr double igh_phi_boundary = (40 + 44 / 60. + 11.8 / 3600.) * DEG_TO_RAD; -namespace { // anonymous namespace -struct pj_opaque { +namespace pj_igh_ns { +struct pj_igh_data { struct PJconsts *pj[12]; double dy0; }; -} // anonymous namespace + +constexpr double d10 = 10 * DEG_TO_RAD; +constexpr double d20 = 20 * DEG_TO_RAD; +constexpr double d30 = 30 * DEG_TO_RAD; +constexpr double d40 = 40 * DEG_TO_RAD; +constexpr double d50 = 50 * DEG_TO_RAD; +constexpr double d60 = 60 * DEG_TO_RAD; +constexpr double d80 = 80 * DEG_TO_RAD; +constexpr double d90 = 90 * DEG_TO_RAD; +constexpr double d100 = 100 * DEG_TO_RAD; +constexpr double d140 = 140 * DEG_TO_RAD; +constexpr double d160 = 160 * DEG_TO_RAD; +constexpr double d180 = 180 * DEG_TO_RAD; + +constexpr double EPSLN = + 1.e-10; /* allow a little 'slack' on zone edge positions */ + +} // namespace pj_igh_ns static PJ_XY igh_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + using namespace pj_igh_ns; PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_data *Q = static_cast(P->opaque); int z; - if (lp.phi >= phi_boundary) { /* 1|2 */ + if (lp.phi >= igh_phi_boundary) { /* 1|2 */ z = (lp.lam <= -d40 ? 1 : 2); } else if (lp.phi >= 0) { /* 3|4 */ z = (lp.lam <= -d40 ? 3 : 4); - } else if (lp.phi >= -phi_boundary) { /* 5|6|7|8 */ + } else if (lp.phi >= -igh_phi_boundary) { /* 5|6|7|8 */ if (lp.lam <= -d100) z = 5; /* 5 */ else if (lp.lam <= -d20) @@ -95,19 +97,20 @@ static PJ_XY igh_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } static PJ_LP igh_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + using namespace pj_igh_ns; PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_data *Q = static_cast(P->opaque); const double y90 = Q->dy0 + sqrt(2.0); /* lt=90 corresponds to y=y0+sqrt(2) */ int z = 0; if (xy.y > y90 + EPSLN || xy.y < -y90 + EPSLN) /* 0 */ z = 0; - else if (xy.y >= phi_boundary) /* 1|2 */ + else if (xy.y >= igh_phi_boundary) /* 1|2 */ z = (xy.x <= -d40 ? 1 : 2); else if (xy.y >= 0) /* 3|4 */ z = (xy.x <= -d40 ? 3 : 4); - else if (xy.y >= -phi_boundary) { /* 5|6|7|8 */ + else if (xy.y >= -igh_phi_boundary) { /* 5|6|7|8 */ if (xy.x <= -d100) z = 5; /* 5 */ else if (xy.x <= -d20) @@ -190,7 +193,8 @@ static PJ_LP igh_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_igh_data_destructor(PJ *P, int errlev) { + using namespace pj_igh_ns; int i; if (nullptr == P) return nullptr; @@ -198,7 +202,7 @@ static PJ *destructor(PJ *P, int errlev) { if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_data *Q = static_cast(P->opaque); for (i = 0; i < 12; ++i) { if (Q->pj[i]) @@ -228,8 +232,9 @@ static PJ *destructor(PJ *P, int errlev) { -180 -100 -20 80 180 */ -static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), - double x_0, double y_0, double lon_0) { +static bool pj_igh_setup_zone(PJ *P, struct pj_igh_ns::pj_igh_data *Q, int n, + PJ *(*proj_ptr)(PJ *), double x_0, double y_0, + double lon_0) { if (!(Q->pj[n - 1] = proj_ptr(nullptr))) return false; if (!(Q->pj[n - 1] = proj_ptr(Q->pj[n - 1]))) @@ -241,28 +246,30 @@ static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), return true; } -PJ *PROJECTION(igh) { +PJ *PJ_PROJECTION(igh) { + using namespace pj_igh_ns; + PJ_XY xy1, xy3; - PJ_LP lp = {0, phi_boundary}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + PJ_LP lp = {0, igh_phi_boundary}; + struct pj_igh_data *Q = static_cast( + calloc(1, sizeof(struct pj_igh_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; /* sinusoidal zones */ - if (!setup_zone(P, Q, 3, pj_sinu, -d100, 0, -d100) || - !setup_zone(P, Q, 4, pj_sinu, d30, 0, d30) || - !setup_zone(P, Q, 5, pj_sinu, -d160, 0, -d160) || - !setup_zone(P, Q, 6, pj_sinu, -d60, 0, -d60) || - !setup_zone(P, Q, 7, pj_sinu, d20, 0, d20) || - !setup_zone(P, Q, 8, pj_sinu, d140, 0, d140)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_setup_zone(P, Q, 3, pj_sinu, -d100, 0, -d100) || + !pj_igh_setup_zone(P, Q, 4, pj_sinu, d30, 0, d30) || + !pj_igh_setup_zone(P, Q, 5, pj_sinu, -d160, 0, -d160) || + !pj_igh_setup_zone(P, Q, 6, pj_sinu, -d60, 0, -d60) || + !pj_igh_setup_zone(P, Q, 7, pj_sinu, d20, 0, d20) || + !pj_igh_setup_zone(P, Q, 8, pj_sinu, d140, 0, d140)) { + return pj_igh_data_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* mollweide zones */ - if (!setup_zone(P, Q, 1, pj_moll, -d100, 0, -d100)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_setup_zone(P, Q, 1, pj_moll, -d100, 0, -d100)) { + return pj_igh_data_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* y0 ? */ @@ -274,17 +281,17 @@ PJ *PROJECTION(igh) { Q->pj[0]->y0 = Q->dy0; /* mollweide zones (cont'd) */ - if (!setup_zone(P, Q, 2, pj_moll, d30, Q->dy0, d30) || - !setup_zone(P, Q, 9, pj_moll, -d160, -Q->dy0, -d160) || - !setup_zone(P, Q, 10, pj_moll, -d60, -Q->dy0, -d60) || - !setup_zone(P, Q, 11, pj_moll, d20, -Q->dy0, d20) || - !setup_zone(P, Q, 12, pj_moll, d140, -Q->dy0, d140)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_setup_zone(P, Q, 2, pj_moll, d30, Q->dy0, d30) || + !pj_igh_setup_zone(P, Q, 9, pj_moll, -d160, -Q->dy0, -d160) || + !pj_igh_setup_zone(P, Q, 10, pj_moll, -d60, -Q->dy0, -d60) || + !pj_igh_setup_zone(P, Q, 11, pj_moll, d20, -Q->dy0, d20) || + !pj_igh_setup_zone(P, Q, 12, pj_moll, d140, -Q->dy0, d140)) { + return pj_igh_data_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } P->inv = igh_s_inverse; P->fwd = igh_s_forward; - P->destructor = destructor; + P->destructor = pj_igh_data_destructor; P->es = 0.; return P; diff --git a/src/projections/igh_o.cpp b/src/projections/igh_o.cpp index 1e5ae3cce4..19ae6efc3f 100644 --- a/src/projections/igh_o.cpp +++ b/src/projections/igh_o.cpp @@ -14,7 +14,7 @@ projection that emphasizes ocean areas. The projection is a compilation of 12 separate sub-projections. Sinusoidal projections are found near the equator and Mollweide projections are found at higher latitudes. The transition between the two occurs at 40 degrees -latitude and is represented by `phi_boundary`. +latitude and is represented by `igh_o_phi_boundary`. Each sub-projection is assigned an integer label numbered 1 through 12. Most of this code contains logic to assign @@ -33,31 +33,33 @@ Transition from sinusoidal to Mollweide projection Latitude (phi): 40deg 44' 11.8" */ -static const double phi_boundary = (40 + 44 / 60. + 11.8 / 3600.) * DEG_TO_RAD; - -static const double d10 = 10 * DEG_TO_RAD; -static const double d20 = 20 * DEG_TO_RAD; -static const double d40 = 40 * DEG_TO_RAD; -static const double d50 = 50 * DEG_TO_RAD; -static const double d60 = 60 * DEG_TO_RAD; -static const double d90 = 90 * DEG_TO_RAD; -static const double d100 = 100 * DEG_TO_RAD; -static const double d110 = 110 * DEG_TO_RAD; -static const double d140 = 140 * DEG_TO_RAD; -static const double d150 = 150 * DEG_TO_RAD; -static const double d160 = 160 * DEG_TO_RAD; -static const double d130 = 130 * DEG_TO_RAD; -static const double d180 = 180 * DEG_TO_RAD; - -static const double EPSLN = - 1.e-10; /* allow a little 'slack' on zone edge positions */ +constexpr double igh_o_phi_boundary = + (40 + 44 / 60. + 11.8 / 3600.) * DEG_TO_RAD; -namespace { // anonymous namespace -struct pj_opaque { +namespace pj_igh_o_ns { +struct pj_igh_o_data { struct PJconsts *pj[12]; double dy0; }; -} // anonymous namespace + +constexpr double d10 = 10 * DEG_TO_RAD; +constexpr double d20 = 20 * DEG_TO_RAD; +constexpr double d40 = 40 * DEG_TO_RAD; +constexpr double d50 = 50 * DEG_TO_RAD; +constexpr double d60 = 60 * DEG_TO_RAD; +constexpr double d90 = 90 * DEG_TO_RAD; +constexpr double d100 = 100 * DEG_TO_RAD; +constexpr double d110 = 110 * DEG_TO_RAD; +constexpr double d140 = 140 * DEG_TO_RAD; +constexpr double d150 = 150 * DEG_TO_RAD; +constexpr double d160 = 160 * DEG_TO_RAD; +constexpr double d130 = 130 * DEG_TO_RAD; +constexpr double d180 = 180 * DEG_TO_RAD; + +constexpr double EPSLN = + 1.e-10; /* allow a little 'slack' on zone edge positions */ + +} // namespace pj_igh_o_ns /* Assign an integer index representing each of the 12 @@ -66,11 +68,13 @@ longitude (lam) ranges. */ static PJ_XY igh_o_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + using namespace pj_igh_o_ns; + PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_o_data *Q = static_cast(P->opaque); int z; - if (lp.phi >= phi_boundary) { + if (lp.phi >= igh_o_phi_boundary) { if (lp.lam <= -d90) z = 1; else if (lp.lam >= d60) @@ -84,7 +88,7 @@ static PJ_XY igh_o_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ z = 6; else z = 5; - } else if (lp.phi >= -phi_boundary) { + } else if (lp.phi >= -igh_o_phi_boundary) { if (lp.lam <= -d60) z = 7; else if (lp.lam >= d90) @@ -109,15 +113,17 @@ static PJ_XY igh_o_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } static PJ_LP igh_o_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + using namespace pj_igh_o_ns; + PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_o_data *Q = static_cast(P->opaque); const double y90 = Q->dy0 + sqrt(2.0); /* lt=90 corresponds to y=y0+sqrt(2) */ int z = 0; if (xy.y > y90 + EPSLN || xy.y < -y90 + EPSLN) /* 0 */ z = 0; - else if (xy.y >= phi_boundary) + else if (xy.y >= igh_o_phi_boundary) if (xy.x <= -d90) z = 1; else if (xy.x >= d60) @@ -131,7 +137,7 @@ static PJ_LP igh_o_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ z = 6; else z = 5; - else if (xy.y >= -phi_boundary) { + else if (xy.y >= -igh_o_phi_boundary) { if (xy.x <= -d60) z = 7; else if (xy.x >= d90) @@ -211,7 +217,9 @@ static PJ_LP igh_o_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_igh_o_destructor(PJ *P, int errlev) { + using namespace pj_igh_o_ns; + int i; if (nullptr == P) return nullptr; @@ -219,7 +227,7 @@ static PJ *destructor(PJ *P, int errlev) { if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_igh_o_data *Q = static_cast(P->opaque); for (i = 0; i < 12; ++i) { if (Q->pj[i]) @@ -249,8 +257,9 @@ static PJ *destructor(PJ *P, int errlev) { -180 -60 90 180 */ -static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), - double x_0, double y_0, double lon_0) { +static bool pj_igh_o_setup_zone(PJ *P, struct pj_igh_o_ns::pj_igh_o_data *Q, + int n, PJ *(*proj_ptr)(PJ *), double x_0, + double y_0, double lon_0) { if (!(Q->pj[n - 1] = proj_ptr(nullptr))) return false; if (!(Q->pj[n - 1] = proj_ptr(Q->pj[n - 1]))) @@ -262,28 +271,30 @@ static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), return true; } -PJ *PROJECTION(igh_o) { +PJ *PJ_PROJECTION(igh_o) { + using namespace pj_igh_o_ns; + PJ_XY xy1, xy4; - PJ_LP lp = {0, phi_boundary}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + PJ_LP lp = {0, igh_o_phi_boundary}; + struct pj_igh_o_data *Q = static_cast( + calloc(1, sizeof(struct pj_igh_o_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; /* sinusoidal zones */ - if (!setup_zone(P, Q, 4, pj_sinu, -d140, 0, -d140) || - !setup_zone(P, Q, 5, pj_sinu, -d10, 0, -d10) || - !setup_zone(P, Q, 6, pj_sinu, d130, 0, d130) || - !setup_zone(P, Q, 7, pj_sinu, -d110, 0, -d110) || - !setup_zone(P, Q, 8, pj_sinu, d20, 0, d20) || - !setup_zone(P, Q, 9, pj_sinu, d150, 0, d150)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_o_setup_zone(P, Q, 4, pj_sinu, -d140, 0, -d140) || + !pj_igh_o_setup_zone(P, Q, 5, pj_sinu, -d10, 0, -d10) || + !pj_igh_o_setup_zone(P, Q, 6, pj_sinu, d130, 0, d130) || + !pj_igh_o_setup_zone(P, Q, 7, pj_sinu, -d110, 0, -d110) || + !pj_igh_o_setup_zone(P, Q, 8, pj_sinu, d20, 0, d20) || + !pj_igh_o_setup_zone(P, Q, 9, pj_sinu, d150, 0, d150)) { + return pj_igh_o_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* mollweide zones */ - if (!setup_zone(P, Q, 1, pj_moll, -d140, 0, -d140)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_o_setup_zone(P, Q, 1, pj_moll, -d140, 0, -d140)) { + return pj_igh_o_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* y0 ? */ @@ -295,17 +306,17 @@ PJ *PROJECTION(igh_o) { Q->pj[0]->y0 = Q->dy0; /* mollweide zones (cont'd) */ - if (!setup_zone(P, Q, 2, pj_moll, -d10, Q->dy0, -d10) || - !setup_zone(P, Q, 3, pj_moll, d130, Q->dy0, d130) || - !setup_zone(P, Q, 10, pj_moll, -d110, -Q->dy0, -d110) || - !setup_zone(P, Q, 11, pj_moll, d20, -Q->dy0, d20) || - !setup_zone(P, Q, 12, pj_moll, d150, -Q->dy0, d150)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_igh_o_setup_zone(P, Q, 2, pj_moll, -d10, Q->dy0, -d10) || + !pj_igh_o_setup_zone(P, Q, 3, pj_moll, d130, Q->dy0, d130) || + !pj_igh_o_setup_zone(P, Q, 10, pj_moll, -d110, -Q->dy0, -d110) || + !pj_igh_o_setup_zone(P, Q, 11, pj_moll, d20, -Q->dy0, d20) || + !pj_igh_o_setup_zone(P, Q, 12, pj_moll, d150, -Q->dy0, d150)) { + return pj_igh_o_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } P->inv = igh_o_s_inverse; P->fwd = igh_o_s_forward; - P->destructor = destructor; + P->destructor = pj_igh_o_destructor; P->es = 0.; return P; diff --git a/src/projections/imoll.cpp b/src/projections/imoll.cpp index 17c898c53f..28211ca04a 100644 --- a/src/projections/imoll.cpp +++ b/src/projections/imoll.cpp @@ -27,24 +27,25 @@ J. Paul Goode (1919) STUDIES IN PROJECTIONS: ADAPTING THE C_NAMESPACE PJ *pj_moll(PJ *); -static const double d20 = 20 * DEG_TO_RAD; -static const double d30 = 30 * DEG_TO_RAD; -static const double d40 = 40 * DEG_TO_RAD; -static const double d60 = 60 * DEG_TO_RAD; -static const double d80 = 80 * DEG_TO_RAD; -static const double d100 = 100 * DEG_TO_RAD; -static const double d140 = 140 * DEG_TO_RAD; -static const double d160 = 160 * DEG_TO_RAD; -static const double d180 = 180 * DEG_TO_RAD; - -static const double EPSLN = - 1.e-10; /* allow a little 'slack' on zone edge positions */ - -namespace { // anonymous namespace -struct pj_opaque { +namespace pj_imoll_ns { +struct pj_imoll_data { struct PJconsts *pj[6]; }; -} // anonymous namespace + +constexpr double d20 = 20 * DEG_TO_RAD; +constexpr double d30 = 30 * DEG_TO_RAD; +constexpr double d40 = 40 * DEG_TO_RAD; +constexpr double d60 = 60 * DEG_TO_RAD; +constexpr double d80 = 80 * DEG_TO_RAD; +constexpr double d100 = 100 * DEG_TO_RAD; +constexpr double d140 = 140 * DEG_TO_RAD; +constexpr double d160 = 160 * DEG_TO_RAD; +constexpr double d180 = 180 * DEG_TO_RAD; + +constexpr double EPSLN = + 1.e-10; /* allow a little 'slack' on zone edge positions */ + +} // namespace pj_imoll_ns /* Assign an integer index representing each of the 6 @@ -53,8 +54,10 @@ longitude (lam) ranges. */ static PJ_XY imoll_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + using namespace pj_imoll_ns; + PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_data *Q = static_cast(P->opaque); int z; if (lp.phi >= 0) { /* 1|2 */ @@ -79,8 +82,10 @@ static PJ_XY imoll_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } static PJ_LP imoll_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + using namespace pj_imoll_ns; + PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_data *Q = static_cast(P->opaque); const double y90 = sqrt(2.0); /* lt=90 corresponds to y=sqrt(2) */ int z = 0; @@ -144,7 +149,9 @@ static PJ_LP imoll_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_imoll_destructor(PJ *P, int errlev) { + using namespace pj_imoll_ns; + int i; if (nullptr == P) return nullptr; @@ -152,7 +159,7 @@ static PJ *destructor(PJ *P, int errlev) { if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_data *Q = static_cast(P->opaque); for (i = 0; i < 6; ++i) { if (Q->pj[i]) @@ -182,8 +189,9 @@ static PJ *destructor(PJ *P, int errlev) { -180 -100 -20 80 180 */ -static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), - double x_0, double y_0, double lon_0) { +static bool setup_zone(PJ *P, struct pj_imoll_ns::pj_imoll_data *Q, int n, + PJ *(*proj_ptr)(PJ *), double x_0, double y_0, + double lon_0) { if (!(Q->pj[n - 1] = proj_ptr(nullptr))) return false; if (!(Q->pj[n - 1] = proj_ptr(Q->pj[n - 1]))) @@ -195,8 +203,9 @@ static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), return true; } -static double compute_zone_offset(struct pj_opaque *Q, int zone1, int zone2, - double lam, double phi1, double phi2) { +static double compute_zone_offset(struct pj_imoll_ns::pj_imoll_data *Q, + int zone1, int zone2, double lam, double phi1, + double phi2) { PJ_LP lp1, lp2; PJ_XY xy1, xy2; @@ -209,9 +218,11 @@ static double compute_zone_offset(struct pj_opaque *Q, int zone1, int zone2, return (xy2.x + Q->pj[zone2 - 1]->x0) - (xy1.x + Q->pj[zone1 - 1]->x0); } -PJ *PROJECTION(imoll) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(imoll) { + using namespace pj_imoll_ns; + + struct pj_imoll_data *Q = static_cast( + calloc(1, sizeof(struct pj_imoll_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -223,7 +234,7 @@ PJ *PROJECTION(imoll) { !setup_zone(P, Q, 4, pj_moll, -d60, 0, -d60) || !setup_zone(P, Q, 5, pj_moll, d20, 0, d20) || !setup_zone(P, Q, 6, pj_moll, d140, 0, d140)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_imoll_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* Adjust zones */ @@ -249,7 +260,7 @@ PJ *PROJECTION(imoll) { P->inv = imoll_s_inverse; P->fwd = imoll_s_forward; - P->destructor = destructor; + P->destructor = pj_imoll_destructor; P->es = 0.; return P; diff --git a/src/projections/imoll_o.cpp b/src/projections/imoll_o.cpp index f6ddb07723..3223c40d95 100644 --- a/src/projections/imoll_o.cpp +++ b/src/projections/imoll_o.cpp @@ -29,25 +29,26 @@ J. Paul Goode (1919) STUDIES IN PROJECTIONS: ADAPTING THE C_NAMESPACE PJ *pj_moll(PJ *); +namespace pj_imoll_o_ns { +struct pj_imoll_o_data { + struct PJconsts *pj[6]; +}; + /* SIMPLIFY THIS */ -static const double d10 = 10 * DEG_TO_RAD; -static const double d20 = 20 * DEG_TO_RAD; -static const double d60 = 60 * DEG_TO_RAD; -static const double d90 = 90 * DEG_TO_RAD; -static const double d110 = 110 * DEG_TO_RAD; -static const double d130 = 130 * DEG_TO_RAD; -static const double d140 = 140 * DEG_TO_RAD; -static const double d150 = 150 * DEG_TO_RAD; -static const double d180 = 180 * DEG_TO_RAD; - -static const double EPSLN = +constexpr double d10 = 10 * DEG_TO_RAD; +constexpr double d20 = 20 * DEG_TO_RAD; +constexpr double d60 = 60 * DEG_TO_RAD; +constexpr double d90 = 90 * DEG_TO_RAD; +constexpr double d110 = 110 * DEG_TO_RAD; +constexpr double d130 = 130 * DEG_TO_RAD; +constexpr double d140 = 140 * DEG_TO_RAD; +constexpr double d150 = 150 * DEG_TO_RAD; +constexpr double d180 = 180 * DEG_TO_RAD; + +constexpr double EPSLN = 1.e-10; /* allow a little 'slack' on zone edge positions */ -namespace { // anonymous namespace -struct pj_opaque { - struct PJconsts *pj[6]; -}; -} // anonymous namespace +} // namespace pj_imoll_o_ns /* Assign an integer index representing each of the 6 @@ -56,8 +57,11 @@ longitude (lam) ranges. */ static PJ_XY imoll_o_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + using namespace pj_imoll_o_ns; + PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_o_data *Q = + static_cast(P->opaque); int z; if (lp.phi >= 0) { /* 1|2|3 */ @@ -85,8 +89,11 @@ static PJ_XY imoll_o_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } static PJ_LP imoll_o_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + using namespace pj_imoll_o_ns; + PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_o_data *Q = + static_cast(P->opaque); const double y90 = sqrt(2.0); /* lt=90 corresponds to y=sqrt(2) */ int z = 0; @@ -153,7 +160,9 @@ static PJ_LP imoll_o_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_imoll_o_destructor(PJ *P, int errlev) { + using namespace pj_imoll_o_ns; + int i; if (nullptr == P) return nullptr; @@ -161,7 +170,8 @@ static PJ *destructor(PJ *P, int errlev) { if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imoll_o_data *Q = + static_cast(P->opaque); for (i = 0; i < 6; ++i) { if (Q->pj[i]) @@ -191,8 +201,10 @@ static PJ *destructor(PJ *P, int errlev) { -180 -60 90 180 */ -static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), - double x_0, double y_0, double lon_0) { +static bool pj_imoll_o_setup_zone(PJ *P, + struct pj_imoll_o_ns::pj_imoll_o_data *Q, + int n, PJ *(*proj_ptr)(PJ *), double x_0, + double y_0, double lon_0) { if (!(Q->pj[n - 1] = proj_ptr(nullptr))) return false; if (!(Q->pj[n - 1] = proj_ptr(Q->pj[n - 1]))) @@ -204,8 +216,10 @@ static bool setup_zone(PJ *P, struct pj_opaque *Q, int n, PJ *(*proj_ptr)(PJ *), return true; } -static double compute_zone_offset(struct pj_opaque *Q, int zone1, int zone2, - double lam, double phi1, double phi2) { +static double +pj_imoll_o_compute_zone_offset(struct pj_imoll_o_ns::pj_imoll_o_data *Q, + int zone1, int zone2, double lam, double phi1, + double phi2) { PJ_LP lp1, lp2; PJ_XY xy1, xy2; @@ -218,46 +232,50 @@ static double compute_zone_offset(struct pj_opaque *Q, int zone1, int zone2, return (xy2.x + Q->pj[zone2 - 1]->x0) - (xy1.x + Q->pj[zone1 - 1]->x0); } -PJ *PROJECTION(imoll_o) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(imoll_o) { + using namespace pj_imoll_o_ns; + + struct pj_imoll_o_data *Q = static_cast( + calloc(1, sizeof(struct pj_imoll_o_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; /* Setup zones */ - if (!setup_zone(P, Q, 1, pj_moll, -d140, 0, -d140) || - !setup_zone(P, Q, 2, pj_moll, -d10, 0, -d10) || - !setup_zone(P, Q, 3, pj_moll, d130, 0, d130) || - !setup_zone(P, Q, 4, pj_moll, -d110, 0, -d110) || - !setup_zone(P, Q, 5, pj_moll, d20, 0, d20) || - !setup_zone(P, Q, 6, pj_moll, d150, 0, d150)) { - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + if (!pj_imoll_o_setup_zone(P, Q, 1, pj_moll, -d140, 0, -d140) || + !pj_imoll_o_setup_zone(P, Q, 2, pj_moll, -d10, 0, -d10) || + !pj_imoll_o_setup_zone(P, Q, 3, pj_moll, d130, 0, d130) || + !pj_imoll_o_setup_zone(P, Q, 4, pj_moll, -d110, 0, -d110) || + !pj_imoll_o_setup_zone(P, Q, 5, pj_moll, d20, 0, d20) || + !pj_imoll_o_setup_zone(P, Q, 6, pj_moll, d150, 0, d150)) { + return pj_imoll_o_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } /* Adjust zones */ /* Match 2 (center) to 1 (west) */ Q->pj[1]->x0 += - compute_zone_offset(Q, 2, 1, -d90, 0.0 + EPSLN, 0.0 + EPSLN); + pj_imoll_o_compute_zone_offset(Q, 2, 1, -d90, 0.0 + EPSLN, 0.0 + EPSLN); /* Match 3 (east) to 2 (center) */ - Q->pj[2]->x0 += compute_zone_offset(Q, 3, 2, d60, 0.0 + EPSLN, 0.0 + EPSLN); + Q->pj[2]->x0 += + pj_imoll_o_compute_zone_offset(Q, 3, 2, d60, 0.0 + EPSLN, 0.0 + EPSLN); /* Match 4 (south) to 1 (north) */ - Q->pj[3]->x0 += - compute_zone_offset(Q, 4, 1, -d180, 0.0 - EPSLN, 0.0 + EPSLN); + Q->pj[3]->x0 += pj_imoll_o_compute_zone_offset(Q, 4, 1, -d180, 0.0 - EPSLN, + 0.0 + EPSLN); /* Match 5 (south) to 2 (north) */ Q->pj[4]->x0 += - compute_zone_offset(Q, 5, 2, -d60, 0.0 - EPSLN, 0.0 + EPSLN); + pj_imoll_o_compute_zone_offset(Q, 5, 2, -d60, 0.0 - EPSLN, 0.0 + EPSLN); /* Match 6 (south) to 3 (north) */ - Q->pj[5]->x0 += compute_zone_offset(Q, 6, 3, d90, 0.0 - EPSLN, 0.0 + EPSLN); + Q->pj[5]->x0 += + pj_imoll_o_compute_zone_offset(Q, 6, 3, d90, 0.0 - EPSLN, 0.0 + EPSLN); P->inv = imoll_o_s_inverse; P->fwd = imoll_o_s_forward; - P->destructor = destructor; + P->destructor = pj_imoll_o_destructor; P->es = 0.; return P; diff --git a/src/projections/imw_p.cpp b/src/projections/imw_p.cpp index 4ba108036d..83d1db3cac 100644 --- a/src/projections/imw_p.cpp +++ b/src/projections/imw_p.cpp @@ -21,7 +21,7 @@ enum Mode { } // anonymous namespace namespace { // anonymous namespace -struct pj_opaque { +struct pj_imw_p_data { double P, Pp, Q, Qp, R_1, R_2, sphi_1, sphi_2, C2; double phi_1, phi_2, lam_1; double *en; @@ -30,7 +30,7 @@ struct pj_opaque { } // anonymous namespace static int phi12(PJ *P, double *del, double *sig) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imw_p_data *Q = static_cast(P->opaque); int err = 0; if (!pj_param(P->ctx, P->params, "tlat_1").i) { @@ -57,7 +57,7 @@ static int phi12(PJ *P, double *del, double *sig) { } static PJ_XY loc_for(PJ_LP lp, PJ *P, double *yc) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imw_p_data *Q = static_cast(P->opaque); PJ_XY xy; if (lp.phi == 0.0) { @@ -113,7 +113,7 @@ static PJ_XY imw_p_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP imw_p_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_imw_p_data *Q = static_cast(P->opaque); PJ_XY t; double yc = 0.0; int i = 0; @@ -151,29 +151,29 @@ static void xy(PJ *P, double phi, double *x, double *y, double *sp, double *R) { *sp = sin(phi); *R = 1. / (tan(phi) * sqrt(1. - P->es * *sp * *sp)); - F = static_cast(P->opaque)->lam_1 * *sp; + F = static_cast(P->opaque)->lam_1 * *sp; *y = *R * (1 - cos(F)); *x = *R * sin(F); } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_imw_p_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - if (static_cast(P->opaque)->en) - free(static_cast(P->opaque)->en); + if (static_cast(P->opaque)->en) + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(imw_p) { +PJ *PJ_PROJECTION(imw_p) { double del, sig, s, t, x1, x2, T2, y1, m1, m2, y2; int err; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_imw_p_data *Q = static_cast( + calloc(1, sizeof(struct pj_imw_p_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -181,7 +181,7 @@ PJ *PROJECTION(imw_p) { if (!(Q->en = pj_enfn(P->n))) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); if ((err = phi12(P, &del, &sig)) != 0) { - return destructor(P, err); + return pj_imw_p_destructor(P, err); } if (Q->phi_2 < Q->phi_1) { /* make sure P->phi_1 most southerly */ del = Q->phi_1; @@ -229,7 +229,10 @@ PJ *PROJECTION(imw_p) { P->fwd = imw_p_e_forward; P->inv = imw_p_e_inverse; - P->destructor = destructor; + P->destructor = pj_imw_p_destructor; return P; } + +#undef TOL +#undef EPS diff --git a/src/projections/isea.cpp b/src/projections/isea.cpp index f547e7fb2f..def71f0387 100644 --- a/src/projections/isea.cpp +++ b/src/projections/isea.cpp @@ -985,14 +985,14 @@ static struct isea_pt isea_forward(struct isea_dgg *g, struct isea_geo *in) { PROJ_HEAD(isea, "Icosahedral Snyder Equal Area") "\n\tSph"; namespace { // anonymous namespace -struct pj_opaque { +struct pj_isea_data { struct isea_dgg dgg; }; } // anonymous namespace static PJ_XY isea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_isea_data *Q = static_cast(P->opaque); struct isea_pt out; struct isea_geo in; @@ -1012,10 +1012,10 @@ static PJ_XY isea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(isea) { +PJ *PJ_PROJECTION(isea) { char *opt; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_isea_data *Q = static_cast( + calloc(1, sizeof(struct pj_isea_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -1092,3 +1092,19 @@ PJ *PROJECTION(isea) { return P; } + +#undef DEG36 +#undef DEG72 +#undef DEG90 +#undef DEG108 +#undef DEG120 +#undef DEG144 +#undef DEG180 +#undef ISEA_SCALE +#undef V_LAT +#undef E_RAD +#undef F_RAD +#undef TABLE_G +#undef TABLE_H +#undef ISEA_STD_LAT +#undef ISEA_STD_LONG diff --git a/src/projections/krovak.cpp b/src/projections/krovak.cpp index 775db4548b..f823a9dc8c 100644 --- a/src/projections/krovak.cpp +++ b/src/projections/krovak.cpp @@ -93,7 +93,7 @@ PROJ_HEAD(krovak, "Krovak") "\n\tPCyl, Ell"; #define MAX_ITER 100 namespace { // anonymous namespace -struct pj_opaque { +struct pj_krovak_data { double alpha; double k; double n; @@ -104,7 +104,7 @@ struct pj_opaque { } // anonymous namespace static PJ_XY krovak_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_krovak_data *Q = static_cast(P->opaque); PJ_XY xy = {0.0, 0.0}; double gfi, u, deltav, s, d, eps, rho; @@ -139,7 +139,7 @@ static PJ_XY krovak_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ } static PJ_LP krovak_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_krovak_data *Q = static_cast(P->opaque); PJ_LP lp = {0.0, 0.0}; double u, deltav, s, d, eps, rho, fi1, xy0; @@ -191,10 +191,10 @@ static PJ_LP krovak_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(krovak) { +PJ *PJ_PROJECTION(krovak) { double u0, n0, g; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_krovak_data *Q = static_cast( + calloc(1, sizeof(struct pj_krovak_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -245,3 +245,8 @@ PJ *PROJECTION(krovak) { return P; } + +#undef EPS +#undef UQ +#undef S0 +#undef MAX_ITER diff --git a/src/projections/labrd.cpp b/src/projections/labrd.cpp index 1b1eadda80..4c5cf2a962 100644 --- a/src/projections/labrd.cpp +++ b/src/projections/labrd.cpp @@ -100,7 +100,7 @@ static PJ_LP labrd_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(labrd) { +PJ *PJ_PROJECTION(labrd) { double Az, sinp, R, N, t; struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); diff --git a/src/projections/laea.cpp b/src/projections/laea.cpp index 976ffa02ce..a7ba94a9fc 100644 --- a/src/projections/laea.cpp +++ b/src/projections/laea.cpp @@ -6,12 +6,12 @@ PROJ_HEAD(laea, "Lambert Azimuthal Equal Area") "\n\tAzi, Sph&Ell"; -namespace { // anonymous namespace +namespace pj_laea_ns { enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_laea_data { double sinb1; double cosb1; double xmf; @@ -21,7 +21,7 @@ struct pj_opaque { double dd; double rq; double *apa; - enum Mode mode; + enum pj_laea_ns::Mode mode; }; } // anonymous namespace @@ -29,7 +29,7 @@ struct pj_opaque { static PJ_XY laea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_laea_data *Q = static_cast(P->opaque); double coslam, sinlam, sinphi, q, sinb = 0.0, cosb = 0.0, b = 0.0; coslam = cos(lp.lam); @@ -37,24 +37,24 @@ static PJ_XY laea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ sinphi = sin(lp.phi); q = pj_qsfn(sinphi, P->e, P->one_es); - if (Q->mode == OBLIQ || Q->mode == EQUIT) { + if (Q->mode == pj_laea_ns::OBLIQ || Q->mode == pj_laea_ns::EQUIT) { sinb = q / Q->qp; const double cosb2 = 1. - sinb * sinb; cosb = cosb2 > 0 ? sqrt(cosb2) : 0; } switch (Q->mode) { - case OBLIQ: + case pj_laea_ns::OBLIQ: b = 1. + Q->sinb1 * sinb + Q->cosb1 * cosb * coslam; break; - case EQUIT: + case pj_laea_ns::EQUIT: b = 1. + cosb * coslam; break; - case N_POLE: + case pj_laea_ns::N_POLE: b = M_HALFPI + lp.phi; q = Q->qp - q; break; - case S_POLE: + case pj_laea_ns::S_POLE: b = lp.phi - M_HALFPI; q = Q->qp + q; break; @@ -65,23 +65,23 @@ static PJ_XY laea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ } switch (Q->mode) { - case OBLIQ: + case pj_laea_ns::OBLIQ: b = sqrt(2. / b); xy.y = Q->ymf * b * (Q->cosb1 * sinb - Q->sinb1 * cosb * coslam); goto eqcon; break; - case EQUIT: + case pj_laea_ns::EQUIT: b = sqrt(2. / (1. + cosb * coslam)); xy.y = b * sinb * Q->ymf; eqcon: xy.x = Q->xmf * b * cosb * sinlam; break; - case N_POLE: - case S_POLE: + case pj_laea_ns::N_POLE: + case pj_laea_ns::S_POLE: if (q >= 1e-15) { b = sqrt(q); xy.x = b * sinlam; - xy.y = coslam * (Q->mode == S_POLE ? b : -b); + xy.y = coslam * (Q->mode == pj_laea_ns::S_POLE ? b : -b); } else xy.x = xy.y = 0.; break; @@ -91,17 +91,17 @@ static PJ_XY laea_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_XY laea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_laea_data *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; sinphi = sin(lp.phi); cosphi = cos(lp.phi); coslam = cos(lp.lam); switch (Q->mode) { - case EQUIT: + case pj_laea_ns::EQUIT: xy.y = 1. + cosphi * coslam; goto oblcon; - case OBLIQ: + case pj_laea_ns::OBLIQ: xy.y = 1. + Q->sinb1 * sinphi + Q->cosb1 * cosphi * coslam; oblcon: if (xy.y <= EPS10) { @@ -110,20 +110,20 @@ static PJ_XY laea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ } xy.y = sqrt(2. / xy.y); xy.x = xy.y * cosphi * sin(lp.lam); - xy.y *= Q->mode == EQUIT + xy.y *= Q->mode == pj_laea_ns::EQUIT ? sinphi : Q->cosb1 * sinphi - Q->sinb1 * cosphi * coslam; break; - case N_POLE: + case pj_laea_ns::N_POLE: coslam = -coslam; PROJ_FALLTHROUGH; - case S_POLE: + case pj_laea_ns::S_POLE: if (fabs(lp.phi + P->phi0) < EPS10) { proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN); return xy; } xy.y = M_FORTPI - lp.phi * .5; - xy.y = 2. * (Q->mode == S_POLE ? cos(xy.y) : sin(xy.y)); + xy.y = 2. * (Q->mode == pj_laea_ns::S_POLE ? cos(xy.y) : sin(xy.y)); xy.x = xy.y * sin(lp.lam); xy.y *= coslam; break; @@ -133,12 +133,12 @@ static PJ_XY laea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP laea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_laea_data *Q = static_cast(P->opaque); double cCe, sCe, q, rho, ab = 0.0; switch (Q->mode) { - case EQUIT: - case OBLIQ: { + case pj_laea_ns::EQUIT: + case pj_laea_ns::OBLIQ: { xy.x /= Q->dd; xy.y *= Q->dd; rho = hypot(xy.x, xy.y); @@ -156,7 +156,7 @@ static PJ_LP laea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ cCe = cos(sCe); sCe = sin(sCe); xy.x *= sCe; - if (Q->mode == OBLIQ) { + if (Q->mode == pj_laea_ns::OBLIQ) { ab = cCe * Q->sinb1 + xy.y * sCe * Q->cosb1 / rho; xy.y = rho * Q->cosb1 * cCe - xy.y * Q->sinb1 * sCe; } else { @@ -165,10 +165,10 @@ static PJ_LP laea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ } break; } - case N_POLE: + case pj_laea_ns::N_POLE: xy.y = -xy.y; PROJ_FALLTHROUGH; - case S_POLE: + case pj_laea_ns::S_POLE: q = (xy.x * xy.x + xy.y * xy.y); if (q == 0.0) { lp.lam = 0.; @@ -176,7 +176,7 @@ static PJ_LP laea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return (lp); } ab = 1. - q / Q->qp; - if (Q->mode == S_POLE) + if (Q->mode == pj_laea_ns::S_POLE) ab = -ab; break; } @@ -187,7 +187,7 @@ static PJ_LP laea_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ static PJ_LP laea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_laea_data *Q = static_cast(P->opaque); double cosz = 0.0, rh, sinz = 0.0; rh = hypot(xy.x, xy.y); @@ -196,70 +196,71 @@ static PJ_LP laea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } lp.phi = 2. * asin(lp.phi); - if (Q->mode == OBLIQ || Q->mode == EQUIT) { + if (Q->mode == pj_laea_ns::OBLIQ || Q->mode == pj_laea_ns::EQUIT) { sinz = sin(lp.phi); cosz = cos(lp.phi); } switch (Q->mode) { - case EQUIT: + case pj_laea_ns::EQUIT: lp.phi = fabs(rh) <= EPS10 ? 0. : asin(xy.y * sinz / rh); xy.x *= sinz; xy.y = cosz * rh; break; - case OBLIQ: + case pj_laea_ns::OBLIQ: lp.phi = fabs(rh) <= EPS10 ? P->phi0 : asin(cosz * Q->sinb1 + xy.y * sinz * Q->cosb1 / rh); xy.x *= sinz * Q->cosb1; xy.y = (cosz - sin(lp.phi) * Q->sinb1) * rh; break; - case N_POLE: + case pj_laea_ns::N_POLE: xy.y = -xy.y; lp.phi = M_HALFPI - lp.phi; break; - case S_POLE: + case pj_laea_ns::S_POLE: lp.phi -= M_HALFPI; break; } - lp.lam = (xy.y == 0. && (Q->mode == EQUIT || Q->mode == OBLIQ)) + lp.lam = (xy.y == 0. && + (Q->mode == pj_laea_ns::EQUIT || Q->mode == pj_laea_ns::OBLIQ)) ? 0. : atan2(xy.x, xy.y); return (lp); } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_laea_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->apa); + free(static_cast(P->opaque)->apa); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(laea) { +PJ *PJ_PROJECTION(laea) { double t; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_laea_data *Q = static_cast( + calloc(1, sizeof(struct pj_laea_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_laea_destructor; t = fabs(P->phi0); if (t > M_HALFPI + EPS10) { proj_log_error(P, _("Invalid value for lat_0: |lat_0| should be <= 90°")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_laea_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } if (fabs(t - M_HALFPI) < EPS10) - Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + Q->mode = P->phi0 < 0. ? pj_laea_ns::S_POLE : pj_laea_ns::N_POLE; else if (fabs(t) < EPS10) - Q->mode = EQUIT; + Q->mode = pj_laea_ns::EQUIT; else - Q->mode = OBLIQ; + Q->mode = pj_laea_ns::OBLIQ; if (P->es != 0.0) { double sinphi; @@ -268,18 +269,18 @@ PJ *PROJECTION(laea) { Q->mmf = .5 / (1. - P->es); Q->apa = pj_authset(P->es); if (nullptr == Q->apa) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_laea_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); switch (Q->mode) { - case N_POLE: - case S_POLE: + case pj_laea_ns::N_POLE: + case pj_laea_ns::S_POLE: Q->dd = 1.; break; - case EQUIT: + case pj_laea_ns::EQUIT: Q->dd = 1. / (Q->rq = sqrt(.5 * Q->qp)); Q->xmf = 1.; Q->ymf = .5 * Q->qp; break; - case OBLIQ: + case pj_laea_ns::OBLIQ: Q->rq = sqrt(.5 * Q->qp); sinphi = sin(P->phi0); Q->sinb1 = pj_qsfn(sinphi, P->e, P->one_es) / Q->qp; @@ -293,7 +294,7 @@ PJ *PROJECTION(laea) { P->inv = laea_e_inverse; P->fwd = laea_e_forward; } else { - if (Q->mode == OBLIQ) { + if (Q->mode == pj_laea_ns::OBLIQ) { Q->sinb1 = sin(P->phi0); Q->cosb1 = cos(P->phi0); } diff --git a/src/projections/lagrng.cpp b/src/projections/lagrng.cpp index 6f42fe0da6..be19089c9b 100644 --- a/src/projections/lagrng.cpp +++ b/src/projections/lagrng.cpp @@ -10,7 +10,7 @@ PROJ_HEAD(lagrng, "Lagrange") "\n\tMisc Sph\n\tW="; #define TOL 1e-10 namespace { // anonymous namespace -struct pj_opaque { +struct pj_lagrng { double a1; double a2; double hrw; @@ -22,7 +22,7 @@ struct pj_opaque { static PJ_XY lagrng_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lagrng *Q = static_cast(P->opaque); double v, c; const double sin_phi = sin(lp.phi); @@ -45,7 +45,7 @@ static PJ_XY lagrng_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP lagrng_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lagrng *Q = static_cast(P->opaque); double c, x2, y2p, y2m; if (fabs(fabs(xy.y) - 2.) < TOL) { @@ -68,10 +68,10 @@ static PJ_LP lagrng_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(lagrng) { +PJ *PJ_PROJECTION(lagrng) { double sin_phi1; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_lagrng *Q = + static_cast(calloc(1, sizeof(struct pj_lagrng))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/larr.cpp b/src/projections/larr.cpp index 2d57706c5b..6bc2c55b79 100644 --- a/src/projections/larr.cpp +++ b/src/projections/larr.cpp @@ -18,7 +18,7 @@ static PJ_XY larr_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(larr) { +PJ *PJ_PROJECTION(larr) { P->es = 0; P->fwd = larr_s_forward; diff --git a/src/projections/lask.cpp b/src/projections/lask.cpp index bbae27b0fe..92ec156e86 100644 --- a/src/projections/lask.cpp +++ b/src/projections/lask.cpp @@ -29,7 +29,7 @@ static PJ_XY lask_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(lask) { +PJ *PJ_PROJECTION(lask) { P->fwd = lask_s_forward; P->es = 0.; diff --git a/src/projections/latlong.cpp b/src/projections/latlong.cpp index fc8618d87b..b70cb6afc2 100644 --- a/src/projections/latlong.cpp +++ b/src/projections/latlong.cpp @@ -89,10 +89,10 @@ static PJ *latlong_setup(PJ *P) { return P; } -PJ *PROJECTION(latlong) { return latlong_setup(P); } +PJ *PJ_PROJECTION(latlong) { return latlong_setup(P); } -PJ *PROJECTION(longlat) { return latlong_setup(P); } +PJ *PJ_PROJECTION(longlat) { return latlong_setup(P); } -PJ *PROJECTION(latlon) { return latlong_setup(P); } +PJ *PJ_PROJECTION(latlon) { return latlong_setup(P); } -PJ *PROJECTION(lonlat) { return latlong_setup(P); } +PJ *PJ_PROJECTION(lonlat) { return latlong_setup(P); } diff --git a/src/projections/lcc.cpp b/src/projections/lcc.cpp index f3f0f92736..74d40b03ab 100644 --- a/src/projections/lcc.cpp +++ b/src/projections/lcc.cpp @@ -10,7 +10,7 @@ PROJ_HEAD(lcc, "Lambert Conformal Conic") #define EPS10 1.e-10 namespace { // anonymous namespace -struct pj_opaque { +struct pj_lcc_data { double phi1; double phi2; double n; @@ -21,7 +21,7 @@ struct pj_opaque { static PJ_XY lcc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0., 0.}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lcc_data *Q = static_cast(P->opaque); double rho; if (fabs(fabs(lp.phi) - M_HALFPI) < EPS10) { @@ -43,7 +43,7 @@ static PJ_XY lcc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP lcc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0., 0.}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lcc_data *Q = static_cast(P->opaque); double rho; xy.x /= P->k0; @@ -75,11 +75,11 @@ static PJ_LP lcc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(lcc) { +PJ *PJ_PROJECTION(lcc) { double cosphi, sinphi; int secant; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_lcc_data *Q = static_cast( + calloc(1, sizeof(struct pj_lcc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -169,3 +169,5 @@ PJ *PROJECTION(lcc) { return P; } + +#undef EPS10 diff --git a/src/projections/lcca.cpp b/src/projections/lcca.cpp index 8c4d89db1f..8c43c16db4 100644 --- a/src/projections/lcca.cpp +++ b/src/projections/lcca.cpp @@ -60,7 +60,7 @@ PROJ_HEAD(lcca, "Lambert Conformal Conic Alternative") #define DEL_TOL 1e-12 namespace { // anonymous namespace -struct pj_opaque { +struct pj_lcca_data { double *en; double r0, l, M0; double C; @@ -79,7 +79,7 @@ static double fSp(double S, double C) { /* deriv of fs */ static PJ_XY lcca_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lcca_data *Q = static_cast(P->opaque); double S, r, dr; S = pj_mlfn(lp.phi, sin(lp.phi), cos(lp.phi), Q->en) - Q->M0; @@ -93,7 +93,7 @@ static PJ_XY lcca_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP lcca_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_lcca_data *Q = static_cast(P->opaque); double theta, dr, S, dif; int i; @@ -117,21 +117,21 @@ static PJ_LP lcca_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_lcca_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - free(static_cast(P->opaque)->en); + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(lcca) { +PJ *PJ_PROJECTION(lcca) { double s2p0, N0, R0, tan0; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_lcca_data *Q = static_cast( + calloc(1, sizeof(struct pj_lcca_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -143,7 +143,7 @@ PJ *PROJECTION(lcca) { if (P->phi0 == 0.) { proj_log_error( P, _("Invalid value for lat_0: it should be different from 0.")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_lcca_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } Q->l = sin(P->phi0); Q->M0 = pj_mlfn(P->phi0, Q->l, cos(P->phi0), Q->en); @@ -157,7 +157,10 @@ PJ *PROJECTION(lcca) { P->inv = lcca_e_inverse; P->fwd = lcca_e_forward; - P->destructor = destructor; + P->destructor = pj_lcca_destructor; return P; } + +#undef MAX_ITER +#undef DEL_TOL diff --git a/src/projections/loxim.cpp b/src/projections/loxim.cpp index 1d7fbd8f6e..6a37906494 100644 --- a/src/projections/loxim.cpp +++ b/src/projections/loxim.cpp @@ -11,7 +11,7 @@ PROJ_HEAD(loxim, "Loximuthal") "\n\tPCyl Sph"; #define EPS 1e-8 namespace { // anonymous namespace -struct pj_opaque { +struct pj_loxim_data { double phi1; double cosphi1; double tanphi1; @@ -20,7 +20,7 @@ struct pj_opaque { static PJ_XY loxim_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_loxim_data *Q = static_cast(P->opaque); xy.y = lp.phi - Q->phi1; if (fabs(xy.y) < EPS) @@ -37,7 +37,7 @@ static PJ_XY loxim_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP loxim_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_loxim_data *Q = static_cast(P->opaque); lp.phi = xy.y + Q->phi1; if (fabs(xy.y) < EPS) { @@ -52,9 +52,9 @@ static PJ_LP loxim_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(loxim) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(loxim) { + struct pj_loxim_data *Q = static_cast( + calloc(1, sizeof(struct pj_loxim_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -75,3 +75,5 @@ PJ *PROJECTION(loxim) { return P; } + +#undef EPS diff --git a/src/projections/mbt_fps.cpp b/src/projections/mbt_fps.cpp index 6584ba6457..4822934b14 100644 --- a/src/projections/mbt_fps.cpp +++ b/src/projections/mbt_fps.cpp @@ -45,7 +45,7 @@ static PJ_LP mbt_fps_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(mbt_fps) { +PJ *PJ_PROJECTION(mbt_fps) { P->es = 0; P->inv = mbt_fps_s_inverse; @@ -53,3 +53,12 @@ PJ *PROJECTION(mbt_fps) { return P; } + +#undef MAX_ITER +#undef LOOP_TOL +#undef C1 +#undef C2 +#undef C3 +#undef C_x +#undef C_y +#undef C1_2 diff --git a/src/projections/mbtfpp.cpp b/src/projections/mbtfpp.cpp index 79c366b246..bb32d3490e 100644 --- a/src/projections/mbtfpp.cpp +++ b/src/projections/mbtfpp.cpp @@ -54,7 +54,7 @@ static PJ_LP mbtfpp_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(mbtfpp) { +PJ *PJ_PROJECTION(mbtfpp) { P->es = 0.; P->inv = mbtfpp_s_inverse; @@ -62,3 +62,10 @@ PJ *PROJECTION(mbtfpp) { return P; } + +#undef CSy +#undef FXC +#undef FYC +#undef C23 +#undef C13 +#undef ONEEPS diff --git a/src/projections/mbtfpq.cpp b/src/projections/mbtfpq.cpp index 0189a8a32b..6134d97e93 100644 --- a/src/projections/mbtfpq.cpp +++ b/src/projections/mbtfpq.cpp @@ -67,7 +67,7 @@ static PJ_LP mbtfpq_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(mbtfpq) { +PJ *PJ_PROJECTION(mbtfpq) { P->es = 0.; P->inv = mbtfpq_s_inverse; @@ -75,3 +75,13 @@ PJ *PROJECTION(mbtfpq) { return P; } + +#undef NITER +#undef EPS +#undef ONETOL +#undef C +#undef RC +#undef FYC +#undef RYC +#undef FXC +#undef RXC diff --git a/src/projections/merc.cpp b/src/projections/merc.cpp index da4f6e993c..fcdfc64b53 100644 --- a/src/projections/merc.cpp +++ b/src/projections/merc.cpp @@ -42,7 +42,7 @@ static PJ_LP merc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(merc) { +PJ *PJ_PROJECTION(merc) { double phits = 0.0; int is_phits; @@ -73,7 +73,7 @@ PJ *PROJECTION(merc) { return P; } -PJ *PROJECTION(webmerc) { +PJ *PJ_PROJECTION(webmerc) { /* Overriding k_0 with fixed parameter */ P->k0 = 1.0; diff --git a/src/projections/mill.cpp b/src/projections/mill.cpp index 91dbf8d931..b57f84fd75 100644 --- a/src/projections/mill.cpp +++ b/src/projections/mill.cpp @@ -27,7 +27,7 @@ static PJ_LP mill_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(mill) { +PJ *PJ_PROJECTION(mill) { P->es = 0.; P->inv = mill_s_inverse; P->fwd = mill_s_forward; diff --git a/src/projections/mod_ster.cpp b/src/projections/mod_ster.cpp index 27d6df60d2..953546006e 100644 --- a/src/projections/mod_ster.cpp +++ b/src/projections/mod_ster.cpp @@ -14,7 +14,7 @@ PROJ_HEAD(gs50, "Modified Stereographic of 50 U.S.") "\n\tAzi(mod)"; #define EPSLN 1e-12 namespace { // anonymous namespace -struct pj_opaque { +struct pj_mod_ster_data { const COMPLEX *zcoeff; double cchio, schio; int n; @@ -23,7 +23,8 @@ struct pj_opaque { static PJ_XY mod_ster_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_mod_ster_data *Q = + static_cast(P->opaque); double sinlon, coslon, esphi, chi, schi, cchi, s; COMPLEX p; @@ -52,7 +53,8 @@ static PJ_XY mod_ster_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP mod_ster_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_mod_ster_data *Q = + static_cast(P->opaque); int nn; COMPLEX p, fxy, fpxy, dp; double den, rh = 0.0, z, sinz = 0.0, cosz = 0.0, chi, phi = 0.0, esphi; @@ -106,8 +108,9 @@ static PJ_LP mod_ster_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *setup(PJ *P) { /* general initialization */ - struct pj_opaque *Q = static_cast(P->opaque); +static PJ *mod_ster_setup(PJ *P) { /* general initialization */ + struct pj_mod_ster_data *Q = + static_cast(P->opaque); double esphi, chio; if (P->es != 0.0) { @@ -126,11 +129,11 @@ static PJ *setup(PJ *P) { /* general initialization */ } /* Miller Oblated Stereographic */ -PJ *PROJECTION(mil_os) { +PJ *PJ_PROJECTION(mil_os) { static const COMPLEX AB[] = {{0.924500, 0.}, {0., 0.}, {0.019430, 0.}}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_mod_ster_data *Q = static_cast( + calloc(1, sizeof(struct pj_mod_ster_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -141,16 +144,16 @@ PJ *PROJECTION(mil_os) { Q->zcoeff = AB; P->es = 0.; - return setup(P); + return mod_ster_setup(P); } /* Lee Oblated Stereographic */ -PJ *PROJECTION(lee_os) { +PJ *PJ_PROJECTION(lee_os) { static const COMPLEX AB[] = { {0.721316, 0.}, {0., 0.}, {-0.0088162, -0.00617325}}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_mod_ster_data *Q = static_cast( + calloc(1, sizeof(struct pj_mod_ster_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -161,16 +164,16 @@ PJ *PROJECTION(lee_os) { Q->zcoeff = AB; P->es = 0.; - return setup(P); + return mod_ster_setup(P); } -PJ *PROJECTION(gs48) { +PJ *PJ_PROJECTION(gs48) { static const COMPLEX /* 48 United States */ AB[] = { {0.98879, 0.}, {0., 0.}, {-0.050909, 0.}, {0., 0.}, {0.075528, 0.}}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_mod_ster_data *Q = static_cast( + calloc(1, sizeof(struct pj_mod_ster_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -182,10 +185,10 @@ PJ *PROJECTION(gs48) { P->es = 0.; P->a = 6370997.; - return setup(P); + return mod_ster_setup(P); } -PJ *PROJECTION(alsk) { +PJ *PJ_PROJECTION(alsk) { static const COMPLEX ABe[] = { /* Alaska ellipsoid */ {.9945303, 0.}, {.0052083, -.0027404}, {.0072721, .0048181}, @@ -197,8 +200,8 @@ PJ *PROJECTION(alsk) { {.0074606, .0048125}, {-.0153783, -.1968253}, {.0636871, -.1408027}, {.3660976, -.2937382}}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_mod_ster_data *Q = static_cast( + calloc(1, sizeof(struct pj_mod_ster_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -215,10 +218,10 @@ PJ *PROJECTION(alsk) { P->a = 6370997.; } - return setup(P); + return mod_ster_setup(P); } -PJ *PROJECTION(gs50) { +PJ *PJ_PROJECTION(gs50) { static const COMPLEX ABe[] = { /* GS50 ellipsoid */ {.9827497, 0.}, {.0210669, .0053804}, {-.1031415, -.0571664}, @@ -233,8 +236,8 @@ PJ *PROJECTION(gs50) { {.0007388, -.1435792}, {.0075848, -.1334108}, {-.0216473, .0776645}, {-.0225161, .0853673}}; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_mod_ster_data *Q = static_cast( + calloc(1, sizeof(struct pj_mod_ster_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -251,5 +254,7 @@ PJ *PROJECTION(gs50) { P->a = 6370997.; } - return setup(P); + return mod_ster_setup(P); } + +#undef EPSLN diff --git a/src/projections/moll.cpp b/src/projections/moll.cpp index a18a6e2758..01c6013942 100644 --- a/src/projections/moll.cpp +++ b/src/projections/moll.cpp @@ -14,14 +14,14 @@ PROJ_HEAD(wag5, "Wagner V") "\n\tPCyl, Sph"; #define LOOP_TOL 1e-7 namespace { // anonymous namespace -struct pj_opaque { +struct pj_moll_data { double C_x, C_y, C_p; }; } // anonymous namespace static PJ_XY moll_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_moll_data *Q = static_cast(P->opaque); int i; const double k = Q->C_p * sin(lp.phi); @@ -42,7 +42,7 @@ static PJ_XY moll_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP moll_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_moll_data *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx, xy.y / Q->C_y); lp.lam = xy.x / (Q->C_x * cos(lp.phi)); if (fabs(lp.lam) < M_PI) { @@ -55,7 +55,7 @@ static PJ_LP moll_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ } static PJ *setup(PJ *P, double p) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_moll_data *Q = static_cast(P->opaque); double r, sp, p2 = p + p; P->es = 0; @@ -71,9 +71,9 @@ static PJ *setup(PJ *P, double p) { return P; } -PJ *PROJECTION(moll) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(moll) { + struct pj_moll_data *Q = static_cast( + calloc(1, sizeof(struct pj_moll_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -81,9 +81,9 @@ PJ *PROJECTION(moll) { return setup(P, M_HALFPI); } -PJ *PROJECTION(wag4) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wag4) { + struct pj_moll_data *Q = static_cast( + calloc(1, sizeof(struct pj_moll_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -91,9 +91,9 @@ PJ *PROJECTION(wag4) { return setup(P, M_PI / 3.); } -PJ *PROJECTION(wag5) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wag5) { + struct pj_moll_data *Q = static_cast( + calloc(1, sizeof(struct pj_moll_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -108,3 +108,6 @@ PJ *PROJECTION(wag5) { return P; } + +#undef MAX_ITER +#undef LOOP_TOL diff --git a/src/projections/natearth.cpp b/src/projections/natearth.cpp index d98186d048..d6ad4767dc 100644 --- a/src/projections/natearth.cpp +++ b/src/projections/natearth.cpp @@ -93,10 +93,28 @@ static PJ_LP natearth_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(natearth) { +PJ *PJ_PROJECTION(natearth) { P->es = 0; P->inv = natearth_s_inverse; P->fwd = natearth_s_forward; return P; } + +#undef A0 +#undef A1 +#undef A2 +#undef A3 +#undef A4 +#undef A5 +#undef B0 +#undef B1 +#undef B2 +#undef B3 +#undef C0 +#undef C1 +#undef C2 +#undef C3 +#undef EPS +#undef MAX_Y +#undef MAX_ITER diff --git a/src/projections/natearth2.cpp b/src/projections/natearth2.cpp index 82510d83df..115b57dc84 100644 --- a/src/projections/natearth2.cpp +++ b/src/projections/natearth2.cpp @@ -90,10 +90,28 @@ static PJ_LP natearth2_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(natearth2) { +PJ *PJ_PROJECTION(natearth2) { P->es = 0; P->inv = natearth2_s_inverse; P->fwd = natearth2_s_forward; return P; } + +#undef A0 +#undef A1 +#undef A2 +#undef A3 +#undef A4 +#undef A5 +#undef B0 +#undef B1 +#undef B2 +#undef B3 +#undef C0 +#undef C1 +#undef C2 +#undef C3 +#undef EPS +#undef MAX_Y +#undef MAX_ITER diff --git a/src/projections/nell.cpp b/src/projections/nell.cpp index ca5712fbae..3fdbb41969 100644 --- a/src/projections/nell.cpp +++ b/src/projections/nell.cpp @@ -38,7 +38,7 @@ static PJ_LP nell_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(nell) { +PJ *PJ_PROJECTION(nell) { P->es = 0; P->inv = nell_s_inverse; @@ -46,3 +46,6 @@ PJ *PROJECTION(nell) { return P; } + +#undef MAX_ITER +#undef LOOP_TOL diff --git a/src/projections/nell_h.cpp b/src/projections/nell_h.cpp index 7959213554..4d58cc30ef 100644 --- a/src/projections/nell_h.cpp +++ b/src/projections/nell_h.cpp @@ -42,10 +42,13 @@ static PJ_LP nell_h_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(nell_h) { +PJ *PJ_PROJECTION(nell_h) { P->es = 0.; P->inv = nell_h_s_inverse; P->fwd = nell_h_s_forward; return P; } + +#undef NITER +#undef EPS diff --git a/src/projections/nicol.cpp b/src/projections/nicol.cpp index 667e1a766e..5ee49c891f 100644 --- a/src/projections/nicol.cpp +++ b/src/projections/nicol.cpp @@ -44,7 +44,7 @@ static PJ_XY nicol_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return (xy); } -PJ *PROJECTION(nicol) { +PJ *PJ_PROJECTION(nicol) { P->es = 0.; P->fwd = nicol_s_forward; diff --git a/src/projections/nsper.cpp b/src/projections/nsper.cpp index 4023bae2c6..95c0871e40 100644 --- a/src/projections/nsper.cpp +++ b/src/projections/nsper.cpp @@ -9,12 +9,12 @@ * of topocentric origin for the projection plan. */ -namespace { // anonymous namespace +namespace pj_nsper_ns { enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_nsper_data { double height; double sinph0; double cosph0; @@ -27,7 +27,7 @@ struct pj_opaque { double sg; double sw; double cw; - enum Mode mode; + enum pj_nsper_ns::Mode mode; int tilt; }; } // anonymous namespace @@ -39,23 +39,23 @@ PROJ_HEAD(tpers, "Tilted perspective") "\n\tAzi, Sph\n\ttilt= azi= h="; static PJ_XY nsper_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_nsper_data *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; sinphi = sin(lp.phi); cosphi = cos(lp.phi); coslam = cos(lp.lam); switch (Q->mode) { - case OBLIQ: + case pj_nsper_ns::OBLIQ: xy.y = Q->sinph0 * sinphi + Q->cosph0 * cosphi * coslam; break; - case EQUIT: + case pj_nsper_ns::EQUIT: xy.y = cosphi * coslam; break; - case S_POLE: + case pj_nsper_ns::S_POLE: xy.y = -sinphi; break; - case N_POLE: + case pj_nsper_ns::N_POLE: xy.y = sinphi; break; } @@ -66,16 +66,16 @@ static PJ_XY nsper_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ xy.y = Q->pn1 / (Q->p - xy.y); xy.x = xy.y * cosphi * sin(lp.lam); switch (Q->mode) { - case OBLIQ: + case pj_nsper_ns::OBLIQ: xy.y *= (Q->cosph0 * sinphi - Q->sinph0 * cosphi * coslam); break; - case EQUIT: + case pj_nsper_ns::EQUIT: xy.y *= sinphi; break; - case N_POLE: + case pj_nsper_ns::N_POLE: coslam = -coslam; PROJ_FALLTHROUGH; - case S_POLE: + case pj_nsper_ns::S_POLE: xy.y *= cosphi * coslam; break; } @@ -92,7 +92,7 @@ static PJ_XY nsper_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP nsper_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_nsper_data *Q = static_cast(P->opaque); double rh; if (Q->tilt) { @@ -118,21 +118,21 @@ static PJ_LP nsper_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ sinz = (Q->p - sqrt(sinz)) / (Q->pn1 / rh + rh / Q->pn1); cosz = sqrt(1. - sinz * sinz); switch (Q->mode) { - case OBLIQ: + case pj_nsper_ns::OBLIQ: lp.phi = asin(cosz * Q->sinph0 + xy.y * sinz * Q->cosph0 / rh); xy.y = (cosz - Q->sinph0 * sin(lp.phi)) * rh; xy.x *= sinz * Q->cosph0; break; - case EQUIT: + case pj_nsper_ns::EQUIT: lp.phi = asin(xy.y * sinz / rh); xy.y = cosz * rh; xy.x *= sinz; break; - case N_POLE: + case pj_nsper_ns::N_POLE: lp.phi = asin(cosz); xy.y = -xy.y; break; - case S_POLE: + case pj_nsper_ns::S_POLE: lp.phi = -asin(cosz); break; } @@ -141,17 +141,17 @@ static PJ_LP nsper_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *setup(PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); +static PJ *nsper_setup(PJ *P) { + struct pj_nsper_data *Q = static_cast(P->opaque); Q->height = pj_param(P->ctx, P->params, "dh").f; if (fabs(fabs(P->phi0) - M_HALFPI) < EPS10) - Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + Q->mode = P->phi0 < 0. ? pj_nsper_ns::S_POLE : pj_nsper_ns::N_POLE; else if (fabs(P->phi0) < EPS10) - Q->mode = EQUIT; + Q->mode = pj_nsper_ns::EQUIT; else { - Q->mode = OBLIQ; + Q->mode = pj_nsper_ns::OBLIQ; Q->sinph0 = sin(P->phi0); Q->cosph0 = cos(P->phi0); } @@ -171,23 +171,23 @@ static PJ *setup(PJ *P) { return P; } -PJ *PROJECTION(nsper) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(nsper) { + struct pj_nsper_data *Q = static_cast( + calloc(1, sizeof(struct pj_nsper_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; Q->tilt = 0; - return setup(P); + return nsper_setup(P); } -PJ *PROJECTION(tpers) { +PJ *PJ_PROJECTION(tpers) { double omega, gamma; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_nsper_data *Q = static_cast( + calloc(1, sizeof(struct pj_nsper_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -200,5 +200,7 @@ PJ *PROJECTION(tpers) { Q->cw = cos(omega); Q->sw = sin(omega); - return setup(P); + return nsper_setup(P); } + +#undef EPS10 diff --git a/src/projections/nzmg.cpp b/src/projections/nzmg.cpp index 0772a529dc..1879b7739b 100644 --- a/src/projections/nzmg.cpp +++ b/src/projections/nzmg.cpp @@ -43,14 +43,6 @@ static const COMPLEX bf[] = { {-.001541739, 0.041058560}, {-.10162907, 0.01727609}, {-.26623489, -0.36249218}, {-.6870983, -1.1651967}}; -static const double tphi[] = {1.5627014243, .5185406398, -.03333098, - -.1052906, -.0368594, .007317, - .01220, .00394, -.0013}; - -static const double tpsi[] = {.6399175073, -.1358797613, .063294409, -.02526853, - .0117879, -.0055161, .0026906, -.001333, - .00067, -.00034}; - #define Nbf 5 #define Ntpsi 9 #define Ntphi 8 @@ -61,6 +53,10 @@ static PJ_XY nzmg_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ const double *C; int i; + static const double tpsi[] = { + .6399175073, -.1358797613, .063294409, -.02526853, .0117879, + -.0055161, .0026906, -.001333, .00067, -.00034}; + lp.phi = (lp.phi - P->phi0) * RAD_TO_SEC5; i = Ntpsi; C = tpsi + i; @@ -84,6 +80,10 @@ static PJ_LP nzmg_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ double den; const double *C; + static const double tphi[] = {1.5627014243, .5185406398, -.03333098, + -.1052906, -.0368594, .007317, + .01220, .00394, -.0013}; + p.r = xy.y; p.i = xy.x; for (nn = 20; nn; --nn) { @@ -113,7 +113,7 @@ static PJ_LP nzmg_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(nzmg) { +PJ *PJ_PROJECTION(nzmg) { /* force to International major axis */ P->ra = 1. / (P->a = 6378388.0); P->lam0 = DEG_TO_RAD * 173.; @@ -126,3 +126,10 @@ PJ *PROJECTION(nzmg) { return P; } + +#undef EPSLN +#undef SEC5_TO_RAD +#undef RAD_TO_SEC5 +#undef Nbf +#undef Ntpsi +#undef Ntphi diff --git a/src/projections/ob_tran.cpp b/src/projections/ob_tran.cpp index 8df0cabffb..34510dc812 100644 --- a/src/projections/ob_tran.cpp +++ b/src/projections/ob_tran.cpp @@ -8,7 +8,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_ob_tran_data { struct PJconsts *link; double lamp; double cphip, sphip; @@ -25,7 +25,8 @@ PROJ_HEAD(ob_tran, "General Oblique Transformation") #define TOL 1e-10 static PJ_XY o_forward(PJ_LP lp, PJ *P) { /* spheroid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ob_tran_data *Q = + static_cast(P->opaque); double coslam, sinphi, cosphi; coslam = cos(lp.lam); @@ -42,7 +43,8 @@ static PJ_XY o_forward(PJ_LP lp, PJ *P) { /* spheroid */ } static PJ_XY t_forward(PJ_LP lp, PJ *P) { /* spheroid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ob_tran_data *Q = + static_cast(P->opaque); double cosphi, coslam; cosphi = cos(lp.phi); @@ -55,7 +57,8 @@ static PJ_XY t_forward(PJ_LP lp, PJ *P) { /* spheroid */ static PJ_LP o_inverse(PJ_XY xy, PJ *P) { /* spheroid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ob_tran_data *Q = + static_cast(P->opaque); double coslam, sinphi, cosphi; PJ_LP lp = Q->link->inv(xy, Q->link); @@ -75,7 +78,8 @@ static PJ_LP o_inverse(PJ_XY xy, PJ *P) { /* spheroid */ static PJ_LP t_inverse(PJ_XY xy, PJ *P) { /* spheroid */ - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ob_tran_data *Q = + static_cast(P->opaque); double cosphi, t; PJ_LP lp = Q->link->inv(xy, Q->link); @@ -94,9 +98,9 @@ static PJ *destructor(PJ *P, int errlev) { if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - if (static_cast(P->opaque)->link) - static_cast(P->opaque)->link->destructor( - static_cast(P->opaque)->link, errlev); + if (static_cast(P->opaque)->link) + static_cast(P->opaque)->link->destructor( + static_cast(P->opaque)->link, errlev); return pj_default_destructor(P, errlev); } @@ -168,13 +172,13 @@ static ARGS ob_tran_target_params(paralist *params) { return args; } -PJ *PROJECTION(ob_tran) { +PJ *PJ_PROJECTION(ob_tran) { double phip; ARGS args; PJ *R; /* projection to rotate */ - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_ob_tran_data *Q = static_cast( + calloc(1, sizeof(struct pj_ob_tran_data))); if (nullptr == Q) return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -291,3 +295,5 @@ PJ *PROJECTION(ob_tran) { return P; } + +#undef TOL diff --git a/src/projections/ocea.cpp b/src/projections/ocea.cpp index 30b40db2b8..1fe37af7b4 100644 --- a/src/projections/ocea.cpp +++ b/src/projections/ocea.cpp @@ -11,7 +11,7 @@ PROJ_HEAD(ocea, "Oblique Cylindrical Equal Area") "lonc= alpha= or\n\tlat_1= lat_2= lon_1= lon_2="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_ocea { double rok; double rtk; double sinphi; @@ -21,7 +21,7 @@ struct pj_opaque { static PJ_XY ocea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ocea *Q = static_cast(P->opaque); double t; xy.y = sin(lp.lam); t = cos(lp.lam); @@ -35,7 +35,7 @@ static PJ_XY ocea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP ocea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ocea *Q = static_cast(P->opaque); xy.y /= Q->rok; xy.x /= Q->rtk; @@ -46,11 +46,11 @@ static PJ_LP ocea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(ocea) { +PJ *PJ_PROJECTION(ocea) { double phi_1, phi_2, lam_1, lam_2, lonz, alpha; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_ocea *Q = + static_cast(calloc(1, sizeof(struct pj_ocea))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/oea.cpp b/src/projections/oea.cpp index 592c42fadb..a6bbf3e505 100644 --- a/src/projections/oea.cpp +++ b/src/projections/oea.cpp @@ -7,7 +7,7 @@ PROJ_HEAD(oea, "Oblated Equal Area") "\n\tMisc Sph\n\tn= m= theta="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_oea { double theta; double m, n; double two_r_m, two_r_n, rm, rn, hm, hn; @@ -17,7 +17,7 @@ struct pj_opaque { static PJ_XY oea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_oea *Q = static_cast(P->opaque); const double cp = cos(lp.phi); const double sp = sin(lp.phi); @@ -36,7 +36,7 @@ static PJ_XY oea_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP oea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_oea *Q = static_cast(P->opaque); const double N = Q->hn * aasin(P->ctx, xy.y * Q->rn); const double M = @@ -54,9 +54,9 @@ static PJ_LP oea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(oea) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(oea) { + struct pj_oea *Q = + static_cast(calloc(1, sizeof(struct pj_oea))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/omerc.cpp b/src/projections/omerc.cpp index ab5f08cef5..66654ba30f 100644 --- a/src/projections/omerc.cpp +++ b/src/projections/omerc.cpp @@ -34,7 +34,7 @@ PROJ_HEAD(omerc, "Oblique Mercator") "alpha= [gamma=] [no_off] lonc= or\n\t lon_1= lat_1= lon_2= lat_2="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_omerc_data { double A, B, E, AB, ArB, BrA, rB, singam, cosgam, sinrot, cosrot; double v_pole_n, v_pole_s, u_0; int no_rot; @@ -46,7 +46,7 @@ struct pj_opaque { static PJ_XY omerc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_omerc_data *Q = static_cast(P->opaque); double u, v; if (fabs(fabs(lp.phi) - M_HALFPI) > EPS) { @@ -84,7 +84,7 @@ static PJ_XY omerc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP omerc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_omerc_data *Q = static_cast(P->opaque); double u, v, Qp, Sp, Tp, Vp, Up; if (Q->no_rot) { @@ -119,14 +119,14 @@ static PJ_LP omerc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(omerc) { +PJ *PJ_PROJECTION(omerc) { double con, com, cosph0, D, F, H, L, sinph0, p, J, gamma = 0, gamma0, lamc = 0, lam1 = 0, lam2 = 0, phi1 = 0, phi2 = 0, alpha_c = 0; int alp, gam, no_off = 0; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_omerc_data *Q = static_cast( + calloc(1, sizeof(struct pj_omerc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -298,3 +298,6 @@ PJ *PROJECTION(omerc) { return P; } + +#undef TOL +#undef EPS diff --git a/src/projections/ortho.cpp b/src/projections/ortho.cpp index 54e005008b..2322b6dbb6 100644 --- a/src/projections/ortho.cpp +++ b/src/projections/ortho.cpp @@ -6,18 +6,18 @@ PROJ_HEAD(ortho, "Orthographic") "\n\tAzi, Sph&Ell"; -namespace { // anonymous namespace +namespace pj_ortho_ns { enum Mode { N_POLE = 0, S_POLE = 1, EQUIT = 2, OBLIQ = 3 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_ortho_data { double sinph0; double cosph0; double nu0; double y_shift; double y_scale; - enum Mode mode; + enum pj_ortho_ns::Mode mode; }; } // anonymous namespace @@ -33,7 +33,7 @@ static PJ_XY forward_error(PJ *P, PJ_LP lp, PJ_XY xy) { static PJ_XY ortho_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ortho_data *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; xy.x = HUGE_VAL; @@ -42,12 +42,12 @@ static PJ_XY ortho_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ cosphi = cos(lp.phi); coslam = cos(lp.lam); switch (Q->mode) { - case EQUIT: + case pj_ortho_ns::EQUIT: if (cosphi * coslam < -EPS10) return forward_error(P, lp, xy); xy.y = sin(lp.phi); break; - case OBLIQ: + case pj_ortho_ns::OBLIQ: sinphi = sin(lp.phi); // Is the point visible from the projection plane ? @@ -62,10 +62,10 @@ static PJ_XY ortho_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return forward_error(P, lp, xy); xy.y = Q->cosph0 * sinphi - Q->sinph0 * cosphi * coslam; break; - case N_POLE: + case pj_ortho_ns::N_POLE: coslam = -coslam; PROJ_FALLTHROUGH; - case S_POLE: + case pj_ortho_ns::S_POLE: if (fabs(lp.phi - P->phi0) - EPS10 > M_HALFPI) return forward_error(P, lp, xy); xy.y = cosphi * coslam; @@ -77,7 +77,7 @@ static PJ_XY ortho_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP ortho_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ortho_data *Q = static_cast(P->opaque); double sinc; lp.lam = HUGE_VAL; @@ -98,19 +98,19 @@ static PJ_LP ortho_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.lam = 0.0; } else { switch (Q->mode) { - case N_POLE: + case pj_ortho_ns::N_POLE: xy.y = -xy.y; lp.phi = acos(sinc); break; - case S_POLE: + case pj_ortho_ns::S_POLE: lp.phi = -acos(sinc); break; - case EQUIT: + case pj_ortho_ns::EQUIT: lp.phi = xy.y * sinc / rh; xy.x *= sinc; xy.y = cosc * rh; goto sinchk; - case OBLIQ: + case pj_ortho_ns::OBLIQ: lp.phi = cosc * Q->sinph0 + xy.y * sinc * Q->cosph0 / rh; xy.y = (cosc - Q->sinph0 * lp.phi) * rh; xy.x *= sinc * Q->cosph0; @@ -121,7 +121,8 @@ static PJ_LP ortho_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.phi = asin(lp.phi); break; } - lp.lam = (xy.y == 0. && (Q->mode == OBLIQ || Q->mode == EQUIT)) + lp.lam = (xy.y == 0. && (Q->mode == pj_ortho_ns::OBLIQ || + Q->mode == pj_ortho_ns::EQUIT)) ? (xy.x == 0. ? 0. : xy.x < 0. ? -M_HALFPI : M_HALFPI) @@ -132,7 +133,7 @@ static PJ_LP ortho_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ static PJ_XY ortho_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ortho_data *Q = static_cast(P->opaque); // From EPSG guidance note 7.2, March 2020, §3.3.5 Orthographic const double cosphi = cos(lp.phi); @@ -158,11 +159,11 @@ static PJ_XY ortho_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP ortho_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_ortho_data *Q = static_cast(P->opaque); const auto SQ = [](double x) { return x * x; }; - if (Q->mode == N_POLE || Q->mode == S_POLE) { + if (Q->mode == pj_ortho_ns::N_POLE || Q->mode == pj_ortho_ns::S_POLE) { // Polar case. Forward case equations can be simplified as: // xy.x = nu * cosphi * sinlam // xy.y = nu * -cosphi * coslam * sign(phi0) @@ -183,13 +184,13 @@ static PJ_LP ortho_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ lp.phi = 0; } else { lp.phi = acos(sqrt(rh2 * P->one_es / (1 - P->es * rh2))) * - (Q->mode == N_POLE ? 1 : -1); + (Q->mode == pj_ortho_ns::N_POLE ? 1 : -1); } - lp.lam = atan2(xy.x, xy.y * (Q->mode == N_POLE ? -1 : 1)); + lp.lam = atan2(xy.x, xy.y * (Q->mode == pj_ortho_ns::N_POLE ? -1 : 1)); return lp; } - if (Q->mode == EQUIT) { + if (Q->mode == pj_ortho_ns::EQUIT) { // Equatorial case. Forward case equations can be simplified as: // xy.x = nu * cosphi * sinlam // xy.y = nu * sinphi * (1 - P->es) @@ -282,9 +283,9 @@ static PJ_LP ortho_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(ortho) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(ortho) { + struct pj_ortho_data *Q = static_cast( + calloc(1, sizeof(struct pj_ortho_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -292,11 +293,11 @@ PJ *PROJECTION(ortho) { Q->sinph0 = sin(P->phi0); Q->cosph0 = cos(P->phi0); if (fabs(fabs(P->phi0) - M_HALFPI) <= EPS10) - Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + Q->mode = P->phi0 < 0. ? pj_ortho_ns::S_POLE : pj_ortho_ns::N_POLE; else if (fabs(P->phi0) > EPS10) { - Q->mode = OBLIQ; + Q->mode = pj_ortho_ns::OBLIQ; } else - Q->mode = EQUIT; + Q->mode = pj_ortho_ns::EQUIT; if (P->es == 0) { P->inv = ortho_s_inverse; P->fwd = ortho_s_forward; @@ -310,3 +311,5 @@ PJ *PROJECTION(ortho) { return P; } + +#undef EPS10 diff --git a/src/projections/patterson.cpp b/src/projections/patterson.cpp index 172becf38d..088971f06d 100644 --- a/src/projections/patterson.cpp +++ b/src/projections/patterson.cpp @@ -110,10 +110,22 @@ static PJ_LP patterson_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(patterson) { +PJ *PJ_PROJECTION(patterson) { P->es = 0.; P->inv = patterson_s_inverse; P->fwd = patterson_s_forward; return P; } + +#undef K1 +#undef K2 +#undef K3 +#undef K4 +#undef C1 +#undef C2 +#undef C3 +#undef C4 +#undef EPS11 +#undef MAX_Y +#undef MAX_ITER diff --git a/src/projections/poly.cpp b/src/projections/poly.cpp index 3c0c626df4..8e67925a62 100644 --- a/src/projections/poly.cpp +++ b/src/projections/poly.cpp @@ -10,7 +10,7 @@ PROJ_HEAD(poly, "Polyconic (American)") "\n\tConic, Sph&Ell"; namespace { // anonymous namespace -struct pj_opaque { +struct pj_poly_data { double ml0; double *en; }; @@ -24,7 +24,7 @@ struct pj_opaque { static PJ_XY poly_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_poly_data *Q = static_cast(P->opaque); double ms, sp, cp; if (fabs(lp.phi) <= TOL) { @@ -45,7 +45,7 @@ static PJ_XY poly_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_XY poly_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_poly_data *Q = static_cast(P->opaque); if (fabs(lp.phi) <= TOL) { xy.x = lp.lam; @@ -62,7 +62,7 @@ static PJ_XY poly_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP poly_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_poly_data *Q = static_cast(P->opaque); xy.y += Q->ml0; if (fabs(xy.y) <= TOL) { @@ -138,27 +138,27 @@ static PJ_LP poly_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_poly_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - if (static_cast(P->opaque)->en) - free(static_cast(P->opaque)->en); + if (static_cast(P->opaque)->en) + free(static_cast(P->opaque)->en); return pj_default_destructor(P, errlev); } -PJ *PROJECTION(poly) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(poly) { + struct pj_poly_data *Q = static_cast( + calloc(1, sizeof(struct pj_poly_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_poly_destructor; if (P->es != 0.0) { if (!(Q->en = pj_enfn(P->n))) @@ -174,3 +174,9 @@ PJ *PROJECTION(poly) { return P; } + +#undef TOL +#undef CONV +#undef N_ITER +#undef I_ITER +#undef ITOL diff --git a/src/projections/putp2.cpp b/src/projections/putp2.cpp index cb64ff4200..7e45dccff7 100644 --- a/src/projections/putp2.cpp +++ b/src/projections/putp2.cpp @@ -50,10 +50,17 @@ static PJ_LP putp2_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(putp2) { +PJ *PJ_PROJECTION(putp2) { P->es = 0.; P->inv = putp2_s_inverse; P->fwd = putp2_s_forward; return P; } + +#undef C_x +#undef C_y +#undef C_p +#undef EPS +#undef NITER +#undef PI_DIV_3 diff --git a/src/projections/putp3.cpp b/src/projections/putp3.cpp index d1ecdb9fee..d2f05d8c50 100644 --- a/src/projections/putp3.cpp +++ b/src/projections/putp3.cpp @@ -5,7 +5,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_putp3_data { double A; }; } // anonymous namespace @@ -19,9 +19,9 @@ PROJ_HEAD(putp3p, "Putnins P3'") "\n\tPCyl, Sph"; static PJ_XY putp3_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - xy.x = - C * lp.lam * - (1. - static_cast(P->opaque)->A * lp.phi * lp.phi); + xy.x = C * lp.lam * + (1. - static_cast(P->opaque)->A * lp.phi * + lp.phi); xy.y = C * lp.phi; return xy; @@ -31,15 +31,16 @@ static PJ_LP putp3_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; lp.phi = xy.y / C; - lp.lam = xy.x / (C * (1. - static_cast(P->opaque)->A * - lp.phi * lp.phi)); + lp.lam = + xy.x / (C * (1. - static_cast(P->opaque)->A * + lp.phi * lp.phi)); return lp; } -PJ *PROJECTION(putp3) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp3) { + struct pj_putp3_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp3_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -53,9 +54,9 @@ PJ *PROJECTION(putp3) { return P; } -PJ *PROJECTION(putp3p) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp3p) { + struct pj_putp3_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp3_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -68,3 +69,6 @@ PJ *PROJECTION(putp3p) { return P; } + +#undef C +#undef RPISQ diff --git a/src/projections/putp4p.cpp b/src/projections/putp4p.cpp index 8783e0e831..51f889125f 100644 --- a/src/projections/putp4p.cpp +++ b/src/projections/putp4p.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_putp4p_data { double C_x, C_y; }; } // anonymous namespace @@ -17,7 +17,7 @@ PROJ_HEAD(weren, "Werenskiold I") "\n\tPCyl, Sph"; static PJ_XY putp4p_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp4p_data *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx, 0.883883476 * sin(lp.phi)); xy.x = Q->C_x * lp.lam * cos(lp.phi); @@ -30,7 +30,7 @@ static PJ_XY putp4p_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP putp4p_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp4p_data *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx, xy.y / Q->C_y); lp.lam = xy.x * cos(lp.phi) / Q->C_x; @@ -41,9 +41,9 @@ static PJ_LP putp4p_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(putp4p) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp4p) { + struct pj_putp4p_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp4p_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -58,9 +58,9 @@ PJ *PROJECTION(putp4p) { return P; } -PJ *PROJECTION(weren) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(weren) { + struct pj_putp4p_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp4p_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/putp5.cpp b/src/projections/putp5.cpp index f74f1ee54f..70acb8dca1 100644 --- a/src/projections/putp5.cpp +++ b/src/projections/putp5.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_putp5_data { double A, B; }; } // anonymous namespace @@ -20,7 +20,7 @@ PROJ_HEAD(putp5p, "Putnins P5'") "\n\tPCyl, Sph"; static PJ_XY putp5_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp5_data *Q = static_cast(P->opaque); xy.x = C * lp.lam * (Q->A - Q->B * sqrt(1. + D * lp.phi * lp.phi)); xy.y = C * lp.phi; @@ -30,7 +30,7 @@ static PJ_XY putp5_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP putp5_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp5_data *Q = static_cast(P->opaque); lp.phi = xy.y / C; lp.lam = xy.x / (C * (Q->A - Q->B * sqrt(1. + D * lp.phi * lp.phi))); @@ -38,9 +38,9 @@ static PJ_LP putp5_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(putp5) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp5) { + struct pj_putp5_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp5_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -55,9 +55,9 @@ PJ *PROJECTION(putp5) { return P; } -PJ *PROJECTION(putp5p) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp5p) { + struct pj_putp5_data *Q = static_cast( + calloc(1, sizeof(struct pj_putp5_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -71,3 +71,6 @@ PJ *PROJECTION(putp5p) { return P; } + +#undef C +#undef D diff --git a/src/projections/putp6.cpp b/src/projections/putp6.cpp index 6ccffebe96..50d9e270ea 100644 --- a/src/projections/putp6.cpp +++ b/src/projections/putp6.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_putp6 { double C_x, C_y, A, B, D; }; } // anonymous namespace @@ -21,7 +21,7 @@ PROJ_HEAD(putp6p, "Putnins P6'") "\n\tPCyl, Sph"; static PJ_XY putp6_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp6 *Q = static_cast(P->opaque); int i; const double p = Q->B * sin(lp.phi); @@ -53,7 +53,7 @@ static PJ_XY putp6_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP putp6_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_putp6 *Q = static_cast(P->opaque); double r; lp.phi = xy.y / Q->C_y; @@ -64,9 +64,9 @@ static PJ_LP putp6_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(putp6) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp6) { + struct pj_putp6 *Q = + static_cast(calloc(1, sizeof(struct pj_putp6))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -84,9 +84,9 @@ PJ *PROJECTION(putp6) { return P; } -PJ *PROJECTION(putp6p) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(putp6p) { + struct pj_putp6 *Q = + static_cast(calloc(1, sizeof(struct pj_putp6))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -103,3 +103,7 @@ PJ *PROJECTION(putp6p) { return P; } + +#undef EPS +#undef NITER +#undef CON_POLE diff --git a/src/projections/qsc.cpp b/src/projections/qsc.cpp index a9124feca5..a41dadba81 100644 --- a/src/projections/qsc.cpp +++ b/src/projections/qsc.cpp @@ -34,8 +34,9 @@ * * Furthermore, the projection is originally only defined for theta angles * between (-1/4 * PI) and (+1/4 * PI) on the current cube face. This area - * of definition is named AREA_0 in the projection code below. The other - * three areas of a cube face are handled by rotation of AREA_0. + * of definition is named pj_qsc_ns::AREA_0 in the projection code below. The + * other three areas of a cube face are handled by rotation of + * pj_qsc_ns::AREA_0. */ #define PJ_LIB_ @@ -47,7 +48,7 @@ #include "proj_internal.h" /* The six cube faces. */ -namespace { // anonymous namespace +namespace pj_qsc_ns { enum Face { FACE_FRONT = 0, FACE_RIGHT = 1, @@ -56,11 +57,11 @@ enum Face { FACE_TOP = 4, FACE_BOTTOM = 5 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { - enum Face face; +struct pj_qsc_data { + enum pj_qsc_ns::Face face; double a_squared; double b; double one_minus_f; @@ -73,31 +74,31 @@ PROJ_HEAD(qsc, "Quadrilateralized Spherical Cube") "\n\tAzi, Sph"; /* The four areas on a cube face. AREA_0 is the area of definition, * the other three areas are counted counterclockwise. */ -namespace { // anonymous namespace +namespace pj_qsc_ns { enum Area { AREA_0 = 0, AREA_1 = 1, AREA_2 = 2, AREA_3 = 3 }; -} // anonymous namespace +} /* Helper function for forward projection: compute the theta angle * and determine the area number. */ static double qsc_fwd_equat_face_theta(double phi, double y, double x, - enum Area *area) { + enum pj_qsc_ns::Area *area) { double theta; if (phi < EPS10) { - *area = AREA_0; + *area = pj_qsc_ns::AREA_0; theta = 0.0; } else { theta = atan2(y, x); if (fabs(theta) <= M_FORTPI) { - *area = AREA_0; + *area = pj_qsc_ns::AREA_0; } else if (theta > M_FORTPI && theta <= M_HALFPI + M_FORTPI) { - *area = AREA_1; + *area = pj_qsc_ns::AREA_1; theta -= M_HALFPI; } else if (theta > M_HALFPI + M_FORTPI || theta <= -(M_HALFPI + M_FORTPI)) { - *area = AREA_2; + *area = pj_qsc_ns::AREA_2; theta = (theta >= 0.0 ? theta - M_PI : theta + M_PI); } else { - *area = AREA_3; + *area = pj_qsc_ns::AREA_3; theta += M_HALFPI; } } @@ -117,11 +118,11 @@ static double qsc_shift_longitude_origin(double longitude, double offset) { static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_qsc_data *Q = static_cast(P->opaque); double lat, longitude; double theta, phi; double t, mu; /* nu; */ - enum Area area; + enum pj_qsc_ns::Area area; /* Convert the geodetic latitude to a geocentric latitude. * This corresponds to the shift from the ellipsoid to the sphere @@ -138,37 +139,37 @@ static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ * directly from phi, lam. For the other faces, we must use * unit sphere cartesian coordinates as an intermediate step. */ longitude = lp.lam; - if (Q->face == FACE_TOP) { + if (Q->face == pj_qsc_ns::FACE_TOP) { phi = M_HALFPI - lat; if (longitude >= M_FORTPI && longitude <= M_HALFPI + M_FORTPI) { - area = AREA_0; + area = pj_qsc_ns::AREA_0; theta = longitude - M_HALFPI; } else if (longitude > M_HALFPI + M_FORTPI || longitude <= -(M_HALFPI + M_FORTPI)) { - area = AREA_1; + area = pj_qsc_ns::AREA_1; theta = (longitude > 0.0 ? longitude - M_PI : longitude + M_PI); } else if (longitude > -(M_HALFPI + M_FORTPI) && longitude <= -M_FORTPI) { - area = AREA_2; + area = pj_qsc_ns::AREA_2; theta = longitude + M_HALFPI; } else { - area = AREA_3; + area = pj_qsc_ns::AREA_3; theta = longitude; } - } else if (Q->face == FACE_BOTTOM) { + } else if (Q->face == pj_qsc_ns::FACE_BOTTOM) { phi = M_HALFPI + lat; if (longitude >= M_FORTPI && longitude <= M_HALFPI + M_FORTPI) { - area = AREA_0; + area = pj_qsc_ns::AREA_0; theta = -longitude + M_HALFPI; } else if (longitude < M_FORTPI && longitude >= -M_FORTPI) { - area = AREA_1; + area = pj_qsc_ns::AREA_1; theta = -longitude; } else if (longitude < -M_FORTPI && longitude >= -(M_HALFPI + M_FORTPI)) { - area = AREA_2; + area = pj_qsc_ns::AREA_2; theta = -longitude - M_HALFPI; } else { - area = AREA_3; + area = pj_qsc_ns::AREA_3; theta = (longitude > 0.0 ? -longitude + M_PI : -longitude - M_PI); } } else { @@ -176,11 +177,11 @@ static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ double sinlat, coslat; double sinlon, coslon; - if (Q->face == FACE_RIGHT) { + if (Q->face == pj_qsc_ns::FACE_RIGHT) { longitude = qsc_shift_longitude_origin(longitude, +M_HALFPI); - } else if (Q->face == FACE_BACK) { + } else if (Q->face == pj_qsc_ns::FACE_BACK) { longitude = qsc_shift_longitude_origin(longitude, +M_PI); - } else if (Q->face == FACE_LEFT) { + } else if (Q->face == pj_qsc_ns::FACE_LEFT) { longitude = qsc_shift_longitude_origin(longitude, -M_HALFPI); } sinlat = sin(lat); @@ -191,22 +192,22 @@ static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ r = coslat * sinlon; s = sinlat; - if (Q->face == FACE_FRONT) { + if (Q->face == pj_qsc_ns::FACE_FRONT) { phi = acos(q); theta = qsc_fwd_equat_face_theta(phi, s, r, &area); - } else if (Q->face == FACE_RIGHT) { + } else if (Q->face == pj_qsc_ns::FACE_RIGHT) { phi = acos(r); theta = qsc_fwd_equat_face_theta(phi, s, -q, &area); - } else if (Q->face == FACE_BACK) { + } else if (Q->face == pj_qsc_ns::FACE_BACK) { phi = acos(-q); theta = qsc_fwd_equat_face_theta(phi, s, -r, &area); - } else if (Q->face == FACE_LEFT) { + } else if (Q->face == pj_qsc_ns::FACE_LEFT) { phi = acos(-r); theta = qsc_fwd_equat_face_theta(phi, s, q, &area); } else { /* Impossible */ phi = theta = 0.0; - area = AREA_0; + area = pj_qsc_ns::AREA_0; } } @@ -220,11 +221,11 @@ static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ /* nu = atan(t); We don't really need nu, just t, see below. */ /* Apply the result to the real area. */ - if (area == AREA_1) { + if (area == pj_qsc_ns::AREA_1) { mu += M_HALFPI; - } else if (area == AREA_2) { + } else if (area == pj_qsc_ns::AREA_2) { mu += M_PI; - } else if (area == AREA_3) { + } else if (area == pj_qsc_ns::AREA_3) { mu += M_PI_HALFPI; } @@ -237,7 +238,7 @@ static PJ_XY qsc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_qsc_data *Q = static_cast(P->opaque); double mu, nu, cosmu, tannu; double tantheta, theta, cosphi, phi; double t; @@ -248,15 +249,15 @@ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ nu = atan(sqrt(xy.x * xy.x + xy.y * xy.y)); mu = atan2(xy.y, xy.x); if (xy.x >= 0.0 && xy.x >= fabs(xy.y)) { - area = AREA_0; + area = pj_qsc_ns::AREA_0; } else if (xy.y >= 0.0 && xy.y >= fabs(xy.x)) { - area = AREA_1; + area = pj_qsc_ns::AREA_1; mu -= M_HALFPI; } else if (xy.x < 0.0 && -xy.x >= fabs(xy.y)) { - area = AREA_2; + area = pj_qsc_ns::AREA_2; mu = (mu < 0.0 ? mu + M_PI : mu - M_PI); } else { - area = AREA_3; + area = pj_qsc_ns::AREA_3; mu += M_HALFPI; } @@ -282,28 +283,28 @@ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ * For the top and bottom face, we can compute phi and lam directly. * For the other faces, we must use unit sphere cartesian coordinates * as an intermediate step. */ - if (Q->face == FACE_TOP) { + if (Q->face == pj_qsc_ns::FACE_TOP) { phi = acos(cosphi); lp.phi = M_HALFPI - phi; - if (area == AREA_0) { + if (area == pj_qsc_ns::AREA_0) { lp.lam = theta + M_HALFPI; - } else if (area == AREA_1) { + } else if (area == pj_qsc_ns::AREA_1) { lp.lam = (theta < 0.0 ? theta + M_PI : theta - M_PI); - } else if (area == AREA_2) { + } else if (area == pj_qsc_ns::AREA_2) { lp.lam = theta - M_HALFPI; - } else /* area == AREA_3 */ { + } else /* area == pj_qsc_ns::AREA_3 */ { lp.lam = theta; } - } else if (Q->face == FACE_BOTTOM) { + } else if (Q->face == pj_qsc_ns::FACE_BOTTOM) { phi = acos(cosphi); lp.phi = phi - M_HALFPI; - if (area == AREA_0) { + if (area == pj_qsc_ns::AREA_0) { lp.lam = -theta + M_HALFPI; - } else if (area == AREA_1) { + } else if (area == pj_qsc_ns::AREA_1) { lp.lam = -theta; - } else if (area == AREA_2) { + } else if (area == pj_qsc_ns::AREA_2) { lp.lam = -theta - M_HALFPI; - } else /* area == AREA_3 */ { + } else /* area == pj_qsc_ns::AREA_3 */ { lp.lam = (theta < 0.0 ? -theta - M_PI : -theta + M_PI); } } else { @@ -323,27 +324,27 @@ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ r = sqrt(1.0 - t); } /* Rotate q,r,s into the correct area. */ - if (area == AREA_1) { + if (area == pj_qsc_ns::AREA_1) { t = r; r = -s; s = t; - } else if (area == AREA_2) { + } else if (area == pj_qsc_ns::AREA_2) { r = -r; s = -s; - } else if (area == AREA_3) { + } else if (area == pj_qsc_ns::AREA_3) { t = r; r = s; s = -t; } /* Rotate q,r,s into the correct cube face. */ - if (Q->face == FACE_RIGHT) { + if (Q->face == pj_qsc_ns::FACE_RIGHT) { t = q; q = -r; r = t; - } else if (Q->face == FACE_BACK) { + } else if (Q->face == pj_qsc_ns::FACE_BACK) { q = -q; r = -r; - } else if (Q->face == FACE_LEFT) { + } else if (Q->face == pj_qsc_ns::FACE_LEFT) { t = q; q = r; r = -t; @@ -351,11 +352,11 @@ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ /* Now compute phi and lam from the unit sphere coordinates. */ lp.phi = acos(-s) - M_HALFPI; lp.lam = atan2(r, q); - if (Q->face == FACE_RIGHT) { + if (Q->face == pj_qsc_ns::FACE_RIGHT) { lp.lam = qsc_shift_longitude_origin(lp.lam, -M_HALFPI); - } else if (Q->face == FACE_BACK) { + } else if (Q->face == pj_qsc_ns::FACE_BACK) { lp.lam = qsc_shift_longitude_origin(lp.lam, -M_PI); - } else if (Q->face == FACE_LEFT) { + } else if (Q->face == pj_qsc_ns::FACE_LEFT) { lp.lam = qsc_shift_longitude_origin(lp.lam, +M_HALFPI); } } @@ -376,9 +377,9 @@ static PJ_LP qsc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PROJECTION(qsc) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(qsc) { + struct pj_qsc_data *Q = static_cast( + calloc(1, sizeof(struct pj_qsc_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -387,15 +388,16 @@ PJ *PROJECTION(qsc) { P->fwd = qsc_e_forward; /* Determine the cube face from the center of projection. */ if (P->phi0 >= M_HALFPI - M_FORTPI / 2.0) { - Q->face = FACE_TOP; + Q->face = pj_qsc_ns::FACE_TOP; } else if (P->phi0 <= -(M_HALFPI - M_FORTPI / 2.0)) { - Q->face = FACE_BOTTOM; + Q->face = pj_qsc_ns::FACE_BOTTOM; } else if (fabs(P->lam0) <= M_FORTPI) { - Q->face = FACE_FRONT; + Q->face = pj_qsc_ns::FACE_FRONT; } else if (fabs(P->lam0) <= M_HALFPI + M_FORTPI) { - Q->face = (P->lam0 > 0.0 ? FACE_RIGHT : FACE_LEFT); + Q->face = + (P->lam0 > 0.0 ? pj_qsc_ns::FACE_RIGHT : pj_qsc_ns::FACE_LEFT); } else { - Q->face = FACE_BACK; + Q->face = pj_qsc_ns::FACE_BACK; } /* Fill in useful values for the ellipsoid <-> sphere shift * described in [LK12]. */ @@ -408,3 +410,5 @@ PJ *PROJECTION(qsc) { return P; } + +#undef EPS10 diff --git a/src/projections/robin.cpp b/src/projections/robin.cpp index 5f8eb81d13..af0dc2f9ef 100644 --- a/src/projections/robin.cpp +++ b/src/projections/robin.cpp @@ -153,7 +153,7 @@ static PJ_LP robin_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(robin) { +PJ *PJ_PROJECTION(robin) { P->es = 0.; P->inv = robin_s_inverse; P->fwd = robin_s_forward; diff --git a/src/projections/rouss.cpp b/src/projections/rouss.cpp index 590c022316..0f26c85b05 100644 --- a/src/projections/rouss.cpp +++ b/src/projections/rouss.cpp @@ -32,7 +32,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_rouss_data { double s0; double A1, A2, A3, A4, A5, A6; double B1, B2, B3, B4, B5, B6, B7, B8; @@ -45,7 +45,7 @@ PROJ_HEAD(rouss, "Roussilhe Stereographic") "\n\tAzi, Ell"; static PJ_XY rouss_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_rouss_data *Q = static_cast(P->opaque); double s, al, cp, sp, al2, s2; cp = cos(lp.phi); @@ -67,7 +67,7 @@ static PJ_XY rouss_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP rouss_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_rouss_data *Q = static_cast(P->opaque); double s, al, x = xy.x / P->k0, y = xy.y / P->k0, x2, y2; x2 = x * x; @@ -86,24 +86,24 @@ static PJ_LP rouss_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_rouss_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; if (nullptr == P->opaque) return pj_default_destructor(P, errlev); - if (static_cast(P->opaque)->en) - free(static_cast(P->opaque)->en); + if (static_cast(P->opaque)->en) + free(static_cast(P->opaque)->en); return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); } -PJ *PROJECTION(rouss) { +PJ *PJ_PROJECTION(rouss) { double N0, es2, t, t2, R_R0_2, R_R0_4; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_rouss_data *Q = static_cast( + calloc(1, sizeof(struct pj_rouss_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -153,7 +153,7 @@ PJ *PROJECTION(rouss) { P->fwd = rouss_e_forward; P->inv = rouss_e_inverse; - P->destructor = destructor; + P->destructor = pj_rouss_destructor; return P; } diff --git a/src/projections/rpoly.cpp b/src/projections/rpoly.cpp index 9d0a043c54..4d89cb3ad4 100644 --- a/src/projections/rpoly.cpp +++ b/src/projections/rpoly.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_rpoly_data { double phi1; double fxa; double fxb; @@ -22,7 +22,7 @@ PROJ_HEAD(rpoly, "Rectangular Polyconic") static PJ_XY rpoly_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_rpoly_data *Q = static_cast(P->opaque); double fa; if (Q->mode) @@ -41,9 +41,9 @@ static PJ_XY rpoly_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(rpoly) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(rpoly) { + struct pj_rpoly_data *Q = static_cast( + calloc(1, sizeof(struct pj_rpoly_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -59,3 +59,5 @@ PJ *PROJECTION(rpoly) { return P; } + +#undef EPS diff --git a/src/projections/s2.cpp b/src/projections/s2.cpp index d2633f9384..337fe4517a 100644 --- a/src/projections/s2.cpp +++ b/src/projections/s2.cpp @@ -83,7 +83,7 @@ static std::map stringToS2ProjectionType{ {"none", NoUVtoST}}; namespace { // anonymous namespace -struct pj_opaque { +struct pj_s2 { enum Face face; double a_squared; double one_minus_f; @@ -336,7 +336,7 @@ inline bool UVtoSphereXYZ(int face, double u, double v, PJ_XYZ *xyz) { // // ============================================ static PJ_XY s2_forward(PJ_LP lp, PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_s2 *Q = static_cast(P->opaque); double lat; /* Convert the geodetic latitude to a geocentric latitude. @@ -372,7 +372,7 @@ static PJ_XY s2_forward(PJ_LP lp, PJ *P) { static PJ_LP s2_inverse(PJ_XY xy, PJ *P) { PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_s2 *Q = static_cast(P->opaque); // Do the S2 projections to get from s,t to u,v to x,y,z double u = STtoUV(xy.x, Q->UVtoST); @@ -405,9 +405,9 @@ static PJ_LP s2_inverse(PJ_XY xy, PJ *P) { return lp; } -PJ *PROJECTION(s2) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(s2) { + struct pj_s2 *Q = + static_cast(calloc(1, sizeof(struct pj_s2))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/sch.cpp b/src/projections/sch.cpp index 2851947ebd..f0f7638665 100644 --- a/src/projections/sch.cpp +++ b/src/projections/sch.cpp @@ -42,7 +42,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_sch_data { double plat; /*Peg Latitude */ double plon; /*Peg Longitude*/ double phdg; /*Peg heading */ @@ -59,7 +59,7 @@ PROJ_HEAD(sch, "Spherical Cross-track Height") "\n\tMisc\n\tplat_0= plon_0= phdg_0= [h_0=]"; static PJ_LPZ sch_inverse3d(PJ_XYZ xyz, PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sch_data *Q = static_cast(P->opaque); PJ_LPZ lpz; lpz.lam = xyz.x * (P->a / Q->rcurv); @@ -85,7 +85,7 @@ static PJ_LPZ sch_inverse3d(PJ_XYZ xyz, PJ *P) { } static PJ_XYZ sch_forward3d(PJ_LPZ lpz, PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sch_data *Q = static_cast(P->opaque); /* Convert lat long to geocentric coordinates */ PJ_XYZ xyz = Q->cart->fwd3d(lpz, Q->cart); @@ -114,11 +114,11 @@ static PJ_XYZ sch_forward3d(PJ_LPZ lpz, PJ *P) { return xyz; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_sch_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; - auto Q = static_cast(P->opaque); + auto Q = static_cast(P->opaque); if (Q) { if (Q->cart) Q->cart->destructor(Q->cart, errlev); @@ -129,14 +129,14 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -static PJ *setup(PJ *P) { /* general initialization */ - struct pj_opaque *Q = static_cast(P->opaque); +static PJ *pj_sch_setup(PJ *P) { /* general initialization */ + struct pj_sch_data *Q = static_cast(P->opaque); /* Setup original geocentric system */ // Pass a dummy ellipsoid definition that will be overridden just afterwards Q->cart = proj_create(P->ctx, "+proj=cart +a=1"); if (Q->cart == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_sch_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); /* inherit ellipsoid definition from P to Q->cart */ pj_inherit_ellipsoid_def(P, Q->cart); @@ -160,7 +160,7 @@ static PJ *setup(PJ *P) { /* general initialization */ /* Set up local sphere at the given peg point */ Q->cart_sph = proj_create(P->ctx, "+proj=cart +a=1"); if (Q->cart_sph == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_sch_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); pj_calc_ellipsoid_params(Q->cart_sph, Q->rcurv, 0); /* Set up the transformation matrices */ @@ -188,13 +188,13 @@ static PJ *setup(PJ *P) { /* general initialization */ return P; } -PJ *PROJECTION(sch) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(sch) { + struct pj_sch_data *Q = static_cast( + calloc(1, sizeof(struct pj_sch_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - P->destructor = destructor; + P->destructor = pj_sch_destructor; Q->h0 = 0.0; @@ -226,5 +226,5 @@ PJ *PROJECTION(sch) { if (pj_param(P->ctx, P->params, "th_0").i) Q->h0 = pj_param(P->ctx, P->params, "dh_0").f; - return setup(P); + return pj_sch_setup(P); } diff --git a/src/projections/sconics.cpp b/src/projections/sconics.cpp index 653b4c5023..c2e10ffe98 100644 --- a/src/projections/sconics.cpp +++ b/src/projections/sconics.cpp @@ -4,7 +4,7 @@ #include #include -namespace { // anonymous namespace +namespace pj_sconics_ns { enum Type { EULER = 0, MURD1 = 1, @@ -14,16 +14,16 @@ enum Type { TISSOT = 5, VITK1 = 6 }; -} // anonymous namespace +} namespace { // anonymous namespace -struct pj_opaque { +struct pj_sconics_data { double n; double rho_c; double rho_0; double sig; double c1, c2; - enum Type type; + enum pj_sconics_ns::Type type; }; } // anonymous namespace @@ -55,7 +55,7 @@ static int phi12(PJ *P, double *del) { p2 = pj_param(P->ctx, P->params, "rlat_2").f; *del = 0.5 * (p2 - p1); const double sig = 0.5 * (p2 + p1); - static_cast(P->opaque)->sig = sig; + static_cast(P->opaque)->sig = sig; err = (fabs(*del) < EPS || fabs(sig) < EPS) ? PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE : 0; @@ -70,14 +70,15 @@ static int phi12(PJ *P, double *del) { static PJ_XY sconics_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sconics_data *Q = + static_cast(P->opaque); double rho; switch (Q->type) { - case MURD2: + case pj_sconics_ns::MURD2: rho = Q->rho_c + tan(Q->sig - lp.phi); break; - case PCONIC: + case pj_sconics_ns::PCONIC: rho = Q->c2 * (Q->c1 - tan(lp.phi - Q->sig)); break; default: @@ -94,7 +95,8 @@ static PJ_LP sconics_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, (and ellipsoidal?) inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sconics_data *Q = + static_cast(P->opaque); double rho; xy.y = Q->rho_0 - xy.y; @@ -108,10 +110,10 @@ sconics_s_inverse(PJ_XY xy, lp.lam = atan2(xy.x, xy.y) / Q->n; switch (Q->type) { - case PCONIC: + case pj_sconics_ns::PCONIC: lp.phi = atan(Q->c1 - rho / Q->c2) + Q->sig; break; - case MURD2: + case pj_sconics_ns::MURD2: lp.phi = Q->sig - atan(rho - Q->rho_c); break; default: @@ -120,11 +122,11 @@ sconics_s_inverse(PJ_XY xy, return lp; } -static PJ *setup(PJ *P, enum Type type) { +static PJ *pj_sconics_setup(PJ *P, enum pj_sconics_ns::Type type) { double del, cs; int err; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_sconics_data *Q = static_cast( + calloc(1, sizeof(struct pj_sconics_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -136,39 +138,39 @@ static PJ *setup(PJ *P, enum Type type) { switch (Q->type) { - case TISSOT: + case pj_sconics_ns::TISSOT: Q->n = sin(Q->sig); cs = cos(del); Q->rho_c = Q->n / cs + cs / Q->n; Q->rho_0 = sqrt((Q->rho_c - 2 * sin(P->phi0)) / Q->n); break; - case MURD1: + case pj_sconics_ns::MURD1: Q->rho_c = sin(del) / (del * tan(Q->sig)) + Q->sig; Q->rho_0 = Q->rho_c - P->phi0; Q->n = sin(Q->sig); break; - case MURD2: + case pj_sconics_ns::MURD2: Q->rho_c = (cs = sqrt(cos(del))) / tan(Q->sig); Q->rho_0 = Q->rho_c + tan(Q->sig - P->phi0); Q->n = sin(Q->sig) * cs; break; - case MURD3: + case pj_sconics_ns::MURD3: Q->rho_c = del / (tan(Q->sig) * tan(del)) + Q->sig; Q->rho_0 = Q->rho_c - P->phi0; Q->n = sin(Q->sig) * sin(del) * tan(del) / (del * del); break; - case EULER: + case pj_sconics_ns::EULER: Q->n = sin(Q->sig) * sin(del) / del; del *= 0.5; Q->rho_c = del / (tan(del) * tan(Q->sig)) + Q->sig; Q->rho_0 = Q->rho_c - P->phi0; break; - case PCONIC: + case pj_sconics_ns::PCONIC: Q->n = sin(Q->sig); Q->c2 = cos(del); Q->c1 = 1. / tan(Q->sig); @@ -183,7 +185,7 @@ static PJ *setup(PJ *P, enum Type type) { Q->rho_0 = Q->c2 * (Q->c1 - tan(del)); break; - case VITK1: + case pj_sconics_ns::VITK1: cs = tan(del); Q->n = cs * sin(Q->sig) / del; Q->rho_c = del / (cs * tan(Q->sig)) + Q->sig; @@ -197,16 +199,20 @@ static PJ *setup(PJ *P, enum Type type) { return (P); } -PJ *PROJECTION(euler) { return setup(P, EULER); } +PJ *PJ_PROJECTION(euler) { return pj_sconics_setup(P, pj_sconics_ns::EULER); } + +PJ *PJ_PROJECTION(tissot) { return pj_sconics_setup(P, pj_sconics_ns::TISSOT); } -PJ *PROJECTION(tissot) { return setup(P, TISSOT); } +PJ *PJ_PROJECTION(murd1) { return pj_sconics_setup(P, pj_sconics_ns::MURD1); } -PJ *PROJECTION(murd1) { return setup(P, MURD1); } +PJ *PJ_PROJECTION(murd2) { return pj_sconics_setup(P, pj_sconics_ns::MURD2); } -PJ *PROJECTION(murd2) { return setup(P, MURD2); } +PJ *PJ_PROJECTION(murd3) { return pj_sconics_setup(P, pj_sconics_ns::MURD3); } -PJ *PROJECTION(murd3) { return setup(P, MURD3); } +PJ *PJ_PROJECTION(pconic) { return pj_sconics_setup(P, pj_sconics_ns::PCONIC); } -PJ *PROJECTION(pconic) { return setup(P, PCONIC); } +PJ *PJ_PROJECTION(vitk1) { return pj_sconics_setup(P, pj_sconics_ns::VITK1); } -PJ *PROJECTION(vitk1) { return setup(P, VITK1); } +#undef EPS10 +#undef EPS +#undef LINE2 diff --git a/src/projections/som.cpp b/src/projections/som.cpp index dcddffb9cb..7a576fe419 100644 --- a/src/projections/som.cpp +++ b/src/projections/som.cpp @@ -61,7 +61,7 @@ PROJ_HEAD(lsat, "Space oblique for LANDSAT") #define TOL 1e-7 namespace { // anonymous namespace -struct pj_opaque { +struct pj_som_data { double a2, a4, b, c1, c3; double q, t, u, w, p22, sa, ca, xj, rlm, rlm2; double alf; @@ -69,7 +69,7 @@ struct pj_opaque { } // anonymous namespace static void seraz0(double lam, double mult, PJ *P) { - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_som_data *Q = static_cast(P->opaque); double sdsq, h, s, fc, sd, sq, d_1 = 0; lam *= DEG_TO_RAD; @@ -92,7 +92,7 @@ static void seraz0(double lam, double mult, PJ *P) { static PJ_XY som_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_som_data *Q = static_cast(P->opaque); int l, nn; double lamt = 0.0, xlam, sdsq, c, d, s, lamdp = 0.0, phidp, lampp, tanph; double lamtp, cl, sd, sp, sav, tanphi; @@ -155,7 +155,7 @@ static PJ_XY som_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP som_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_som_data *Q = static_cast(P->opaque); int nn; double lamt, sdsq, s, lamdp, phidp, sppsq, dd, sd, sl, fac, scl, sav, spp; @@ -205,9 +205,9 @@ static PJ_LP som_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -static PJ *setup(PJ *P) { +static PJ *som_setup(PJ *P) { double esc, ess, lam; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_som_data *Q = static_cast(P->opaque); Q->sa = sin(Q->alf); Q->ca = cos(Q->alf); if (fabs(Q->ca) < 1e-9) @@ -240,9 +240,9 @@ static PJ *setup(PJ *P) { return P; } -PJ *PROJECTION(som) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(som) { + struct pj_som_data *Q = static_cast( + calloc(1, sizeof(struct pj_som_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -273,14 +273,14 @@ PJ *PROJECTION(som) { Q->rlm = 0; - return setup(P); + return som_setup(P); } -PJ *PROJECTION(misrsom) { +PJ *PJ_PROJECTION(misrsom) { int path; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_som_data *Q = static_cast( + calloc(1, sizeof(struct pj_som_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -298,13 +298,13 @@ PJ *PROJECTION(misrsom) { Q->rlm = 0; - return setup(P); + return som_setup(P); } -PJ *PROJECTION(lsat) { +PJ *PJ_PROJECTION(lsat) { int land, path; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_som_data *Q = static_cast( + calloc(1, sizeof(struct pj_som_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -338,5 +338,7 @@ PJ *PROJECTION(lsat) { Q->rlm = M_PI * (1. / 248. + .5161290322580645); - return setup(P); + return som_setup(P); } + +#undef TOL diff --git a/src/projections/somerc.cpp b/src/projections/somerc.cpp index 5bb198bd0b..a6a0a1d6ae 100644 --- a/src/projections/somerc.cpp +++ b/src/projections/somerc.cpp @@ -9,7 +9,7 @@ PROJ_HEAD(somerc, "Swiss. Obl. Mercator") "\n\tCyl, Ell\n\tFor CH1903"; namespace { // anonymous namespace -struct pj_opaque { +struct pj_somerc { double K, c, hlf_e, kR, cosp0, sinp0; }; } // anonymous namespace @@ -20,7 +20,7 @@ struct pj_opaque { static PJ_XY somerc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; double phip, lamp, phipp, lampp, sp, cp; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_somerc *Q = static_cast(P->opaque); sp = P->e * sin(lp.phi); phip = 2. * atan(exp(Q->c * (log(tan(M_FORTPI + 0.5 * lp.phi)) - @@ -38,7 +38,7 @@ static PJ_XY somerc_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_LP somerc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_somerc *Q = static_cast(P->opaque); double phip, lamp, phipp, lampp, cp, esp, con, delp; int i; @@ -67,10 +67,10 @@ static PJ_LP somerc_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return (lp); } -PJ *PROJECTION(somerc) { +PJ *PJ_PROJECTION(somerc) { double cp, phip0, sp; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_somerc *Q = + static_cast(calloc(1, sizeof(struct pj_somerc))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -92,3 +92,6 @@ PJ *PROJECTION(somerc) { P->fwd = somerc_e_forward; return P; } + +#undef EPS +#undef NITER diff --git a/src/projections/stere.cpp b/src/projections/stere.cpp index 7a745a810b..dcd52aece9 100644 --- a/src/projections/stere.cpp +++ b/src/projections/stere.cpp @@ -12,7 +12,7 @@ enum Mode { S_POLE = 0, N_POLE = 1, OBLIQ = 2, EQUIT = 3 }; } // anonymous namespace namespace { // anonymous namespace -struct pj_opaque { +struct pj_stere { double phits; double sinX1; double cosX1; @@ -21,8 +21,8 @@ struct pj_opaque { }; } // anonymous namespace -#define sinph0 static_cast(P->opaque)->sinX1 -#define cosph0 static_cast(P->opaque)->cosX1 +#define sinph0 static_cast(P->opaque)->sinX1 +#define cosph0 static_cast(P->opaque)->cosX1 #define EPS10 1.e-10 #define TOL 1.e-8 #define NITER 8 @@ -36,7 +36,7 @@ static double ssfn_(double phit, double sinphi, double eccen) { static PJ_XY stere_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_stere *Q = static_cast(P->opaque); double coslam, sinlam, sinX = 0.0, cosX = 0.0, A = 0.0, sinphi; coslam = cos(lp.lam); @@ -93,7 +93,7 @@ static PJ_XY stere_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ static PJ_XY stere_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_stere *Q = static_cast(P->opaque); double sinphi, cosphi, coslam, sinlam; sinphi = sin(lp.phi); @@ -136,7 +136,7 @@ static PJ_XY stere_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP stere_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_stere *Q = static_cast(P->opaque); double cosphi, sinphi, tp = 0.0, phi_l = 0.0, rho, halfe = 0.0, halfpi = 0.0; @@ -189,7 +189,7 @@ static PJ_LP stere_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ static PJ_LP stere_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_stere *Q = static_cast(P->opaque); double c, sinc, cosc; const double rh = hypot(xy.x, xy.y); @@ -230,9 +230,9 @@ static PJ_LP stere_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -static PJ *setup(PJ *P) { /* general initialization */ +static PJ *stere_setup(PJ *P) { /* general initialization */ double t; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_stere *Q = static_cast(P->opaque); if (fabs((t = fabs(P->phi0)) - M_HALFPI) < EPS10) Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; @@ -292,9 +292,9 @@ static PJ *setup(PJ *P) { /* general initialization */ return P; } -PJ *PROJECTION(stere) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(stere) { + struct pj_stere *Q = + static_cast(calloc(1, sizeof(struct pj_stere))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -303,12 +303,12 @@ PJ *PROJECTION(stere) { ? pj_param(P->ctx, P->params, "rlat_ts").f : M_HALFPI; - return setup(P); + return stere_setup(P); } -PJ *PROJECTION(ups) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(ups) { + struct pj_stere *Q = + static_cast(calloc(1, sizeof(struct pj_stere))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -327,5 +327,12 @@ PJ *PROJECTION(ups) { Q->phits = M_HALFPI; P->lam0 = 0.; - return setup(P); + return stere_setup(P); } + +#undef sinph0 +#undef cosph0 +#undef EPS10 +#undef TOL +#undef NITER +#undef CONV diff --git a/src/projections/sterea.cpp b/src/projections/sterea.cpp index 4442f4273c..c5082682a1 100644 --- a/src/projections/sterea.cpp +++ b/src/projections/sterea.cpp @@ -92,7 +92,7 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -PJ *PROJECTION(sterea) { +PJ *PJ_PROJECTION(sterea) { double R; struct pj_opaque *Q = static_cast(calloc(1, sizeof(struct pj_opaque))); diff --git a/src/projections/sts.cpp b/src/projections/sts.cpp index 59ddf06272..eedc2a3035 100644 --- a/src/projections/sts.cpp +++ b/src/projections/sts.cpp @@ -12,7 +12,7 @@ PROJ_HEAD(fouc, "Foucaut") "\n\tPCyl, Sph"; PROJ_HEAD(mbt_s, "McBryde-Thomas Flat-Polar Sine (No. 1)") "\n\tPCyl, Sph"; namespace { // anonymous namespace -struct pj_opaque { +struct pj_sts { double C_x, C_y, C_p; int tan_mode; }; @@ -20,7 +20,7 @@ struct pj_opaque { static PJ_XY sts_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sts *Q = static_cast(P->opaque); xy.x = Q->C_x * lp.lam * cos(lp.phi); xy.y = Q->C_y; @@ -38,7 +38,7 @@ static PJ_XY sts_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP sts_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_sts *Q = static_cast(P->opaque); xy.y /= Q->C_y; lp.phi = Q->tan_mode ? atan(xy.y) : aasin(P->ctx, xy.y); @@ -56,25 +56,25 @@ static PJ *setup(PJ *P, double p, double q, int mode) { P->es = 0.; P->inv = sts_s_inverse; P->fwd = sts_s_forward; - static_cast(P->opaque)->C_x = q / p; - static_cast(P->opaque)->C_y = p; - static_cast(P->opaque)->C_p = 1 / q; - static_cast(P->opaque)->tan_mode = mode; + static_cast(P->opaque)->C_x = q / p; + static_cast(P->opaque)->C_y = p; + static_cast(P->opaque)->C_p = 1 / q; + static_cast(P->opaque)->tan_mode = mode; return P; } -PJ *PROJECTION(fouc) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(fouc) { + struct pj_sts *Q = + static_cast(calloc(1, sizeof(struct pj_sts))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; return setup(P, 2., 2., 1); } -PJ *PROJECTION(kav5) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(kav5) { + struct pj_sts *Q = + static_cast(calloc(1, sizeof(struct pj_sts))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -82,18 +82,18 @@ PJ *PROJECTION(kav5) { return setup(P, 1.50488, 1.35439, 0); } -PJ *PROJECTION(qua_aut) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(qua_aut) { + struct pj_sts *Q = + static_cast(calloc(1, sizeof(struct pj_sts))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; return setup(P, 2., 2., 0); } -PJ *PROJECTION(mbt_s) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(mbt_s) { + struct pj_sts *Q = + static_cast(calloc(1, sizeof(struct pj_sts))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/tcc.cpp b/src/projections/tcc.cpp index 51a8fbd63b..e7d9114bb9 100644 --- a/src/projections/tcc.cpp +++ b/src/projections/tcc.cpp @@ -23,7 +23,7 @@ static PJ_XY tcc_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(tcc) { +PJ *PJ_PROJECTION(tcc) { P->es = 0.; P->fwd = tcc_s_forward; P->inv = nullptr; diff --git a/src/projections/tcea.cpp b/src/projections/tcea.cpp index c839655b25..778efe56cb 100644 --- a/src/projections/tcea.cpp +++ b/src/projections/tcea.cpp @@ -26,7 +26,7 @@ static PJ_LP tcea_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(tcea) { +PJ *PJ_PROJECTION(tcea) { P->inv = tcea_s_inverse; P->fwd = tcea_s_forward; P->es = 0.; diff --git a/src/projections/times.cpp b/src/projections/times.cpp index 9c8eab828a..192d1d5ccc 100644 --- a/src/projections/times.cpp +++ b/src/projections/times.cpp @@ -68,7 +68,7 @@ static PJ_LP times_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(times) { +PJ *PJ_PROJECTION(times) { P->es = 0.0; P->inv = times_s_inverse; diff --git a/src/projections/tmerc.cpp b/src/projections/tmerc.cpp index c3b65c14d0..0dfb9da74b 100644 --- a/src/projections/tmerc.cpp +++ b/src/projections/tmerc.cpp @@ -711,7 +711,7 @@ static bool getAlgoFromParams(PJ *P, TMercAlgo &algo) { // /*****************************************************************************/ -PJ *PROJECTION(tmerc) { +PJ *PJ_PROJECTION(tmerc) { /* exact transverse mercator only exists in ellipsoidal form, */ /* use approximate version if +a sphere is requested */ @@ -723,7 +723,7 @@ PJ *PROJECTION(tmerc) { return setup(P, algo); } -PJ *PROJECTION(etmerc) { +PJ *PJ_PROJECTION(etmerc) { if (P->es == 0.0) { proj_log_error( P, _("Invalid value for eccentricity: it should not be zero")); @@ -736,7 +736,7 @@ PJ *PROJECTION(etmerc) { /* UTM uses the Poder/Engsager implementation for the underlying projection */ /* UNLESS +approx is set in which case the Evenden/Snyder implementation is * used. */ -PJ *PROJECTION(utm) { +PJ *PJ_PROJECTION(utm) { long zone; if (P->es == 0.0) { proj_log_error( diff --git a/src/projections/tobmerc.cpp b/src/projections/tobmerc.cpp index 0c3fb812db..6e09017ead 100644 --- a/src/projections/tobmerc.cpp +++ b/src/projections/tobmerc.cpp @@ -40,7 +40,7 @@ static PJ_LP tobmerc_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(tobmerc) { +PJ *PJ_PROJECTION(tobmerc) { P->inv = tobmerc_s_inverse; P->fwd = tobmerc_s_forward; return P; diff --git a/src/projections/tpeqd.cpp b/src/projections/tpeqd.cpp index abba06ca67..eb2077b067 100644 --- a/src/projections/tpeqd.cpp +++ b/src/projections/tpeqd.cpp @@ -8,7 +8,7 @@ PROJ_HEAD(tpeqd, "Two Point Equidistant") "\n\tMisc Sph\n\tlat_1= lon_1= lat_2= lon_2="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_tpeqd { double cp1, sp1, cp2, sp2, ccs, cs, sc, r2z0, z02, dlam2; double hz0, thz0, rhshz0, ca, sa, lp, lamc; }; @@ -16,7 +16,7 @@ struct pj_opaque { static PJ_XY tpeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_tpeqd *Q = static_cast(P->opaque); double t, z1, z2, dl1, dl2, sp, cp; sp = sin(lp.phi); @@ -39,7 +39,7 @@ static PJ_XY tpeqd_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP tpeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_tpeqd *Q = static_cast(P->opaque); double cz1, cz2, s, d, cp, sp; cz1 = cos(hypot(xy.y, xy.x + Q->hz0)); @@ -60,10 +60,10 @@ static PJ_LP tpeqd_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(tpeqd) { +PJ *PJ_PROJECTION(tpeqd) { double lam_1, lam_2, phi_1, phi_2, A12; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_tpeqd *Q = + static_cast(calloc(1, sizeof(struct pj_tpeqd))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/urm5.cpp b/src/projections/urm5.cpp index f93e7cb0d2..6c814cdc31 100644 --- a/src/projections/urm5.cpp +++ b/src/projections/urm5.cpp @@ -9,14 +9,14 @@ PROJ_HEAD(urm5, "Urmaev V") "\n\tPCyl, Sph, no inv\n\tn= q= alpha="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_urm5 { double m, rmn, q3, n; }; } // anonymous namespace static PJ_XY urm5_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_urm5 *Q = static_cast(P->opaque); double t; t = lp.phi = aasin(P->ctx, Q->n * sin(lp.phi)); @@ -26,10 +26,10 @@ static PJ_XY urm5_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(urm5) { +PJ *PJ_PROJECTION(urm5) { double alpha, t; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_urm5 *Q = + static_cast(calloc(1, sizeof(struct pj_urm5))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; diff --git a/src/projections/urmfps.cpp b/src/projections/urmfps.cpp index 99acb6016c..d5526bc4d2 100644 --- a/src/projections/urmfps.cpp +++ b/src/projections/urmfps.cpp @@ -10,7 +10,7 @@ PROJ_HEAD(urmfps, "Urmaev Flat-Polar Sinusoidal") "\n\tPCyl, Sph\n\tn="; PROJ_HEAD(wag1, "Wagner I (Kavrayskiy VI)") "\n\tPCyl, Sph"; namespace { // anonymous namespace -struct pj_opaque { +struct pj_urmfps { double n, C_y; }; } // anonymous namespace @@ -21,33 +21,33 @@ struct pj_opaque { static PJ_XY urmfps_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; lp.phi = aasin(P->ctx, - static_cast(P->opaque)->n * sin(lp.phi)); + static_cast(P->opaque)->n * sin(lp.phi)); xy.x = C_x * lp.lam * cos(lp.phi); - xy.y = static_cast(P->opaque)->C_y * lp.phi; + xy.y = static_cast(P->opaque)->C_y * lp.phi; return xy; } static PJ_LP urmfps_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; - xy.y /= static_cast(P->opaque)->C_y; + xy.y /= static_cast(P->opaque)->C_y; lp.phi = aasin(P->ctx, - sin(xy.y) / static_cast(P->opaque)->n); + sin(xy.y) / static_cast(P->opaque)->n); lp.lam = xy.x / (C_x * cos(xy.y)); return lp; } -static PJ *setup(PJ *P) { - static_cast(P->opaque)->C_y = - Cy / static_cast(P->opaque)->n; +static PJ *urmfps_setup(PJ *P) { + static_cast(P->opaque)->C_y = + Cy / static_cast(P->opaque)->n; P->es = 0.; P->inv = urmfps_s_inverse; P->fwd = urmfps_s_forward; return P; } -PJ *PROJECTION(urmfps) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(urmfps) { + struct pj_urmfps *Q = + static_cast(calloc(1, sizeof(struct pj_urmfps))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -65,17 +65,20 @@ PJ *PROJECTION(urmfps) { return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } - return setup(P); + return urmfps_setup(P); } -PJ *PROJECTION(wag1) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wag1) { + struct pj_urmfps *Q = + static_cast(calloc(1, sizeof(struct pj_urmfps))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - static_cast(P->opaque)->n = + static_cast(P->opaque)->n = 0.8660254037844386467637231707; - return setup(P); + return urmfps_setup(P); } + +#undef C_x +#undef Cy diff --git a/src/projections/vandg.cpp b/src/projections/vandg.cpp index c3f39cb90f..396221d91b 100644 --- a/src/projections/vandg.cpp +++ b/src/projections/vandg.cpp @@ -129,10 +129,18 @@ static PJ_LP vandg_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return lp; } -PJ *PROJECTION(vandg) { +PJ *PJ_PROJECTION(vandg) { P->es = 0.; P->inv = vandg_s_inverse; P->fwd = vandg_s_forward; return P; } + +#undef TOL +#undef THIRD +#undef C2_27 +#undef PI4_3 +#undef PISQ +#undef TPISQ +#undef HPISQ diff --git a/src/projections/vandg2.cpp b/src/projections/vandg2.cpp index 37fe81e56d..be9dd88ed0 100644 --- a/src/projections/vandg2.cpp +++ b/src/projections/vandg2.cpp @@ -7,7 +7,7 @@ #include "proj_internal.h" namespace { // anonymous namespace -struct pj_opaque { +struct pj_vandg2 { int vdg3; }; } // anonymous namespace @@ -19,7 +19,7 @@ PROJ_HEAD(vandg3, "van der Grinten III") "\n\tMisc Sph, no inv"; static PJ_XY vandg2_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - struct pj_opaque *Q = static_cast(P->opaque); + struct pj_vandg2 *Q = static_cast(P->opaque); double x1, at, bt, ct; bt = fabs(M_TWO_D_PI * lp.phi); @@ -52,9 +52,9 @@ static PJ_XY vandg2_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(vandg2) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(vandg2) { + struct pj_vandg2 *Q = + static_cast(calloc(1, sizeof(struct pj_vandg2))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -65,9 +65,9 @@ PJ *PROJECTION(vandg2) { return P; } -PJ *PROJECTION(vandg3) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(vandg3) { + struct pj_vandg2 *Q = + static_cast(calloc(1, sizeof(struct pj_vandg2))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; @@ -78,3 +78,5 @@ PJ *PROJECTION(vandg3) { return P; } + +#undef TOL diff --git a/src/projections/vandg4.cpp b/src/projections/vandg4.cpp index e379e59186..ad586b570e 100644 --- a/src/projections/vandg4.cpp +++ b/src/projections/vandg4.cpp @@ -48,7 +48,7 @@ static PJ_XY vandg4_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -PJ *PROJECTION(vandg4) { +PJ *PJ_PROJECTION(vandg4) { P->es = 0.; P->fwd = vandg4_s_forward; diff --git a/src/projections/wag2.cpp b/src/projections/wag2.cpp index bbe41240f7..4dbc5c0e8f 100644 --- a/src/projections/wag2.cpp +++ b/src/projections/wag2.cpp @@ -28,9 +28,14 @@ static PJ_LP wag2_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ return (lp); } -PJ *PROJECTION(wag2) { +PJ *PJ_PROJECTION(wag2) { P->es = 0.; P->inv = wag2_s_inverse; P->fwd = wag2_s_forward; return P; } + +#undef C_x +#undef C_y +#undef C_p1 +#undef C_p2 diff --git a/src/projections/wag3.cpp b/src/projections/wag3.cpp index ecdcfe208d..e8712c967d 100644 --- a/src/projections/wag3.cpp +++ b/src/projections/wag3.cpp @@ -11,14 +11,14 @@ PROJ_HEAD(wag3, "Wagner III") "\n\tPCyl, Sph\n\tlat_ts="; #define TWOTHIRD 0.6666666666666666666667 namespace { // anonymous namespace -struct pj_opaque { +struct pj_wag3 { double C_x; }; } // anonymous namespace static PJ_XY wag3_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - xy.x = static_cast(P->opaque)->C_x * lp.lam * + xy.x = static_cast(P->opaque)->C_x * lp.lam * cos(TWOTHIRD * lp.phi); xy.y = lp.phi; return xy; @@ -27,26 +27,27 @@ static PJ_XY wag3_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ static PJ_LP wag3_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ PJ_LP lp = {0.0, 0.0}; lp.phi = xy.y; - lp.lam = xy.x / (static_cast(P->opaque)->C_x * + lp.lam = xy.x / (static_cast(P->opaque)->C_x * cos(TWOTHIRD * lp.phi)); return lp; } -PJ *PROJECTION(wag3) { +PJ *PJ_PROJECTION(wag3) { double ts; - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); + struct pj_wag3 *Q = + static_cast(calloc(1, sizeof(struct pj_wag3))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; ts = pj_param(P->ctx, P->params, "rlat_ts").f; - static_cast(P->opaque)->C_x = - cos(ts) / cos(2. * ts / 3.); + static_cast(P->opaque)->C_x = cos(ts) / cos(2. * ts / 3.); P->es = 0.; P->inv = wag3_s_inverse; P->fwd = wag3_s_forward; return P; } + +#undef TWOTHIRD diff --git a/src/projections/wag7.cpp b/src/projections/wag7.cpp index dfb753eb85..80c37c99d6 100644 --- a/src/projections/wag7.cpp +++ b/src/projections/wag7.cpp @@ -23,7 +23,7 @@ static PJ_XY wag7_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ return (xy); } -PJ *PROJECTION(wag7) { +PJ *PJ_PROJECTION(wag7) { P->fwd = wag7_s_forward; P->inv = nullptr; P->es = 0.; diff --git a/src/projections/wink1.cpp b/src/projections/wink1.cpp index c0169248d7..c0dd958005 100644 --- a/src/projections/wink1.cpp +++ b/src/projections/wink1.cpp @@ -9,15 +9,16 @@ PROJ_HEAD(wink1, "Winkel I") "\n\tPCyl, Sph\n\tlat_ts="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_wink1_data { double cosphi1; }; } // anonymous namespace static PJ_XY wink1_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ PJ_XY xy = {0.0, 0.0}; - xy.x = .5 * lp.lam * - (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); + xy.x = + .5 * lp.lam * + (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); xy.y = lp.phi; return (xy); } @@ -27,18 +28,18 @@ static PJ_LP wink1_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ lp.phi = xy.y; lp.lam = 2. * xy.x / - (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); + (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); return (lp); } -PJ *PROJECTION(wink1) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wink1) { + struct pj_wink1_data *Q = static_cast( + calloc(1, sizeof(struct pj_wink1_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - static_cast(P->opaque)->cosphi1 = + static_cast(P->opaque)->cosphi1 = cos(pj_param(P->ctx, P->params, "rlat_ts").f); P->es = 0.; P->inv = wink1_s_inverse; diff --git a/src/projections/wink2.cpp b/src/projections/wink2.cpp index dd2d8aac82..0175a804e6 100644 --- a/src/projections/wink2.cpp +++ b/src/projections/wink2.cpp @@ -9,7 +9,7 @@ PROJ_HEAD(wink2, "Winkel II") "\n\tPCyl, Sph\n\tlat_1="; namespace { // anonymous namespace -struct pj_opaque { +struct pj_wink2_data { double cosphi1; }; } // anonymous namespace @@ -34,8 +34,9 @@ static PJ_XY wink2_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ lp.phi = (lp.phi < 0.) ? -M_HALFPI : M_HALFPI; else lp.phi *= 0.5; - xy.x = 0.5 * lp.lam * - (cos(lp.phi) + static_cast(P->opaque)->cosphi1); + xy.x = + 0.5 * lp.lam * + (cos(lp.phi) + static_cast(P->opaque)->cosphi1); xy.y = M_FORTPI * (sin(lp.phi) + xy.y); return xy; } @@ -50,14 +51,14 @@ static PJ_LP wink2_s_inverse(PJ_XY xy, PJ *P) { return pj_generic_inverse_2d(xy, P, lpInit, deltaXYTolerance); } -PJ *PROJECTION(wink2) { - struct pj_opaque *Q = - static_cast(calloc(1, sizeof(struct pj_opaque))); +PJ *PJ_PROJECTION(wink2) { + struct pj_wink2_data *Q = static_cast( + calloc(1, sizeof(struct pj_wink2_data))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = Q; - static_cast(P->opaque)->cosphi1 = + static_cast(P->opaque)->cosphi1 = cos(pj_param(P->ctx, P->params, "rlat_1").f); P->es = 0.; P->fwd = wink2_s_forward; @@ -65,3 +66,6 @@ PJ *PROJECTION(wink2) { return P; } + +#undef MAX_ITER +#undef LOOP_TOL diff --git a/src/transformations/affine.cpp b/src/transformations/affine.cpp index 3b9bfec34d..1191139d69 100644 --- a/src/transformations/affine.cpp +++ b/src/transformations/affine.cpp @@ -177,7 +177,7 @@ static void computeReverseParameters(PJ *P) { } } -PJ *TRANSFORMATION(affine, 0 /* no need for ellipsoid */) { +PJ *PJ_TRANSFORMATION(affine, 0 /* no need for ellipsoid */) { struct pj_opaque_affine *Q = initQ(); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); @@ -226,7 +226,7 @@ PJ *TRANSFORMATION(affine, 0 /* no need for ellipsoid */) { /* Arcsecond to radians */ #define ARCSEC_TO_RAD (DEG_TO_RAD / 3600.0) -PJ *TRANSFORMATION(geogoffset, 0 /* no need for ellipsoid */) { +PJ *PJ_TRANSFORMATION(geogoffset, 0 /* no need for ellipsoid */) { struct pj_opaque_affine *Q = initQ(); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); diff --git a/src/transformations/defmodel.cpp b/src/transformations/defmodel.cpp index 7fa2931e02..848bdb05fe 100644 --- a/src/transformations/defmodel.cpp +++ b/src/transformations/defmodel.cpp @@ -374,7 +374,7 @@ static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { } } -PJ *TRANSFORMATION(defmodel, 1) { +PJ *PJ_TRANSFORMATION(defmodel, 1) { // Pass a dummy ellipsoid definition that will be overridden just afterwards auto cart = proj_create(P->ctx, "+proj=cart +a=1"); if (cart == nullptr) diff --git a/src/transformations/deformation.cpp b/src/transformations/deformation.cpp index a34974ac89..63a1e87f9f 100644 --- a/src/transformations/deformation.cpp +++ b/src/transformations/deformation.cpp @@ -80,8 +80,9 @@ struct deformationData { // --------------------------------------------------------------------------- -static bool get_grid_values(PJ *P, deformationData *Q, const PJ_LP &lp, - double &vx, double &vy, double &vz) { +static bool pj_deformation_get_grid_values(PJ *P, deformationData *Q, + const PJ_LP &lp, double &vx, + double &vy, double &vz) { GenericShiftGridSet *gridset = nullptr; auto grid = pj_find_generic_grid(Q->grids, lp, gridset); if (!grid) { @@ -122,7 +123,7 @@ static bool get_grid_values(PJ *P, deformationData *Q, const PJ_LP &lp, sampleN, sampleU, vx, vy, vz, must_retry)) { if (must_retry) - return get_grid_values(P, Q, lp, vx, vy, vz); + return pj_deformation_get_grid_values(P, Q, lp, vx, vy, vz); return false; } // divide by 1000 to get m/year @@ -133,7 +134,7 @@ static bool get_grid_values(PJ *P, deformationData *Q, const PJ_LP &lp, } /********************************************************************************/ -static PJ_XYZ get_grid_shift(PJ *P, const PJ_XYZ &cartesian) { +static PJ_XYZ pj_deformation_get_grid_shift(PJ *P, const PJ_XYZ &cartesian) { /******************************************************************************** Read correction values from grid. The cartesian input coordinates are converted to geodetic coordinates in order look up the correction values @@ -159,7 +160,7 @@ static PJ_XYZ get_grid_shift(PJ *P, const PJ_XYZ &cartesian) { double vx = 0; double vy = 0; double vz = 0; - if (!get_grid_values(P, Q, geodetic.lp, vx, vy, vz)) { + if (!pj_deformation_get_grid_values(P, Q, geodetic.lp, vx, vy, vz)) { return proj_coord_error().xyz; } shift.xyz.x = vx; @@ -201,7 +202,7 @@ static PJ_XYZ get_grid_shift(PJ *P, const PJ_XYZ &cartesian) { } /********************************************************************************/ -static PJ_XYZ reverse_shift(PJ *P, PJ_XYZ input, double dt) { +static PJ_XYZ pj_deformation_reverse_shift(PJ *P, PJ_XYZ input, double dt) { /******************************************************************************** Iteratively determine the reverse grid shift correction values. *********************************************************************************/ @@ -209,7 +210,7 @@ static PJ_XYZ reverse_shift(PJ *P, PJ_XYZ input, double dt) { double z0; int i = MAX_ITERATIONS; - delta = get_grid_shift(P, input); + delta = pj_deformation_get_grid_shift(P, input); if (delta.x == HUGE_VAL) { return delta; } @@ -226,7 +227,7 @@ static PJ_XYZ reverse_shift(PJ *P, PJ_XYZ input, double dt) { out.z = input.z + dt * delta.z; do { - delta = get_grid_shift(P, out); + delta = pj_deformation_get_grid_shift(P, out); if (delta.x == HUGE_VAL) break; @@ -245,7 +246,7 @@ static PJ_XYZ reverse_shift(PJ *P, PJ_XYZ input, double dt) { return out; } -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_deformation_forward_3d(PJ_LPZ lpz, PJ *P) { struct deformationData *Q = (struct deformationData *)P->opaque; PJ_COORD out, in; PJ_XYZ shift; @@ -258,7 +259,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return out.xyz; } - shift = get_grid_shift(P, in.xyz); + shift = pj_deformation_get_grid_shift(P, in.xyz); if (shift.x == HUGE_VAL) { return shift; } @@ -270,7 +271,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return out.xyz; } -static void forward_4d(PJ_COORD &coo, PJ *P) { +static void pj_deformation_forward_4d(PJ_COORD &coo, PJ *P) { struct deformationData *Q = (struct deformationData *)P->opaque; double dt; PJ_XYZ shift; @@ -281,14 +282,14 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { dt = coo.xyzt.t - Q->t_epoch; } - shift = get_grid_shift(P, coo.xyz); + shift = pj_deformation_get_grid_shift(P, coo.xyz); coo.xyzt.x += dt * shift.x; coo.xyzt.y += dt * shift.y; coo.xyzt.z += dt * shift.z; } -static PJ_LPZ reverse_3d(PJ_XYZ in, PJ *P) { +static PJ_LPZ pj_deformation_reverse_3d(PJ_XYZ in, PJ *P) { struct deformationData *Q = (struct deformationData *)P->opaque; PJ_COORD out; out.xyz = in; @@ -299,12 +300,12 @@ static PJ_LPZ reverse_3d(PJ_XYZ in, PJ *P) { return out.lpz; } - out.xyz = reverse_shift(P, in, Q->dt); + out.xyz = pj_deformation_reverse_shift(P, in, Q->dt); return out.lpz; } -static void reverse_4d(PJ_COORD &coo, PJ *P) { +static void pj_deformation_reverse_4d(PJ_COORD &coo, PJ *P) { struct deformationData *Q = (struct deformationData *)P->opaque; double dt; @@ -314,10 +315,10 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { dt = coo.xyzt.t - Q->t_epoch; } - coo.xyz = reverse_shift(P, coo.xyz, dt); + coo.xyz = pj_deformation_reverse_shift(P, coo.xyz, dt); } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_deformation_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -332,15 +333,15 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -PJ *TRANSFORMATION(deformation, 1) { +PJ *PJ_TRANSFORMATION(deformation, 1) { auto Q = new deformationData; P->opaque = (void *)Q; - P->destructor = destructor; + P->destructor = pj_deformation_destructor; // Pass a dummy ellipsoid definition that will be overridden just afterwards Q->cart = proj_create(P->ctx, "+proj=cart +a=1"); if (Q->cart == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_deformation_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); /* inherit ellipsoid definition from P to Q->cart */ pj_inherit_ellipsoid_def(P, Q->cart); @@ -353,7 +354,7 @@ PJ *TRANSFORMATION(deformation, 1) { if (!has_grids && (!has_xy_grids || !has_z_grids)) { proj_log_error(P, _("Either +grids or (+xy_grids and +z_grids) should " "be specified.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_deformation_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } if (has_grids) { @@ -361,19 +362,22 @@ PJ *TRANSFORMATION(deformation, 1) { /* Was gridlist compiled properly? */ if (proj_errno(P)) { proj_log_error(P, _("could not find required grid(s).)")); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_deformation_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } } else { Q->hgrids = pj_hgrid_init(P, "xy_grids"); if (proj_errno(P)) { proj_log_error(P, _("could not find requested xy_grid(s).")); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_deformation_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } Q->vgrids = pj_vgrid_init(P, "z_grids"); if (proj_errno(P)) { proj_log_error(P, _("could not find requested z_grid(s).")); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_deformation_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } } @@ -385,7 +389,7 @@ PJ *TRANSFORMATION(deformation, 1) { if (pj_param_exists(P->params, "t_obs")) { proj_log_error(P, _("+t_obs parameter is deprecated. Use +dt instead.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_deformation_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } Q->t_epoch = HUGE_VAL; @@ -395,18 +399,19 @@ PJ *TRANSFORMATION(deformation, 1) { if (Q->dt == HUGE_VAL && Q->t_epoch == HUGE_VAL) { proj_log_error(P, _("either +dt or +t_epoch needs to be set.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_deformation_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } if (Q->dt != HUGE_VALL && Q->t_epoch != HUGE_VALL) { proj_log_error(P, _("+dt or +t_epoch are mutually exclusive.")); - return destructor(P, PROJ_ERR_INVALID_OP_MUTUALLY_EXCLUSIVE_ARGS); + return pj_deformation_destructor( + P, PROJ_ERR_INVALID_OP_MUTUALLY_EXCLUSIVE_ARGS); } - P->fwd4d = forward_4d; - P->inv4d = reverse_4d; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd4d = pj_deformation_forward_4d; + P->inv4d = pj_deformation_reverse_4d; + P->fwd3d = pj_deformation_forward_3d; + P->inv3d = pj_deformation_reverse_3d; P->fwd = nullptr; P->inv = nullptr; @@ -415,3 +420,6 @@ PJ *TRANSFORMATION(deformation, 1) { return P; } + +#undef TOL +#undef MAX_ITERATIONS diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index 2d473b03d7..6d7a63b4c8 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -710,7 +710,7 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { // --------------------------------------------------------------------------- -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_gridshift_forward_3d(PJ_LPZ lpz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; @@ -721,7 +721,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { // --------------------------------------------------------------------------- -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { +static PJ_LPZ pj_gridshift_reverse_3d(PJ_XYZ xyz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; point.xyz = xyz; @@ -733,7 +733,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { // --------------------------------------------------------------------------- -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_gridshift_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -745,7 +745,7 @@ static PJ *destructor(PJ *P, int errlev) { // --------------------------------------------------------------------------- -static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { +static void pj_gridshift_reassign_context(PJ *P, PJ_CONTEXT *ctx) { auto Q = (struct gridshiftData *)P->opaque; for (auto &grid : Q->m_grids) { grid->reassign_context(ctx); @@ -754,14 +754,14 @@ static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { // --------------------------------------------------------------------------- -PJ *TRANSFORMATION(gridshift, 0) { +PJ *PJ_TRANSFORMATION(gridshift, 0) { auto Q = new gridshiftData; P->opaque = (void *)Q; - P->destructor = destructor; - P->reassign_context = reassign_context; + P->destructor = pj_gridshift_destructor; + P->reassign_context = pj_gridshift_reassign_context; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd3d = pj_gridshift_forward_3d; + P->inv3d = pj_gridshift_reverse_3d; P->fwd = nullptr; P->inv = nullptr; @@ -770,7 +770,7 @@ PJ *TRANSFORMATION(gridshift, 0) { if (0 == pj_param(P->ctx, P->params, "tgrids").i) { proj_log_error(P, _("+grids parameter missing.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_gridshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } if (P->ctx->defer_grid_opening) { @@ -788,11 +788,11 @@ PJ *TRANSFORMATION(gridshift, 0) { /* Was gridlist compiled properly? */ if (proj_errno(P)) { proj_log_error(P, _("could not find required grid(s).")); - return destructor( + return pj_gridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } if (!Q->checkGridTypes(P)) { - return destructor( + return pj_gridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } @@ -810,7 +810,8 @@ PJ *TRANSFORMATION(gridshift, 0) { Q->m_interpolation = interpolation; } else { proj_log_error(P, _("Unsupported value for +interpolation.")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_gridshift_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } } diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index b83d1f8bd0..894d321ca0 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -555,7 +555,7 @@ static PJ *read_convention(PJ *P) { } /***********************************************************************/ -PJ *TRANSFORMATION(helmert, 0) { +PJ *PJ_TRANSFORMATION(helmert, 0) { /***********************************************************************/ struct pj_opaque_helmert *Q; @@ -698,7 +698,7 @@ PJ *TRANSFORMATION(helmert, 0) { } /***********************************************************************/ -PJ *TRANSFORMATION(molobadekas, 0) { +PJ *PJ_TRANSFORMATION(molobadekas, 0) { /***********************************************************************/ struct pj_opaque_helmert *Q; diff --git a/src/transformations/hgridshift.cpp b/src/transformations/hgridshift.cpp index d9b9e92f3d..3df1ce29b8 100644 --- a/src/transformations/hgridshift.cpp +++ b/src/transformations/hgridshift.cpp @@ -11,8 +11,8 @@ PROJ_HEAD(hgridshift, "Horizontal grid shift"); -static std::mutex gMutex{}; -static std::set gKnownGrids{}; +static std::mutex gMutexHGridShift{}; +static std::set gKnownGridsHGridShift{}; using namespace NS_PROJ; @@ -25,7 +25,7 @@ struct hgridshiftData { }; } // anonymous namespace -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_hgridshift_forward_3d(PJ_LPZ lpz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; point.lpz = lpz; @@ -47,7 +47,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return point.xyz; } -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { +static PJ_LPZ pj_hgridshift_reverse_3d(PJ_XYZ xyz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; point.xyz = xyz; @@ -69,7 +69,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { return point.lpz; } -static void forward_4d(PJ_COORD &coo, PJ *P) { +static void pj_hgridshift_forward_4d(PJ_COORD &coo, PJ *P) { struct hgridshiftData *Q = (struct hgridshiftData *)P->opaque; /* If transformation is not time restricted, we always call it */ @@ -78,7 +78,7 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(coo.lpz, P); + const auto xyz = pj_hgridshift_forward_3d(coo.lpz, P); coo.xyz = xyz; return; } @@ -89,12 +89,12 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(coo.lpz, P); + const auto xyz = pj_hgridshift_forward_3d(coo.lpz, P); coo.xyz = xyz; } } -static void reverse_4d(PJ_COORD &coo, PJ *P) { +static void pj_hgridshift_reverse_4d(PJ_COORD &coo, PJ *P) { struct hgridshiftData *Q = (struct hgridshiftData *)P->opaque; /* If transformation is not time restricted, we always call it */ @@ -103,7 +103,7 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(coo.xyz, P); + const auto lpz = pj_hgridshift_reverse_3d(coo.xyz, P); coo.lpz = lpz; return; } @@ -114,12 +114,12 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(coo.xyz, P); + const auto lpz = pj_hgridshift_reverse_3d(coo.xyz, P); coo.lpz = lpz; } } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_hgridshift_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -129,23 +129,23 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { +static void pj_hgridshift_reassign_context(PJ *P, PJ_CONTEXT *ctx) { auto Q = (struct hgridshiftData *)P->opaque; for (auto &grid : Q->grids) { grid->reassign_context(ctx); } } -PJ *TRANSFORMATION(hgridshift, 0) { +PJ *PJ_TRANSFORMATION(hgridshift, 0) { auto Q = new hgridshiftData; P->opaque = (void *)Q; - P->destructor = destructor; - P->reassign_context = reassign_context; + P->destructor = pj_hgridshift_destructor; + P->reassign_context = pj_hgridshift_reassign_context; - P->fwd4d = forward_4d; - P->inv4d = reverse_4d; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd4d = pj_hgridshift_forward_4d; + P->inv4d = pj_hgridshift_reverse_4d; + P->fwd3d = pj_hgridshift_forward_3d; + P->inv3d = pj_hgridshift_reverse_3d; P->fwd = nullptr; P->inv = nullptr; @@ -154,7 +154,7 @@ PJ *TRANSFORMATION(hgridshift, 0) { if (0 == pj_param(P->ctx, P->params, "tgrids").i) { proj_log_error(P, _("+grids parameter missing.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_hgridshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } /* TODO: Refactor into shared function that can be used */ @@ -181,10 +181,10 @@ PJ *TRANSFORMATION(hgridshift, 0) { Q->defer_grid_opening = true; } else { const char *gridnames = pj_param(P->ctx, P->params, "sgrids").s; - gMutex.lock(); - const bool isKnownGrid = - gKnownGrids.find(gridnames) != gKnownGrids.end(); - gMutex.unlock(); + gMutexHGridShift.lock(); + const bool isKnownGrid = gKnownGridsHGridShift.find(gridnames) != + gKnownGridsHGridShift.end(); + gMutexHGridShift.unlock(); if (isKnownGrid) { Q->defer_grid_opening = true; } else { @@ -192,13 +192,13 @@ PJ *TRANSFORMATION(hgridshift, 0) { /* Was gridlist compiled properly? */ if (proj_errno(P)) { proj_log_error(P, _("could not find required grid(s).")); - return destructor( + return pj_hgridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } - gMutex.lock(); - gKnownGrids.insert(gridnames); - gMutex.unlock(); + gMutexHGridShift.lock(); + gKnownGridsHGridShift.insert(gridnames); + gMutexHGridShift.unlock(); } } @@ -206,6 +206,6 @@ PJ *TRANSFORMATION(hgridshift, 0) { } void pj_clear_hgridshift_knowngrids_cache() { - std::lock_guard lock(gMutex); - gKnownGrids.clear(); + std::lock_guard lock(gMutexHGridShift); + gKnownGridsHGridShift.clear(); } diff --git a/src/transformations/horner.cpp b/src/transformations/horner.cpp index d72107c63e..2607de71b5 100644 --- a/src/transformations/horner.cpp +++ b/src/transformations/horner.cpp @@ -551,7 +551,7 @@ static int parse_coefs(PJ *P, double *coefs, const char *param, int ncoefs) { } /*********************************************************************/ -PJ *PROJECTION(horner) { +PJ *PJ_PROJECTION(horner) { /*********************************************************************/ int degree = 0; HORNER *Q; diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp index 9f9eb81102..ec5b1c9977 100644 --- a/src/transformations/molodensky.cpp +++ b/src/transformations/molodensky.cpp @@ -52,8 +52,8 @@ PROJ_HEAD(molodensky, "Molodensky transform"); -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P); -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P); +static PJ_XYZ pj_molodensky_forward_3d(PJ_LPZ lpz, PJ *P); +static PJ_LPZ pj_molodensky_reverse_3d(PJ_XYZ xyz, PJ *P); namespace { // anonymous namespace struct pj_opaque_molodensky { @@ -208,20 +208,20 @@ static PJ_LPZ calc_abridged_params(PJ_LPZ lpz, PJ *P) { return lpz; } -static PJ_XY forward_2d(PJ_LP lp, PJ *P) { +static PJ_XY pj_molodensky_forward_2d(PJ_LP lp, PJ *P) { PJ_COORD point = {{0, 0, 0, 0}}; point.lp = lp; // Assigning in 2 steps avoids cppcheck warning // "Overlapping read/write of union is undefined behavior" // Cf https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(point.lpz, P); + const auto xyz = pj_molodensky_forward_3d(point.lpz, P); point.xyz = xyz; return point.xy; } -static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { +static PJ_LP pj_molodensky_reverse_2d(PJ_XY xy, PJ *P) { PJ_COORD point = {{0, 0, 0, 0}}; point.xy = xy; @@ -229,13 +229,13 @@ static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { // Assigning in 2 steps avoids cppcheck warning // "Overlapping read/write of union is undefined behavior" // Cf https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(point.xyz, P); + const auto lpz = pj_molodensky_reverse_3d(point.xyz, P); point.lpz = lpz; return point.lp; } -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_molodensky_forward_3d(PJ_LPZ lpz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *)P->opaque; PJ_COORD point = {{0, 0, 0, 0}}; @@ -260,15 +260,15 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return point.xyz; } -static void forward_4d(PJ_COORD &obs, PJ *P) { +static void pj_molodensky_forward_4d(PJ_COORD &obs, PJ *P) { // Assigning in 2 steps avoids cppcheck warning // "Overlapping read/write of union is undefined behavior" // Cf https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(obs.lpz, P); + const auto xyz = pj_molodensky_forward_3d(obs.lpz, P); obs.xyz = xyz; } -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { +static PJ_LPZ pj_molodensky_reverse_3d(PJ_XYZ xyz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *)P->opaque; PJ_COORD point = {{0, 0, 0, 0}}; PJ_LPZ lpz; @@ -293,27 +293,27 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { return point.lpz; } -static void reverse_4d(PJ_COORD &obs, PJ *P) { +static void pj_molodensky_reverse_4d(PJ_COORD &obs, PJ *P) { // Assigning in 2 steps avoids cppcheck warning // "Overlapping read/write of union is undefined behavior" // Cf https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(obs.xyz, P); + const auto lpz = pj_molodensky_reverse_3d(obs.xyz, P); obs.lpz = lpz; } -PJ *TRANSFORMATION(molodensky, 1) { +PJ *PJ_TRANSFORMATION(molodensky, 1) { struct pj_opaque_molodensky *Q = static_cast( calloc(1, sizeof(struct pj_opaque_molodensky))); if (nullptr == Q) return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); P->opaque = (void *)Q; - P->fwd4d = forward_4d; - P->inv4d = reverse_4d; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; - P->fwd = forward_2d; - P->inv = reverse_2d; + P->fwd4d = pj_molodensky_forward_4d; + P->inv4d = pj_molodensky_reverse_4d; + P->fwd3d = pj_molodensky_forward_3d; + P->inv3d = pj_molodensky_reverse_3d; + P->fwd = pj_molodensky_forward_2d; + P->inv = pj_molodensky_reverse_2d; P->left = PJ_IO_UNITS_RADIANS; P->right = PJ_IO_UNITS_RADIANS; diff --git a/src/transformations/tinshift.cpp b/src/transformations/tinshift.cpp index bd3cce09a0..03fb702ec4 100644 --- a/src/transformations/tinshift.cpp +++ b/src/transformations/tinshift.cpp @@ -49,7 +49,7 @@ struct tinshiftData { } // namespace -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_tinshift_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -78,18 +78,19 @@ static void tinshift_reverse_4d(PJ_COORD &coo, PJ *P) { } } -PJ *TRANSFORMATION(tinshift, 1) { +PJ *PJ_TRANSFORMATION(tinshift, 1) { const char *filename = pj_param(P->ctx, P->params, "sfile").s; if (!filename) { proj_log_error(P, _("+file= should be specified.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_tinshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } auto file = NS_PROJ::FileManager::open_resource_file(P->ctx, filename); if (nullptr == file) { proj_log_error(P, _("Cannot open %s"), filename); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_tinshift_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } file->seek(0, SEEK_END); unsigned long long size = file->tell(); @@ -98,7 +99,8 @@ PJ *TRANSFORMATION(tinshift, 1) { // large for any valid use ! if (size > 100 * 1024 * 1024) { proj_log_error(P, _("File %s too large"), filename); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_tinshift_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } file->seek(0); std::string jsonStr; @@ -106,25 +108,26 @@ PJ *TRANSFORMATION(tinshift, 1) { jsonStr.resize(static_cast(size)); } catch (const std::bad_alloc &) { proj_log_error(P, _("Cannot read %s. Not enough memory"), filename); - return destructor(P, PROJ_ERR_OTHER); + return pj_tinshift_destructor(P, PROJ_ERR_OTHER); } if (file->read(&jsonStr[0], jsonStr.size()) != jsonStr.size()) { proj_log_error(P, _("Cannot read %s"), filename); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_tinshift_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } auto Q = new tinshiftData(); P->opaque = (void *)Q; - P->destructor = destructor; + P->destructor = pj_tinshift_destructor; try { Q->evaluator.reset(new Evaluator(TINShiftFile::parse(jsonStr))); } catch (const std::exception &e) { proj_log_error(P, _("invalid model: %s"), e.what()); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_tinshift_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } - P->destructor = destructor; P->fwd4d = tinshift_forward_4d; P->inv4d = tinshift_reverse_4d; P->left = PJ_IO_UNITS_WHATEVER; diff --git a/src/transformations/vertoffset.cpp b/src/transformations/vertoffset.cpp index fe4b235f4c..e0fb71d34a 100644 --- a/src/transformations/vertoffset.cpp +++ b/src/transformations/vertoffset.cpp @@ -77,7 +77,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { /* Arcsecond to radians */ #define ARCSEC_TO_RAD (DEG_TO_RAD / 3600.0) -PJ *TRANSFORMATION(vertoffset, 1) { +PJ *PJ_TRANSFORMATION(vertoffset, 1) { struct pj_opaque_vertoffset *Q = static_cast( calloc(1, sizeof(struct pj_opaque_vertoffset))); if (nullptr == Q) diff --git a/src/transformations/vgridshift.cpp b/src/transformations/vgridshift.cpp index 8b62bc0a69..e6a0f9b767 100644 --- a/src/transformations/vgridshift.cpp +++ b/src/transformations/vgridshift.cpp @@ -11,8 +11,8 @@ PROJ_HEAD(vgridshift, "Vertical grid shift"); -static std::mutex gMutex{}; -static std::set gKnownGrids{}; +static std::mutex gMutexVGridShift{}; +static std::set gKnownGridsVGridShift{}; using namespace NS_PROJ; @@ -51,7 +51,7 @@ static void deal_with_vertcon_gtx_hack(PJ *P) { } } -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_vgridshift_forward_3d(PJ_LPZ lpz, PJ *P) { struct vgridshiftData *Q = (struct vgridshiftData *)P->opaque; PJ_COORD point = {{0, 0, 0, 0}}; point.lpz = lpz; @@ -75,7 +75,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return point.xyz; } -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { +static PJ_LPZ pj_vgridshift_reverse_3d(PJ_XYZ xyz, PJ *P) { struct vgridshiftData *Q = (struct vgridshiftData *)P->opaque; PJ_COORD point = {{0, 0, 0, 0}}; point.xyz = xyz; @@ -99,7 +99,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { return point.lpz; } -static void forward_4d(PJ_COORD &coo, PJ *P) { +static void pj_vgridshift_forward_4d(PJ_COORD &coo, PJ *P) { struct vgridshiftData *Q = (struct vgridshiftData *)P->opaque; /* If transformation is not time restricted, we always call it */ @@ -108,7 +108,7 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(coo.lpz, P); + const auto xyz = pj_vgridshift_forward_3d(coo.lpz, P); coo.xyz = xyz; return; } @@ -119,12 +119,12 @@ static void forward_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto xyz = forward_3d(coo.lpz, P); + const auto xyz = pj_vgridshift_forward_3d(coo.lpz, P); coo.xyz = xyz; } } -static void reverse_4d(PJ_COORD &coo, PJ *P) { +static void pj_vgridshift_reverse_4d(PJ_COORD &coo, PJ *P) { struct vgridshiftData *Q = (struct vgridshiftData *)P->opaque; /* If transformation is not time restricted, we always call it */ @@ -133,7 +133,7 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(coo.xyz, P); + const auto lpz = pj_vgridshift_reverse_3d(coo.xyz, P); coo.lpz = lpz; return; } @@ -144,12 +144,12 @@ static void reverse_4d(PJ_COORD &coo, PJ *P) { // "Overlapping read/write of union is undefined behavior" // Cf // https://github.com/OSGeo/PROJ/pull/3527#pullrequestreview-1233332710 - const auto lpz = reverse_3d(coo.xyz, P); + const auto lpz = pj_vgridshift_reverse_3d(coo.xyz, P); coo.lpz = lpz; } } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_vgridshift_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -159,22 +159,22 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { +static void pj_vgridshift_reassign_context(PJ *P, PJ_CONTEXT *ctx) { auto Q = (struct vgridshiftData *)P->opaque; for (auto &grid : Q->grids) { grid->reassign_context(ctx); } } -PJ *TRANSFORMATION(vgridshift, 0) { +PJ *PJ_TRANSFORMATION(vgridshift, 0) { auto Q = new vgridshiftData; P->opaque = (void *)Q; - P->destructor = destructor; - P->reassign_context = reassign_context; + P->destructor = pj_vgridshift_destructor; + P->reassign_context = pj_vgridshift_reassign_context; if (!pj_param(P->ctx, P->params, "tgrids").i) { proj_log_error(P, _("+grids parameter missing.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_vgridshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } /* TODO: Refactor into shared function that can be used */ @@ -207,10 +207,10 @@ PJ *TRANSFORMATION(vgridshift, 0) { Q->defer_grid_opening = true; } else { const char *gridnames = pj_param(P->ctx, P->params, "sgrids").s; - gMutex.lock(); - const bool isKnownGrid = - gKnownGrids.find(gridnames) != gKnownGrids.end(); - gMutex.unlock(); + gMutexVGridShift.lock(); + const bool isKnownGrid = gKnownGridsVGridShift.find(gridnames) != + gKnownGridsVGridShift.end(); + gMutexVGridShift.unlock(); if (isKnownGrid) { Q->defer_grid_opening = true; @@ -222,20 +222,20 @@ PJ *TRANSFORMATION(vgridshift, 0) { /* Was gridlist compiled properly? */ if (proj_errno(P)) { proj_log_error(P, _("could not find required grid(s).")); - return destructor( + return pj_vgridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } - gMutex.lock(); - gKnownGrids.insert(gridnames); - gMutex.unlock(); + gMutexVGridShift.lock(); + gKnownGridsVGridShift.insert(gridnames); + gMutexVGridShift.unlock(); } } - P->fwd4d = forward_4d; - P->inv4d = reverse_4d; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd4d = pj_vgridshift_forward_4d; + P->inv4d = pj_vgridshift_reverse_4d; + P->fwd3d = pj_vgridshift_forward_3d; + P->inv3d = pj_vgridshift_reverse_3d; P->fwd = nullptr; P->inv = nullptr; @@ -246,6 +246,6 @@ PJ *TRANSFORMATION(vgridshift, 0) { } void pj_clear_vgridshift_knowngrids_cache() { - std::lock_guard lock(gMutex); - gKnownGrids.clear(); + std::lock_guard lock(gMutexVGridShift); + gKnownGridsVGridShift.clear(); } diff --git a/src/transformations/xyzgridshift.cpp b/src/transformations/xyzgridshift.cpp index 12ecf5e58a..bc0c0cec45 100644 --- a/src/transformations/xyzgridshift.cpp +++ b/src/transformations/xyzgridshift.cpp @@ -168,7 +168,7 @@ static PJ_COORD direct_adjustment(PJ *P, xyzgridshiftData *Q, PJ_COORD point, // --------------------------------------------------------------------------- -static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { +static PJ_XYZ pj_xyzgridshift_forward_3d(PJ_LPZ lpz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; point.lpz = lpz; @@ -182,7 +182,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { return point.xyz; } -static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { +static PJ_LPZ pj_xyzgridshift_reverse_3d(PJ_XYZ xyz, PJ *P) { auto Q = static_cast(P->opaque); PJ_COORD point = {{0, 0, 0, 0}}; point.xyz = xyz; @@ -196,7 +196,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { return point.lpz; } -static PJ *destructor(PJ *P, int errlev) { +static PJ *pj_xyzgridshift_destructor(PJ *P, int errlev) { if (nullptr == P) return nullptr; @@ -211,23 +211,23 @@ static PJ *destructor(PJ *P, int errlev) { return pj_default_destructor(P, errlev); } -static void reassign_context(PJ *P, PJ_CONTEXT *ctx) { +static void pj_xyzgridshift_reassign_context(PJ *P, PJ_CONTEXT *ctx) { auto Q = (struct xyzgridshiftData *)P->opaque; for (auto &grid : Q->grids) { grid->reassign_context(ctx); } } -PJ *TRANSFORMATION(xyzgridshift, 0) { +PJ *PJ_TRANSFORMATION(xyzgridshift, 0) { auto Q = new xyzgridshiftData; P->opaque = (void *)Q; - P->destructor = destructor; - P->reassign_context = reassign_context; + P->destructor = pj_xyzgridshift_destructor; + P->reassign_context = pj_xyzgridshift_reassign_context; P->fwd4d = nullptr; P->inv4d = nullptr; - P->fwd3d = forward_3d; - P->inv3d = reverse_3d; + P->fwd3d = pj_xyzgridshift_forward_3d; + P->inv3d = pj_xyzgridshift_reverse_3d; P->fwd = nullptr; P->inv = nullptr; @@ -237,7 +237,7 @@ PJ *TRANSFORMATION(xyzgridshift, 0) { // Pass a dummy ellipsoid definition that will be overridden just afterwards Q->cart = proj_create(P->ctx, "+proj=cart +a=1"); if (Q->cart == nullptr) - return destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + return pj_xyzgridshift_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); /* inherit ellipsoid definition from P to Q->cart */ pj_inherit_ellipsoid_def(P, Q->cart); @@ -253,13 +253,14 @@ PJ *TRANSFORMATION(xyzgridshift, 0) { Q->grid_ref_is_input = false; } else { proj_log_error(P, _("unusupported value for grid_ref")); - return destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_xyzgridshift_destructor( + P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } } if (0 == pj_param(P->ctx, P->params, "tgrids").i) { proj_log_error(P, _("+grids parameter missing.")); - return destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); + return pj_xyzgridshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } /* multiplier for delta x,y,z */ @@ -274,7 +275,8 @@ PJ *TRANSFORMATION(xyzgridshift, 0) { /* Was gridlist compiled properly? */ if (proj_errno(P)) { proj_log_error(P, _("could not find required grid(s).")); - return destructor(P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); + return pj_xyzgridshift_destructor( + P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } } From 8e98497b1528cc486ab551b0b4a2267f671fa854 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:38:02 +0100 Subject: [PATCH 089/199] travis/install.sh: test -DCMAKE_UNITY_BUILD=ON --- travis/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/travis/install.sh b/travis/install.sh index 711f2db29b..e61bb7d17a 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -55,6 +55,7 @@ mkdir shared_build cd shared_build cmake \ -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -DCMAKE_UNITY_BUILD=ON \ -D USE_CCACHE=${USE_CCACHE} \ ${PROJ_CMAKE_BUILD_OPTIONS:-} \ -D PROJ_DB_CACHE_DIR=$HOME/.ccache \ From 850c6abf7ee1740900b85591e635123abda6433d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 02:44:45 +0100 Subject: [PATCH 090/199] windows.yml: test -DCMAKE_UNITY_BUILD=ON --- .github/workflows/windows.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index aeca8e698d..573d34e28f 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -63,7 +63,8 @@ jobs: set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir # Not directly linked to BUILD_SHARED_LIBS, but a way to test different C++ standard versions if "${{ env.BUILD_SHARED_LIBS }}"=="ON" (set EXTRA_CXX_FLAGS="/std:c++20") - cmake -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -DBUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX %EXTRA_CXX_FLAGS%" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%" -DPROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% .. + if "${{ env.BUILD_TYPE }}"=="Release" (set CMAKE_UNITY_BUILD_OPT="-DCMAKE_UNITY_BUILD=ON") + cmake -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -DBUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX %EXTRA_CXX_FLAGS%" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%" -DPROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% %CMAKE_UNITY_BUILD_OPT% .. ninja -v ninja install dir %PROJ_DIR%\bin @@ -136,7 +137,7 @@ jobs: PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir mkdir ${PROJ_BUILD} cd ${PROJ_BUILD} - cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DBUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} -DCMAKE_INSTALL_PREFIX="${PROJ_DIR}" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DUSE_CCACHE=ON -DPROJ_DB_CACHE_DIR=$HOME/.ccache .. + cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DBUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} -DCMAKE_INSTALL_PREFIX="${PROJ_DIR}" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DUSE_CCACHE=ON -DCMAKE_UNITY_BUILD=ON -DPROJ_DB_CACHE_DIR=$HOME/.ccache .. make -j 2 make install ls ${PROJ_DIR}/bin From d7caaab47719c199cc86a64807f6eb8928b531ce Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 14:40:46 +0100 Subject: [PATCH 091/199] Remove now useless '#define PJ_LIB_' --- src/conversions/axisswap.cpp | 1 - src/conversions/cart.cpp | 2 -- src/conversions/geoc.cpp | 2 -- src/conversions/geocent.cpp | 2 -- src/conversions/noop.cpp | 2 +- src/conversions/set.cpp | 2 +- src/conversions/topocentric.cpp | 2 -- src/conversions/unitconvert.cpp | 2 -- src/deriv.cpp | 1 - src/factors.cpp | 2 +- src/gauss.cpp | 1 - src/init.cpp | 2 -- src/pipeline.cpp | 2 -- src/proj_mdist.cpp | 1 - src/projections/adams.cpp | 2 -- src/projections/aea.cpp | 1 - src/projections/aeqd.cpp | 1 - src/projections/airy.cpp | 1 - src/projections/aitoff.cpp | 2 -- src/projections/august.cpp | 2 +- src/projections/bacon.cpp | 2 +- src/projections/bertin1953.cpp | 2 -- src/projections/bipc.cpp | 2 +- src/projections/boggs.cpp | 2 +- src/projections/bonne.cpp | 2 +- src/projections/calcofi.cpp | 2 +- src/projections/cass.cpp | 2 +- src/projections/cc.cpp | 2 +- src/projections/ccon.cpp | 1 - src/projections/cea.cpp | 2 +- src/projections/chamb.cpp | 2 +- src/projections/col_urban.cpp | 2 +- src/projections/collg.cpp | 2 +- src/projections/comill.cpp | 2 -- src/projections/crast.cpp | 2 +- src/projections/denoy.cpp | 2 +- src/projections/eck1.cpp | 2 +- src/projections/eck2.cpp | 2 +- src/projections/eck3.cpp | 2 +- src/projections/eck4.cpp | 2 +- src/projections/eck5.cpp | 2 +- src/projections/eqc.cpp | 2 +- src/projections/eqdc.cpp | 2 +- src/projections/eqearth.cpp | 1 - src/projections/fahey.cpp | 2 +- src/projections/fouc_s.cpp | 2 +- src/projections/gall.cpp | 2 +- src/projections/geos.cpp | 1 - src/projections/gins8.cpp | 2 +- src/projections/gn_sinu.cpp | 2 +- src/projections/gnom.cpp | 2 +- src/projections/goode.cpp | 2 +- src/projections/gstmerc.cpp | 2 +- src/projections/hammer.cpp | 2 +- src/projections/hatano.cpp | 2 +- src/projections/healpix.cpp | 1 - src/projections/igh.cpp | 2 +- src/projections/igh_o.cpp | 2 +- src/projections/imoll.cpp | 2 +- src/projections/imoll_o.cpp | 2 +- src/projections/imw_p.cpp | 2 +- src/projections/isea.cpp | 1 - src/projections/krovak.cpp | 2 -- src/projections/labrd.cpp | 2 +- src/projections/laea.cpp | 2 +- src/projections/lagrng.cpp | 2 +- src/projections/larr.cpp | 2 +- src/projections/lask.cpp | 2 +- src/projections/latlong.cpp | 2 +- src/projections/lcc.cpp | 2 +- src/projections/lcca.cpp | 2 -- src/projections/loxim.cpp | 2 +- src/projections/mbt_fps.cpp | 2 +- src/projections/mbtfpp.cpp | 2 +- src/projections/mbtfpq.cpp | 2 +- src/projections/merc.cpp | 2 +- src/projections/mill.cpp | 2 +- src/projections/mod_ster.cpp | 2 +- src/projections/moll.cpp | 2 +- src/projections/natearth.cpp | 1 - src/projections/natearth2.cpp | 1 - src/projections/nell.cpp | 2 +- src/projections/nell_h.cpp | 2 +- src/projections/nicol.cpp | 2 +- src/projections/nsper.cpp | 2 +- src/projections/nzmg.cpp | 1 - src/projections/ob_tran.cpp | 2 +- src/projections/ocea.cpp | 2 +- src/projections/oea.cpp | 2 +- src/projections/omerc.cpp | 1 - src/projections/ortho.cpp | 2 +- src/projections/patterson.cpp | 2 -- src/projections/poly.cpp | 2 +- src/projections/putp2.cpp | 2 +- src/projections/putp3.cpp | 2 +- src/projections/putp4p.cpp | 2 +- src/projections/putp5.cpp | 2 +- src/projections/putp6.cpp | 2 +- src/projections/qsc.cpp | 2 -- src/projections/robin.cpp | 2 +- src/projections/rouss.cpp | 1 - src/projections/rpoly.cpp | 2 +- src/projections/s2.cpp | 2 -- src/projections/sch.cpp | 2 -- src/projections/sconics.cpp | 2 +- src/projections/som.cpp | 1 - src/projections/somerc.cpp | 2 +- src/projections/stere.cpp | 2 +- src/projections/sterea.cpp | 2 +- src/projections/sts.cpp | 2 +- src/projections/tcc.cpp | 2 +- src/projections/tcea.cpp | 2 +- src/projections/times.cpp | 2 -- src/projections/tmerc.cpp | 2 -- src/projections/tobmerc.cpp | 2 +- src/projections/tpeqd.cpp | 2 +- src/projections/urm5.cpp | 2 +- src/projections/urmfps.cpp | 2 +- src/projections/vandg.cpp | 1 - src/projections/vandg2.cpp | 2 +- src/projections/vandg4.cpp | 2 +- src/projections/wag2.cpp | 2 +- src/projections/wag3.cpp | 2 +- src/projections/wag7.cpp | 2 +- src/projections/wink1.cpp | 2 +- src/projections/wink2.cpp | 2 +- src/transformations/affine.cpp | 1 - src/transformations/defmodel.cpp | 1 - src/transformations/deformation.cpp | 2 +- src/transformations/gridshift.cpp | 2 -- src/transformations/helmert.cpp | 2 -- src/transformations/hgridshift.cpp | 2 +- src/transformations/horner.cpp | 2 -- src/transformations/molodensky.cpp | 1 - src/transformations/tinshift.cpp | 1 - src/transformations/vertoffset.cpp | 1 - src/transformations/vgridshift.cpp | 2 +- src/transformations/xyzgridshift.cpp | 2 -- 138 files changed, 91 insertions(+), 161 deletions(-) diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index f6c46fb31e..1638b09e68 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -52,7 +52,6 @@ It is only necessary to specify the axes that are affected by the swap * ***********************************************************************/ -#define PJ_LIB_ #include #include #include diff --git a/src/conversions/cart.cpp b/src/conversions/cart.cpp index b3394e8882..286aef3333 100644 --- a/src/conversions/cart.cpp +++ b/src/conversions/cart.cpp @@ -40,8 +40,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include "proj_internal.h" #include diff --git a/src/conversions/geoc.cpp b/src/conversions/geoc.cpp index c15fffd092..a1efc1708d 100644 --- a/src/conversions/geoc.cpp +++ b/src/conversions/geoc.cpp @@ -26,8 +26,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include #include "proj.h" diff --git a/src/conversions/geocent.cpp b/src/conversions/geocent.cpp index f086b12f07..cc8b259154 100644 --- a/src/conversions/geocent.cpp +++ b/src/conversions/geocent.cpp @@ -27,8 +27,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include "proj.h" #include "proj_internal.h" diff --git a/src/conversions/noop.cpp b/src/conversions/noop.cpp index 726c8f3a5e..5737417ff8 100644 --- a/src/conversions/noop.cpp +++ b/src/conversions/noop.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj_internal.h" diff --git a/src/conversions/set.cpp b/src/conversions/set.cpp index 9e11c98475..cfc4df31b5 100644 --- a/src/conversions/set.cpp +++ b/src/conversions/set.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj_internal.h" #include diff --git a/src/conversions/topocentric.cpp b/src/conversions/topocentric.cpp index c949b38253..134004ab59 100644 --- a/src/conversions/topocentric.cpp +++ b/src/conversions/topocentric.cpp @@ -25,8 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include "proj_internal.h" #include #include diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp index c283aab8f0..182fe9498a 100644 --- a/src/conversions/unitconvert.cpp +++ b/src/conversions/unitconvert.cpp @@ -63,8 +63,6 @@ Last update: 2017-05-16 * ***********************************************************************/ -#define PJ_LIB_ - #include #include #include diff --git a/src/deriv.cpp b/src/deriv.cpp index b13fe4c2d5..aff54a647c 100644 --- a/src/deriv.cpp +++ b/src/deriv.cpp @@ -1,5 +1,4 @@ /* dervative of (*P->fwd) projection */ -#define PJ_LIB_ #include diff --git a/src/factors.cpp b/src/factors.cpp index 86e391ec2b..1d975055ab 100644 --- a/src/factors.cpp +++ b/src/factors.cpp @@ -1,5 +1,5 @@ /* projection scale factors */ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/gauss.cpp b/src/gauss.cpp index 3de7fd7454..04858748d8 100644 --- a/src/gauss.cpp +++ b/src/gauss.cpp @@ -23,7 +23,6 @@ ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#define PJ_LIB_ #include #include diff --git a/src/init.cpp b/src/init.cpp index ff6f558709..6567af1701 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -27,8 +27,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include #include #include diff --git a/src/pipeline.cpp b/src/pipeline.cpp index 97bd2cbb05..7cc2ea62ff 100644 --- a/src/pipeline.cpp +++ b/src/pipeline.cpp @@ -97,8 +97,6 @@ Thomas Knudsen, thokn@sdfe.dk, 2016-05-20 * ********************************************************************************/ -#define PJ_LIB_ - #include #include #include diff --git a/src/proj_mdist.cpp b/src/proj_mdist.cpp index fca9bf8bf9..b35d37d21c 100644 --- a/src/proj_mdist.cpp +++ b/src/proj_mdist.cpp @@ -27,7 +27,6 @@ ** and inverse on unit ellipsoid. ** Precision commensurate with double precision. */ -#define PJ_LIB_ #include #include diff --git a/src/projections/adams.cpp b/src/projections/adams.cpp index af33f4bf6f..cdef83ec46 100644 --- a/src/projections/adams.cpp +++ b/src/projections/adams.cpp @@ -35,8 +35,6 @@ * https://en.wikipedia.org/wiki/Peirce_quincuncial_projection */ -#define PJ_LIB_ - #include #include diff --git a/src/projections/aea.cpp b/src/projections/aea.cpp index c4e66d4658..21c46eb9f1 100644 --- a/src/projections/aea.cpp +++ b/src/projections/aea.cpp @@ -27,7 +27,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/aeqd.cpp b/src/projections/aeqd.cpp index 594256a778..9bdb441d31 100644 --- a/src/projections/aeqd.cpp +++ b/src/projections/aeqd.cpp @@ -25,7 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include "geodesic.h" #include "proj.h" #include "proj_internal.h" diff --git a/src/projections/airy.cpp b/src/projections/airy.cpp index 2094fa1da6..037ecafd28 100644 --- a/src/projections/airy.cpp +++ b/src/projections/airy.cpp @@ -26,7 +26,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/aitoff.cpp b/src/projections/aitoff.cpp index bd3b19d043..fed9dfcc08 100644 --- a/src/projections/aitoff.cpp +++ b/src/projections/aitoff.cpp @@ -28,8 +28,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include #include diff --git a/src/projections/august.cpp b/src/projections/august.cpp index 83c6514dba..ccd5ada200 100644 --- a/src/projections/august.cpp +++ b/src/projections/august.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/bacon.cpp b/src/projections/bacon.cpp index afd532b0de..f8419f22ec 100644 --- a/src/projections/bacon.cpp +++ b/src/projections/bacon.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/bertin1953.cpp b/src/projections/bertin1953.cpp index 8a2e427557..832d762292 100644 --- a/src/projections/bertin1953.cpp +++ b/src/projections/bertin1953.cpp @@ -9,8 +9,6 @@ Port to PROJ by Philippe Rivière, 21 September 2018 */ -#define PJ_LIB_ - #include #include diff --git a/src/projections/bipc.cpp b/src/projections/bipc.cpp index 4b62a9f49c..587187329a 100644 --- a/src/projections/bipc.cpp +++ b/src/projections/bipc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/boggs.cpp b/src/projections/boggs.cpp index 8d37e3cf72..4849da739f 100644 --- a/src/projections/boggs.cpp +++ b/src/projections/boggs.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include "proj.h" diff --git a/src/projections/bonne.cpp b/src/projections/bonne.cpp index b61e2e34db..f5c31bb592 100644 --- a/src/projections/bonne.cpp +++ b/src/projections/bonne.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/calcofi.cpp b/src/projections/calcofi.cpp index 28d68a9ae9..e645265049 100644 --- a/src/projections/calcofi.cpp +++ b/src/projections/calcofi.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/cass.cpp b/src/projections/cass.cpp index 66ea3399dc..59682fc407 100644 --- a/src/projections/cass.cpp +++ b/src/projections/cass.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/cc.cpp b/src/projections/cc.cpp index 04d122d6d2..0c73534063 100644 --- a/src/projections/cc.cpp +++ b/src/projections/cc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/ccon.cpp b/src/projections/ccon.cpp index 3fed99f863..468570a2d2 100644 --- a/src/projections/ccon.cpp +++ b/src/projections/ccon.cpp @@ -20,7 +20,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/cea.cpp b/src/projections/cea.cpp index 9af9dd5915..7ce832f876 100644 --- a/src/projections/cea.cpp +++ b/src/projections/cea.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/chamb.cpp b/src/projections/chamb.cpp index c1ae3a55dd..27b5ff8698 100644 --- a/src/projections/chamb.cpp +++ b/src/projections/chamb.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/col_urban.cpp b/src/projections/col_urban.cpp index f0a93aaf37..693147ae2c 100644 --- a/src/projections/col_urban.cpp +++ b/src/projections/col_urban.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/collg.cpp b/src/projections/collg.cpp index cb335ae240..47fe620395 100644 --- a/src/projections/collg.cpp +++ b/src/projections/collg.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/comill.cpp b/src/projections/comill.cpp index 38769c15be..9dd7e5893e 100644 --- a/src/projections/comill.cpp +++ b/src/projections/comill.cpp @@ -6,8 +6,6 @@ Sciences, Oregon State University. Port to PROJ.4 by Bojan Savric, 4 April 2016 */ -#define PJ_LIB_ - #include #include "proj.h" diff --git a/src/projections/crast.cpp b/src/projections/crast.cpp index 2559d3b28a..cbd9c1b976 100644 --- a/src/projections/crast.cpp +++ b/src/projections/crast.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include "proj.h" diff --git a/src/projections/denoy.cpp b/src/projections/denoy.cpp index d4f51083f2..468145932c 100644 --- a/src/projections/denoy.cpp +++ b/src/projections/denoy.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include "proj.h" diff --git a/src/projections/eck1.cpp b/src/projections/eck1.cpp index aac191a231..7a0c1d25ff 100644 --- a/src/projections/eck1.cpp +++ b/src/projections/eck1.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include "proj.h" diff --git a/src/projections/eck2.cpp b/src/projections/eck2.cpp index 8d57f9e6a3..0405ffc9f8 100644 --- a/src/projections/eck2.cpp +++ b/src/projections/eck2.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/eck3.cpp b/src/projections/eck3.cpp index f5e51ca428..c34e06d0a8 100644 --- a/src/projections/eck3.cpp +++ b/src/projections/eck3.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/eck4.cpp b/src/projections/eck4.cpp index 56f97fa4ae..bae48e0ff7 100644 --- a/src/projections/eck4.cpp +++ b/src/projections/eck4.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/eck5.cpp b/src/projections/eck5.cpp index 29cccba00d..76bba00f62 100644 --- a/src/projections/eck5.cpp +++ b/src/projections/eck5.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/eqc.cpp b/src/projections/eqc.cpp index aff1730e20..c5564521dc 100644 --- a/src/projections/eqc.cpp +++ b/src/projections/eqc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/eqdc.cpp b/src/projections/eqdc.cpp index b25bff0e1e..7774bf0fb5 100644 --- a/src/projections/eqdc.cpp +++ b/src/projections/eqdc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/eqearth.cpp b/src/projections/eqearth.cpp index adf5139174..ed2502f7ac 100644 --- a/src/projections/eqearth.cpp +++ b/src/projections/eqearth.cpp @@ -11,7 +11,6 @@ DOI: 10.1080/13658816.2018.1504949 Port to PROJ by Juernjakob Dugge, 16 August 2018 Added ellipsoidal equations by Bojan Savric, 22 August 2018 */ -#define PJ_LIB_ #include #include diff --git a/src/projections/fahey.cpp b/src/projections/fahey.cpp index ef24bbd8fd..3557a165d2 100644 --- a/src/projections/fahey.cpp +++ b/src/projections/fahey.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/fouc_s.cpp b/src/projections/fouc_s.cpp index 8e4db3b7c5..36235bf115 100644 --- a/src/projections/fouc_s.cpp +++ b/src/projections/fouc_s.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/gall.cpp b/src/projections/gall.cpp index 4c2f399bae..53ac74daa6 100644 --- a/src/projections/gall.cpp +++ b/src/projections/gall.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/geos.cpp b/src/projections/geos.cpp index 5909fc7aef..0f1ae46990 100644 --- a/src/projections/geos.cpp +++ b/src/projections/geos.cpp @@ -27,7 +27,6 @@ ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#define PJ_LIB_ #include #include #include diff --git a/src/projections/gins8.cpp b/src/projections/gins8.cpp index 6a7005854f..4a3c8c0b66 100644 --- a/src/projections/gins8.cpp +++ b/src/projections/gins8.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" diff --git a/src/projections/gn_sinu.cpp b/src/projections/gn_sinu.cpp index 97a8b1b191..1615c6a54b 100644 --- a/src/projections/gn_sinu.cpp +++ b/src/projections/gn_sinu.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/gnom.cpp b/src/projections/gnom.cpp index f6dd984cc4..490ed0abc1 100644 --- a/src/projections/gnom.cpp +++ b/src/projections/gnom.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/goode.cpp b/src/projections/goode.cpp index 93177aac01..a9cc76ef69 100644 --- a/src/projections/goode.cpp +++ b/src/projections/goode.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/gstmerc.cpp b/src/projections/gstmerc.cpp index 81d63fe4ef..da3f3fa5a8 100644 --- a/src/projections/gstmerc.cpp +++ b/src/projections/gstmerc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp index 7353b6a254..140db9ccfb 100644 --- a/src/projections/hammer.cpp +++ b/src/projections/hammer.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/hatano.cpp b/src/projections/hatano.cpp index 956d4e3f70..e9aa0cc892 100644 --- a/src/projections/hatano.cpp +++ b/src/projections/hatano.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/healpix.cpp b/src/projections/healpix.cpp index e3d97b09e0..74d83799e6 100644 --- a/src/projections/healpix.cpp +++ b/src/projections/healpix.cpp @@ -29,7 +29,6 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include #include diff --git a/src/projections/igh.cpp b/src/projections/igh.cpp index 51181afa9b..1f321ec0bd 100644 --- a/src/projections/igh.cpp +++ b/src/projections/igh.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/igh_o.cpp b/src/projections/igh_o.cpp index 19ae6efc3f..f7d37fc287 100644 --- a/src/projections/igh_o.cpp +++ b/src/projections/igh_o.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/imoll.cpp b/src/projections/imoll.cpp index 28211ca04a..3a1e89fb55 100644 --- a/src/projections/imoll.cpp +++ b/src/projections/imoll.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/imoll_o.cpp b/src/projections/imoll_o.cpp index 3223c40d95..5b9d27f7dc 100644 --- a/src/projections/imoll_o.cpp +++ b/src/projections/imoll_o.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/imw_p.cpp b/src/projections/imw_p.cpp index 83d1db3cac..5ad93a9d63 100644 --- a/src/projections/imw_p.cpp +++ b/src/projections/imw_p.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/isea.cpp b/src/projections/isea.cpp index def71f0387..8ff5009edc 100644 --- a/src/projections/isea.cpp +++ b/src/projections/isea.cpp @@ -12,7 +12,6 @@ #include -#define PJ_LIB_ #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/krovak.cpp b/src/projections/krovak.cpp index f823a9dc8c..ef5cf65c9d 100644 --- a/src/projections/krovak.cpp +++ b/src/projections/krovak.cpp @@ -75,8 +75,6 @@ * *****************************************************************************/ -#define PJ_LIB_ - #include #include diff --git a/src/projections/labrd.cpp b/src/projections/labrd.cpp index 4c5cf2a962..9353e0acb1 100644 --- a/src/projections/labrd.cpp +++ b/src/projections/labrd.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/laea.cpp b/src/projections/laea.cpp index a7ba94a9fc..1c773c4711 100644 --- a/src/projections/laea.cpp +++ b/src/projections/laea.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/lagrng.cpp b/src/projections/lagrng.cpp index be19089c9b..34760db2a1 100644 --- a/src/projections/lagrng.cpp +++ b/src/projections/lagrng.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/larr.cpp b/src/projections/larr.cpp index 6bc2c55b79..4d3de103e0 100644 --- a/src/projections/larr.cpp +++ b/src/projections/larr.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/lask.cpp b/src/projections/lask.cpp index 92ec156e86..c90259684d 100644 --- a/src/projections/lask.cpp +++ b/src/projections/lask.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" diff --git a/src/projections/latlong.cpp b/src/projections/latlong.cpp index b70cb6afc2..e4d8ef313d 100644 --- a/src/projections/latlong.cpp +++ b/src/projections/latlong.cpp @@ -28,7 +28,7 @@ *****************************************************************************/ /* very loosely based upon DMA code by Bradford W. Drew */ -#define PJ_LIB_ + #include "proj_internal.h" PROJ_HEAD(lonlat, "Lat/long (Geodetic)") "\n\t"; diff --git a/src/projections/lcc.cpp b/src/projections/lcc.cpp index 74d40b03ab..e0309ee7c0 100644 --- a/src/projections/lcc.cpp +++ b/src/projections/lcc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/lcca.cpp b/src/projections/lcca.cpp index 8c43c16db4..d13391a150 100644 --- a/src/projections/lcca.cpp +++ b/src/projections/lcca.cpp @@ -45,8 +45,6 @@ *****************************************************************************/ -#define PJ_LIB_ - #include #include diff --git a/src/projections/loxim.cpp b/src/projections/loxim.cpp index 6a37906494..12020e02f3 100644 --- a/src/projections/loxim.cpp +++ b/src/projections/loxim.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/mbt_fps.cpp b/src/projections/mbt_fps.cpp index 4822934b14..0c0becfedc 100644 --- a/src/projections/mbt_fps.cpp +++ b/src/projections/mbt_fps.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/mbtfpp.cpp b/src/projections/mbtfpp.cpp index bb32d3490e..036aada3dc 100644 --- a/src/projections/mbtfpp.cpp +++ b/src/projections/mbtfpp.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/mbtfpq.cpp b/src/projections/mbtfpq.cpp index 6134d97e93..13c744b091 100644 --- a/src/projections/mbtfpq.cpp +++ b/src/projections/mbtfpq.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/merc.cpp b/src/projections/merc.cpp index fcdfc64b53..86a6dc95e0 100644 --- a/src/projections/merc.cpp +++ b/src/projections/merc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/mill.cpp b/src/projections/mill.cpp index b57f84fd75..f302e076db 100644 --- a/src/projections/mill.cpp +++ b/src/projections/mill.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/mod_ster.cpp b/src/projections/mod_ster.cpp index 953546006e..fda392317b 100644 --- a/src/projections/mod_ster.cpp +++ b/src/projections/mod_ster.cpp @@ -1,5 +1,5 @@ /* based upon Snyder and Linck, USGS-NMD */ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/moll.cpp b/src/projections/moll.cpp index 01c6013942..b7f7f97655 100644 --- a/src/projections/moll.cpp +++ b/src/projections/moll.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/natearth.cpp b/src/projections/natearth.cpp index d6ad4767dc..a14cc0670c 100644 --- a/src/projections/natearth.cpp +++ b/src/projections/natearth.cpp @@ -12,7 +12,6 @@ where they meet the horizontal pole line. This improvement is by intention and designed in collaboration with Tom Patterson. Port to PROJ.4 by Bernhard Jenny, 6 June 2011 */ -#define PJ_LIB_ #include diff --git a/src/projections/natearth2.cpp b/src/projections/natearth2.cpp index 115b57dc84..f983ecd60b 100644 --- a/src/projections/natearth2.cpp +++ b/src/projections/natearth2.cpp @@ -5,7 +5,6 @@ developed by Bojan Savric and Bernhard Jenny, College of Earth, Ocean, and Atmospheric Sciences, Oregon State University. Port to PROJ.4 by Bojan Savric, 4 April 2016 */ -#define PJ_LIB_ #include diff --git a/src/projections/nell.cpp b/src/projections/nell.cpp index 3fdbb41969..ba983c5063 100644 --- a/src/projections/nell.cpp +++ b/src/projections/nell.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/nell_h.cpp b/src/projections/nell_h.cpp index 4d58cc30ef..ab86131461 100644 --- a/src/projections/nell_h.cpp +++ b/src/projections/nell_h.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/nicol.cpp b/src/projections/nicol.cpp index 5ee49c891f..93e2458873 100644 --- a/src/projections/nicol.cpp +++ b/src/projections/nicol.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/nsper.cpp b/src/projections/nsper.cpp index 95c0871e40..e8732eb99f 100644 --- a/src/projections/nsper.cpp +++ b/src/projections/nsper.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/nzmg.cpp b/src/projections/nzmg.cpp index 1879b7739b..c4ea5a8030 100644 --- a/src/projections/nzmg.cpp +++ b/src/projections/nzmg.cpp @@ -25,7 +25,6 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #include diff --git a/src/projections/ob_tran.cpp b/src/projections/ob_tran.cpp index 34510dc812..131c538907 100644 --- a/src/projections/ob_tran.cpp +++ b/src/projections/ob_tran.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include #include diff --git a/src/projections/ocea.cpp b/src/projections/ocea.cpp index 1fe37af7b4..ca657f0af4 100644 --- a/src/projections/ocea.cpp +++ b/src/projections/ocea.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/oea.cpp b/src/projections/oea.cpp index a6bbf3e505..1e5083bc33 100644 --- a/src/projections/oea.cpp +++ b/src/projections/oea.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/omerc.cpp b/src/projections/omerc.cpp index 66654ba30f..0f883d4ed8 100644 --- a/src/projections/omerc.cpp +++ b/src/projections/omerc.cpp @@ -21,7 +21,6 @@ ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#define PJ_LIB_ #include #include diff --git a/src/projections/ortho.cpp b/src/projections/ortho.cpp index 2322b6dbb6..e90cb92c5a 100644 --- a/src/projections/ortho.cpp +++ b/src/projections/ortho.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/patterson.cpp b/src/projections/patterson.cpp index 088971f06d..97468d916a 100644 --- a/src/projections/patterson.cpp +++ b/src/projections/patterson.cpp @@ -39,8 +39,6 @@ * Port to PROJ.4 by Micah Cochran, 26 March 2016 */ -#define PJ_LIB_ - #include #include "proj.h" diff --git a/src/projections/poly.cpp b/src/projections/poly.cpp index 8e67925a62..3a36c92760 100644 --- a/src/projections/poly.cpp +++ b/src/projections/poly.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/putp2.cpp b/src/projections/putp2.cpp index 7e45dccff7..da99774949 100644 --- a/src/projections/putp2.cpp +++ b/src/projections/putp2.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/putp3.cpp b/src/projections/putp3.cpp index d2f05d8c50..75066c4426 100644 --- a/src/projections/putp3.cpp +++ b/src/projections/putp3.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include "proj.h" diff --git a/src/projections/putp4p.cpp b/src/projections/putp4p.cpp index 51f889125f..ad1b1c03ed 100644 --- a/src/projections/putp4p.cpp +++ b/src/projections/putp4p.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/putp5.cpp b/src/projections/putp5.cpp index 70acb8dca1..ea76be5f2c 100644 --- a/src/projections/putp5.cpp +++ b/src/projections/putp5.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/putp6.cpp b/src/projections/putp6.cpp index 50d9e270ea..b30c0a1202 100644 --- a/src/projections/putp6.cpp +++ b/src/projections/putp6.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/qsc.cpp b/src/projections/qsc.cpp index a41dadba81..34c8e5289b 100644 --- a/src/projections/qsc.cpp +++ b/src/projections/qsc.cpp @@ -39,8 +39,6 @@ * pj_qsc_ns::AREA_0. */ -#define PJ_LIB_ - #include #include diff --git a/src/projections/robin.cpp b/src/projections/robin.cpp index af0dc2f9ef..88c7fbf712 100644 --- a/src/projections/robin.cpp +++ b/src/projections/robin.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/rouss.cpp b/src/projections/rouss.cpp index 0f26c85b05..db925d4f23 100644 --- a/src/projections/rouss.cpp +++ b/src/projections/rouss.cpp @@ -23,7 +23,6 @@ ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#define PJ_LIB_ #include #include diff --git a/src/projections/rpoly.cpp b/src/projections/rpoly.cpp index 4d89cb3ad4..d7e1ed69b7 100644 --- a/src/projections/rpoly.cpp +++ b/src/projections/rpoly.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/s2.cpp b/src/projections/s2.cpp index 337fe4517a..a90a4f79b7 100644 --- a/src/projections/s2.cpp +++ b/src/projections/s2.cpp @@ -47,8 +47,6 @@ * https://github.com/google/s2geometry/blob/0c4c460bdfe696da303641771f9def900b3e440f/src/s2/util/math/vector.h ****************************************************************************/ -#define PJ_LIB_ - /* enable predefined math constants M_* for MS Visual Studio */ #if defined(_MSC_VER) || defined(_WIN32) #ifndef _USE_MATH_DEFINES diff --git a/src/projections/sch.cpp b/src/projections/sch.cpp index f0f7638665..8edf5d471a 100644 --- a/src/projections/sch.cpp +++ b/src/projections/sch.cpp @@ -33,8 +33,6 @@ * DEALINGS IN THE SOFTWARE. ****************************************************************************/ -#define PJ_LIB_ - #include #include diff --git a/src/projections/sconics.cpp b/src/projections/sconics.cpp index c2e10ffe98..49bac82edf 100644 --- a/src/projections/sconics.cpp +++ b/src/projections/sconics.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/som.cpp b/src/projections/som.cpp index 7a576fe419..cae0e313ef 100644 --- a/src/projections/som.cpp +++ b/src/projections/som.cpp @@ -43,7 +43,6 @@ * *****************************************************************************/ /* based upon Snyder and Linck, USGS-NMD */ -#define PJ_LIB_ #include #include diff --git a/src/projections/somerc.cpp b/src/projections/somerc.cpp index a6a0a1d6ae..42048dd9fd 100644 --- a/src/projections/somerc.cpp +++ b/src/projections/somerc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/stere.cpp b/src/projections/stere.cpp index dcd52aece9..e928518d11 100644 --- a/src/projections/stere.cpp +++ b/src/projections/stere.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/sterea.cpp b/src/projections/sterea.cpp index c5082682a1..6b7f84a6d5 100644 --- a/src/projections/sterea.cpp +++ b/src/projections/sterea.cpp @@ -23,7 +23,7 @@ ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/sts.cpp b/src/projections/sts.cpp index eedc2a3035..ebaa28ab3d 100644 --- a/src/projections/sts.cpp +++ b/src/projections/sts.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/tcc.cpp b/src/projections/tcc.cpp index e7d9114bb9..f9ed54c8fd 100644 --- a/src/projections/tcc.cpp +++ b/src/projections/tcc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/tcea.cpp b/src/projections/tcea.cpp index 778efe56cb..a2cac1707c 100644 --- a/src/projections/tcea.cpp +++ b/src/projections/tcea.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/times.cpp b/src/projections/times.cpp index 192d1d5ccc..11ac6b6db9 100644 --- a/src/projections/times.cpp +++ b/src/projections/times.cpp @@ -29,8 +29,6 @@ * Flattening the Earth, Snyder, J.P., 1993, p.213-214. *****************************************************************************/ -#define PJ_LIB_ - #include #include "proj.h" diff --git a/src/projections/tmerc.cpp b/src/projections/tmerc.cpp index 0dfb9da74b..76576a1c72 100644 --- a/src/projections/tmerc.cpp +++ b/src/projections/tmerc.cpp @@ -10,8 +10,6 @@ * slower, but more accurate implementation. */ -#define PJ_LIB_ - #include #include diff --git a/src/projections/tobmerc.cpp b/src/projections/tobmerc.cpp index 6e09017ead..5ed875e460 100644 --- a/src/projections/tobmerc.cpp +++ b/src/projections/tobmerc.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/tpeqd.cpp b/src/projections/tpeqd.cpp index eb2077b067..b62a95d595 100644 --- a/src/projections/tpeqd.cpp +++ b/src/projections/tpeqd.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include "proj.h" #include "proj_internal.h" #include diff --git a/src/projections/urm5.cpp b/src/projections/urm5.cpp index 6c814cdc31..a669397d3b 100644 --- a/src/projections/urm5.cpp +++ b/src/projections/urm5.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/urmfps.cpp b/src/projections/urmfps.cpp index d5526bc4d2..d0a4738ec8 100644 --- a/src/projections/urmfps.cpp +++ b/src/projections/urmfps.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/vandg.cpp b/src/projections/vandg.cpp index 396221d91b..3a3afebf89 100644 --- a/src/projections/vandg.cpp +++ b/src/projections/vandg.cpp @@ -1,6 +1,5 @@ // Changes to handle +over are: Copyright 2011-2014 Morelli Informatik -#define PJ_LIB_ #include "proj.h" #include "proj_internal.h" diff --git a/src/projections/vandg2.cpp b/src/projections/vandg2.cpp index be9dd88ed0..c64aff8707 100644 --- a/src/projections/vandg2.cpp +++ b/src/projections/vandg2.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/vandg4.cpp b/src/projections/vandg4.cpp index ad586b570e..58440f511a 100644 --- a/src/projections/vandg4.cpp +++ b/src/projections/vandg4.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/wag2.cpp b/src/projections/wag2.cpp index 4dbc5c0e8f..f937b8c432 100644 --- a/src/projections/wag2.cpp +++ b/src/projections/wag2.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/wag3.cpp b/src/projections/wag3.cpp index e8712c967d..cbf939984a 100644 --- a/src/projections/wag3.cpp +++ b/src/projections/wag3.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/wag7.cpp b/src/projections/wag7.cpp index 80c37c99d6..5383a04099 100644 --- a/src/projections/wag7.cpp +++ b/src/projections/wag7.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include diff --git a/src/projections/wink1.cpp b/src/projections/wink1.cpp index c0dd958005..092a1137ab 100644 --- a/src/projections/wink1.cpp +++ b/src/projections/wink1.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/projections/wink2.cpp b/src/projections/wink2.cpp index 0175a804e6..721a51e0db 100644 --- a/src/projections/wink2.cpp +++ b/src/projections/wink2.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/transformations/affine.cpp b/src/transformations/affine.cpp index 1191139d69..7acd8dce26 100644 --- a/src/transformations/affine.cpp +++ b/src/transformations/affine.cpp @@ -20,7 +20,6 @@ * DEALINGS IN THE SOFTWARE. * ***********************************************************************/ -#define PJ_LIB_ #include #include diff --git a/src/transformations/defmodel.cpp b/src/transformations/defmodel.cpp index 848bdb05fe..9c9e1178a1 100644 --- a/src/transformations/defmodel.cpp +++ b/src/transformations/defmodel.cpp @@ -25,7 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #define PROJ_COMPILATION #include "defmodel.hpp" diff --git a/src/transformations/deformation.cpp b/src/transformations/deformation.cpp index 63a1e87f9f..3abc0dabb9 100644 --- a/src/transformations/deformation.cpp +++ b/src/transformations/deformation.cpp @@ -51,7 +51,7 @@ format, up component is (was) stored in the GTX format. Both grids are * DEALINGS IN THE SOFTWARE. * ***********************************************************************/ -#define PJ_LIB_ + #include "grids.hpp" #include "proj.h" #include "proj_internal.h" diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index 6d7a63b4c8..bda2e3d415 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -25,8 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include #include #include diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index 894d321ca0..f100e06801 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -47,8 +47,6 @@ Last update: 2018-10-26 * ***********************************************************************/ -#define PJ_LIB_ - #include #include diff --git a/src/transformations/hgridshift.cpp b/src/transformations/hgridshift.cpp index 3df1ce29b8..4be74159fb 100644 --- a/src/transformations/hgridshift.cpp +++ b/src/transformations/hgridshift.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/transformations/horner.cpp b/src/transformations/horner.cpp index 2607de71b5..295e12c47d 100644 --- a/src/transformations/horner.cpp +++ b/src/transformations/horner.cpp @@ -76,8 +76,6 @@ Engsager * *****************************************************************************/ -#define PJ_LIB_ - #include #include #include diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp index ec5b1c9977..2ad2311d0f 100644 --- a/src/transformations/molodensky.cpp +++ b/src/transformations/molodensky.cpp @@ -42,7 +42,6 @@ * DEALINGS IN THE SOFTWARE. * ***********************************************************************/ -#define PJ_LIB_ #include #include diff --git a/src/transformations/tinshift.cpp b/src/transformations/tinshift.cpp index 03fb702ec4..7b044b20bf 100644 --- a/src/transformations/tinshift.cpp +++ b/src/transformations/tinshift.cpp @@ -25,7 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ #define PROJ_COMPILATION #include "tinshift.hpp" diff --git a/src/transformations/vertoffset.cpp b/src/transformations/vertoffset.cpp index e0fb71d34a..55bb27dc98 100644 --- a/src/transformations/vertoffset.cpp +++ b/src/transformations/vertoffset.cpp @@ -20,7 +20,6 @@ * DEALINGS IN THE SOFTWARE. * ***********************************************************************/ -#define PJ_LIB_ #include #include diff --git a/src/transformations/vgridshift.cpp b/src/transformations/vgridshift.cpp index e6a0f9b767..6460bfd644 100644 --- a/src/transformations/vgridshift.cpp +++ b/src/transformations/vgridshift.cpp @@ -1,4 +1,4 @@ -#define PJ_LIB_ + #include #include diff --git a/src/transformations/xyzgridshift.cpp b/src/transformations/xyzgridshift.cpp index bc0c0cec45..68281d1e7c 100644 --- a/src/transformations/xyzgridshift.cpp +++ b/src/transformations/xyzgridshift.cpp @@ -25,8 +25,6 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#define PJ_LIB_ - #include #include #include From 3edd0f26d01ff69ad57504aed45f707ee3ec93f3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 23 Nov 2023 16:10:50 +0100 Subject: [PATCH 092/199] install.rst: document CMAKE_UNITY_BUILD --- docs/source/install.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/source/install.rst b/docs/source/install.rst index 64cae1dfde..9e22fe7f31 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -315,6 +315,17 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. :envvar:`OSGEO4W_ROOT` (if set), otherwise is ``c:/OSGeo4W``. Default for Unix-like is ``/usr/local/``. +.. option:: CMAKE_UNITY_BUILD=OFF + + .. versionadded:: 9.4 + + Default is OFF. This can be set to ON to build PROJ using the + https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html feature. + This helps speeding PROJ build times. This feature is still considered + experimental for now, and could hide subtle bugs (we are not aware of + any at writing time though). We don't recommend it for mission critical + builds. + .. option:: ENABLE_IPO=OFF Build library using the compiler's `interprocedural optimization From 6903a61f859a4e066569c830740157d15067e2e8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 24 Nov 2023 12:37:39 +0100 Subject: [PATCH 093/199] Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D --- data/sql/esri.sql | 22 +++++++++++----------- scripts/build_db_from_esri.py | 9 ++++++++- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/data/sql/esri.sql b/data/sql/esri.sql index 6f06288121..fc147189a5 100644 --- a/data/sql/esri.sql +++ b/data/sql/esri.sql @@ -2468,32 +2468,32 @@ INSERT INTO "usage" VALUES('ESRI', '104304_USAGE','geodetic_crs','ESRI','104304' INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104304','geodetic_crs','EPSG','4304','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','104305','GCS_Voirol_Unifie_1960_Degree',NULL,'geographic 2D','EPSG','6422','ESRI','106011',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104305_USAGE','geodetic_crs','ESRI','104305','EPSG','1365','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104602','North_American_1983_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6269',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104602','North_American_1983_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6269',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104602_USAGE','geodetic_crs','ESRI','104602','EPSG','1350','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104613','EUREF_FIN_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6258',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104613','EUREF_FIN_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6258',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104613_USAGE','geodetic_crs','ESRI','104613','EPSG','1095','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104644','California_SRS_Epoch_2017.50_(NAD83)_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106012',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104644','California_SRS_Epoch_2017.50_(NAD83)_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106012',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104644_USAGE','geodetic_crs','ESRI','104644','ESRI','1','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104645','GGD_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106010',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104645','GGD_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106010',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104645_USAGE','geodetic_crs','ESRI','104645','EPSG','3251','EPSG','1024'); INSERT INTO "geodetic_datum" VALUES('ESRI','106272','PANAMA08_2011','Panama - ITRF_2008 epoch 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106272_USAGE','geodetic_datum','ESRI','106272','EPSG','1186','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104646','GCS_PANAMA08_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106272',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104646_USAGE','geodetic_crs','ESRI','104646','EPSG','1186','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104647','ONGD17_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106027',NULL,1); +INSERT INTO "geodetic_crs" VALUES('ESRI','104647','ONGD17_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106027',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104647_USAGE','geodetic_crs','ESRI','104647','EPSG','1183','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104647','geodetic_crs','EPSG','9293','ESRI',1); -INSERT INTO "geodetic_crs" VALUES('ESRI','104648','S-JTSK_[JTSK03]_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1201',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104648','S-JTSK_[JTSK03]_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1201',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104648_USAGE','geodetic_crs','ESRI','104648','EPSG','1211','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104653','MONREF_1997_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6656',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104653','MONREF_1997_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6656',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104653_USAGE','geodetic_crs','ESRI','104653','EPSG','1164','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104664','Nepal_Nagarkot_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106256',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104664','Nepal_Nagarkot_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106256',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104664_USAGE','geodetic_crs','ESRI','104664','EPSG','1171','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104693','SLD99_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1053',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104693','SLD99_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1053',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104693_USAGE','geodetic_crs','ESRI','104693','EPSG','3310','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104696','S_JTSK/05_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1052',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104696','S_JTSK/05_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1052',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104696_USAGE','geodetic_crs','ESRI','104696','EPSG','1079','EPSG','1024'); -INSERT INTO "geodetic_crs" VALUES('ESRI','104697','S_JTSK/05_Ferro_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1052',NULL,0); +INSERT INTO "geodetic_crs" VALUES('ESRI','104697','S_JTSK/05_Ferro_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1052',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104697_USAGE','geodetic_crs','ESRI','104697','EPSG','1079','EPSG','1024'); INSERT INTO "geodetic_datum" VALUES('ESRI','106700','D_NAD_1983_HARN_Adj_MN_Anoka','NAD 1983 HARN Adj. Minnesota Anoka','ESRI','107700','EPSG','8901',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106700_USAGE','geodetic_datum','ESRI','106700','EPSG','1392','EPSG','1024'); diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index 43beb23e18..1db5211031 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -657,6 +657,13 @@ def import_geogcs(): assert is_degree or is_grad, row cs_code = '6422' if is_degree else '6403' + if "CS[ellipsoidal,3]" in wkt2: + assert 'AXIS["Ellipsoidal height (h)",up,ORDER[3],LENGTHUNIT["Meter",1.0]' in wkt2 + cs_code = '6423' + geodetic_crs_type = "geographic 3D" + else: + geodetic_crs_type = "geographic 2D" + deprecated = 1 if row[idx_deprecated] == 'yes' else 0 extent_auth_name, extent_code = find_extent( @@ -712,7 +719,7 @@ def import_geogcs(): if esri_name not in map_geogcs_esri_name_to_auth_code: map_geogcs_esri_name_to_auth_code[esri_name] = ['ESRI', code] - sql = """INSERT INTO "geodetic_crs" VALUES('ESRI','%s','%s',NULL,'geographic 2D','EPSG','%s','%s','%s',NULL,%d);""" % ( + sql = f"""INSERT INTO "geodetic_crs" VALUES('ESRI','%s','%s',NULL,'{geodetic_crs_type}','EPSG','%s','%s','%s',NULL,%d);""" % ( code, esri_name, cs_code, datum_auth_name, datum_code, deprecated) all_sql.append(sql) sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','geodetic_crs','ESRI','%s','%s','%s','%s','%s');""" % (code, code, extent_auth_name, extent_code, 'EPSG', '1024') From e964ecf6fa1c58b9f9f3257b4d7e1b45e459cd4a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 24 Nov 2023 12:48:50 +0100 Subject: [PATCH 094/199] DatabaDatabase: update to EPSG 10.098 --- data/sql/alias_name.sql | 10 + data/sql/compound_crs.sql | 8 + data/sql/conversion.sql | 758 ++++++++++++++-------------- data/sql/extent.sql | 4 +- data/sql/grid_alternatives.sql | 2 +- data/sql/grid_transformation.sql | 2 +- data/sql/helmert_transformation.sql | 42 +- data/sql/metadata.sql | 4 +- data/sql/projected_crs.sql | 2 +- 9 files changed, 419 insertions(+), 413 deletions(-) diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index bdaafac734..a990293193 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -7943,3 +7943,13 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22821','NAD83(CSRS) 2010 INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22822','NAD83(CSRS) 2010 / UTM zone 22N','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10471','ETRS89 / COV23 SnakeGrid','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10472','ETRS89 / COV23 SnakeGrid + Newlyn height','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4162','1011','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4162','Korean 1985 - LatLon','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4926','1008','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4926','KGD2002 - XYZ','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4927','1007','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4927','KGD2002 - LatLonEHt','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4737','1009','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4737','KGD2002 - LatLon','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5193','1010','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5193','KVD1964 - NOHt','EPSG'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index ad8f6b8d98..fc73399c2c 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -844,6 +844,14 @@ INSERT INTO "compound_crs" VALUES('EPSG','10365','KGD2002 + KVD1964 height',NULL INSERT INTO "usage" VALUES('EPSG','20149','compound_crs','EPSG','10365','EPSG','3266','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','10472','COV23 Grid + ODN height',NULL,'EPSG','10471','EPSG','5701',0); INSERT INTO "usage" VALUES('EPSG','20315','compound_crs','EPSG','10472','EPSG','4743','EPSG','1141'); +INSERT INTO "compound_crs" VALUES('EPSG','10497','RGF93 v2 / Lambert-93 + NGF-IGN69 height',NULL,'EPSG','9793','EPSG','5720',0); +INSERT INTO "usage" VALUES('EPSG','20475','compound_crs','EPSG','10497','EPSG','1326','EPSG','1178'); +INSERT INTO "compound_crs" VALUES('EPSG','10498','RGF93 v2 / Lambert-93 + NGF-IGN78 height',NULL,'EPSG','9793','EPSG','5721',0); +INSERT INTO "usage" VALUES('EPSG','20473','compound_crs','EPSG','10498','EPSG','1327','EPSG','1178'); +INSERT INTO "compound_crs" VALUES('EPSG','10499','RGF93 v2b / Lambert-93 + NGF-IGN69 height',NULL,'EPSG','9794','EPSG','5720',0); +INSERT INTO "usage" VALUES('EPSG','20472','compound_crs','EPSG','10499','EPSG','1326','EPSG','1178'); +INSERT INTO "compound_crs" VALUES('EPSG','10500','RGF93 v2b / Lambert-93 + NGF-IGN78 height',NULL,'EPSG','9794','EPSG','5721',0); +INSERT INTO "usage" VALUES('EPSG','20476','compound_crs','EPSG','10500','EPSG','1327','EPSG','1178'); INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0); INSERT INTO "usage" VALUES('EPSG','17956','compound_crs','EPSG','20001','EPSG','4058','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20003','MWC18 Grid + ODN height',NULL,'EPSG','20002','EPSG','5701',0); diff --git a/data/sql/conversion.sql b/data/sql/conversion.sql index 9bba1cee21..896f80eff6 100644 --- a/data/sql/conversion.sql +++ b/data/sql/conversion.sql @@ -74,31 +74,31 @@ INSERT INTO "conversion" VALUES('EPSG','4091','DKTM3','Introduced in 2009.','EPS INSERT INTO "usage" VALUES('EPSG','9043','conversion','EPSG','4091','EPSG','2532','EPSG','1029'); INSERT INTO "conversion" VALUES('EPSG','4092','DKTM4','Introduced in 2009.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',15.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',-5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9044','conversion','EPSG','4092','EPSG','2533','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','4101','BLM zone 1N (US survey feet)','US survey foot form of UTM zone 1N. Sometimes locally referred to as "UTM zone 1".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4101','BLM zone 1N (US survey foot)','US survey foot form of UTM zone 1N. Sometimes locally referred to as "UTM zone 1".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9045','conversion','EPSG','4101','EPSG','3374','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4102','BLM zone 2N (US survey feet)','US survey foot form of UTM zone 2N. Sometimes locally referred to as "UTM zone 2".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4102','BLM zone 2N (US survey foot)','US survey foot form of UTM zone 2N. Sometimes locally referred to as "UTM zone 2".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9046','conversion','EPSG','4102','EPSG','3375','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4103','BLM zone 3N (US survey feet)','US survey foot form of UTM zone 3N. Sometimes locally referred to as "UTM zone 3".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4103','BLM zone 3N (US survey foot)','US survey foot form of UTM zone 3N. Sometimes locally referred to as "UTM zone 3".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-165.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9047','conversion','EPSG','4103','EPSG','2133','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4104','BLM zone 4N (US survey feet)','US survey foot form of UTM zone 4N. Sometimes locally referred to as "UTM zone 4".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4104','BLM zone 4N (US survey foot)','US survey foot form of UTM zone 4N. Sometimes locally referred to as "UTM zone 4".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-159.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9048','conversion','EPSG','4104','EPSG','2134','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4105','BLM zone 5N (US survey feet)','US survey foot form of UTM zone 5N. Sometimes locally referred to as "UTM zone 5".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4105','BLM zone 5N (US survey foot)','US survey foot form of UTM zone 5N. Sometimes locally referred to as "UTM zone 5".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9049','conversion','EPSG','4105','EPSG','2135','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4106','BLM zone 6N (US survey feet)','US survey foot form of UTM zone 6N. Sometimes locally referred to as "UTM zone 6".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4106','BLM zone 6N (US survey foot)','US survey foot form of UTM zone 6N. Sometimes locally referred to as "UTM zone 6".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-147.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9050','conversion','EPSG','4106','EPSG','2136','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4107','BLM zone 7N (US survey feet)','US survey foot form of UTM zone 7N. Sometimes locally referred to as "UTM zone 7".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4107','BLM zone 7N (US survey foot)','US survey foot form of UTM zone 7N. Sometimes locally referred to as "UTM zone 7".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-141.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9051','conversion','EPSG','4107','EPSG','3494','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4108','BLM zone 8N (US survey feet)','US survey foot form of UTM zone 8N. Sometimes locally referred to as "UTM zone 8".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4108','BLM zone 8N (US survey foot)','US survey foot form of UTM zone 8N. Sometimes locally referred to as "UTM zone 8".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-135.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9052','conversion','EPSG','4108','EPSG','3495','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4109','BLM zone 9N (US survey feet)','US survey foot form of UTM zone 9N. Sometimes locally referred to as "UTM zone 9".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4109','BLM zone 9N (US survey foot)','US survey foot form of UTM zone 9N. Sometimes locally referred to as "UTM zone 9".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-129.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9053','conversion','EPSG','4109','EPSG','3496','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4110','BLM zone 10N (US survey feet)','US survey foot form of UTM zone 10N. Sometimes locally referred to as "UTM zone 10".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4110','BLM zone 10N (US survey foot)','US survey foot form of UTM zone 10N. Sometimes locally referred to as "UTM zone 10".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-123.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9054','conversion','EPSG','4110','EPSG','3497','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4111','BLM zone 11N (US survey feet)','US survey foot form of UTM zone 11N. Sometimes locally referred to as "UTM zone 11".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4111','BLM zone 11N (US survey foot)','US survey foot form of UTM zone 11N. Sometimes locally referred to as "UTM zone 11".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9055','conversion','EPSG','4111','EPSG','3498','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4112','BLM zone 12N (US survey feet)','US survey foot form of UTM zone 12N. Sometimes locally referred to as "UTM zone 12".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4112','BLM zone 12N (US survey foot)','US survey foot form of UTM zone 12N. Sometimes locally referred to as "UTM zone 12".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9056','conversion','EPSG','4112','EPSG','3499','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4113','BLM zone 13N (US survey feet)','US survey foot form of UTM zone 13N. Sometimes locally referred to as "UTM zone 13".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4113','BLM zone 13N (US survey foot)','US survey foot form of UTM zone 13N. Sometimes locally referred to as "UTM zone 13".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-105.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9057','conversion','EPSG','4113','EPSG','3500','EPSG','1153'); INSERT INTO "conversion" VALUES('EPSG','4114','Johor Cassini Grid','Origin is Gunung Blumut. Replaced by GDM2000 Johor grid (code 19893).','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',2.02333,'EPSG','9110','EPSG','8802','Longitude of natural origin',103.334593,'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 "usage" VALUES('EPSG','9058','conversion','EPSG','4114','EPSG','3376','EPSG','1028'); @@ -108,15 +108,15 @@ INSERT INTO "conversion" VALUES('EPSG','4116','Pahang Cassini Grid','Origin is G INSERT INTO "usage" VALUES('EPSG','9060','conversion','EPSG','4116','EPSG','3378','EPSG','1028'); INSERT INTO "conversion" VALUES('EPSG','4117','Selangor Cassini Grid','Origin is Bukit Asa. Replaced by GDM2000 Selangor grid (code 19890).','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',3.404924,'EPSG','9110','EPSG','8802','Longitude of natural origin',101.302968,'EPSG','9110','EPSG','8806','False easting',-21759.438,'EPSG','9001','EPSG','8807','False northing',55960.906,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9061','conversion','EPSG','4117','EPSG','3379','EPSG','1028'); -INSERT INTO "conversion" VALUES('EPSG','4118','BLM zone 18N (US survey feet)','Sometimes locally referred to as "UTM zone 18".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4118','BLM zone 18N (US survey foot)','Sometimes locally referred to as "UTM zone 18".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-75.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9062','conversion','EPSG','4118','EPSG','3505','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4119','BLM zone 19N (US survey feet)','Sometimes locally referred to as "UTM zone 19".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4119','BLM zone 19N (US survey foot)','Sometimes locally referred to as "UTM zone 19".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-69.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9063','conversion','EPSG','4119','EPSG','3506','EPSG','1153'); INSERT INTO "conversion" VALUES('EPSG','4177','Terengganu Cassini Grid','Origin is Gunung Gajah Trom. Replaced by GDM2000 Terengganu grid (code 19889).','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',4.564611,'EPSG','9110','EPSG','8802','Longitude of natural origin',102.534275,'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 "usage" VALUES('EPSG','9064','conversion','EPSG','4177','EPSG','3380','EPSG','1028'); -INSERT INTO "conversion" VALUES('EPSG','4186','BLM zone 59N (US survey feet)','Sometimes locally referred to as "UTM zone 59".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4186','BLM zone 59N (US survey foot)','Sometimes locally referred to as "UTM zone 59".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9065','conversion','EPSG','4186','EPSG','3372','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','4187','BLM zone 60N (US survey feet)','Sometimes locally referred to as "UTM zone 60".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','4187','BLM zone 60N (US survey foot)','Sometimes locally referred to as "UTM zone 60".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',177.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9066','conversion','EPSG','4187','EPSG','3373','EPSG','1153'); INSERT INTO "conversion" VALUES('EPSG','4305','Pinang Cassini Grid','Origin is Fort Cornwallis. Replaced by GDM2000 Pinang grid (code 19888).','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',5.251677,'EPSG','9110','EPSG','8802','Longitude of natural origin',100.204513,'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 "usage" VALUES('EPSG','9068','conversion','EPSG','4305','EPSG','3381','EPSG','1028'); @@ -394,7 +394,7 @@ INSERT INTO "conversion" VALUES('EPSG','5640','Petrobras Mercator','','EPSG','98 INSERT INTO "usage" VALUES('EPSG','9483','conversion','EPSG','5640','EPSG','3896','EPSG','1136'); INSERT INTO "conversion" VALUES('EPSG','5642','Southern Permian Basin Atlas Lambert','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',48.0,'EPSG','9102','EPSG','8822','Longitude of false origin',10.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',52.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',54.2,'EPSG','9110','EPSG','8826','Easting at false origin',815000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9484','conversion','EPSG','5642','EPSG','3899','EPSG','1190'); -INSERT INTO "conversion" VALUES('EPSG','5645','SPCS83 Vermont zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14430.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-72.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999964286,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'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','5645','SPCS83 Vermont zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14430.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-72.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999964286,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9485','conversion','EPSG','5645','EPSG','1414','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','5647','UTM zone 31N with prefix','Variant of UTM zone 31N (code 16031) with zone number prefixed to easting.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',3.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',31500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9486','conversion','EPSG','5647','EPSG','2860','EPSG','1142'); @@ -730,85 +730,85 @@ INSERT INTO "conversion" VALUES('EPSG','6730','Map Grid of Australia zone 47','G INSERT INTO "usage" VALUES('EPSG','9753','conversion','EPSG','6730','EPSG','4190','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','6731','Map Grid of Australia zone 59','Grid convergence uses opposite sign convention to UTM.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',171.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',10000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9754','conversion','EPSG','6731','EPSG','4179','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','6741','Oregon Baker zone (meters)','See code 6742 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',40000.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','6741','Oregon Baker zone (meter)','See code 6742 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9757','conversion','EPSG','6741','EPSG','4180','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6742','Oregon Baker zone (International feet)','See code 6741 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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','6742','Oregon Baker zone (international foot)','See code 6741 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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 "usage" VALUES('EPSG','9758','conversion','EPSG','6742','EPSG','4180','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6743','Oregon Bend-Klamath Falls zone (meters)','See code 6744 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',80000.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','6743','Oregon Bend-Klamath Falls zone (meter)','See code 6744 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9759','conversion','EPSG','6743','EPSG','4192','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6744','Oregon Bend-Klamath Falls zone (International feet)','See code 6743 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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','6744','Oregon Bend-Klamath Falls zone (international foot)','See code 6743 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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 "usage" VALUES('EPSG','9760','conversion','EPSG','6744','EPSG','4192','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6745','Oregon Bend-Redmond-Prineville zone (meters)','See code 6746 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',130000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6745','Oregon Bend-Redmond-Prineville zone (meter)','See code 6746 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',130000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9761','conversion','EPSG','6745','EPSG','4195','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6746','Oregon Bend-Redmond-Prineville zone (International feet)','See code 6745 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',262467.1916,'EPSG','9002','EPSG','8807','False northing',426509.1864,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6746','Oregon Bend-Redmond-Prineville zone (international foot)','See code 6745 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',262467.1916,'EPSG','9002','EPSG','8807','False northing',426509.1864,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9762','conversion','EPSG','6746','EPSG','4195','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6747','Oregon Bend-Burns zone (meters)','See code 6748 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',120000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6747','Oregon Bend-Burns zone (meter)','See code 6748 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',120000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9763','conversion','EPSG','6747','EPSG','4182','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6748','Oregon Bend-Burns zone (International feet)','See code 6747 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',393700.7874,'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','6748','Oregon Bend-Burns zone (international foot)','See code 6747 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0002,'EPSG','9201','EPSG','8806','False easting',393700.7874,'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 "usage" VALUES('EPSG','9764','conversion','EPSG','6748','EPSG','4182','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6749','Oregon Canyonville-Grants Pass zone (meters)','See code 6750 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00007,'EPSG','9201','EPSG','8806','False easting',40000.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','6749','Oregon Canyonville-Grants Pass zone (meter)','See code 6750 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00007,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9765','conversion','EPSG','6749','EPSG','4199','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6750','Oregon Canyonville-Grants Pass zone (International feet)','See code 6749 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00007,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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','6750','Oregon Canyonville-Grants Pass zone (international foot)','See code 6749 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00007,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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 "usage" VALUES('EPSG','9766','conversion','EPSG','6750','EPSG','4199','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6751','Oregon Columbia River East zone (meters)','See code 6752 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000008,'EPSG','9201','EPSG','8806','False easting',150000.0,'EPSG','9001','EPSG','8807','False northing',30000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6751','Oregon Columbia River East zone (meter)','See code 6752 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000008,'EPSG','9201','EPSG','8806','False easting',150000.0,'EPSG','9001','EPSG','8807','False northing',30000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9767','conversion','EPSG','6751','EPSG','4200','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6752','Oregon Columbia River East zone (International feet)','See code 6751 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000008,'EPSG','9201','EPSG','8806','False easting',492125.9843,'EPSG','9002','EPSG','8807','False northing',98425.1969,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6752','Oregon Columbia River East zone (international foot)','See code 6751 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000008,'EPSG','9201','EPSG','8806','False easting',492125.9843,'EPSG','9002','EPSG','8807','False northing',98425.1969,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9768','conversion','EPSG','6752','EPSG','4200','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6753','Oregon Columbia River West zone (meters)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=168300.419 m, Nc=185673.833 m. See code 6754 for equivalent non-metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.55,'EPSG','9110','EPSG','8812','Longitude of projection centre',-123.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',295.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',295.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',7000000.0,'EPSG','9001','EPSG','8807','False northing',-3000000.0,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','6753','Oregon Columbia River West zone (meter)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=168300.419 m, Nc=185673.833 m. See code 6754 for equivalent non-metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.55,'EPSG','9110','EPSG','8812','Longitude of projection centre',-123.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',295.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',295.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',7000000.0,'EPSG','9001','EPSG','8807','False northing',-3000000.0,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','9769','conversion','EPSG','6753','EPSG','4202','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6754','Oregon Columbia River West zone (International feet)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=552166.730 ft, Nc=609166.118 ft. See code 6753 for equivalent metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.55,'EPSG','9110','EPSG','8812','Longitude of projection centre',-123.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',295.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',295.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',22965879.2651,'EPSG','9002','EPSG','8807','False northing',-9842519.685,'EPSG','9002',0); +INSERT INTO "conversion" VALUES('EPSG','6754','Oregon Columbia River West zone (international foot)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=552166.730 ft, Nc=609166.118 ft. See code 6753 for equivalent metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.55,'EPSG','9110','EPSG','8812','Longitude of projection centre',-123.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',295.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',295.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',22965879.2651,'EPSG','9002','EPSG','8807','False northing',-9842519.685,'EPSG','9002',0); INSERT INTO "usage" VALUES('EPSG','9770','conversion','EPSG','6754','EPSG','4202','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6755','Oregon Cottage Grove-Canyonville zone (meters)','See code 6756 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',50000.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','6755','Oregon Cottage Grove-Canyonville zone (meter)','See code 6756 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9771','conversion','EPSG','6755','EPSG','4203','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6756','Oregon Cottage Grove-Canyonville zone (International feet)','See code 6755 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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','6756','Oregon Cottage Grove-Canyonville zone (international foot)','See code 6755 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000023,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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 "usage" VALUES('EPSG','9772','conversion','EPSG','6756','EPSG','4203','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6757','Oregon Dufur-Madras zone (meters)','See code 6758 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00011,'EPSG','9201','EPSG','8806','False easting',80000.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','6757','Oregon Dufur-Madras zone (meter)','See code 6758 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00011,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9773','conversion','EPSG','6757','EPSG','4204','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6758','Oregon Dufur-Madras zone (International feet)','See code 6757 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00011,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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','6758','Oregon Dufur-Madras zone (international foot)','See code 6757 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-121.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00011,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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 "usage" VALUES('EPSG','9774','conversion','EPSG','6758','EPSG','4204','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6759','Oregon Eugene zone (meters)','See code 6760 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000015,'EPSG','9201','EPSG','8806','False easting',50000.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','6759','Oregon Eugene zone (meter)','See code 6760 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000015,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9775','conversion','EPSG','6759','EPSG','4197','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6760','Oregon Eugene zone (International feet)','See code 6759 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000015,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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','6760','Oregon Eugene zone (international foot)','See code 6759 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000015,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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 "usage" VALUES('EPSG','9776','conversion','EPSG','6760','EPSG','4197','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6761','Oregon Grants Pass-Ashland zone (meters)','See code 6762 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000043,'EPSG','9201','EPSG','8806','False easting',50000.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','6761','Oregon Grants Pass-Ashland zone (meter)','See code 6762 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000043,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9777','conversion','EPSG','6761','EPSG','4198','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6762','Oregon Grants Pass-Ashland zone (International feet)','See code 6761 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000043,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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','6762','Oregon Grants Pass-Ashland zone (international foot)','See code 6761 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000043,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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 "usage" VALUES('EPSG','9778','conversion','EPSG','6762','EPSG','4198','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6763','Oregon Gresham-Warm Springs zone (meters)','See code 6764 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00005,'EPSG','9201','EPSG','8806','False easting',10000.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','6763','Oregon Gresham-Warm Springs zone (meter)','See code 6764 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00005,'EPSG','9201','EPSG','8806','False easting',10000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9779','conversion','EPSG','6763','EPSG','4201','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6764','Oregon Gresham-Warm Springs zone (International feet)','See code 6763 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00005,'EPSG','9201','EPSG','8806','False easting',32808.399,'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','6764','Oregon Gresham-Warm Springs zone (international foot)','See code 6763 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00005,'EPSG','9201','EPSG','8806','False easting',32808.399,'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 "usage" VALUES('EPSG','9780','conversion','EPSG','6764','EPSG','4201','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6765','Oregon La Grande zone (meters)','See code 6766 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00013,'EPSG','9201','EPSG','8806','False easting',40000.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','6765','Oregon La Grande zone (meter)','See code 6766 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00013,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9781','conversion','EPSG','6765','EPSG','4206','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6766','Oregon La Grande zone (International feet)','See code 6765 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00013,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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','6766','Oregon La Grande zone (international foot)','See code 6765 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.00013,'EPSG','9201','EPSG','8806','False easting',131233.5958,'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 "usage" VALUES('EPSG','9782','conversion','EPSG','6766','EPSG','4206','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6767','Oregon Ontario zone (meters)','See code 6768 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',80000.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','6767','Oregon Ontario zone (meter)','See code 6768 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9783','conversion','EPSG','6767','EPSG','4207','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6768','Oregon Ontario zone (International feet)','See code 6767 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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','6768','Oregon Ontario zone (international foot)','See code 6767 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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 "usage" VALUES('EPSG','9784','conversion','EPSG','6768','EPSG','4207','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6769','Oregon Coast zone (meters)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=134743.332 m, Nc=369139.028 m. See code 6770 for equivalent non-metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',44.45,'EPSG','9110','EPSG','8812','Longitude of projection centre',-124.03,'EPSG','9110','EPSG','8813','Azimuth of initial line',5.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',5.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',-300000.0,'EPSG','9001','EPSG','8807','False northing',-4600000.0,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','6769','Oregon Coast zone (meter)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=134743.332 m, Nc=369139.028 m. See code 6770 for equivalent non-metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',44.45,'EPSG','9110','EPSG','8812','Longitude of projection centre',-124.03,'EPSG','9110','EPSG','8813','Azimuth of initial line',5.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',5.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',-300000.0,'EPSG','9001','EPSG','8807','False northing',-4600000.0,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','9785','conversion','EPSG','6769','EPSG','4208','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6770','Oregon Coast zone (International feet)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=442071.300 ft, Nc=1211086.049 ft. See code 6769 for equivalent metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',44.45,'EPSG','9110','EPSG','8812','Longitude of projection centre',-124.03,'EPSG','9110','EPSG','8813','Azimuth of initial line',5.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',5.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',-984251.9685,'EPSG','9002','EPSG','8807','False northing',-15091863.5171,'EPSG','9002',0); +INSERT INTO "conversion" VALUES('EPSG','6770','Oregon Coast zone (international foot)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=442071.300 ft, Nc=1211086.049 ft. See code 6769 for equivalent metric definition.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',44.45,'EPSG','9110','EPSG','8812','Longitude of projection centre',-124.03,'EPSG','9110','EPSG','8813','Azimuth of initial line',5.0,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',5.0,'EPSG','9102','EPSG','8815','Scale factor on initial line',1.0,'EPSG','9201','EPSG','8806','False easting',-984251.9685,'EPSG','9002','EPSG','8807','False northing',-15091863.5171,'EPSG','9002',0); INSERT INTO "usage" VALUES('EPSG','9786','conversion','EPSG','6770','EPSG','4208','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6771','Oregon Pendleton zone (meters)','See code 6772 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',60000.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','6771','Oregon Pendleton zone (meter)','See code 6772 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9787','conversion','EPSG','6771','EPSG','4209','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6772','Oregon Pendleton zone (International feet)','See code 6771 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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','6772','Oregon Pendleton zone (international foot)','See code 6771 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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 "usage" VALUES('EPSG','9788','conversion','EPSG','6772','EPSG','4209','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6773','Oregon Pendleton-La Grande zone (meters)','See code 6774 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000175,'EPSG','9201','EPSG','8806','False easting',30000.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','6773','Oregon Pendleton-La Grande zone (meter)','See code 6774 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000175,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9789','conversion','EPSG','6773','EPSG','4210','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6774','Oregon Pendleton-La Grande zone (International feet)','See code 6773 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000175,'EPSG','9201','EPSG','8806','False easting',98425.1969,'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','6774','Oregon Pendleton-La Grande zone (international foot)','See code 6773 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000175,'EPSG','9201','EPSG','8806','False easting',98425.1969,'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 "usage" VALUES('EPSG','9790','conversion','EPSG','6774','EPSG','4210','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6775','Oregon Portland zone (meters)','See code 6776 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000002,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6775','Oregon Portland zone (meter)','See code 6776 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000002,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9791','conversion','EPSG','6775','EPSG','4211','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6776','Oregon Portland zone (International feet)','See code 6775 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000002,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',164041.9948,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6776','Oregon Portland zone (international foot)','See code 6775 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000002,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',164041.9948,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9792','conversion','EPSG','6776','EPSG','4211','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6777','Oregon Salem zone (meters)','See code 6778 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00001,'EPSG','9201','EPSG','8806','False easting',50000.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','6777','Oregon Salem zone (meter)','See code 6778 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00001,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9793','conversion','EPSG','6777','EPSG','4212','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6778','Oregon Salem zone (International feet)','See code 6777 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00001,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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','6778','Oregon Salem zone (international foot)','See code 6777 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00001,'EPSG','9201','EPSG','8806','False easting',164041.9948,'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 "usage" VALUES('EPSG','9794','conversion','EPSG','6778','EPSG','4212','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6779','Oregon Santiam Pass zone (meters)','See code 6780 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000155,'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','6779','Oregon Santiam Pass zone (meter)','See code 6780 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000155,'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 "usage" VALUES('EPSG','9795','conversion','EPSG','6779','EPSG','4213','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','6780','Oregon Santiam Pass zone (International feet)','See code 6779 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000155,'EPSG','9201','EPSG','8806','False easting',0.0,'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','6780','Oregon Santiam Pass zone (international foot)','See code 6779 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000155,'EPSG','9201','EPSG','8806','False easting',0.0,'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 "usage" VALUES('EPSG','9796','conversion','EPSG','6780','EPSG','4213','EPSG','1029'); INSERT INTO "conversion" VALUES('EPSG','6869','Albania TM 2010','Planimetric component of Albanian Geodetic Reference Framework (KRGJSH) 2010. Albania LCC 2010 projection (code 6961) used for mapping at scales of 1:500,000 and smaller.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',20.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9800','conversion','EPSG','6869','EPSG','3212','EPSG','1055'); @@ -816,9 +816,9 @@ INSERT INTO "conversion" VALUES('EPSG','6877','Italy zone','','EPSG','9807','Tra INSERT INTO "usage" VALUES('EPSG','9804','conversion','EPSG','6877','EPSG','1127','EPSG','1241'); INSERT INTO "conversion" VALUES('EPSG','6878','Italy zone 12','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',12.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',3000000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9805','conversion','EPSG','6878','EPSG','1127','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','6920','Kansas DOT Lambert (meters)','See code 6921 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','6920','Kansas DOT Lambert (meter)','See code 6921 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9832','conversion','EPSG','6920','EPSG','1385','EPSG','1135'); -INSERT INTO "conversion" VALUES('EPSG','6921','Kansas DOT Lambert (US Survey feet)','See code 6920 for equivalent metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.3,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','6921','Kansas DOT Lambert (US survey foot)','See code 6920 for equivalent metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.3,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9833','conversion','EPSG','6921','EPSG','1385','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','6928','US NSIDC EASE-Grid 2.0 Global','','EPSG','9835','Lambert Cylindrical Equal Area','EPSG','8823','Latitude of 1st standard parallel',30.0,'EPSG','9102','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,0); INSERT INTO "usage" VALUES('EPSG','9835','conversion','EPSG','6928','EPSG','3463','EPSG','1195'); @@ -870,49 +870,49 @@ INSERT INTO "conversion" VALUES('EPSG','7055','Iowa regional zone 13 Fairfield', INSERT INTO "usage" VALUES('EPSG','9924','conversion','EPSG','7055','EPSG','4243','EPSG','1196'); INSERT INTO "conversion" VALUES('EPSG','7056','Iowa regional zone 14 Burlington','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-91.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000018,'EPSG','9201','EPSG','8806','False easting',24500000.0,'EPSG','9003','EPSG','8807','False northing',6200000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9925','conversion','EPSG','7056','EPSG','4244','EPSG','1196'); -INSERT INTO "conversion" VALUES('EPSG','7089','Montana Blackfeet St Mary Valley (meters)','See code 7090 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',150000.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','7089','Montana Blackfeet St Mary Valley (meter)','See code 7090 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',150000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9927','conversion','EPSG','7089','EPSG','4310','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7090','Montana Blackfeet St Mary Valley (International feet)','For authoritative metric definition see code 7089. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',492125.9843,'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','7090','Montana Blackfeet St Mary Valley (international foot)','For authoritative metric definition see code 7089. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00016,'EPSG','9201','EPSG','8806','False easting',492125.9843,'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 "usage" VALUES('EPSG','9928','conversion','EPSG','7090','EPSG','4310','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7091','Montana Blackfeet (meters)','See code 7092 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',100000.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','7091','Montana Blackfeet (meter)','See code 7092 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9929','conversion','EPSG','7091','EPSG','4311','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7092','Montana Blackfeet (International feet)','For authoritative metric definition see code 7091. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',328083.9895,'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','7092','Montana Blackfeet (international foot)','For authoritative metric definition see code 7091. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',48.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',328083.9895,'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 "usage" VALUES('EPSG','9930','conversion','EPSG','7092','EPSG','4311','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7093','Montana Milk River (meters)','See code 7094 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000145,'EPSG','9201','EPSG','8806','False easting',150000.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','7093','Montana Milk River (meter)','See code 7094 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000145,'EPSG','9201','EPSG','8806','False easting',150000.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 "usage" VALUES('EPSG','9931','conversion','EPSG','7093','EPSG','4312','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7094','Montana Milk River (International feet)','For authoritative metric definition see code 7093. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000145,'EPSG','9201','EPSG','8806','False easting',492125.9843,'EPSG','9002','EPSG','8807','False northing',656167.979,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7094','Montana Milk River (international foot)','For authoritative metric definition see code 7093. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000145,'EPSG','9201','EPSG','8806','False easting',492125.9843,'EPSG','9002','EPSG','8807','False northing',656167.979,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9932','conversion','EPSG','7094','EPSG','4312','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7095','Montana Fort Belknap (meters)','See code 7096 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',150000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7095','Montana Fort Belknap (meter)','See code 7096 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',150000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9933','conversion','EPSG','7095','EPSG','4313','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7096','Montana Fort Belknap (International feet)','For authoritative metric definition see code 7095. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',492125.9843,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7096','Montana Fort Belknap (international foot)','For authoritative metric definition see code 7095. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',492125.9843,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9934','conversion','EPSG','7096','EPSG','4313','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7097','Montana Fort Peck Assiniboine (meters)','See code 7098 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7097','Montana Fort Peck Assiniboine (meter)','See code 7098 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9935','conversion','EPSG','7097','EPSG','4314','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7098','Montana Fort Peck Assiniboine (International feet)','For authoritative metric definition see code 7097. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',328083.9895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7098','Montana Fort Peck Assiniboine (international foot)','For authoritative metric definition see code 7097. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',328083.9895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9936','conversion','EPSG','7098','EPSG','4314','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7099','Montana Fort Peck Sioux (meters)','See code 7100 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00009,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7099','Montana Fort Peck Sioux (meter)','See code 7100 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00009,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9937','conversion','EPSG','7099','EPSG','4315','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7100','Montana Fort Peck Sioux (International feet)','For authoritative metric definition see code 7099. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00009,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',164041.9938,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7100','Montana Fort Peck Sioux (international foot)','For authoritative metric definition see code 7099. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',48.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00009,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',164041.9938,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9938','conversion','EPSG','7100','EPSG','4315','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7101','Montana Crow (meters)','See code 7102 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000148,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7101','Montana Crow (meter)','See code 7102 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000148,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9939','conversion','EPSG','7101','EPSG','4316','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7102','Montana Crow (International feet)','For authoritative metric definition see code 7101. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000148,'EPSG','9201','EPSG','8806','False easting',656167.979,'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','7102','Montana Crow (international foot)','For authoritative metric definition see code 7101. Working unit is International feet (note: not US Survey feet).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000148,'EPSG','9201','EPSG','8806','False easting',656167.979,'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 "usage" VALUES('EPSG','9940','conversion','EPSG','7102','EPSG','4316','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7103','Montana Bobcat (meters)','See code 7104 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000185,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7103','Montana Bobcat (meter)','See code 7104 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000185,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9941','conversion','EPSG','7103','EPSG','4317','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7104','Montana Bobcat (International feet)','For authoritative metric definition see code 7103. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000185,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',328083.9895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7104','Montana Bobcat (international foot)','For authoritative metric definition see code 7103. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000185,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',328083.9895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9942','conversion','EPSG','7104','EPSG','4317','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7105','Montana Billings (meters)','See code 7106 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.47,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001515,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7105','Montana Billings (meter)','See code 7106 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.47,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001515,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',50000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9943','conversion','EPSG','7105','EPSG','4318','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7106','Montana Billings (International feet)','For authoritative metric definition see code 7105. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.47,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001515,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',164041.9948,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7106','Montana Billings (international foot)','For authoritative metric definition see code 7105. Working unit is International feet (note: not US Survey feet).','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.47,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0001515,'EPSG','9201','EPSG','8806','False easting',656167.979,'EPSG','9002','EPSG','8807','False northing',164041.9948,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9944','conversion','EPSG','7106','EPSG','4318','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7107','Wyoming Wind River (meters)','See code 7108 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00024,'EPSG','9201','EPSG','8806','False easting',100000.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','7107','Wyoming Wind River (meter)','See code 7108 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00024,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9945','conversion','EPSG','7107','EPSG','4319','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7108','Wyoming Wind River (US Survey feet)','For authoritative metric definition see code 7107. Working unit is US Survey feet.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00024,'EPSG','9201','EPSG','8806','False easting',328083.3333,'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','7108','Wyoming Wind River (US survey foot)','For authoritative metric definition see code 7107. Working unit is US Survey feet.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00024,'EPSG','9201','EPSG','8806','False easting',328083.3333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9946','conversion','EPSG','7108','EPSG','4319','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','7129','City and County of San Francisco CS13 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000007,'EPSG','9201','EPSG','8806','False easting',48000.0,'EPSG','9001','EPSG','8807','False northing',24000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7129','City and County of San Francisco CS13 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000007,'EPSG','9201','EPSG','8806','False easting',48000.0,'EPSG','9001','EPSG','8807','False northing',24000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9947','conversion','EPSG','7129','EPSG','4228','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','7130','City and County of San Francisco CS13 (US Survey feet)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000007,'EPSG','9201','EPSG','8806','False easting',157480.0,'EPSG','9003','EPSG','8807','False northing',78740.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','7130','City and County of San Francisco CS13 (US survey foot)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.75,'EPSG','9102','EPSG','8802','Longitude of natural origin',-122.45,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.000007,'EPSG','9201','EPSG','8806','False easting',157480.0,'EPSG','9003','EPSG','8807','False northing',78740.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9948','conversion','EPSG','7130','EPSG','4228','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','7141','Palestine Grid modified','Modification of Palestine Grid (proj 18201) using TM rather than Cassini projection method. The difference in coordinates caused by change of method is under 2m within Israel but can be over 200m in eastern Jordan.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.4402749,'EPSG','9110','EPSG','8802','Longitude of natural origin',35.124349,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',170251.555,'EPSG','9001','EPSG','8807','False northing',126867.909,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','9950','conversion','EPSG','7141','EPSG','1356','EPSG','1142'); @@ -1520,9 +1520,9 @@ INSERT INTO "conversion" VALUES('EPSG','8011','Perth Coastal Grid 2020','','EPSG INSERT INTO "usage" VALUES('EPSG','10390','conversion','EPSG','8011','EPSG','4462','EPSG','1054'); INSERT INTO "conversion" VALUES('EPSG','8012','Port Hedland Grid 2020','','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 "usage" VALUES('EPSG','10391','conversion','EPSG','8012','EPSG','4466','EPSG','1054'); -INSERT INTO "conversion" VALUES('EPSG','8033','TM Zone 20N (US survey feet)','US survey foot form of UTM zone 20N. Sometimes locally referred to as "UTM zone 20".','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','8033','TM Zone 20N (US survey foot)','US survey foot form of UTM zone 20N. Sometimes locally referred to as "UTM zone 20".','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 "usage" VALUES('EPSG','10392','conversion','EPSG','8033','EPSG','4467','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','8034','TM Zone 21N (US survey feet)','US survey foot form of UTM zone 21N. Sometimes locally referred to as "UTM zone 21".','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','8034','TM Zone 21N (US survey foot)','US survey foot form of UTM zone 21N. Sometimes locally referred to as "UTM zone 21".','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 "usage" VALUES('EPSG','10393','conversion','EPSG','8034','EPSG','4468','EPSG','1153'); INSERT INTO "conversion" VALUES('EPSG','8040','Gusterberg Grid','Longitude is referenced to the Ferro meridian.','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 "usage" VALUES('EPSG','10397','conversion','EPSG','8040','EPSG','4455','EPSG','1028'); @@ -1542,81 +1542,81 @@ INSERT INTO "conversion" VALUES('EPSG','8081','MTM Nova Scotia 2010 zone 5','Int INSERT INTO "usage" VALUES('EPSG','10424','conversion','EPSG','8081','EPSG','1535','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','8087','Iceland Lambert 2016','Replaces Iceland Lambert 2004 (code 5326). Used only with ISN2016 geogCRS.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',65.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-19.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',64.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',65.45,'EPSG','9110','EPSG','8826','Easting at false origin',2700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',300000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10425','conversion','EPSG','8087','EPSG','1120','EPSG','1241'); -INSERT INTO "conversion" VALUES('EPSG','8273','Oregon Burns-Harper zone (meters)','See code 8274 for equivalent non-metric definition.','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','8273','Oregon Burns-Harper zone (meter)','See code 8274 for equivalent non-metric definition.','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 "usage" VALUES('EPSG','10466','conversion','EPSG','8273','EPSG','4459','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8274','Oregon Burns-Harper zone (International feet)','See code 8273 for equivalent metric definition.','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','8274','Oregon Burns-Harper zone (international foot)','See code 8273 for equivalent metric definition.','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 "usage" VALUES('EPSG','10467','conversion','EPSG','8274','EPSG','4459','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8275','Oregon Canyon City-Burns zone (meters)','See code 8276 for equivalent non-metric definition.','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); +INSERT INTO "conversion" VALUES('EPSG','8275','Oregon Canyon City-Burns zone (meter)','See code 8276 for equivalent non-metric definition.','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); INSERT INTO "usage" VALUES('EPSG','10468','conversion','EPSG','8275','EPSG','4465','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8276','Oregon Canyon City-Burns zone (International feet)','See code 8275 for equivalent metric definition.','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',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','8276','Oregon Canyon City-Burns zone (international foot)','See code 8275 for equivalent metric definition.','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',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 "usage" VALUES('EPSG','10469','conversion','EPSG','8276','EPSG','4465','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8277','Oregon Coast Range North zone (meters)','See code 8278 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.35,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',20000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8277','Oregon Coast Range North zone (meter)','See code 8278 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.35,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',20000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10470','conversion','EPSG','8277','EPSG','4471','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8278','Oregon Coast Range North zone (International feet)','See code 8277 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.35,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',65616.7979,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8278','Oregon Coast Range North zone (international foot)','See code 8277 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.35,'EPSG','9110','EPSG','8802','Longitude of natural origin',-123.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000045,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',65616.7979,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10471','conversion','EPSG','8278','EPSG','4471','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8279','Oregon Dayville-Prairie City zone (meters)','See code 8280 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.38,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'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','8279','Oregon Dayville-Prairie City zone (meter)','See code 8280 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.38,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'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 "usage" VALUES('EPSG','10472','conversion','EPSG','8279','EPSG','4474','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8280','Oregon Dayville-Prairie City zone (International feet)','See code 8279 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.38,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'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','8280','Oregon Dayville-Prairie City zone (international foot)','See code 8279 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.38,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00012,'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 "usage" VALUES('EPSG','10473','conversion','EPSG','8280','EPSG','4474','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8281','Oregon Denio-Burns zone (meters)','See code 8282 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',80000.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','8281','Oregon Denio-Burns zone (meter)','See code 8282 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',80000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10474','conversion','EPSG','8281','EPSG','4475','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8282','Oregon Denio-Burns zone (International feet)','See code 8281 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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','8282','Oregon Denio-Burns zone (international foot)','See code 8281 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00019,'EPSG','9201','EPSG','8806','False easting',262467.1916,'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 "usage" VALUES('EPSG','10475','conversion','EPSG','8282','EPSG','4475','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8283','Oregon Halfway zone (meters)','See code 8284 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000085,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',70000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8283','Oregon Halfway zone (meter)','See code 8284 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000085,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',70000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10476','conversion','EPSG','8283','EPSG','4476','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8284','Oregon Halfway zone (International feet)','See code 8283 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000085,'EPSG','9201','EPSG','8806','False easting',131233.5958,'EPSG','9002','EPSG','8807','False northing',229658.7927,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8284','Oregon Halfway zone (international foot)','See code 8283 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000085,'EPSG','9201','EPSG','8806','False easting',131233.5958,'EPSG','9002','EPSG','8807','False northing',229658.7927,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10477','conversion','EPSG','8284','EPSG','4476','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8285','Oregon Medford-Diamond Lake zone (meters)','See code 8286 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00004,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',-60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8285','Oregon Medford-Diamond Lake zone (meter)','See code 8286 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00004,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',-60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10478','conversion','EPSG','8285','EPSG','4477','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8286','Oregon Medford-Diamond Lake zone (International feet)','See code 8285 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00004,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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','8286','Oregon Medford-Diamond Lake zone (international foot)','See code 8285 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00004,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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 "usage" VALUES('EPSG','10479','conversion','EPSG','8286','EPSG','4477','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8287','Oregon Mitchell zone (meters)','See code 8288 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',47.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99927,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',290000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8287','Oregon Mitchell zone (meter)','See code 8288 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',47.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99927,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',290000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10480','conversion','EPSG','8287','EPSG','4478','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8288','Oregon Mitchell zone (International feet)','See code 8287 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',47.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99927,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',951443.5696,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8288','Oregon Mitchell zone (international foot)','See code 8287 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',47.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99927,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',951443.5696,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10481','conversion','EPSG','8288','EPSG','4478','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8289','Oregon North Central zone (meters)','See code 8290 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',140000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8289','Oregon North Central zone (meter)','See code 8290 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',140000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10482','conversion','EPSG','8289','EPSG','4479','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8290','Oregon North Central zone (International feet)','See code 8289 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',459317.5853,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8290','Oregon North Central zone (international foot)','See code 8289 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',328083.9895,'EPSG','9002','EPSG','8807','False northing',459317.5853,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10483','conversion','EPSG','8290','EPSG','4479','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8291','Oregon Ochoco Summit zone (meters)','See code 8292 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00006,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',-80000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8291','Oregon Ochoco Summit zone (meter)','See code 8292 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00006,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9001','EPSG','8807','False northing',-80000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10484','conversion','EPSG','8291','EPSG','4481','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8292','Oregon Ochoco Summit zone (International feet)','See code 8291 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00006,'EPSG','9201','EPSG','8806','False easting',131233.5958,'EPSG','9002','EPSG','8807','False northing',-262467.1916,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8292','Oregon Ochoco Summit zone (international foot)','See code 8291 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00006,'EPSG','9201','EPSG','8806','False easting',131233.5958,'EPSG','9002','EPSG','8807','False northing',-262467.1916,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10485','conversion','EPSG','8292','EPSG','4481','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8293','Oregon Owyhee zone (meters)','See code 8294 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00018,'EPSG','9201','EPSG','8806','False easting',70000.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','8293','Oregon Owyhee zone (meter)','See code 8294 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00018,'EPSG','9201','EPSG','8806','False easting',70000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10486','conversion','EPSG','8293','EPSG','4482','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8294','Oregon Owyhee zone (International feet)','See code 8293 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00018,'EPSG','9201','EPSG','8806','False easting',229658.7927,'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','8294','Oregon Owyhee zone (international foot)','See code 8293 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00018,'EPSG','9201','EPSG','8806','False easting',229658.7927,'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 "usage" VALUES('EPSG','10487','conversion','EPSG','8294','EPSG','4482','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8295','Oregon Pilot Rock-Ukiah zone (meters)','See code 8296 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',130000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8295','Oregon Pilot Rock-Ukiah zone (meter)','See code 8296 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',130000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10488','conversion','EPSG','8295','EPSG','4483','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8296','Oregon Pilot Rock-Ukiah zone (International feet)','See code 8295 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',164041.9948,'EPSG','9002','EPSG','8807','False northing',426509.1864,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8296','Oregon Pilot Rock-Ukiah zone (international foot)','See code 8295 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',46.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000025,'EPSG','9201','EPSG','8806','False easting',164041.9948,'EPSG','9002','EPSG','8807','False northing',426509.1864,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10489','conversion','EPSG','8296','EPSG','4483','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8297','Oregon Prairie City-Brogan zone (meters)','See code 8298 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00017,'EPSG','9201','EPSG','8806','False easting',60000.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','8297','Oregon Prairie City-Brogan zone (meter)','See code 8298 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00017,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10490','conversion','EPSG','8297','EPSG','4484','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8298','Oregon Prairie City-Brogan zone (International feet)','See code 8297 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00017,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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','8298','Oregon Prairie City-Brogan zone (international foot)','See code 8297 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',44.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00017,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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 "usage" VALUES('EPSG','10491','conversion','EPSG','8298','EPSG','4484','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8299','Oregon Riley-Lakeview zone (meters)','See code 8300 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000215,'EPSG','9201','EPSG','8806','False easting',70000.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','8299','Oregon Riley-Lakeview zone (meter)','See code 8300 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000215,'EPSG','9201','EPSG','8806','False easting',70000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10492','conversion','EPSG','8299','EPSG','4458','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8300','Oregon Riley-Lakeview zone (International feet)','See code 8299 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000215,'EPSG','9201','EPSG','8806','False easting',229658.7927,'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','8300','Oregon Riley-Lakeview zone (international foot)','See code 8299 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-120.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000215,'EPSG','9201','EPSG','8806','False easting',229658.7927,'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 "usage" VALUES('EPSG','10493','conversion','EPSG','8300','EPSG','4458','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8301','Oregon Siskiyou Pass zone (meters)','See code 8302 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00015,'EPSG','9201','EPSG','8806','False easting',10000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8301','Oregon Siskiyou Pass zone (meter)','See code 8302 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00015,'EPSG','9201','EPSG','8806','False easting',10000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10494','conversion','EPSG','8301','EPSG','4463','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8302','Oregon Siskiyou Pass zone (International feet)','See code 8301 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00015,'EPSG','9201','EPSG','8806','False easting',32808.399,'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','8302','Oregon Siskiyou Pass zone (international foot)','See code 8301 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-122.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00015,'EPSG','9201','EPSG','8806','False easting',32808.399,'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 "usage" VALUES('EPSG','10495','conversion','EPSG','8302','EPSG','4463','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8303','Oregon Ukiah-Fox zone (meters)','See code 8304 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',90000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8303','Oregon Ukiah-Fox zone (meter)','See code 8304 for equivalent non-metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',30000.0,'EPSG','9001','EPSG','8807','False northing',90000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10496','conversion','EPSG','8303','EPSG','4470','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8304','Oregon Ukiah-Fox zone (International feet)','See code 8303 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',295275.5906,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8304','Oregon Ukiah-Fox zone (international foot)','See code 8303 for equivalent metric definition.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-119.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00014,'EPSG','9201','EPSG','8806','False easting',98425.1969,'EPSG','9002','EPSG','8807','False northing',295275.5906,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10497','conversion','EPSG','8304','EPSG','4470','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8305','Oregon Wallowa zone (meters)','See code 8306 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000195,'EPSG','9201','EPSG','8806','False easting',60000.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','8305','Oregon Wallowa zone (meter)','See code 8306 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000195,'EPSG','9201','EPSG','8806','False easting',60000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10498','conversion','EPSG','8305','EPSG','4480','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8306','Oregon Wallowa zone (International feet)','See code 8305 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000195,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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','8306','Oregon Wallowa zone (international foot)','See code 8305 for equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',45.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-117.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000195,'EPSG','9201','EPSG','8806','False easting',196850.3937,'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 "usage" VALUES('EPSG','10499','conversion','EPSG','8306','EPSG','4480','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8307','Oregon Warner Highway zone (meters)','See code 8308 for equivalent non-metric definition.','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',40000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','8307','Oregon Warner Highway zone (meter)','See code 8308 for equivalent non-metric definition.','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',40000.0,'EPSG','9001','EPSG','8807','False northing',60000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','10500','conversion','EPSG','8307','EPSG','4486','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8308','Oregon Warner Highway zone (International feet)','See code 8307 for equivalent metric definition.','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','8308','Oregon Warner Highway zone (international foot)','See code 8307 for equivalent metric definition.','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 "usage" VALUES('EPSG','10501','conversion','EPSG','8308','EPSG','4486','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8309','Oregon Willamette Pass zone (meters)','See code 8310 for equivalent non-metric definition.','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','8309','Oregon Willamette Pass zone (meter)','See code 8310 for equivalent non-metric definition.','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 "usage" VALUES('EPSG','10502','conversion','EPSG','8309','EPSG','4488','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','8310','Oregon Willamette Pass zone (International feet)','See code 8309 for equivalent metric definition.','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','8310','Oregon Willamette Pass zone (international foot)','See code 8309 for equivalent metric definition.','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 "usage" VALUES('EPSG','10503','conversion','EPSG','8310','EPSG','4488','EPSG','1029'); INSERT INTO "conversion" VALUES('EPSG','8373','NCRS Las Vegas zone (m)','See proj code 8374 for equivalent non-metric definition.','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 "usage" VALUES('EPSG','10519','conversion','EPSG','8373','EPSG','4485','EPSG','1029'); @@ -1744,9 +1744,9 @@ INSERT INTO "conversion" VALUES('EPSG','9677','Bangladesh Transverse Mercator',' INSERT INTO "usage" VALUES('EPSG','14878','conversion','EPSG','9677','EPSG','3217','EPSG','1274'); INSERT INTO "conversion" VALUES('EPSG','9738','EOS21-TM','In conjunction with transformation ETRS89 to EOS-IRF (1) (code 9740), emulates the EOS21 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',56.21,'EPSG','9110','EPSG','8802','Longitude of natural origin',-2.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',74996.927,'EPSG','9001','EPSG','8807','False northing',133508.35,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15339','conversion','EPSG','9738','EPSG','4620','EPSG','1141'); -INSERT INTO "conversion" VALUES('EPSG','9746','SPCS83 Alabama East zone (US Survey feet)','This map projection is not formally recognised by the NGS because there is no State legislation for NAD83 defining the foot to be used. See code 10131 for official metric definition. ftUS required by AL DOT and used by other professional practioners.','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',656166.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','9746','SPCS83 Alabama East zone (US survey foot)','This map projection is not formally recognised by the NGS because there is no State legislation for NAD83 defining the foot to be used. See code 10131 for official metric definition. ftUS required by AL DOT and used by other professional practioners.','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',656166.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 "usage" VALUES('EPSG','15382','conversion','EPSG','9746','EPSG','2154','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','9747','SPCS83 Alabama West zone (US Survey feet)','This map projection is not formally recognised by the NGS because there is no State legislation for NAD83 defining the foot to be used. See code 10132 for official metric definition. ftUS required by AL DOT and used by other professional practioners.','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',1968500.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','9747','SPCS83 Alabama West zone (US survey foot)','This map projection is not formally recognised by the NGS because there is no State legislation for NAD83 defining the foot to be used. See code 10132 for official metric definition. ftUS required by AL DOT and used by other professional practioners.','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',1968500.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15381','conversion','EPSG','9747','EPSG','2155','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','9760','ECML14_NB-TM','In conjunction with transformation ETRS89 to ECML14_NB-IRF (1) (code 9759), emulates the ECML14_NB Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',55.03,'EPSG','9110','EPSG','8802','Longitude of natural origin',-1.33,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',112242.8512,'EPSG','9001','EPSG','8807','False northing',402313.7432,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16497','conversion','EPSG','9760','EPSG','4621','EPSG','1141'); @@ -1834,13 +1834,13 @@ INSERT INTO "conversion" VALUES('EPSG','10102','Alabama CS27 West zone','','EPSG INSERT INTO "usage" VALUES('EPSG','11102','conversion','EPSG','10102','EPSG','2155','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10127','MWC18-TM','In conjunction with transformation ETRS89 to MWC18-IRF (1) (code 10108), emulates the MWC18 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',53.21,'EPSG','9110','EPSG','8802','Longitude of natural origin',-2.33,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',171975.9382,'EPSG','9001','EPSG','8807','False northing',116744.6938,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18333','conversion','EPSG','10127','EPSG','4666','EPSG','1141'); -INSERT INTO "conversion" VALUES('EPSG','10131','SPCS83 Alabama East zone (meters)','','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); +INSERT INTO "conversion" VALUES('EPSG','10131','SPCS83 Alabama East zone (meter)','','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); INSERT INTO "usage" VALUES('EPSG','11103','conversion','EPSG','10131','EPSG','2154','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10132','SPCS83 Alabama West zone (meters)','','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',600000.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','10132','SPCS83 Alabama West zone (meter)','','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',600000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11104','conversion','EPSG','10132','EPSG','2155','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10147','Brisbane City Survey Grid 2020','Replaces Brisbane City Survey Grid 02 (code 17363) from 2022-07-01.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',-28.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',153.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.99999,'EPSG','9201','EPSG','8806','False easting',150000.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 "usage" VALUES('EPSG','18476','conversion','EPSG','10147','EPSG','2990','EPSG','1029'); -INSERT INTO "conversion" VALUES('EPSG','10148','Amtrak North East Corridor Coordinate System 2021 (International feet)','If using Hotine Oblique Mercator (variant A) method (code 9812), FE = -16,589,516.268572...ft, FN = -9,803,584.307096...ft.','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',40.5,'EPSG','9110','EPSG','8812','Longitude of projection centre',-74.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',58.0,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',58.0,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99999,'EPSG','9201','EPSG','8816','Easting at projection centre',1500000.0,'EPSG','9002','EPSG','8817','Northing at projection centre',1500000.0,'EPSG','9002',0); +INSERT INTO "conversion" VALUES('EPSG','10148','Amtrak North East Corridor Coordinate System 2021 (international foot)','If using Hotine Oblique Mercator (variant A) method (code 9812), FE = -16,589,516.268572...ft, FN = -9,803,584.307096...ft.','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',40.5,'EPSG','9110','EPSG','8812','Longitude of projection centre',-74.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',58.0,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',58.0,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99999,'EPSG','9201','EPSG','8816','Easting at projection centre',1500000.0,'EPSG','9002','EPSG','8817','Northing at projection centre',1500000.0,'EPSG','9002',0); INSERT INTO "usage" VALUES('EPSG','18487','conversion','EPSG','10148','EPSG','4669','EPSG','1141'); INSERT INTO "conversion" VALUES('EPSG','10159','S34-reconstruction','Created in 2022. In conjunction with transformation ETRS89 to S34J-IRF (1) for Jutland or ETRS89 to S34S-IRF (1) for Zealand (codes 10161 and 10251), defines the relationship of ETRS89 to the historic S34J and S34S CRSs using a modern parameterisation.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',10.37,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',-210327.0,'EPSG','9001','EPSG','8807','False northing',-6034310.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19660','conversion','EPSG','10159','EPSG','4575','EPSG','1203'); @@ -1864,11 +1864,11 @@ INSERT INTO "conversion" VALUES('EPSG','10211','GW22-LCC','In conjunction with t INSERT INTO "usage" VALUES('EPSG','18794','conversion','EPSG','10211','EPSG','4690','EPSG','1141'); INSERT INTO "conversion" VALUES('EPSG','10226','MALS09-TM','In conjunction with transformation ETRS89 to MALS09-IRF (1) (code 10225), emulates the MALS09 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',52.12,'EPSG','9110','EPSG','8802','Longitude of natural origin',-1.09,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',175262.1809,'EPSG','9001','EPSG','8807','False northing',174688.2508,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18743','conversion','EPSG','10226','EPSG','4682','EPSG','1141'); -INSERT INTO "conversion" VALUES('EPSG','10231','SPCS83 Arizona East zone (meters)','State law defines origin in International feet. FE = 700000ft. See code 15304 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',213360.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','10231','SPCS83 Arizona East zone (meter)','State law defines origin in International feet. FE = 700000ft. See code 15304 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',213360.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11108','conversion','EPSG','10231','EPSG','2167','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10232','SPCS83 Arizona Central zone (meters)','State law defines origin in International feet. FE = 700000ft. See code 15305 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.55,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',213360.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','10232','SPCS83 Arizona Central zone (meter)','State law defines origin in International feet. FE = 700000ft. See code 15305 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.55,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',213360.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11109','conversion','EPSG','10232','EPSG','2166','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10233','SPCS83 Arizona West zone (meters)','State law defines origin in International feet. FE = 700000ft. See code 15306 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-113.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',213360.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','10233','SPCS83 Arizona West zone (meter)','State law defines origin in International feet. FE = 700000ft. See code 15306 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-113.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',213360.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11110','conversion','EPSG','10233','EPSG','2168','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10234','OxWo08-TM','In conjunction with transformation ETRS89 to OxWo08-IRF (1) (code 10230), emulates the OxWo08 Snake projection.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',51.57,'EPSG','9110','EPSG','8802','Longitude of natural origin',-1.42,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',134791.6965,'EPSG','9001','EPSG','8807','False northing',121872.5056,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18761','conversion','EPSG','10234','EPSG','4680','EPSG','1141'); @@ -1894,9 +1894,9 @@ INSERT INTO "conversion" VALUES('EPSG','10313','Lambert New Caledonia 2015','',' INSERT INTO "usage" VALUES('EPSG','19602','conversion','EPSG','10313','EPSG','3430','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10325','Bosnia and Herzegovina Transverse Mercator','Replaces Balkans TM zones in Bosnia and Herzegovina.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',18.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19739','conversion','EPSG','10325','EPSG','1050','EPSG','1056'); -INSERT INTO "conversion" VALUES('EPSG','10331','SPCS83 Arkansas North zone (meters)','See code 15385 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.56,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','10331','SPCS83 Arkansas North zone (meter)','See code 15385 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.56,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11113','conversion','EPSG','10331','EPSG','2169','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10332','SPCS83 Arkansas South zone (meters)','See code 15386 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.18,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10332','SPCS83 Arkansas South zone (meter)','See code 15386 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.18,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11114','conversion','EPSG','10332','EPSG','2170','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10401','California CS27 zone I','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11115','conversion','EPSG','10401','EPSG','2175','EPSG','1142'); @@ -1930,17 +1930,17 @@ INSERT INTO "conversion" VALUES('EPSG','10429','Collie Grid 1994','Replaced by C INSERT INTO "usage" VALUES('EPSG','20286','conversion','EPSG','10429','EPSG','4443','EPSG','1054'); INSERT INTO "conversion" VALUES('EPSG','10430','Esperance Grid 1994','Replaced by ESP2020.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',121.53,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0000055,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',3950000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20285','conversion','EPSG','10430','EPSG','4445','EPSG','1054'); -INSERT INTO "conversion" VALUES('EPSG','10431','SPCS83 California zone 1 (meters)','See code 15307 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10431','SPCS83 California zone 1 (meter)','See code 15307 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11124','conversion','EPSG','10431','EPSG','2175','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10432','SPCS83 California zone 2 (meters)','See code 15308 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.2,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10432','SPCS83 California zone 2 (meter)','See code 15308 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.2,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11125','conversion','EPSG','10432','EPSG','2176','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10433','SPCS83 California zone 3 (meters)','See code 15309 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.04,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10433','SPCS83 California zone 3 (meter)','See code 15309 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.04,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11126','conversion','EPSG','10433','EPSG','2177','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10434','SPCS83 California zone 4 (meters)','See code 15310 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-119.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10434','SPCS83 California zone 4 (meter)','See code 15310 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-119.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11127','conversion','EPSG','10434','EPSG','2178','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10435','SPCS83 California zone 5 (meters)','See code 15311 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-118.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.28,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.02,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10435','SPCS83 California zone 5 (meter)','See code 15311 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-118.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.28,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.02,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11128','conversion','EPSG','10435','EPSG','2182','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10436','SPCS83 California zone 6 (meters)','See code 15312 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-116.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.47,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10436','SPCS83 California zone 6 (meter)','See code 15312 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-116.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.47,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11129','conversion','EPSG','10436','EPSG','2180','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10437','Exmouth Grid 1994','Replaced by EXM2020.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',114.04,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00000236,'EPSG','9201','EPSG','8806','False easting',50000.0,'EPSG','9001','EPSG','8807','False northing',2650000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20284','conversion','EPSG','10437','EPSG','4448','EPSG','1054'); @@ -1968,7 +1968,7 @@ INSERT INTO "conversion" VALUES('EPSG','10470','COV23-TM','In conjunction with t INSERT INTO "usage" VALUES('EPSG','20314','conversion','EPSG','10470','EPSG','4743','EPSG','1141'); INSERT INTO "conversion" VALUES('EPSG','10476','Brenner Base Tunnel TM','Also defined with latitude of natural origin at equator and false northing = -5105739.717m.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',46.58507947,'EPSG','9110','EPSG','8802','Longitude of natural origin',11.31425775,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.000121,'EPSG','9201','EPSG','8806','False easting',20000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20340','conversion','EPSG','10476','EPSG','4744','EPSG','1285'); -INSERT INTO "conversion" VALUES('EPSG','10479','TWDB Groundwater Modeling','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',31.25,'EPSG','9102','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',35.0,'EPSG','9102','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',19685000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10479','TWDB Groundwater Modeling (US survey foot)','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',31.25,'EPSG','9102','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',35.0,'EPSG','9102','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',19685000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20353','conversion','EPSG','10479','EPSG','1412','EPSG','1286'); INSERT INTO "conversion" VALUES('EPSG','10501','Colorado CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.43,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.47,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11130','conversion','EPSG','10501','EPSG','2184','EPSG','1142'); @@ -1976,19 +1976,19 @@ INSERT INTO "conversion" VALUES('EPSG','10502','Colorado CS27 Central zone','',' INSERT INTO "usage" VALUES('EPSG','11131','conversion','EPSG','10502','EPSG','2183','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10503','Colorado CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11132','conversion','EPSG','10503','EPSG','2185','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10531','SPCS83 Colorado North zone (meters)','See code 15313 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.43,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10531','SPCS83 Colorado North zone (meter)','See code 15313 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.43,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11133','conversion','EPSG','10531','EPSG','2184','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10532','SPCS83 Colorado Central zone (meters)','See code 15314 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10532','SPCS83 Colorado Central zone (meter)','See code 15314 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11134','conversion','EPSG','10532','EPSG','2183','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10533','SPCS83 Colorado South zone (meters)','See code 15315 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10533','SPCS83 Colorado South zone (meter)','See code 15315 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11135','conversion','EPSG','10533','EPSG','2185','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10600','Connecticut CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-72.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.52,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.12,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11136','conversion','EPSG','10600','EPSG','1377','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10630','SPCS83 Connecticut zone (meters)','See code 15316 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-72.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.52,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.12,'EPSG','9110','EPSG','8826','Easting at false origin',304800.6096,'EPSG','9001','EPSG','8827','Northing at false origin',152400.3048,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10630','SPCS83 Connecticut zone (meter)','See code 15316 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-72.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.52,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.12,'EPSG','9110','EPSG','8826','Easting at false origin',304800.6096,'EPSG','9001','EPSG','8827','Northing at false origin',152400.3048,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11137','conversion','EPSG','10630','EPSG','1377','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10700','Delaware CS27','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11138','conversion','EPSG','10700','EPSG','1378','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10730','SPCS83 Delaware zone (meters)','See code 15317 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10730','SPCS83 Delaware zone (meter)','See code 15317 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11139','conversion','EPSG','10730','EPSG','1378','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10901','Florida CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11140','conversion','EPSG','10901','EPSG','2186','EPSG','1142'); @@ -1996,21 +1996,21 @@ INSERT INTO "conversion" VALUES('EPSG','10902','Florida CS27 West zone','','EPSG INSERT INTO "usage" VALUES('EPSG','11141','conversion','EPSG','10902','EPSG','2188','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10903','Florida CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.35,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11142','conversion','EPSG','10903','EPSG','2187','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10931','SPCS83 Florida East zone (meters)','See code 15318 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10931','SPCS83 Florida East zone (meter)','See code 15318 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11143','conversion','EPSG','10931','EPSG','2186','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10932','SPCS83 Florida West zone (meters)','See code 15319 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','10932','SPCS83 Florida West zone (meter)','See code 15319 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11144','conversion','EPSG','10932','EPSG','2188','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10933','SPCS83 Florida North zone (meters)','See code 15320 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.35,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','10933','SPCS83 Florida North zone (meter)','See code 15320 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.35,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11145','conversion','EPSG','10933','EPSG','2187','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','10934','Florida GDL Albers (meters)','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',24.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',24.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','10934','Florida GDL Albers (meter)','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',24.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',24.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11146','conversion','EPSG','10934','EPSG','1379','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','11001','Georgia CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11147','conversion','EPSG','11001','EPSG','2189','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11002','Georgia CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-84.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11148','conversion','EPSG','11002','EPSG','2190','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11031','SPCS83 Georgia East zone (meters)','See code 15321 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11031','SPCS83 Georgia East zone (meter)','See code 15321 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11149','conversion','EPSG','11031','EPSG','2189','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11032','SPCS83 Georgia West zone (meters)','See code 15322 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-84.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.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','11032','SPCS83 Georgia West zone (meter)','See code 15322 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-84.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11150','conversion','EPSG','11032','EPSG','2190','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11101','Idaho CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11151','conversion','EPSG','11101','EPSG','2192','EPSG','1142'); @@ -2018,19 +2018,19 @@ INSERT INTO "conversion" VALUES('EPSG','11102','Idaho CS27 Central zone','','EPS INSERT INTO "usage" VALUES('EPSG','11152','conversion','EPSG','11102','EPSG','2191','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11103','Idaho CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.45,'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 "usage" VALUES('EPSG','11153','conversion','EPSG','11103','EPSG','2193','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11131','SPCS83 Idaho East zone (meters)','See code 15323 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11131','SPCS83 Idaho East zone (meter)','See code 15323 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11154','conversion','EPSG','11131','EPSG','2192','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11132','SPCS83 Idaho Central zone (meters)','See code 15324 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'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','11132','SPCS83 Idaho Central zone (meter)','See code 15324 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11155','conversion','EPSG','11132','EPSG','2191','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11133','SPCS83 Idaho West zone (meters)','See code 15325 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',800000.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','11133','SPCS83 Idaho West zone (meter)','See code 15325 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11156','conversion','EPSG','11133','EPSG','2193','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11201','Illinois CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11157','conversion','EPSG','11201','EPSG','2194','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11202','Illinois CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11158','conversion','EPSG','11202','EPSG','2195','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11231','SPCS83 Illinois East zone (meters)','See code 15387 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',300000.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','11231','SPCS83 Illinois East zone (meter)','See code 15387 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11159','conversion','EPSG','11231','EPSG','2194','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11232','SPCS83 Illinois West zone (meters)','See code 15388 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',700000.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','11232','SPCS83 Illinois West zone (meter)','See code 15388 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',700000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11160','conversion','EPSG','11232','EPSG','2195','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11233','Illinois Coordinate System of 1983 Aurora zone (US survey foot)','Part of the ICS83 33-zone system. Longitude of origin also given by information source as 271°30''E. State law defines grid unit as US survey foot. No equivalent metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.00003,'EPSG','9201','EPSG','8806','False easting',3773000.0,'EPSG','9003','EPSG','8807','False northing',492000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19048','conversion','EPSG','11233','EPSG','4703','EPSG','1266'); @@ -2102,35 +2102,35 @@ INSERT INTO "conversion" VALUES('EPSG','11301','Indiana CS27 East zone','','EPSG INSERT INTO "usage" VALUES('EPSG','11161','conversion','EPSG','11301','EPSG','2196','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11302','Indiana CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11162','conversion','EPSG','11302','EPSG','2197','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11331','SPCS83 Indiana East zone (meters)','See code 15372 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',250000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11331','SPCS83 Indiana East zone (meter)','See code 15372 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',250000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11163','conversion','EPSG','11331','EPSG','2196','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11332','SPCS83 Indiana West zone (meters)','See code 15373 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',900000.0,'EPSG','9001','EPSG','8807','False northing',250000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11332','SPCS83 Indiana West zone (meter)','See code 15373 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',900000.0,'EPSG','9001','EPSG','8807','False northing',250000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11164','conversion','EPSG','11332','EPSG','2197','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11401','Iowa CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.16,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.04,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11165','conversion','EPSG','11401','EPSG','2198','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11402','Iowa CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.37,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11166','conversion','EPSG','11402','EPSG','2199','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11431','SPCS83 Iowa North zone (meters)','See code 15377 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.16,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.04,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11431','SPCS83 Iowa North zone (meter)','See code 15377 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.16,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.04,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11167','conversion','EPSG','11431','EPSG','2198','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11432','SPCS83 Iowa South zone (meters)','See code 15378 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.37,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','11432','SPCS83 Iowa South zone (meter)','See code 15378 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.37,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11168','conversion','EPSG','11432','EPSG','2199','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11501','Kansas CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.43,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11169','conversion','EPSG','11501','EPSG','2200','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11502','Kansas CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.16,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11170','conversion','EPSG','11502','EPSG','2201','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11531','SPCS83 Kansas North zone (meters)','See code 15379 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.43,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','11531','SPCS83 Kansas North zone (meter)','See code 15379 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.43,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11171','conversion','EPSG','11531','EPSG','2200','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11532','SPCS83 Kansas South zone (meters)','See code 15380 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.16,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11532','SPCS83 Kansas South zone (meter)','See code 15380 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.16,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',400000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11172','conversion','EPSG','11532','EPSG','2201','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11601','Kentucky CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.58,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11173','conversion','EPSG','11601','EPSG','2202','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11602','Kentucky CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.56,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11174','conversion','EPSG','11602','EPSG','2203','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11630','SPCS83 Kentucky Single Zone (meters)','See code 15375 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.4,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11630','SPCS83 Kentucky Single Zone (meter)','See code 15375 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.4,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11175','conversion','EPSG','11630','EPSG','1386','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','11631','Kentucky CS83 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.58,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11176','conversion','EPSG','11631','EPSG','2202','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11632','SPCS83 Kentucky South zone (meters)','See code 15329 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.44,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','11632','SPCS83 Kentucky South zone (meter)','See code 15329 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.44,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11177','conversion','EPSG','11632','EPSG','2203','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11701','Louisiana CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',31.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.4,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11178','conversion','EPSG','11701','EPSG','2204','EPSG','1142'); @@ -2138,43 +2138,43 @@ INSERT INTO "conversion" VALUES('EPSG','11702','Louisiana CS27 South zone','','E INSERT INTO "usage" VALUES('EPSG','11179','conversion','EPSG','11702','EPSG','2205','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11703','Louisiana CS27 Offshore zone','This projection is NOT used for oil industry purposes - use Louisiana CS27 Offshore zone (proj 11702) on shelf and BLM (proj 15915-16) in deep water protraction areas.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11180','conversion','EPSG','11703','EPSG','1387','EPSG','1212'); -INSERT INTO "conversion" VALUES('EPSG','11731','SPCS83 Louisiana North zone (meters)','See code 15391 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',32.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.1,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.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','11731','SPCS83 Louisiana North zone (meter)','See code 15391 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',32.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.1,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11181','conversion','EPSG','11731','EPSG','2204','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11732','SPCS83 Louisiana South zone (meters)','See code 15392 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',28.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.18,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.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','11732','SPCS83 Louisiana South zone (meter)','See code 15392 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',28.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.18,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11182','conversion','EPSG','11732','EPSG','2529','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11733','SPCS83 Louisiana Offshore zone (meters)','This projection is NOT used for oil industry purposes. See code 15393 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.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','11733','SPCS83 Louisiana Offshore zone (meter)','This projection is NOT used for oil industry purposes. See code 15393 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11183','conversion','EPSG','11733','EPSG','1387','EPSG','1212'); INSERT INTO "conversion" VALUES('EPSG','11801','Maine CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11184','conversion','EPSG','11801','EPSG','2206','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11802','Maine CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11185','conversion','EPSG','11802','EPSG','2207','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11831','SPCS83 Maine East zone (meters)','See code 11833 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',300000.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','11831','SPCS83 Maine East zone (meter)','See code 11833 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11186','conversion','EPSG','11831','EPSG','2206','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11832','SPCS83 Maine West zone (meters)','See code 11834 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',900000.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','11832','SPCS83 Maine West zone (meter)','See code 11834 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',900000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11187','conversion','EPSG','11832','EPSG','2207','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11833','SPCS83 Maine East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11831.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',984250.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','11833','SPCS83 Maine East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11831.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',984250.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11188','conversion','EPSG','11833','EPSG','2206','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11834','SPCS83 Maine West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11832.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',2952750.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','11834','SPCS83 Maine West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11832.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',2952750.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11189','conversion','EPSG','11834','EPSG','2207','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11851','Maine CS2000 East zone (meters)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-67.523,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'EPSG','9201','EPSG','8806','False easting',700000.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','11851','Maine CS2000 East zone (meter)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-67.523,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'EPSG','9201','EPSG','8806','False easting',700000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11190','conversion','EPSG','11851','EPSG','2960','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11852','Maine CS2000 Central zone','Supersedes CS27 and CS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-69.073,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'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,1); INSERT INTO "usage" VALUES('EPSG','11191','conversion','EPSG','11852','EPSG','2959','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11853','Maine CS2000 West zone (meters)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.223,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'EPSG','9201','EPSG','8806','False easting',300000.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','11853','Maine CS2000 West zone (meter)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-70.223,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11192','conversion','EPSG','11853','EPSG','2958','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11854','Maine CS2000 Central zone (meters)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-69.073,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'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','11854','Maine CS2000 Central zone (meter)','In Maine Department of Transportation and other State agencies replaces CS27 and SPCS83 from 1/1/2001.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',43.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-69.073,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99998,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11193','conversion','EPSG','11854','EPSG','2959','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','11900','Maryland CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.18,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.27,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11194','conversion','EPSG','11900','EPSG','1389','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','11930','SPCS83 Maryland zone (meters)','See code 15330 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.27,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.18,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','11930','SPCS83 Maryland zone (meter)','See code 15330 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.27,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.18,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11195','conversion','EPSG','11930','EPSG','1389','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12001','Massachusetts CS27 Mainland zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-71.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.43,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.41,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11196','conversion','EPSG','12001','EPSG','2209','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12002','Massachusetts CS27 Island zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-70.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.29,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11197','conversion','EPSG','12002','EPSG','2208','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12031','SPCS83 Massachusetts Mainland zone (meters)','See code 15331 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-71.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.43,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',750000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12031','SPCS83 Massachusetts Mainland zone (meter)','See code 15331 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-71.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.43,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',750000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11198','conversion','EPSG','12031','EPSG','2209','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12032','SPCS83 Massachusetts Island zone (meters)','See code 15332 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-70.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.17,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','12032','SPCS83 Massachusetts Island zone (meter)','See code 15332 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-70.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.17,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11199','conversion','EPSG','12032','EPSG','2208','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12101','Michigan State Plane East zone','Replaced by central and south zones.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-83.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999942857,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11200','conversion','EPSG','12101','EPSG','1720','EPSG','1215'); @@ -2188,13 +2188,13 @@ INSERT INTO "conversion" VALUES('EPSG','12112','Michigan CS27 Central zone','',' INSERT INTO "usage" VALUES('EPSG','11204','conversion','EPSG','12112','EPSG','1724','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12113','Michigan CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.06,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.4,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11205','conversion','EPSG','12113','EPSG','1725','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12141','SPCS83 Michigan North zone (meters)','See code 15333 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.47,'EPSG','9110','EPSG','8822','Longitude of false origin',-87.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.29,'EPSG','9110','EPSG','8826','Easting at false origin',8000000.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','12141','SPCS83 Michigan North zone (meter)','See code 15333 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.47,'EPSG','9110','EPSG','8822','Longitude of false origin',-87.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.29,'EPSG','9110','EPSG','8826','Easting at false origin',8000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11206','conversion','EPSG','12141','EPSG','1723','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12142','SPCS83 Michigan Central zone (meters)','See code 15334 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.19,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.11,'EPSG','9110','EPSG','8826','Easting at false origin',6000000.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','12142','SPCS83 Michigan Central zone (meter)','See code 15334 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.19,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.11,'EPSG','9110','EPSG','8826','Easting at false origin',6000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11207','conversion','EPSG','12142','EPSG','1724','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12143','SPCS83 Michigan South zone (meters)','See code 15335 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.06,'EPSG','9110','EPSG','8826','Easting at false origin',4000000.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','12143','SPCS83 Michigan South zone (meter)','See code 15335 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.06,'EPSG','9110','EPSG','8826','Easting at false origin',4000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11208','conversion','EPSG','12143','EPSG','1725','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12150','Michigan Oblique Mercator (meters)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=499840.252 m, Nc=528600.303 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.1833,'EPSG','9110','EPSG','8812','Longitude of projection centre',-86.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',337.25556,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',337.25556,'EPSG','9102','EPSG','8815','Scale factor on initial line',0.9996,'EPSG','9201','EPSG','8806','False easting',2546731.496,'EPSG','9001','EPSG','8807','False northing',-4354009.816,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','12150','Michigan Oblique Mercator (meter)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=499840.252 m, Nc=528600.303 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',45.1833,'EPSG','9110','EPSG','8812','Longitude of projection centre',-86.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',337.25556,'EPSG','9102','EPSG','8814','Angle from Rectified to Skew Grid',337.25556,'EPSG','9102','EPSG','8815','Scale factor on initial line',0.9996,'EPSG','9201','EPSG','8806','False easting',2546731.496,'EPSG','9001','EPSG','8807','False northing',-4354009.816,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','11209','conversion','EPSG','12150','EPSG','1391','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','12201','Minnesota CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',46.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.06,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',48.38,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11210','conversion','EPSG','12201','EPSG','2214','EPSG','1142'); @@ -2202,25 +2202,25 @@ INSERT INTO "conversion" VALUES('EPSG','12202','Minnesota CS27 Central zone','', INSERT INTO "usage" VALUES('EPSG','11211','conversion','EPSG','12202','EPSG','2213','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12203','Minnesota CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.13,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11212','conversion','EPSG','12203','EPSG','2215','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12231','SPCS83 Minnesota North zone (meters)','See code 12234 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',46.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.06,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.38,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.02,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12231','SPCS83 Minnesota North zone (meter)','See code 12234 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',46.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.06,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.38,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.02,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11213','conversion','EPSG','12231','EPSG','2214','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12232','SPCS83 Minnesota Central zone (meters)','See code 12235 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.03,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.37,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12232','SPCS83 Minnesota Central zone (meter)','See code 12235 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.03,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.37,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11214','conversion','EPSG','12232','EPSG','2213','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12233','SPCS83 Minnesota South zone (meters)','See code 12236 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.13,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.47,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12233','SPCS83 Minnesota South zone (meter)','See code 12236 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.13,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.47,'EPSG','9110','EPSG','8826','Easting at false origin',800000.0,'EPSG','9001','EPSG','8827','Northing at false origin',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11215','conversion','EPSG','12233','EPSG','2215','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12234','SPCS83 Minnesota North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12231.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',46.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.06,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.38,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.02,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12234','SPCS83 Minnesota North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12231.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',46.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.06,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.38,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.02,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11216','conversion','EPSG','12234','EPSG','2214','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12235','SPCS83 Minnesota Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12232.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.03,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.37,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12235','SPCS83 Minnesota Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12232.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.03,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.37,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11217','conversion','EPSG','12235','EPSG','2213','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12236','SPCS83 Minnesota South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12233.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.13,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.47,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12236','SPCS83 Minnesota South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12233.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-94.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.13,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',43.47,'EPSG','9110','EPSG','8826','Easting at false origin',2624666.6667,'EPSG','9003','EPSG','8827','Northing at false origin',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11218','conversion','EPSG','12236','EPSG','2215','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12301','Mississippi CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11219','conversion','EPSG','12301','EPSG','2216','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12302','Mississippi CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11220','conversion','EPSG','12302','EPSG','2217','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12331','SPCS83 Mississippi East zone (meters)','See code 15336 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',300000.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','12331','SPCS83 Mississippi East zone (meter)','See code 15336 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11221','conversion','EPSG','12331','EPSG','2216','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12332','SPCS83 Mississippi West zone (meters)','See code 15337 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',700000.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','12332','SPCS83 Mississippi West zone (meter)','See code 15337 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',700000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11222','conversion','EPSG','12332','EPSG','2217','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12401','Missouri CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',35.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.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 "usage" VALUES('EPSG','11223','conversion','EPSG','12401','EPSG','2219','EPSG','1142'); @@ -2228,11 +2228,11 @@ INSERT INTO "conversion" VALUES('EPSG','12402','Missouri CS27 Central zone','',' INSERT INTO "usage" VALUES('EPSG','11224','conversion','EPSG','12402','EPSG','2218','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12403','Missouri CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-94.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11225','conversion','EPSG','12403','EPSG','2220','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12431','SPCS83 Missouri East zone (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',35.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',250000.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','12431','SPCS83 Missouri East zone (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',35.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11226','conversion','EPSG','12431','EPSG','2219','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12432','SPCS83 Missouri Central zone (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',35.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-92.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'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','12432','SPCS83 Missouri Central zone (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',35.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-92.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11227','conversion','EPSG','12432','EPSG','2218','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12433','SPCS83 Missouri West zone (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-94.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',850000.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','12433','SPCS83 Missouri West zone (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-94.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',850000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11228','conversion','EPSG','12433','EPSG','2220','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12501','Montana CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.43,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.51,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11229','conversion','EPSG','12501','EPSG','2211','EPSG','1142'); @@ -2240,13 +2240,13 @@ INSERT INTO "conversion" VALUES('EPSG','12502','Montana CS27 Central zone','','E INSERT INTO "usage" VALUES('EPSG','11230','conversion','EPSG','12502','EPSG','2210','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12503','Montana CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.24,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.52,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11231','conversion','EPSG','12503','EPSG','2212','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12530','SPCS83 Montana zone (meters)','See code 15338 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.15,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',49.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','12530','SPCS83 Montana zone (meter)','See code 15338 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.15,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',49.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11232','conversion','EPSG','12530','EPSG','1395','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12601','Nebraska CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.51,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.49,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11233','conversion','EPSG','12601','EPSG','2221','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12602','Nebraska CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-99.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.43,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11234','conversion','EPSG','12602','EPSG','2222','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12630','SPCS83 Nebraska zone (meters)','See code 15396 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','12630','SPCS83 Nebraska zone (meter)','See code 15396 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11235','conversion','EPSG','12630','EPSG','1396','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12701','Nevada CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11236','conversion','EPSG','12701','EPSG','2224','EPSG','1142'); @@ -2254,19 +2254,19 @@ INSERT INTO "conversion" VALUES('EPSG','12702','Nevada CS27 Central zone','','EP INSERT INTO "usage" VALUES('EPSG','11237','conversion','EPSG','12702','EPSG','2223','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12703','Nevada CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11238','conversion','EPSG','12703','EPSG','2225','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12731','SPCS83 Nevada East zone (meters)','See code 15381 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',8000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12731','SPCS83 Nevada East zone (meter)','See code 15381 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',8000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11239','conversion','EPSG','12731','EPSG','2224','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12732','SPCS83 Nevada Central zone (meters)','See code 15382 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-116.4,'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',6000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12732','SPCS83 Nevada Central zone (meter)','See code 15382 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-116.4,'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',6000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11240','conversion','EPSG','12732','EPSG','2223','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12733','SPCS83 Nevada West zone (meters)','See code 15383 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','12733','SPCS83 Nevada West zone (meter)','See code 15383 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11241','conversion','EPSG','12733','EPSG','2225','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12800','New Hampshire CS27','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11242','conversion','EPSG','12800','EPSG','1398','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12830','SPCS83 New Hampshire zone (meters)','See code 15389 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',300000.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','12830','SPCS83 New Hampshire zone (meter)','See code 15389 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',300000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11243','conversion','EPSG','12830','EPSG','1398','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','12900','New Jersey CS27','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',2000000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11244','conversion','EPSG','12900','EPSG','1399','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','12930','SPCS83 New Jersey zone (meters)','See code 15384 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',150000.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','12930','SPCS83 New Jersey zone (meter)','See code 15384 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',150000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11245','conversion','EPSG','12930','EPSG','1399','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13001','New Mexico CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-104.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999909091,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11246','conversion','EPSG','13001','EPSG','2228','EPSG','1142'); @@ -2274,11 +2274,11 @@ INSERT INTO "conversion" VALUES('EPSG','13002','New Mexico CS27 Central zone','' INSERT INTO "usage" VALUES('EPSG','11247','conversion','EPSG','13002','EPSG','2229','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13003','New Mexico CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999916667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11248','conversion','EPSG','13003','EPSG','2230','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13031','SPCS83 New Mexico East zone (meters)','See code 15339 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-104.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999909091,'EPSG','9201','EPSG','8806','False easting',165000.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','13031','SPCS83 New Mexico East zone (meter)','See code 15339 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-104.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999909091,'EPSG','9201','EPSG','8806','False easting',165000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11249','conversion','EPSG','13031','EPSG','2228','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13032','SPCS83 New Mexico Central zone (meters)','See code 15340 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-106.15,'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','13032','SPCS83 New Mexico Central zone (meter)','See code 15340 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-106.15,'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 "usage" VALUES('EPSG','11250','conversion','EPSG','13032','EPSG','2231','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13033','SPCS83 New Mexico West zone (meters)','See code 15341 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999916667,'EPSG','9201','EPSG','8806','False easting',830000.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','13033','SPCS83 New Mexico West zone (meter)','See code 15341 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999916667,'EPSG','9201','EPSG','8806','False easting',830000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11251','conversion','EPSG','13033','EPSG','2232','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13101','New York CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11252','conversion','EPSG','13101','EPSG','2234','EPSG','1142'); @@ -2288,85 +2288,85 @@ INSERT INTO "conversion" VALUES('EPSG','13103','New York CS27 West zone','','EPS INSERT INTO "usage" VALUES('EPSG','11254','conversion','EPSG','13103','EPSG','2236','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13104','New York CS27 Long Island zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-74.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.4,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11255','conversion','EPSG','13104','EPSG','2235','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13131','SPCS83 New York East zone (meters)','See code 15342 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',150000.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','13131','SPCS83 New York East zone (meter)','See code 15342 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',150000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11256','conversion','EPSG','13131','EPSG','2234','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13132','SPCS83 New York Central zone (meters)','See code 15343 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-76.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',250000.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','13132','SPCS83 New York Central zone (meter)','See code 15343 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-76.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11257','conversion','EPSG','13132','EPSG','2233','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13133','SPCS83 New York West zone (meters)','See code 15344 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-78.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',350000.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','13133','SPCS83 New York West zone (meter)','See code 15344 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-78.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',350000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11258','conversion','EPSG','13133','EPSG','2236','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13134','SPCS83 New York Long Island zone (meters)','See code 15345 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-74.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.4,'EPSG','9110','EPSG','8826','Easting at false origin',300000.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','13134','SPCS83 New York Long Island zone (meter)','See code 15345 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-74.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.4,'EPSG','9110','EPSG','8826','Easting at false origin',300000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11259','conversion','EPSG','13134','EPSG','2235','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13200','North Carolina CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.1,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11260','conversion','EPSG','13200','EPSG','1402','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13230','SPCS83 North Carolina zone (meters)','See code 15346 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.2,'EPSG','9110','EPSG','8826','Easting at false origin',609601.22,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','13230','SPCS83 North Carolina zone (meter)','See code 15346 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.2,'EPSG','9110','EPSG','8826','Easting at false origin',609601.22,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11261','conversion','EPSG','13230','EPSG','1402','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13301','North Dakota CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',48.44,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11262','conversion','EPSG','13301','EPSG','2237','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13302','North Dakota CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.11,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.29,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11263','conversion','EPSG','13302','EPSG','2238','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13331','SPCS83 North Dakota North zone (meters)','See code 15347 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.26,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13331','SPCS83 North Dakota North zone (meter)','See code 15347 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.26,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11264','conversion','EPSG','13331','EPSG','2237','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13332','SPCS83 North Dakota South zone (meters)','See code 15348 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.11,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13332','SPCS83 North Dakota South zone (meter)','See code 15348 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.11,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11265','conversion','EPSG','13332','EPSG','2238','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13401','Ohio CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.42,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11266','conversion','EPSG','13401','EPSG','2239','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13402','Ohio CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.02,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11267','conversion','EPSG','13402','EPSG','2240','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13431','SPCS83 Ohio North zone (meters)','See code 13433 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.26,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13431','SPCS83 Ohio North zone (meter)','See code 13433 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.26,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11268','conversion','EPSG','13431','EPSG','2239','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13432','SPCS83 Ohio South zone (meters)','See code 13434 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.44,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13432','SPCS83 Ohio South zone (meter)','See code 13434 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.44,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11269','conversion','EPSG','13432','EPSG','2240','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13433','SPCS83 Ohio North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.26,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','13433','SPCS83 Ohio North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.26,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11270','conversion','EPSG','13433','EPSG','2239','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13434','SPCS83 Ohio South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.44,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','13434','SPCS83 Ohio South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-82.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.44,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11271','conversion','EPSG','13434','EPSG','2240','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13501','Oklahoma CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.46,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11272','conversion','EPSG','13501','EPSG','2241','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13502','Oklahoma CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.14,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11273','conversion','EPSG','13502','EPSG','2242','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13531','SPCS83 Oklahoma North zone (meters)','See code 15349 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.34,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13531','SPCS83 Oklahoma North zone (meter)','See code 15349 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.34,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11274','conversion','EPSG','13531','EPSG','2241','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13532','SPCS83 Oklahoma South zone (meters)','See code 15350 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.56,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13532','SPCS83 Oklahoma South zone (meter)','See code 15350 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.56,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11275','conversion','EPSG','13532','EPSG','2242','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13601','Oregon CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11276','conversion','EPSG','13601','EPSG','2243','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13602','Oregon CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.0,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11277','conversion','EPSG','13602','EPSG','2244','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13631','SPCS83 Oregon North zone (meters)','See code 15351 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.2,'EPSG','9110','EPSG','8826','Easting at false origin',2500000.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','13631','SPCS83 Oregon North zone (meter)','See code 15351 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.2,'EPSG','9110','EPSG','8826','Easting at false origin',2500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11278','conversion','EPSG','13631','EPSG','2243','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13632','SPCS83 Oregon South zone (meters)','See code 15352 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.2,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.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','13632','SPCS83 Oregon South zone (meter)','See code 15352 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.2,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11279','conversion','EPSG','13632','EPSG','2244','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13633','Oregon Lambert (meters)','Initial metric definition of projection 15374. This projection is not used in metric form by state agencies. See proj code 15375 for equivalent non-metric definition recommended by Oregon Geographic Information Council (GIC).','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.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','13633','Oregon Lambert (meter)','Initial metric definition of projection 15374. This projection is not used in metric form by state agencies. See proj code 15375 for equivalent non-metric definition recommended by Oregon Geographic Information Council (GIC).','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.3,'EPSG','9110','EPSG','8826','Easting at false origin',400000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11280','conversion','EPSG','13633','EPSG','1406','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','13701','Pennsylvania CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.57,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11281','conversion','EPSG','13701','EPSG','2245','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13702','Pennsylvania CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.48,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11282','conversion','EPSG','13702','EPSG','2246','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13731','SPCS83 Pennsylvania North zone (meters)','See code 15353 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.57,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.53,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13731','SPCS83 Pennsylvania North zone (meter)','See code 15353 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.57,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.53,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11283','conversion','EPSG','13731','EPSG','2245','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13732','SPCS83 Pennsylvania South zone (meters)','See code 15354 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.56,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','13732','SPCS83 Pennsylvania South zone (meter)','See code 15354 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.56,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11284','conversion','EPSG','13732','EPSG','2246','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13800','Rhode Island CS27','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999938,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11285','conversion','EPSG','13800','EPSG','1408','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13830','SPCS83 Rhode Island zone (meters)','See code 15390 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999375,'EPSG','9201','EPSG','8806','False easting',100000.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','13830','SPCS83 Rhode Island zone (meter)','See code 15390 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999375,'EPSG','9201','EPSG','8806','False easting',100000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11286','conversion','EPSG','13830','EPSG','1408','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13901','South Carolina CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.58,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11287','conversion','EPSG','13901','EPSG','2247','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','13902','South Carolina CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',32.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.4,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11288','conversion','EPSG','13902','EPSG','2248','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','13930','SPCS83 South Carolina zone (meters)','See code 15355 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.3,'EPSG','9110','EPSG','8826','Easting at false origin',609600.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','13930','SPCS83 South Carolina zone (meter)','See code 15355 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.3,'EPSG','9110','EPSG','8826','Easting at false origin',609600.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11289','conversion','EPSG','13930','EPSG','1409','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14001','South Dakota CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.41,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11290','conversion','EPSG','14001','EPSG','2249','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14002','South Dakota CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.24,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11291','conversion','EPSG','14002','EPSG','2250','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14031','SPCS83 South Dakota North zone (meters)','See code 15394 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.25,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14031','SPCS83 South Dakota North zone (meter)','See code 15394 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.25,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11292','conversion','EPSG','14031','EPSG','2249','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14032','SPCS83 South Dakota South zone (meters)','See code 15395 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.24,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.5,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14032','SPCS83 South Dakota South zone (meter)','See code 15395 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.24,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.5,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11293','conversion','EPSG','14032','EPSG','2250','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14100','Tennessee CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.25,'EPSG','9110','EPSG','8826','Easting at false origin',100000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11294','conversion','EPSG','14100','EPSG','1411','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14130','SPCS83 Tennessee zone (meters)','See code 15356 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.15,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14130','SPCS83 Tennessee zone (meter)','See code 15356 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.15,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11295','conversion','EPSG','14130','EPSG','1411','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14201','Texas CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-101.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.11,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11296','conversion','EPSG','14201','EPSG','2253','EPSG','1142'); @@ -2378,20 +2378,19 @@ INSERT INTO "conversion" VALUES('EPSG','14204','Texas CS27 South Central zone',' INSERT INTO "usage" VALUES('EPSG','11299','conversion','EPSG','14204','EPSG','2256','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14205','Texas CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',26.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',27.5,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11300','conversion','EPSG','14205','EPSG','2255','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14231','SPCS83 Texas North zone (meters)','See code 15357 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-101.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.11,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.39,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14231','SPCS83 Texas North zone (meter)','See code 15357 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-101.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.11,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.39,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11301','conversion','EPSG','14231','EPSG','2253','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14232','SPCS83 Texas North Central zone (meters)','See code 15358 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.08,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14232','SPCS83 Texas North Central zone (meter)','See code 15358 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.08,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11302','conversion','EPSG','14232','EPSG','2254','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14233','SPCS83 Texas Central zone (meters)','See code 15359 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',31.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',30.07,'EPSG','9110','EPSG','8826','Easting at false origin',700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14233','SPCS83 Texas Central zone (meter)','See code 15359 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',31.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',30.07,'EPSG','9110','EPSG','8826','Easting at false origin',700000.0,'EPSG','9001','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11303','conversion','EPSG','14233','EPSG','2252','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14234','SPCS83 Texas South Central zone (meters)','See code 15360 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',27.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-99.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',28.23,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14234','SPCS83 Texas South Central zone (meter)','See code 15360 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',27.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-99.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',28.23,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',4000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11304','conversion','EPSG','14234','EPSG','2527','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14235','SPCS83 Texas South zone (meters)','See code 15361 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',300000.0,'EPSG','9001','EPSG','8827','Northing at false origin',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14235','SPCS83 Texas South zone (meter)','See code 15361 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',300000.0,'EPSG','9001','EPSG','8827','Northing at false origin',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11305','conversion','EPSG','14235','EPSG','2528','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14251','Texas State Mapping System (meters)','Replaces Shackleford.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.55,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14251','Texas State Mapping System (meter)','Replaces Shackleford.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.55,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11306','conversion','EPSG','14251','EPSG','1412','EPSG','1135'); -INSERT INTO "conversion" VALUES('EPSG','14252','Shackleford','Replaced by TSMS. -Care: survey data in Texas uses the US survey foot, not the International foot used by this projection.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.55,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9002','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14252','Shackleford','Replaced by TSMS. Care: survey data in Texas uses the US survey foot, not the International foot used by this projection.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.55,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9002','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11307','conversion','EPSG','14252','EPSG','1412','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','14253','Texas Centric Lambert Conformal','Use TCMC/AEA for applications requiring true area measurement.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',18.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.0,'EPSG','9110','EPSG','8826','Easting at false origin',1500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',5000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11308','conversion','EPSG','14253','EPSG','1412','EPSG','1221'); @@ -2403,47 +2402,47 @@ INSERT INTO "conversion" VALUES('EPSG','14302','Utah CS27 Central zone','','EPSG INSERT INTO "usage" VALUES('EPSG','11311','conversion','EPSG','14302','EPSG','2257','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14303','Utah CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.13,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.21,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11312','conversion','EPSG','14303','EPSG','2259','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14331','SPCS83 Utah North zone (meters)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14331','SPCS83 Utah North zone (meter)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11313','conversion','EPSG','14331','EPSG','2258','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14332','SPCS83 Utah Central zone (meters)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14332','SPCS83 Utah Central zone (meter)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11314','conversion','EPSG','14332','EPSG','2257','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14333','SPCS83 Utah South zone (meters)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14333','SPCS83 Utah South zone (meter)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',3000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11315','conversion','EPSG','14333','EPSG','2259','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14400','Vermont CS27','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-72.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999964286,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11316','conversion','EPSG','14400','EPSG','1414','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14430','SPCS83 Vermont zone (meters)','See code 5645 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-72.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999964286,'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','14430','SPCS83 Vermont zone (meter)','See code 5645 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-72.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999964286,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11317','conversion','EPSG','14430','EPSG','1414','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14501','Virginia CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.12,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11318','conversion','EPSG','14501','EPSG','2260','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14502','Virginia CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.58,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11319','conversion','EPSG','14502','EPSG','2261','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14531','SPCS83 Virginia North zone (meters)','See code 15365 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.12,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.02,'EPSG','9110','EPSG','8826','Easting at false origin',3500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14531','SPCS83 Virginia North zone (meter)','See code 15365 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.12,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.02,'EPSG','9110','EPSG','8826','Easting at false origin',3500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11320','conversion','EPSG','14531','EPSG','2260','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14532','SPCS83 Virginia South zone (meters)','See code 15366 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.46,'EPSG','9110','EPSG','8826','Easting at false origin',3500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14532','SPCS83 Virginia South zone (meter)','See code 15366 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.46,'EPSG','9110','EPSG','8826','Easting at false origin',3500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11321','conversion','EPSG','14532','EPSG','2261','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14601','Washington CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.5,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',48.44,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11322','conversion','EPSG','14601','EPSG','2262','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14602','Washington CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.2,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11323','conversion','EPSG','14602','EPSG','2263','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14631','SPCS83 Washington North zone (meters)','See code 15367 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.5,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.3,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','14631','SPCS83 Washington North zone (meter)','See code 15367 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.5,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.3,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11324','conversion','EPSG','14631','EPSG','2273','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14632','SPCS83 Washington South zone (meters)','See code 15368 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.5,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','14632','SPCS83 Washington South zone (meter)','See code 15368 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.5,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11325','conversion','EPSG','14632','EPSG','2274','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14701','West Virginia CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.15,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11326','conversion','EPSG','14701','EPSG','2264','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14702','West Virginia CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.53,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11327','conversion','EPSG','14702','EPSG','2265','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14731','SPCS83 West Virginia North zone (meters)','See projection code 14735 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.0,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14731','SPCS83 West Virginia North zone (meter)','See projection code 14735 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.0,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11328','conversion','EPSG','14731','EPSG','2264','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14732','SPCS83 West Virginia South zone (meters)','See projection code 14736 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.29,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14732','SPCS83 West Virginia South zone (meter)','See projection code 14736 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.29,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11329','conversion','EPSG','14732','EPSG','2265','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14733','SPCS83 West Virginia North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.0,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11330','conversion','EPSG','14733','EPSG','2264','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14734','SPCS83 West Virginia South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.29,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11331','conversion','EPSG','14734','EPSG','2265','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14735','SPCS83 West Virginia North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.0,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14735','SPCS83 West Virginia North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.0,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11332','conversion','EPSG','14735','EPSG','2264','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14736','SPCS83 West Virginia South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.29,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14736','SPCS83 West Virginia South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.29,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11333','conversion','EPSG','14736','EPSG','2265','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14801','Wisconsin CS27 North zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.46,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11334','conversion','EPSG','14801','EPSG','2267','EPSG','1142'); @@ -2453,11 +2452,11 @@ INSERT INTO "conversion" VALUES('EPSG','14803','Wisconsin CS27 South zone','','E INSERT INTO "usage" VALUES('EPSG','11336','conversion','EPSG','14803','EPSG','2268','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14811','Wisconsin Transverse Mercator 27','Designed to cover the state in a single zone.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',-4500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11337','conversion','EPSG','14811','EPSG','1418','EPSG','1135'); -INSERT INTO "conversion" VALUES('EPSG','14831','SPCS83 Wisconsin North zone (meters)','See code 15369 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.34,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14831','SPCS83 Wisconsin North zone (meter)','See code 15369 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.34,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11338','conversion','EPSG','14831','EPSG','2267','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14832','SPCS83 Wisconsin Central zone (meters)','See code 15370 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.15,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14832','SPCS83 Wisconsin Central zone (meter)','See code 15370 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.15,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11339','conversion','EPSG','14832','EPSG','2266','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14833','SPCS83 Wisconsin South zone (meters)','See code 15371 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.04,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.44,'EPSG','9110','EPSG','8826','Easting at false origin',600000.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','14833','SPCS83 Wisconsin South zone (meter)','See code 15371 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.04,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.44,'EPSG','9110','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11340','conversion','EPSG','14833','EPSG','2268','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14841','Wisconsin Transverse Mercator 83','Designed to cover the state in a single zone.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',520000.0,'EPSG','9001','EPSG','8807','False northing',-4480000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11341','conversion','EPSG','14841','EPSG','1418','EPSG','1135'); @@ -2471,21 +2470,21 @@ INSERT INTO "conversion" VALUES('EPSG','14904','Wyoming CS27 West zone','','EPSG INSERT INTO "usage" VALUES('EPSG','11345','conversion','EPSG','14904','EPSG','2271','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','14930','Wyoming Lambert','Source originally defining the projection is unclear - possibly the Wyoming GIS Center.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-107.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17408','conversion','EPSG','14930','EPSG','1419','EPSG','1135'); -INSERT INTO "conversion" VALUES('EPSG','14931','SPCS83 Wyoming East zone (meters)','See code 14935 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14931','SPCS83 Wyoming East zone (meter)','See code 14935 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11346','conversion','EPSG','14931','EPSG','2269','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14932','SPCS83 Wyoming East Central zone (meters)','See code 14936 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',400000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14932','SPCS83 Wyoming East Central zone (meter)','See code 14936 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',400000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11347','conversion','EPSG','14932','EPSG','2270','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14933','SPCS83 Wyoming West Central zone (meters)','See code 14937 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',600000.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','14933','SPCS83 Wyoming West Central zone (meter)','See code 14937 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',600000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11348','conversion','EPSG','14933','EPSG','2272','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14934','SPCS83 Wyoming West zone (meters)','See code 14938 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14934','SPCS83 Wyoming West zone (meter)','See code 14938 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',800000.0,'EPSG','9001','EPSG','8807','False northing',100000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11349','conversion','EPSG','14934','EPSG','2271','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14935','SPCS83 Wyoming East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14931.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',656166.6667,'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','14935','SPCS83 Wyoming East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14931.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-105.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',656166.6667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11350','conversion','EPSG','14935','EPSG','2269','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14936','SPCS83 Wyoming East Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14932.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1312333.3333,'EPSG','9003','EPSG','8807','False northing',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14936','SPCS83 Wyoming East Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14932.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1312333.3333,'EPSG','9003','EPSG','8807','False northing',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11351','conversion','EPSG','14936','EPSG','2270','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14937','SPCS83 Wyoming West Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14933.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1968500.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','14937','SPCS83 Wyoming West Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14933.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-108.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1968500.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11352','conversion','EPSG','14937','EPSG','2272','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','14938','SPCS83 Wyoming West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14934.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',2624666.6667,'EPSG','9003','EPSG','8807','False northing',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','14938','SPCS83 Wyoming West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14934.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',2624666.6667,'EPSG','9003','EPSG','8807','False northing',328083.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11353','conversion','EPSG','14938','EPSG','2271','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15001','Alaska CS27 zone 1','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=2685642.82 ftUS, Nc=1887198.47 ftUS.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',57.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',-133.4,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.07483685,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.9999,'EPSG','9201','EPSG','8806','False easting',16404166.67,'EPSG','9003','EPSG','8807','False northing',-16404166.67,'EPSG','9003',0); INSERT INTO "usage" VALUES('EPSG','11354','conversion','EPSG','15001','EPSG','2156','EPSG','1142'); @@ -2509,27 +2508,27 @@ INSERT INTO "conversion" VALUES('EPSG','15010','Alaska CS27 zone 10','','EPSG',' INSERT INTO "usage" VALUES('EPSG','11363','conversion','EPSG','15010','EPSG','2157','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15020','Alaska Albers','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',50.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-154.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',55.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',65.0,'EPSG','9102','EPSG','8826','Easting at false origin',0.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11364','conversion','EPSG','15020','EPSG','1330','EPSG','1241'); -INSERT INTO "conversion" VALUES('EPSG','15021','Alaska Albers (meters)','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',50.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-154.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',55.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',65.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','15021','Alaska Albers (meter)','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',50.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-154.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',55.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',65.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 "usage" VALUES('EPSG','11365','conversion','EPSG','15021','EPSG','1330','EPSG','1241'); -INSERT INTO "conversion" VALUES('EPSG','15031','SPCS83 Alaska zone 1 (meters)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=818585.57 m, Nc=575219.25 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',57.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',-133.4,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.07483685,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.9999,'EPSG','9201','EPSG','8806','False easting',5000000.0,'EPSG','9001','EPSG','8807','False northing',-5000000.0,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','15031','SPCS83 Alaska zone 1 (meter)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=818585.57 m, Nc=575219.25 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',57.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',-133.4,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.07483685,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.9999,'EPSG','9201','EPSG','8806','False easting',5000000.0,'EPSG','9001','EPSG','8807','False northing',-5000000.0,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','11366','conversion','EPSG','15031','EPSG','2156','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15032','SPCS83 Alaska zone 2 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-142.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15032','SPCS83 Alaska zone 2 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-142.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11367','conversion','EPSG','15032','EPSG','2158','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15033','SPCS83 Alaska zone 3 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-146.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15033','SPCS83 Alaska zone 3 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-146.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11368','conversion','EPSG','15033','EPSG','2159','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15034','SPCS83 Alaska zone 4 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-150.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15034','SPCS83 Alaska zone 4 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-150.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11369','conversion','EPSG','15034','EPSG','2160','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15035','SPCS83 Alaska zone 5 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-154.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15035','SPCS83 Alaska zone 5 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-154.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11370','conversion','EPSG','15035','EPSG','2161','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15036','SPCS83 Alaska zone 6 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15036','SPCS83 Alaska zone 6 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11371','conversion','EPSG','15036','EPSG','2162','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15037','SPCS83 Alaska zone 7 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-162.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15037','SPCS83 Alaska zone 7 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-162.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11372','conversion','EPSG','15037','EPSG','2163','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15038','SPCS83 Alaska zone 8 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-166.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15038','SPCS83 Alaska zone 8 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-166.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11373','conversion','EPSG','15038','EPSG','2164','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15039','SPCS83 Alaska zone 9 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-170.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15039','SPCS83 Alaska zone 9 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',54.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-170.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11374','conversion','EPSG','15039','EPSG','2165','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15040','SPCS83 Alaska zone 10 (meters)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',51.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-176.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',53.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',51.5,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.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','15040','SPCS83 Alaska zone 10 (meter)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',51.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-176.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',53.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',51.5,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11375','conversion','EPSG','15040','EPSG','2157','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15101','Hawaii CS27 zone 1','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',18.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-155.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11376','conversion','EPSG','15101','EPSG','1546','EPSG','1142'); @@ -2541,29 +2540,29 @@ INSERT INTO "conversion" VALUES('EPSG','15104','Hawaii CS27 zone 4','','EPSG','9 INSERT INTO "usage" VALUES('EPSG','11379','conversion','EPSG','15104','EPSG','1549','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15105','Hawaii CS27 zone 5','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-160.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11380','conversion','EPSG','15105','EPSG','1550','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15131','SPCS83 Hawaii zone 1 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',18.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-155.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'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','15131','SPCS83 Hawaii zone 1 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',18.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-155.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11381','conversion','EPSG','15131','EPSG','1546','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15132','SPCS83 Hawaii zone 2 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',20.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-156.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'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','15132','SPCS83 Hawaii zone 2 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',20.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-156.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11382','conversion','EPSG','15132','EPSG','1547','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15133','SPCS83 Hawaii zone 3 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'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','15133','SPCS83 Hawaii zone 3 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11383','conversion','EPSG','15133','EPSG','1548','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15134','SPCS83 Hawaii zone 4 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-159.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'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','15134','SPCS83 Hawaii zone 4 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-159.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11384','conversion','EPSG','15134','EPSG','1549','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15135','SPCS83 Hawaii zone 5 (meters)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-160.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'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','15135','SPCS83 Hawaii zone 5 (meter)','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-160.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11385','conversion','EPSG','15135','EPSG','1550','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15138','SPCS83 Hawaii zone 3 (US Survey feet)','Used by City and County of Honolulu. Not recognised by Federal authorities because there is no State law defining grid unit. For equivalent metric Federal definition see code 15133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'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','15138','SPCS83 Hawaii zone 3 (US survey foot)','Used by City and County of Honolulu. Not recognised by Federal authorities because there is no State law defining grid unit. For equivalent metric Federal definition see code 15133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',21.1,'EPSG','9110','EPSG','8802','Longitude of natural origin',-158.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11386','conversion','EPSG','15138','EPSG','1548','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15201','Puerto Rico CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',17.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-66.26,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',18.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',18.02,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11387','conversion','EPSG','15201','EPSG','3294','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15202','St. Croix CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',17.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-66.26,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',18.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',18.02,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9003','EPSG','8827','Northing at false origin',100000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11388','conversion','EPSG','15202','EPSG','3330','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15230','SPCS83 Puerto Rico & Virgin Islands zone (meters)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',17.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-66.26,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',18.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',18.02,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15230','SPCS83 Puerto Rico & Virgin Islands zone (meter)','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',17.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-66.26,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',18.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',18.02,'EPSG','9110','EPSG','8826','Easting at false origin',200000.0,'EPSG','9001','EPSG','8827','Northing at false origin',200000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11389','conversion','EPSG','15230','EPSG','3634','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15297','SPCS83 Utah North zone (US Survey feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14331. For equivalent International foot definition see code 15362.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15297','SPCS83 Utah North zone (US survey foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14331. For equivalent International foot definition see code 15362.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11390','conversion','EPSG','15297','EPSG','2258','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15298','SPCS83 Utah Central zone (US Survey feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14332. For equivalent International foot definition see code 15363.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.6667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15298','SPCS83 Utah Central zone (US survey foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14332. For equivalent International foot definition see code 15363.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.6667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11391','conversion','EPSG','15298','EPSG','2257','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15299','SPCS83 Utah South zone (US Survey feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14333. For equivalent International foot definition see code 15364.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',9842500.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15299','SPCS83 Utah South zone (US survey foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14333. For equivalent International foot definition see code 15364.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',9842500.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11392','conversion','EPSG','15299','EPSG','2259','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15300','American Samoa Lambert','Per Snyder: Map Projections - a Working Manual: At origin x=500000 ft; y=o but radius to latitude of origin = -82000000 feet. US National Geodetic Survey confirms use of zero for False Northing.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',-14.16,'EPSG','9110','EPSG','8802','Longitude of natural origin',170.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'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,1); INSERT INTO "usage" VALUES('EPSG','11393','conversion','EPSG','15300','EPSG','1027','EPSG','1142'); @@ -2571,193 +2570,193 @@ INSERT INTO "conversion" VALUES('EPSG','15301','American Samoa Lambert','Per Sny INSERT INTO "usage" VALUES('EPSG','11394','conversion','EPSG','15301','EPSG','1027','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15302','Tennessee CS27','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.25,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',100000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11395','conversion','EPSG','15302','EPSG','1411','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15303','SPCS83 Kentucky North zone (meters)','See code 15328 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.58,'EPSG','9110','EPSG','8826','Easting at false origin',500000.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','15303','SPCS83 Kentucky North zone (meter)','See code 15328 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.58,'EPSG','9110','EPSG','8826','Easting at false origin',500000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11396','conversion','EPSG','15303','EPSG','2202','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15304','SPCS83 Arizona East zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10231.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.0,'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','15304','SPCS83 Arizona East zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10231.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-110.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.0,'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 "usage" VALUES('EPSG','11397','conversion','EPSG','15304','EPSG','2167','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15305','SPCS83 Arizona Central zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10232.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.55,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.0,'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','15305','SPCS83 Arizona Central zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10232.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-111.55,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',700000.0,'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 "usage" VALUES('EPSG','11398','conversion','EPSG','15305','EPSG','2166','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15306','SPCS83 Arizona West zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10233.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-113.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',700000.0,'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','15306','SPCS83 Arizona West zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 10233.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-113.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',700000.0,'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 "usage" VALUES('EPSG','11399','conversion','EPSG','15306','EPSG','2168','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15307','SPCS83 California zone 1 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15307','SPCS83 California zone 1 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11400','conversion','EPSG','15307','EPSG','2175','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15308','SPCS83 California zone 2 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.2,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15308','SPCS83 California zone 2 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-122.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.2,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11401','conversion','EPSG','15308','EPSG','2176','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15309','SPCS83 California zone 3 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10433.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.04,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15309','SPCS83 California zone 3 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10433.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.04,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11402','conversion','EPSG','15309','EPSG','2177','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15310','SPCS83 California zone 4 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10434.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-119.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.0,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15310','SPCS83 California zone 4 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10434.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-119.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.15,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.0,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11403','conversion','EPSG','15310','EPSG','2178','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15311','SPCS83 California zone 5 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10435.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-118.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.28,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.02,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15311','SPCS83 California zone 5 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10435.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-118.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.28,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.02,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11404','conversion','EPSG','15311','EPSG','2182','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15312','SPCS83 California zone 6 (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10436.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-116.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.47,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15312','SPCS83 California zone 6 (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10436.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-116.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.47,'EPSG','9110','EPSG','8826','Easting at false origin',6561666.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11405','conversion','EPSG','15312','EPSG','2180','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15313','SPCS83 Colorado North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.43,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15313','SPCS83 Colorado North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.43,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11406','conversion','EPSG','15313','EPSG','2184','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15314','SPCS83 Colorado Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15314','SPCS83 Colorado Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11407','conversion','EPSG','15314','EPSG','2183','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15315','SPCS83 Colorado South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10533.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15315','SPCS83 Colorado South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10533.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',3000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11408','conversion','EPSG','15315','EPSG','2185','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15316','SPCS83 Connecticut zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-72.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.52,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.12,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',500000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15316','SPCS83 Connecticut zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-72.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.52,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.12,'EPSG','9110','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',500000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11409','conversion','EPSG','15316','EPSG','1377','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15317','SPCS83 Delaware zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10730.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',656166.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','15317','SPCS83 Delaware zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10730.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('EPSG','11410','conversion','EPSG','15317','EPSG','1378','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15318','SPCS83 Florida East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10931.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',656166.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','15318','SPCS83 Florida East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10931.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('EPSG','11411','conversion','EPSG','15318','EPSG','2186','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15319','SPCS83 Florida West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10932.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',656166.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','15319','SPCS83 Florida West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10932.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('EPSG','11412','conversion','EPSG','15319','EPSG','2188','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15320','SPCS83 Florida North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10933.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.35,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15320','SPCS83 Florida North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10933.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.35,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11413','conversion','EPSG','15320','EPSG','2187','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15321','SPCS83 Georgia East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11031.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',656166.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','15321','SPCS83 Georgia East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11031.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('EPSG','11414','conversion','EPSG','15321','EPSG','2189','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15322','SPCS83 Georgia West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11032.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-84.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',2296583.333,'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','15322','SPCS83 Georgia West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11032.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-84.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',2296583.333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11415','conversion','EPSG','15322','EPSG','2190','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15323','SPCS83 Idaho East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11131.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',656166.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','15323','SPCS83 Idaho East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11131.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-112.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'EPSG','9201','EPSG','8806','False easting',656166.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 "usage" VALUES('EPSG','11416','conversion','EPSG','15323','EPSG','2192','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15324','SPCS83 Idaho Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11132.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'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','15324','SPCS83 Idaho Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11132.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-114.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999947368,'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 "usage" VALUES('EPSG','11417','conversion','EPSG','15324','EPSG','2191','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15325','SPCS83 Idaho West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',2624666.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','15325','SPCS83 Idaho West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.45,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',2624666.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 "usage" VALUES('EPSG','11418','conversion','EPSG','15325','EPSG','2193','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15326','SPCS83 Indiana East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11331.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',328083.333,'EPSG','9003','EPSG','8807','False northing',818125.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11419','conversion','EPSG','15326','EPSG','2196','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15327','SPCS83 Indiana West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11332.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',2952750.0,'EPSG','9003','EPSG','8807','False northing',818125.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','11420','conversion','EPSG','15327','EPSG','2197','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15328','SPCS83 Kentucky North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 15303.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.58,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15328','SPCS83 Kentucky North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 15303.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.15,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.58,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11421','conversion','EPSG','15328','EPSG','2202','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15329','SPCS83 Kentucky South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.44,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15329','SPCS83 Kentucky South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.56,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.44,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',1640416.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11422','conversion','EPSG','15329','EPSG','2203','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15330','SPCS83 Maryland zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11930.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.27,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.18,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15330','SPCS83 Maryland zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11930.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.27,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.18,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11423','conversion','EPSG','15330','EPSG','1389','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15331','SPCS83 Massachusetts Mainland zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12031.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-71.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.43,'EPSG','9110','EPSG','8826','Easting at false origin',656166.667,'EPSG','9003','EPSG','8827','Northing at false origin',2460625.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15331','SPCS83 Massachusetts Mainland zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12031.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-71.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',42.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.43,'EPSG','9110','EPSG','8826','Easting at false origin',656166.667,'EPSG','9003','EPSG','8827','Northing at false origin',2460625.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11424','conversion','EPSG','15331','EPSG','2209','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15332','SPCS83 Massachusetts Island zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12032.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-70.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.17,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15332','SPCS83 Massachusetts Island zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12032.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-70.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',41.17,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11425','conversion','EPSG','15332','EPSG','2208','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15333','SPCS83 Michigan North zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12141.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.47,'EPSG','9110','EPSG','8822','Longitude of false origin',-87.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.29,'EPSG','9110','EPSG','8826','Easting at false origin',26246719.16,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15333','SPCS83 Michigan North zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12141.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.47,'EPSG','9110','EPSG','8822','Longitude of false origin',-87.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.29,'EPSG','9110','EPSG','8826','Easting at false origin',26246719.16,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11426','conversion','EPSG','15333','EPSG','1723','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15334','SPCS83 Michigan Central zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12142.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.19,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.11,'EPSG','9110','EPSG','8826','Easting at false origin',19685039.37,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15334','SPCS83 Michigan Central zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12142.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.19,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.11,'EPSG','9110','EPSG','8826','Easting at false origin',19685039.37,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11427','conversion','EPSG','15334','EPSG','1724','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15335','SPCS83 Michigan South zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12143.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.06,'EPSG','9110','EPSG','8826','Easting at false origin',13123359.58,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15335','SPCS83 Michigan South zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12143.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-84.22,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.06,'EPSG','9110','EPSG','8826','Easting at false origin',13123359.58,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11428','conversion','EPSG','15335','EPSG','1725','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15336','SPCS83 Mississippi East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12331.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',984250.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','15336','SPCS83 Mississippi East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12331.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',984250.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11429','conversion','EPSG','15336','EPSG','2216','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15337','SPCS83 Mississippi West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12332.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',2296583.333,'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','15337','SPCS83 Mississippi West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12332.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',29.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99995,'EPSG','9201','EPSG','8806','False easting',2296583.333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11430','conversion','EPSG','15337','EPSG','2217','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15338','SPCS83 Montana zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12530.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.15,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',49.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15338','SPCS83 Montana zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 12530.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',44.15,'EPSG','9110','EPSG','8822','Longitude of false origin',-109.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',49.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.0,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11431','conversion','EPSG','15338','EPSG','1395','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15339','SPCS83 New Mexico East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13031.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-104.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999909091,'EPSG','9201','EPSG','8806','False easting',541337.5,'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','15339','SPCS83 New Mexico East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13031.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-104.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999909091,'EPSG','9201','EPSG','8806','False easting',541337.5,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11432','conversion','EPSG','15339','EPSG','2228','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15340','SPCS83 New Mexico Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13032.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-106.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'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','15340','SPCS83 New Mexico Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13032.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-106.15,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'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 "usage" VALUES('EPSG','11433','conversion','EPSG','15340','EPSG','2231','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15341','SPCS83 New Mexico West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13033.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999916667,'EPSG','9201','EPSG','8806','False easting',2723091.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','15341','SPCS83 New Mexico West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13033.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',31.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-107.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999916667,'EPSG','9201','EPSG','8806','False easting',2723091.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 "usage" VALUES('EPSG','11434','conversion','EPSG','15341','EPSG','2232','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15342','SPCS83 New York East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13131.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',492125.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','15342','SPCS83 New York East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13131.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',492125.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11435','conversion','EPSG','15342','EPSG','2234','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15343','SPCS83 New York Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13132.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-76.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',820208.333,'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','15343','SPCS83 New York Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13132.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-76.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',820208.333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11436','conversion','EPSG','15343','EPSG','2233','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15344','SPCS83 New York West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-78.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1148291.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','15344','SPCS83 New York West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13133.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',40.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-78.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999375,'EPSG','9201','EPSG','8806','False easting',1148291.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 "usage" VALUES('EPSG','11437','conversion','EPSG','15344','EPSG','2236','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15345','SPCS83 New York Long Island zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13134.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-74.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.4,'EPSG','9110','EPSG','8826','Easting at false origin',984250.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15345','SPCS83 New York Long Island zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13134.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-74.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.02,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.4,'EPSG','9110','EPSG','8826','Easting at false origin',984250.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11438','conversion','EPSG','15345','EPSG','2235','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15346','SPCS83 North Carolina zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13230.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.2,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15346','SPCS83 North Carolina zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13230.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-79.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.1,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.2,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11439','conversion','EPSG','15346','EPSG','1402','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15347','SPCS83 North Dakota North zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13331.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.26,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15347','SPCS83 North Dakota North zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13331.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.26,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11440','conversion','EPSG','15347','EPSG','2237','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15348','SPCS83 North Dakota South zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13332.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.11,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15348','SPCS83 North Dakota South zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13332.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.29,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',46.11,'EPSG','9110','EPSG','8826','Easting at false origin',1968503.937,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11441','conversion','EPSG','15348','EPSG','2238','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15349','SPCS83 Oklahoma North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.34,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15349','SPCS83 Oklahoma North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',35.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.34,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11442','conversion','EPSG','15349','EPSG','2241','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15350','SPCS83 Oklahoma South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.56,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15350','SPCS83 Oklahoma South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',33.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',35.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.56,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11443','conversion','EPSG','15350','EPSG','2242','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15351','SPCS83 Oregon North zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13631.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.2,'EPSG','9110','EPSG','8826','Easting at false origin',8202099.738,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15351','SPCS83 Oregon North zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13631.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.2,'EPSG','9110','EPSG','8826','Easting at false origin',8202099.738,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11444','conversion','EPSG','15351','EPSG','2243','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15352','SPCS83 Oregon South zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.2,'EPSG','9110','EPSG','8826','Easting at false origin',4921259.843,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15352','SPCS83 Oregon South zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.2,'EPSG','9110','EPSG','8826','Easting at false origin',4921259.843,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11445','conversion','EPSG','15352','EPSG','2244','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15353','SPCS83 Pennsylvania North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.57,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.53,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15353','SPCS83 Pennsylvania North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.57,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.53,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11446','conversion','EPSG','15353','EPSG','2245','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15354','SPCS83 Pennsylvania South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.56,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15354','SPCS83 Pennsylvania South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-77.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.56,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11447','conversion','EPSG','15354','EPSG','2246','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15355','SPCS83 South Carolina zone (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13930.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.3,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15355','SPCS83 South Carolina zone (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For equivalent metric Federal definition see code 13930.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-81.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.3,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11448','conversion','EPSG','15355','EPSG','1409','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15356','SPCS83 Tennessee zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14130.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.15,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15356','SPCS83 Tennessee zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14130.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-86.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.25,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',35.15,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11449','conversion','EPSG','15356','EPSG','1411','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15357','SPCS83 Texas North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14231.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-101.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.11,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.39,'EPSG','9110','EPSG','8826','Easting at false origin',656166.667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15357','SPCS83 Texas North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14231.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-101.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.11,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.39,'EPSG','9110','EPSG','8826','Easting at false origin',656166.667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11450','conversion','EPSG','15357','EPSG','2253','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15358','SPCS83 Texas North Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14232.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.08,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15358','SPCS83 Texas North Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14232.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',31.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',33.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',32.08,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11451','conversion','EPSG','15358','EPSG','2254','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15359','SPCS83 Texas Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14233.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',31.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',30.07,'EPSG','9110','EPSG','8826','Easting at false origin',2296583.333,'EPSG','9003','EPSG','8827','Northing at false origin',9842500.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15359','SPCS83 Texas Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14233.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',29.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',31.53,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',30.07,'EPSG','9110','EPSG','8826','Easting at false origin',2296583.333,'EPSG','9003','EPSG','8827','Northing at false origin',9842500.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11452','conversion','EPSG','15359','EPSG','2252','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15360','SPCS83 Texas South Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14234.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',27.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-99.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',28.23,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',13123333.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15360','SPCS83 Texas South Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14234.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',27.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-99.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.17,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',28.23,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',13123333.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11453','conversion','EPSG','15360','EPSG','2527','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15361','SPCS83 Texas South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14235.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',984250.0,'EPSG','9003','EPSG','8827','Northing at false origin',16404166.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15361','SPCS83 Texas South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14235.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',984250.0,'EPSG','9003','EPSG','8827','Northing at false origin',16404166.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11454','conversion','EPSG','15361','EPSG','2528','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15362','SPCS83 Utah North zone (International feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14331. For equivalent US Survey foot definition see code 15297.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',3280839.895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15362','SPCS83 Utah North zone (international foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14331. For equivalent US Survey foot definition see code 15297.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.43,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',3280839.895,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11455','conversion','EPSG','15362','EPSG','2258','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15363','SPCS83 Utah Central zone (International feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14332. For equivalent US Survey foot definition see code 15298.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',6561679.79,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15363','SPCS83 Utah Central zone (international foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14332. For equivalent US Survey foot definition see code 15298.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.39,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.01,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',6561679.79,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11456','conversion','EPSG','15363','EPSG','2257','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15364','SPCS83 Utah South zone (International feet)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14333. For equivalent US Survey foot definition see code 15299.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',9842519.685,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15364','SPCS83 Utah South zone (international foot)','State law defining grid unit as International feet (note: not US Survey feet) has been withdrawn. For equivalent metric Federal definition see code 14333. For equivalent US Survey foot definition see code 15299.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-111.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.21,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.13,'EPSG','9110','EPSG','8826','Easting at false origin',1640419.948,'EPSG','9002','EPSG','8827','Northing at false origin',9842519.685,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11457','conversion','EPSG','15364','EPSG','2259','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15365','SPCS83 Virginia North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.12,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.02,'EPSG','9110','EPSG','8826','Easting at false origin',11482916.667,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15365','SPCS83 Virginia North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.12,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.02,'EPSG','9110','EPSG','8826','Easting at false origin',11482916.667,'EPSG','9003','EPSG','8827','Northing at false origin',6561666.667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11458','conversion','EPSG','15365','EPSG','2260','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15366','SPCS83 Virginia South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.46,'EPSG','9110','EPSG','8826','Easting at false origin',11482916.667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15366','SPCS83 Virginia South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-78.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.58,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',36.46,'EPSG','9110','EPSG','8826','Easting at false origin',11482916.667,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11459','conversion','EPSG','15366','EPSG','2261','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15367','SPCS83 Washington North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14631.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.5,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.3,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15367','SPCS83 Washington North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14631.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',47.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.5,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',48.44,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',47.3,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11460','conversion','EPSG','15367','EPSG','2273','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15368','SPCS83 Washington South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.5,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15368','SPCS83 Washington South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14632.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',47.2,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.5,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11461','conversion','EPSG','15368','EPSG','2274','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15369','SPCS83 Wisconsin North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14831.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.34,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15369','SPCS83 Wisconsin North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14831.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',45.1,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',46.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.34,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11462','conversion','EPSG','15369','EPSG','2267','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15370','SPCS83 Wisconsin Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14832.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.15,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15370','SPCS83 Wisconsin Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14832.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.3,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.15,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11463','conversion','EPSG','15370','EPSG','2266','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15371','SPCS83 Wisconsin South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14833.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.04,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.44,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15371','SPCS83 Wisconsin South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14833.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-90.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.04,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.44,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11464','conversion','EPSG','15371','EPSG','2268','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15372','SPCS83 Indiana East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11331.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',328083.333,'EPSG','9003','EPSG','8807','False northing',820208.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15372','SPCS83 Indiana East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11331.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',328083.333,'EPSG','9003','EPSG','8807','False northing',820208.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11465','conversion','EPSG','15372','EPSG','2196','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15373','SPCS83 Indiana West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11332.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',2952750.0,'EPSG','9003','EPSG','8807','False northing',820208.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15373','SPCS83 Indiana West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11332.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',37.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.05,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',2952750.0,'EPSG','9003','EPSG','8807','False northing',820208.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11466','conversion','EPSG','15373','EPSG','2197','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15374','Oregon GIC Lambert (International feet)','State law defines grid unit as International feet (note: not US Survey feet). For original metric definition (not used by Oregon state agencies) see proj code 13633.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.3,'EPSG','9110','EPSG','8826','Easting at false origin',1312335.958,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15374','Oregon GIC Lambert (international foot)','State law defines grid unit as International feet (note: not US Survey feet). For original metric definition (not used by Oregon state agencies) see proj code 13633.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.45,'EPSG','9110','EPSG','8822','Longitude of false origin',-120.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',45.3,'EPSG','9110','EPSG','8826','Easting at false origin',1312335.958,'EPSG','9002','EPSG','8827','Northing at false origin',0.0,'EPSG','9002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11467','conversion','EPSG','15374','EPSG','1406','EPSG','1135'); -INSERT INTO "conversion" VALUES('EPSG','15375','SPCS83 Kentucky Single Zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.4,'EPSG','9110','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15375','SPCS83 Kentucky Single Zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-85.45,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',37.05,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.4,'EPSG','9110','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11468','conversion','EPSG','15375','EPSG','1386','EPSG','1135'); INSERT INTO "conversion" VALUES('EPSG','15376','American Samoa Lambert','Per Snyder: Map Projections - a Working Manual: At origin x=500000 ft; y=0 but radius to latitude of origin = -82000000 feet. US National Geodetic Survey confirms value for False Northing.','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',-14.16,'EPSG','9110','EPSG','8802','Longitude of natural origin',-170.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',312234.65,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11469','conversion','EPSG','15376','EPSG','3109','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15377','SPCS83 Iowa North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.16,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.04,'EPSG','9110','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15377','SPCS83 Iowa North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11431.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',41.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.16,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.04,'EPSG','9110','EPSG','8826','Easting at false origin',4921250.0,'EPSG','9003','EPSG','8827','Northing at false origin',3280833.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11470','conversion','EPSG','15377','EPSG','2198','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15378','SPCS83 Iowa South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.37,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15378','SPCS83 Iowa South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11432.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',40.0,'EPSG','9110','EPSG','8822','Longitude of false origin',-93.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',41.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.37,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11471','conversion','EPSG','15378','EPSG','2199','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15379','SPCS83 Kansas North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.43,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15379','SPCS83 Kansas North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11531.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',38.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.43,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11472','conversion','EPSG','15379','EPSG','2200','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15380','SPCS83 Kansas South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.16,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',1312333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15380','SPCS83 Kansas South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11532.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-98.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.34,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.16,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',1312333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11473','conversion','EPSG','15380','EPSG','2201','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15381','SPCS83 Nevada East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12731.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',656166.6667,'EPSG','9003','EPSG','8807','False northing',26246666.6667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15381','SPCS83 Nevada East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12731.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-115.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',656166.6667,'EPSG','9003','EPSG','8807','False northing',26246666.6667,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11474','conversion','EPSG','15381','EPSG','2224','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15382','SPCS83 Nevada Central zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12732.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-116.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'EPSG','9003','EPSG','8807','False northing',19685000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15382','SPCS83 Nevada Central zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12732.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-116.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',1640416.6667,'EPSG','9003','EPSG','8807','False northing',19685000.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11475','conversion','EPSG','15382','EPSG','2223','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15383','SPCS83 Nevada West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12733.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',2624666.6667,'EPSG','9003','EPSG','8807','False northing',13123333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15383','SPCS83 Nevada West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12733.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',34.45,'EPSG','9110','EPSG','8802','Longitude of natural origin',-118.35,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',2624666.6667,'EPSG','9003','EPSG','8807','False northing',13123333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11476','conversion','EPSG','15383','EPSG','2225','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15384','SPCS83 New Jersey zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12930.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',492125.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','15384','SPCS83 New Jersey zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12930.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.5,'EPSG','9110','EPSG','8802','Longitude of natural origin',-74.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.9999,'EPSG','9201','EPSG','8806','False easting',492125.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11477','conversion','EPSG','15384','EPSG','1399','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15385','SPCS83 Arkansas North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10331.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.56,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15385','SPCS83 Arkansas North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10331.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',34.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',36.14,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',34.56,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11478','conversion','EPSG','15385','EPSG','2169','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15386','SPCS83 Arkansas South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10332.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.18,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',1312333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15386','SPCS83 Arkansas South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 10332.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',32.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',34.46,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',33.18,'EPSG','9110','EPSG','8826','Easting at false origin',1312333.3333,'EPSG','9003','EPSG','8827','Northing at false origin',1312333.3333,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11479','conversion','EPSG','15386','EPSG','2170','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15387','SPCS83 Illinois East zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11231.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',984250.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','15387','SPCS83 Illinois East zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11231.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-88.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999975,'EPSG','9201','EPSG','8806','False easting',984250.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11480','conversion','EPSG','15387','EPSG','2194','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15388','SPCS83 Illinois West zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11232.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',2296583.3333,'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','15388','SPCS83 Illinois West zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11232.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',36.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.1,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',2296583.3333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11481','conversion','EPSG','15388','EPSG','2195','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15389','SPCS83 New Hampshire zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12830.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',984250.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','15389','SPCS83 New Hampshire zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12830.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',42.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.4,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999966667,'EPSG','9201','EPSG','8806','False easting',984250.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11482','conversion','EPSG','15389','EPSG','1398','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15390','SPCS83 Rhode Island zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13830.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999375,'EPSG','9201','EPSG','8806','False easting',328083.3333,'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','15390','SPCS83 Rhode Island zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 13830.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',41.05,'EPSG','9110','EPSG','8802','Longitude of natural origin',-71.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99999375,'EPSG','9201','EPSG','8806','False easting',328083.3333,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11483','conversion','EPSG','15390','EPSG','1408','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15391','SPCS83 Louisiana North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',32.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.1,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15391','SPCS83 Louisiana North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11731.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',30.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-92.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',32.4,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',31.1,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11484','conversion','EPSG','15391','EPSG','2204','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15392','SPCS83 Louisiana South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',28.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.18,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15392','SPCS83 Louisiana South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11732.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',28.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',30.42,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',29.18,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11485','conversion','EPSG','15392','EPSG','2529','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15393','SPCS83 Louisiana Offshore zone (US Survey feet)','This projection is NOT used for oil industry purposes. State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11733.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15393','SPCS83 Louisiana Offshore zone (US survey foot)','This projection is NOT used for oil industry purposes. State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 11733.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',25.3,'EPSG','9110','EPSG','8822','Longitude of false origin',-91.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',27.5,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',26.1,'EPSG','9110','EPSG','8826','Easting at false origin',3280833.3333,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11486','conversion','EPSG','15393','EPSG','1387','EPSG','1212'); -INSERT INTO "conversion" VALUES('EPSG','15394','SPCS83 South Dakota North zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14031.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.25,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15394','SPCS83 South Dakota North zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14031.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',43.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',45.41,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',44.25,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11487','conversion','EPSG','15394','EPSG','2249','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15395','SPCS83 South Dakota South zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14032.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.24,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.5,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15395','SPCS83 South Dakota South zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 14032.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',42.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.2,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',44.24,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',42.5,'EPSG','9110','EPSG','8826','Easting at false origin',1968500.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11488','conversion','EPSG','15395','EPSG','2250','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','15396','SPCS83 Nebraska zone (US Survey feet)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','15396','SPCS83 Nebraska zone (US survey foot)','State law defines grid unit as US Survey feet. For equivalent metric Federal definition see code 12630.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-100.0,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',40.0,'EPSG','9110','EPSG','8826','Easting at false origin',1640416.6667,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11489','conversion','EPSG','15396','EPSG','1396','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','15397','Great Lakes Albers','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',45.568977,'EPSG','9102','EPSG','8822','Longitude of false origin',-84.455955,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',42.122774,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',49.01518,'EPSG','9102','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11490','conversion','EPSG','15397','EPSG','3467','EPSG','1052'); @@ -2963,13 +2962,13 @@ INSERT INTO "conversion" VALUES('EPSG','15594','EPSG topocentric example A','Exa INSERT INTO "usage" VALUES('EPSG','11605','conversion','EPSG','15594','EPSG','1263','EPSG','1117'); INSERT INTO "conversion" VALUES('EPSG','15595','EPSG topocentric example B','Example only.','EPSG','9836','Geocentric/topocentric conversions','EPSG','8837','Geocentric X of topocentric origin',3771793.97,'EPSG','9001','EPSG','8838','Geocentric Y of topocentric origin',140253.34,'EPSG','9001','EPSG','8839','Geocentric Z of topocentric origin',5124304.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,0); INSERT INTO "usage" VALUES('EPSG','11606','conversion','EPSG','15595','EPSG','1263','EPSG','1118'); -INSERT INTO "conversion" VALUES('EPSG','15914','BLM zone 14N (US survey feet)','US survey foot form of UTM zone 14N. Sometimes locally referred to as "UTM zone 14".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','15914','BLM zone 14N (US survey foot)','US survey foot form of UTM zone 14N. Sometimes locally referred to as "UTM zone 14".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-99.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11925','conversion','EPSG','15914','EPSG','3637','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','15915','BLM zone 15N (US survey feet)','US survey foot form of UTM zone 15N. Sometimes locally referred to as "UTM zone 15".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','15915','BLM zone 15N (US survey foot)','US survey foot form of UTM zone 15N. Sometimes locally referred to as "UTM zone 15".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-93.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11926','conversion','EPSG','15915','EPSG','3640','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','15916','BLM zone 16N (US survey feet)','US survey foot form of UTM zone 16N. Sometimes locally referred to as "UTM zone 16".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','15916','BLM zone 16N (US survey foot)','US survey foot form of UTM zone 16N. Sometimes locally referred to as "UTM zone 16".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-87.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11927','conversion','EPSG','15916','EPSG','3641','EPSG','1153'); -INSERT INTO "conversion" VALUES('EPSG','15917','BLM zone 17N (US survey feet)','US survey foot form of UTM zone 17N. Sometimes locally referred to as "UTM zone 17".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'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','15917','BLM zone 17N (US survey foot)','US survey foot form of UTM zone 17N. Sometimes locally referred to as "UTM zone 17".','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',1640416.67,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11928','conversion','EPSG','15917','EPSG','3642','EPSG','1153'); INSERT INTO "conversion" VALUES('EPSG','16000','UTM grid system (northern hemisphere)','Use UTM zone xx N (codes 16001-16060) for use outwith zone boundary or when easting is not prefixed by zone number.','EPSG','9824','Transverse Mercator Zoned Grid System','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8830','Initial longitude',-180.0,'EPSG','9102','EPSG','8831','Zone width',6.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12010','conversion','EPSG','16000','EPSG','1998','EPSG','1163'); @@ -5035,7 +5034,7 @@ INSERT INTO "conversion" VALUES('EPSG','18451','CS63 zone C1','','EPSG','9807',' INSERT INTO "usage" VALUES('EPSG','12917','conversion','EPSG','18451','EPSG','3174','EPSG','1207'); INSERT INTO "conversion" VALUES('EPSG','18452','CS63 zone C2','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.06,'EPSG','9110','EPSG','8802','Longitude of natural origin',27.57,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',2250000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12918','conversion','EPSG','18452','EPSG','3175','EPSG','1207'); -INSERT INTO "conversion" VALUES('EPSG','19838','Rectified Skew Orthomorphic Sarawak LSD (metres)','Used by the Sarawak Land and Survey Department. Conversion 19958 but using Hotine Oblique Mercator (variant A) and with FE increased by 2,000,000 m and FN by 5,000,000 m. If using variant B method (code 9815) FE = 2590476.871 m and FN = 5442857.653 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',2000000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','19838','Rectified Skew Orthomorphic Sarawak LSD (metre)','Used by the Sarawak Land and Survey Department. Conversion 19958 but using Hotine Oblique Mercator (variant A) and with FE increased by 2,000,000 m and FN by 5,000,000 m. If using variant B method (code 9815) FE = 2590476.871 m and FN = 5442857.653 m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',2000000.0,'EPSG','9001','EPSG','8807','False northing',5000000.0,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','14399','conversion','EPSG','19838','EPSG','4611','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19839','Dubai Local Transverse Mercator','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',55.2,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12919','conversion','EPSG','19839','EPSG','3531','EPSG','1055'); @@ -5101,9 +5100,9 @@ INSERT INTO "conversion" VALUES('EPSG','19869','US NSIDC Equal Area global proje INSERT INTO "usage" VALUES('EPSG','12949','conversion','EPSG','19869','EPSG','3463','EPSG','1195'); INSERT INTO "conversion" VALUES('EPSG','19870','Faroe Lambert','','EPSG','9826','Lambert Conic Conformal (West Orientated)','EPSG','8801','Latitude of natural origin',62.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-9.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',500000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12950','conversion','EPSG','19870','EPSG','3248','EPSG','1091'); -INSERT INTO "conversion" VALUES('EPSG','19871','Rectified Skew Orthomorphic Malaya Grid (chains)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=23505.515 chSe(T), Nc=21992.646 chSe(T).','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',102.15,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.01328458,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9301','EPSG','8807','False northing',0.0,'EPSG','9301',0); +INSERT INTO "conversion" VALUES('EPSG','19871','Rectified Skew Orthomorphic Malaya Grid (chain)','If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=23505.515 chSe(T), Nc=21992.646 chSe(T).','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',102.15,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.01328458,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',40000.0,'EPSG','9301','EPSG','8807','False northing',0.0,'EPSG','9301',0); INSERT INTO "usage" VALUES('EPSG','12951','conversion','EPSG','19871','EPSG','1690','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19872','Rectified Skew Orthomorphic Malaya Grid (metres)','Uses metric conversion factor of 0.914398 metres per yard exactly. If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=472854.710m, Nc=442420.693m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',102.15,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.01328458,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',804670.24,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','19872','Rectified Skew Orthomorphic Malaya Grid (metre)','Uses metric conversion factor of 0.914398 metres per yard exactly. If using Hotine Oblique Mercator (variant B) method (code 9815), Ec=472854.710m, Nc=442420.693m.','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',102.15,'EPSG','9110','EPSG','8813','Azimuth of initial line',323.01328458,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',323.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8806','False easting',804670.24,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','12952','conversion','EPSG','19872','EPSG','1690','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19873','Noumea Lambert','Applications unable to define parameter values in decimal seconds should use the Noumea Lambert 2 projection which gives the same conversion results.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',-22.16108903,'EPSG','9110','EPSG','8822','Longitude of false origin',166.26327327,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',-22.14408903,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',-22.17408903,'EPSG','9110','EPSG','8826','Easting at false origin',0.66,'EPSG','9001','EPSG','8827','Northing at false origin',1.02,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12953','conversion','EPSG','19873','EPSG','2823','EPSG','1055'); @@ -5266,18 +5265,17 @@ INSERT INTO "conversion" VALUES('EPSG','19954','Suriname Old TM','Introduced in INSERT INTO "usage" VALUES('EPSG','13032','conversion','EPSG','19954','EPSG','1222','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19955','Suriname TM','Replaced Suriname Old TM in 1979 (scale factor changed).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-55.41,'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 "usage" VALUES('EPSG','13033','conversion','EPSG','19955','EPSG','1222','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19956','Rectified Skew Orthomorphic Borneo Grid (chains)','See 19957 and 19958 for feet and metres versions. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 chSe. Being replaced by metric version (code 19958).','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',29352.4763,'EPSG','9042','EPSG','8817','Northing at projection centre',22014.3572,'EPSG','9042',0); +INSERT INTO "conversion" VALUES('EPSG','19956','Rectified Skew Orthomorphic Borneo Grid (chain)','See 19957 and 19958 for feet and metres versions. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 chSe. Being replaced by metric version (code 19958).','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',29352.4763,'EPSG','9042','EPSG','8817','Northing at projection centre',22014.3572,'EPSG','9042',0); INSERT INTO "usage" VALUES('EPSG','13034','conversion','EPSG','19956','EPSG','1362','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19957','Rectified Skew Orthomorphic Borneo Grid (feet)','See 19956 and 19958 for chains and metres versions. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 ftSe. Being replaced by metric version (code 19958).','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',1937263.44,'EPSG','9041','EPSG','8817','Northing at projection centre',1452947.58,'EPSG','9041',0); +INSERT INTO "conversion" VALUES('EPSG','19957','Rectified Skew Orthomorphic Borneo Grid (foot)','See 19956 and 19958 for chains and metres versions. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 ftSe. Being replaced by metric version (code 19958).','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',1937263.44,'EPSG','9041','EPSG','8817','Northing at projection centre',1452947.58,'EPSG','9041',0); INSERT INTO "usage" VALUES('EPSG','13035','conversion','EPSG','19957','EPSG','3977','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19958','Rectified Skew Orthomorphic Borneo Grid (metres)','See 19956 and 19957 for chains and feet versions. Uses Sear''s 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 m.','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',590476.87,'EPSG','9001','EPSG','8817','Northing at projection centre',442857.65,'EPSG','9001',0); +INSERT INTO "conversion" VALUES('EPSG','19958','Rectified Skew Orthomorphic Borneo Grid (metre)','See 19956 and 19957 for chains and feet versions. Uses Sear''s 1922 British yard-metre ratio as given by Bomford as 39.370147 inches per metre. If using Hotine Oblique Mercator (variant A) method (code 9812) FE = FN = 0 m.','EPSG','9815','Hotine Oblique Mercator (variant B)','EPSG','8811','Latitude of projection centre',4.0,'EPSG','9110','EPSG','8812','Longitude of projection centre',115.0,'EPSG','9110','EPSG','8813','Azimuth of initial line',53.18569537,'EPSG','9110','EPSG','8814','Angle from Rectified to Skew Grid',53.07483685,'EPSG','9110','EPSG','8815','Scale factor on initial line',0.99984,'EPSG','9201','EPSG','8816','Easting at projection centre',590476.87,'EPSG','9001','EPSG','8817','Northing at projection centre',442857.65,'EPSG','9001',0); INSERT INTO "usage" VALUES('EPSG','13036','conversion','EPSG','19958','EPSG','1362','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19959','Ghana National Grid','Replaced by Ghana metric grid (code 19904).','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',4.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-1.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99975,'EPSG','9201','EPSG','8806','False easting',900000.0,'EPSG','9094','EPSG','8807','False northing',0.0,'EPSG','9094',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13037','conversion','EPSG','19959','EPSG','1104','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19960','Prince Edward Isl. Stereographic (NAD83)','False Easting and False Northing changed from values used with ATS77 (which were FE=700000m; FN=400000m) to these new values when used with NAD83 (CSRS). New values are FE=400000m; FN=800000m; adopted in 2000.','EPSG','9809','Oblique Stereographic','EPSG','8801','Latitude of natural origin',47.15,'EPSG','9110','EPSG','8802','Longitude of natural origin',-63.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999912,'EPSG','9201','EPSG','8806','False easting',400000.0,'EPSG','9001','EPSG','8807','False northing',800000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13038','conversion','EPSG','19960','EPSG','1533','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19961','Belgian Lambert 72','Introduced in 2000. Equivalent to Belge Lambert 72 (code 19902). -If software cannot handle latitude of false origin of 90°N, use latitude of false origin = 50°47''57.704"N with northing at false origin = 165 372.956 m.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',90.0,'EPSG','9110','EPSG','8822','Longitude of false origin',4.2202952,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',51.100000204,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',49.500000204,'EPSG','9110','EPSG','8826','Easting at false origin',150000.013,'EPSG','9001','EPSG','8827','Northing at false origin',5400088.438,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','19961','Belgian Lambert 72','Introduced in 2000. Equivalent to Belge Lambert 72 (code 19902). If software cannot handle latitude of false origin of 90°N, use latitude of false origin = 50°47''57.704"N with northing at false origin = 165 372.956 m.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',90.0,'EPSG','9110','EPSG','8822','Longitude of false origin',4.2202952,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',51.100000204,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',49.500000204,'EPSG','9110','EPSG','8826','Easting at false origin',150000.013,'EPSG','9001','EPSG','8827','Northing at false origin',5400088.438,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13039','conversion','EPSG','19961','EPSG','1347','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19962','Irish Transverse Mercator','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',53.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-8.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99982,'EPSG','9201','EPSG','8806','False easting',600000.0,'EPSG','9001','EPSG','8807','False northing',750000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13040','conversion','EPSG','19962','EPSG','1305','EPSG','1142'); @@ -5303,7 +5301,7 @@ INSERT INTO "conversion" VALUES('EPSG','19973','Irish National Grid','Used only INSERT INTO "usage" VALUES('EPSG','13050','conversion','EPSG','19973','EPSG','2530','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','19974','Modified Portuguese Grid','Applied to Datum 73. Grid position at origin is coincident with the unmodified grid applied to Lisbon datum.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',39.4,'EPSG','9110','EPSG','8802','Longitude of natural origin',-8.0754862,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',180.598,'EPSG','9001','EPSG','8807','False northing',-86.99,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13051','conversion','EPSG','19974','EPSG','1294','EPSG','1142'); -INSERT INTO "conversion" VALUES('EPSG','19975','Trinidad Grid (Clarke''s feet)','Foot version of EPSG code 19925. Not an official system, but used by some US-based organisations including Amoco Trinidad.','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',10.263,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.2,'EPSG','9110','EPSG','8806','False easting',283800.0,'EPSG','9005','EPSG','8807','False northing',214500.0,'EPSG','9005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "conversion" VALUES('EPSG','19975','Trinidad Grid (Clarke''s foot)','Foot version of EPSG code 19925. Not an official system, but used by some US-based organisations including Amoco Trinidad.','EPSG','9806','Cassini-Soldner','EPSG','8801','Latitude of natural origin',10.263,'EPSG','9110','EPSG','8802','Longitude of natural origin',-61.2,'EPSG','9110','EPSG','8806','False easting',283800.0,'EPSG','9005','EPSG','8807','False northing',214500.0,'EPSG','9005',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13052','conversion','EPSG','19975','EPSG','1339','EPSG','1136'); INSERT INTO "conversion" VALUES('EPSG','19976','ICN Regional','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',6.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-66.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',9.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',3.0,'EPSG','9102','EPSG','8826','Easting at false origin',1000000.0,'EPSG','9001','EPSG','8827','Northing at false origin',1000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13053','conversion','EPSG','19976','EPSG','1251','EPSG','1242'); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 162998f08f..9af8f67024 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -1032,7 +1032,7 @@ INSERT INTO "extent" VALUES('EPSG','2052','World - N hemisphere - 24°W to 18°W INSERT INTO "extent" VALUES('EPSG','2053','World - S hemisphere - 24°W to 18°W - by country','Between 24°W and 18°W, southern hemisphere between 80°S and equator, onshore and offshore.',-80.0,0.0,-24.0,-18.0,0); INSERT INTO "extent" VALUES('EPSG','2054','World - N hemisphere - 18°W to 12°W - by country','Between 18°W and 12°W, northern hemisphere between equator and 84°N, onshore and offshore. Gambia. Greenland. Guinea. Guinea-Bissau. Iceland. Ireland - offshore Porcupine Basin. Mauritania. Morocco. Senegal. Sierra Leone. Western Sahara.',0.0,84.0,-18.0,-12.0,0); INSERT INTO "extent" VALUES('EPSG','2055','World - S hemisphere - 18°W to 12°W - by country','Between 18°W and 12°W, southern hemisphere between 80°S and equator, onshore and offshore.',-80.0,0.0,-18.0,-12.0,0); -INSERT INTO "extent" VALUES('EPSG','2056','World - N hemisphere - 12°W to 6°W - by country','Between 12°W and 6°W, northern hemisphere between equator and 84°N, onshore and offshore. Algeria. Côte D''Ivoire (Ivory Coast). Faroe Islands. Guinea. Ireland. Jan Mayen. Mali. Mauritania. Morocco. Portugal. Sierra Leone. Spain. United Kingdom (UK). Western Sahara.',0.0,84.0,-12.0,-6.0,0); +INSERT INTO "extent" VALUES('EPSG','2056','World - N hemisphere - 12°W to 6°W - by country','Between 12°W and 6°W, northern hemisphere between equator and 84°N, onshore and offshore. Algeria. Côte D''Ivoire (Ivory Coast). Faroe Islands. Guinea. Ireland. Jan Mayen. Liberia, Mali. Mauritania. Morocco. Portugal. Sierra Leone. Spain. United Kingdom (UK). Western Sahara.',0.0,84.01,-12.01,-6.0,0); INSERT INTO "extent" VALUES('EPSG','2057','World - S hemisphere - 12°W to 6°W - by country','Between 12°W and 6°W, southern hemisphere between 80°S and equator, onshore and offshore.',-80.0,0.0,-12.0,-6.0,0); INSERT INTO "extent" VALUES('EPSG','2058','World - N hemisphere - 6°W to 0°W - by country','Between 6°W and 0°W, northern hemisphere between equator and 84°N, onshore and offshore. Algeria. Burkina Faso. Côte'' Ivoire (Ivory Coast). Faroe Islands - offshore. France. Ghana. Gibraltar. Ireland - offshore Irish Sea. Mali. Mauritania. Morocco. Spain. United Kingdom (UK).',0.0,84.0,-6.0,0.0,0); INSERT INTO "extent" VALUES('EPSG','2059','World - S hemisphere - 6°W to 0°W - by country','Between 6°W and 0°W, southern hemisphere between 80°S and equator, onshore and offshore.',-80.0,0.0,-6.0,0.0,0); @@ -3719,4 +3719,4 @@ INSERT INTO "extent" VALUES('EPSG','4740','Spain - Melilla','Spain - Melilla ons INSERT INTO "extent" VALUES('EPSG','4741','Spain - Alboran','Spain - Alboran island - onshore.',35.88,36.0,-3.1,-2.96,0); INSERT INTO "extent" VALUES('EPSG','4742','Netherlands - offshore and nearshore ','Netherlands - offshore North Sea and nearshore.',51.32,55.77,2.53,7.21,0); INSERT INTO "extent" VALUES('EPSG','4743','UK - Coventry','United Kingdom (UK) - in and around the area of Coventry city centre and the route to Birmingham airport.',52.3,52.5,-1.85,-1.3,0); -INSERT INTO "extent" VALUES('EPSG','4744','Europe - Brenner','Austria and Italy - on or related to the Brenner Base Tunnel rail route from Innsbruck to Fortezza (Franzensfeste).',46.45,47.32,11.04,11.9,0); +INSERT INTO "extent" VALUES('EPSG','4744','Europe - Brenner','Austria and Italy - on or related to the Brenner Base Tunnel rail route from Innsbruck to Fortezza (Franzensfeste).',46.45,47.33,11.04,11.91,0); diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 02b2ff3871..66b9a940dd 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -87,7 +87,7 @@ VALUES ('PE7783V2.gsb','ca_nrc_PE7783V2.tif','PE7783V2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_PE7783V2.tif',1,1,NULL), ('SK27-98.gsb','ca_nrc_SK27-98.tif','SK27-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK27-98.tif',1,1,NULL), ('SK83-98.gsb','ca_nrc_SK83-98.tif','SK83-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK83-98.tif',1,1,NULL), -('TOR27CSv1.GSB','ca_nrc_TO27CSv1.tif','TO27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_TO27CSv1.tif',1,1,NULL), +('TO27CSv1.GSB','ca_nrc_TO27CSv1.tif','TO27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_TO27CSv1.tif',1,1,NULL), ('NAD83v6VG.gvb','ca_nrc_NAD83v6VG.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/ca_nrc_NAD83v6VG.tif',1,1,NULL), ('NAD83v70VG.gvb','ca_nrc_NAD83v70VG.tif',NULL,'GTiff','velocity_grid',0,NULL,'https://cdn.proj.org/ca_nrc_NAD83v70VG.tif',1,1,NULL), diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 671eba1e5c..2a8f90a163 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -602,7 +602,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9106','ATS77 to NAD83(CSRS)v6 ( INSERT INTO "usage" VALUES('EPSG','10920','grid_transformation','EPSG','9106','EPSG','2313','EPSG','1027'); 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).','EPSG','9615','NTv2','EPSG','4267','EPSG','8240',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 "usage" VALUES('EPSG','10921','grid_transformation','EPSG','9107','EPSG','4537','EPSG','1027'); -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). Also found with file name TO27CSv1.GSB','EPSG','9615','NTv2','EPSG','4267','EPSG','8240',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','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). Previously available from Land Information Ontario as TOR27CSv1.GSB.','EPSG','9615','NTv2','EPSG','4267','EPSG','8240',1.0,'EPSG','8656','Latitude and longitude difference file','TO27CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont Tor',0); INSERT INTO "usage" VALUES('EPSG','10922','grid_transformation','EPSG','9108','EPSG','4536','EPSG','1027'); 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.','EPSG','9615','NTv2','EPSG','4608','EPSG','8240',1.0,'EPSG','8656','Latitude and longitude difference file','ON76CSv1.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'LIO-Can Ont',0); INSERT INTO "usage" VALUES('EPSG','10923','grid_transformation','EPSG','9109','EPSG','1367','EPSG','1027'); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index 4de698e86e..d1027e9175 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -370,8 +370,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1224','SAD69 to WGS 84 (13)' INSERT INTO "usage" VALUES('EPSG','8145','helmert_transformation','EPSG','1224','EPSG','1251','EPSG','1160'); INSERT INTO "helmert_transformation" VALUES('EPSG','1225','Sapper Hill 1943 to WGS 84 (1)','Derived at 5 stations. Accuracy 1m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4292','EPSG','4326',2.0,-355.0,21.0,72.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-Flk E',0); INSERT INTO "usage" VALUES('EPSG','8146','helmert_transformation','EPSG','1225','EPSG','2355','EPSG','1160'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1226','Schwarzeck to WGS 84 (1)','Derived at 3 stations. Accuracy 20m in each axis. -Beware! Source CRS uses German legal metres, transformation parameter values are in (International) metres. See tfm code 1271 for example.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4293','EPSG','4326',35.0,616.0,97.0,-251.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-Nam',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1226','Schwarzeck to WGS 84 (1)','Derived at 3 stations. Accuracy 20m in each axis. Beware! Source CRS uses German legal metres, transformation parameter values are in (International) metres. See tfm code 1271 for example.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4293','EPSG','4326',35.0,616.0,97.0,-251.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-Nam',0); INSERT INTO "usage" VALUES('EPSG','8147','helmert_transformation','EPSG','1226','EPSG','1169','EPSG','1160'); INSERT INTO "helmert_transformation" VALUES('EPSG','1227','Tananarive to WGS 84 (1)','Accuracy estimate not available.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4297','EPSG','4326',999.0,-189.0,-242.0,-91.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-Mdg',0); INSERT INTO "usage" VALUES('EPSG','8148','helmert_transformation','EPSG','1227','EPSG','1149','EPSG','1160'); @@ -555,8 +554,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1333','EST92 to WGS 84 (1)', INSERT INTO "usage" VALUES('EPSG','8254','helmert_transformation','EPSG','1333','EPSG','3246','EPSG','1024'); INSERT INTO "helmert_transformation" VALUES('EPSG','1334','Pulkovo 1942 to WGS 84 (12)','','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4284','EPSG','4326',9.0,21.58719,-97.54127,-60.92546,'EPSG','9001',-1.01378,-0.58117,-0.2348,'EPSG','9104',-4.6121,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'UT-Est',0); INSERT INTO "usage" VALUES('EPSG','8255','helmert_transformation','EPSG','1334','EPSG','3246','EPSG','1024'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1437','RT90 to ETRS89 (1)','Derived at 22 points in 1993. Replaced by RT90 to SWEREF99 (1) (code 1895) from 2001. -This transformation is actually between ETRS89 and RR92. RR92 is a geographic 3D CRS where the horizontal component is RT90.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4124','EPSG','4258',0.5,419.3836,99.3335,591.3451,'EPSG','9001',-0.850389,-1.817277,7.862238,'EPSG','9104',-0.99496,'EPSG','9202',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 "helmert_transformation" VALUES('EPSG','1437','RT90 to ETRS89 (1)','Derived at 22 points in 1993. Replaced by RT90 to SWEREF99 (1) (code 1895) from 2001. This transformation is actually between ETRS89 and RR92. RR92 is a geographic 3D CRS where the horizontal component is RT90.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4124','EPSG','4258',0.5,419.3836,99.3335,591.3451,'EPSG','9001',-0.850389,-1.817277,7.862238,'EPSG','9104',-0.99496,'EPSG','9202',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 "usage" VALUES('EPSG','8358','helmert_transformation','EPSG','1437','EPSG','1225','EPSG','1035'); INSERT INTO "helmert_transformation" VALUES('EPSG','1438','Fahud to WGS 84 (2)','','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4232','EPSG','4326',25.0,-333.102,-11.02,230.69,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.219,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'PDO-Omn',0); INSERT INTO "usage" VALUES('EPSG','8359','helmert_transformation','EPSG','1438','EPSG','4009','EPSG','1136'); @@ -968,8 +966,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1805','Garoua to WGS 72BE (1 INSERT INTO "usage" VALUES('EPSG','8726','helmert_transformation','EPSG','1805','EPSG','2590','EPSG','1216'); INSERT INTO "helmert_transformation" VALUES('EPSG','1806','Kousseri to WGS 72BE (1)','Derived in 1981 by Decca Survey France for Elf Serepca.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4198','EPSG','4324',5.0,-104.4,-136.6,201.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,'ELF-Cmr',0); INSERT INTO "usage" VALUES('EPSG','8727','helmert_transformation','EPSG','1806','EPSG','2591','EPSG','1216'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1807','Pulkovo 1942 to WGS 84 (13)','Derived via WGS72 values taken from SOCAR Magnavox 1502 manual. Used by AIOC 1995-1997 then replaced by the AIOC97 values (tfm code 1808). -Do not confuse with AIOC95 vertical datum as used in southern Caspian Sea and at Sangachal terminal by AIOC.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4284','EPSG','4326',10.0,27.0,-135.0,-84.5,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.2263,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BP-Aze Aioc95',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1807','Pulkovo 1942 to WGS 84 (13)','Derived via WGS72 values taken from SOCAR Magnavox 1502 manual. Used by AIOC 1995-1997 then replaced by the AIOC97 values (tfm code 1808). Do not confuse with AIOC95 vertical datum as used in southern Caspian Sea and at Sangachal terminal by AIOC.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4284','EPSG','4326',10.0,27.0,-135.0,-84.5,'EPSG','9001',0.0,0.0,0.554,'EPSG','9104',0.2263,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BP-Aze Aioc95',0); INSERT INTO "usage" VALUES('EPSG','8728','helmert_transformation','EPSG','1807','EPSG','1038','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','1808','Pulkovo 1942 to WGS 84 (14)','Mean of 3 stations in western Georgia, 4 stations in eastern Georgia and 4 stations in eastern Azerbaijan. Derived for use on AIOC early oil western export pipeline, but adopted for all AIOC work replacing the 1995 AIOC transformation (code 1807).','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4284','EPSG','4326',5.0,686.1,-123.5,-574.4,'EPSG','9001',8.045,-23.366,10.791,'EPSG','9104',-2.926,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BP-Aze Aioc97',0); INSERT INTO "usage" VALUES('EPSG','8729','helmert_transformation','EPSG','1808','EPSG','2593','EPSG','1136'); @@ -1433,8 +1430,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','4830','Amersfoort to ETRS89 INSERT INTO "usage" VALUES('EPSG','9123','helmert_transformation','EPSG','4830','EPSG','1275','EPSG','1035'); INSERT INTO "helmert_transformation" VALUES('EPSG','4831','Amersfoort to ETRS89 (6)','Replaces Amersfoort to ETRS89 (4) (tfm code 15740). Dutch sources also quote an equivalent transformation using the Coordinate Frame 7-parameter method - see tfm code 4830.','EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4289','EPSG','4258',0.5,593.0248,25.9984,478.7459,'EPSG','9001',1.9342,-1.6677,9.1019,'EPSG','9109',4.0725,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3903453.1482,368135.3134,5012970.3051,'EPSG','9001','NCG-Nld 2008 MB',0); INSERT INTO "usage" VALUES('EPSG','9124','helmert_transformation','EPSG','4831','EPSG','1275','EPSG','1035'); -INSERT INTO "helmert_transformation" VALUES('EPSG','4832','Mexico ITRF92 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Mexico ITRF92 is equivalent to WGS 84. -','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4483','EPSG','4326',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,'OGP-Mex',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','4832','Mexico ITRF92 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Mexico ITRF92 is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4483','EPSG','4326',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,'OGP-Mex',0); INSERT INTO "usage" VALUES('EPSG','9125','helmert_transformation','EPSG','4832','EPSG','1160','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','4833','Amersfoort to WGS 84 (4)','Parameter values from Amersfoort to ETRS89 (5) (tfm code 4830) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (3) (code 15934).','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4289','EPSG','4326',1.0,565.4171,50.3319,465.5524,'EPSG','9001',1.9342,-1.6677,9.1019,'EPSG','9109',4.0725,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Nld 2008',0); INSERT INTO "usage" VALUES('EPSG','9126','helmert_transformation','EPSG','4833','EPSG','1275','EPSG','1252'); @@ -1564,18 +1560,15 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','5350','Campo Inchauspe to PO INSERT INTO "usage" VALUES('EPSG','9351','helmert_transformation','EPSG','5350','EPSG','3215','EPSG','1045'); INSERT INTO "helmert_transformation" VALUES('EPSG','5351','POSGAR 2007 to WGS 84 (1)','Approximation at the +/- 1m level assuming that POSGAR 2007 is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5340','EPSG','4326',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-Arg',0); INSERT INTO "usage" VALUES('EPSG','9352','helmert_transformation','EPSG','5351','EPSG','1033','EPSG','1252'); -INSERT INTO "helmert_transformation" VALUES('EPSG','5374','MARGEN to WGS 84 (1)','Approximation at the +/- 1m level assuming that MARGEN is equivalent to WGS 84. -','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5354','EPSG','4326',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,'OGP-Bol',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','5374','MARGEN to WGS 84 (1)','Approximation at the +/- 1m level assuming that MARGEN is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5354','EPSG','4326',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,'OGP-Bol',0); INSERT INTO "usage" VALUES('EPSG','9354','helmert_transformation','EPSG','5374','EPSG','1049','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','5375','SIRGAS-Chile to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','9184','EPSG','4326',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,'OGP-Chl',1); INSERT INTO "usage" VALUES('EPSG','9355','helmert_transformation','EPSG','5375','EPSG','1066','EPSG','1041'); INSERT INTO "helmert_transformation" VALUES('EPSG','5376','CR05 to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5365','EPSG','4326',1.5,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,'OGP-Cri',0); INSERT INTO "usage" VALUES('EPSG','9356','helmert_transformation','EPSG','5376','EPSG','1074','EPSG','1252'); -INSERT INTO "helmert_transformation" VALUES('EPSG','5377','MACARIO SOLIS to WGS 84 (1)','Approximation at the +/- 1m level assuming that MACARIO SOLIS is equivalent to WGS 84. -','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5371','EPSG','4326',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,'OGP-Pan',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','5377','MACARIO SOLIS to WGS 84 (1)','Approximation at the +/- 1m level assuming that MACARIO SOLIS is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5371','EPSG','4326',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,'OGP-Pan',0); INSERT INTO "usage" VALUES('EPSG','9357','helmert_transformation','EPSG','5377','EPSG','1186','EPSG','1252'); -INSERT INTO "helmert_transformation" VALUES('EPSG','5378','Peru96 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Peru96 is equivalent to WGS 84. -','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5373','EPSG','4326',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,'OGP-Per',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','5378','Peru96 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Peru96 is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5373','EPSG','4326',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,'OGP-Per',0); INSERT INTO "usage" VALUES('EPSG','9358','helmert_transformation','EPSG','5378','EPSG','1189','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','5384','SIRGAS-ROU98 to WGS 84 (1)','Approximation at the +/- 1m level assuming that SIRGAS-ROU98 is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5381','EPSG','4326',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,'OGP-Ury',0); INSERT INTO "usage" VALUES('EPSG','9359','helmert_transformation','EPSG','5384','EPSG','1247','EPSG','1252'); @@ -1747,8 +1740,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','6314','ITRF97 to GDA94 (1)', INSERT INTO "usage" VALUES('EPSG','9715','helmert_transformation','EPSG','6314','EPSG','1036','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','6315','ITRF2000 to GDA94 (1)','Replaced by Dawson and Woods transformation of 2010, tfm code 6278.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','4919','EPSG','4938',0.1,-0.0761,-0.0101,0.0444,'EPSG','9001',0.008765,0.009361,0.009325,'EPSG','9104',0.007935,'EPSG','9202',0.011,-0.0045,-0.0174,'EPSG','1042',0.001034,0.000671,0.001039,'EPSG','1043',-0.000538,'EPSG','1041',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GA-Aus 2001',0); INSERT INTO "usage" VALUES('EPSG','9716','helmert_transformation','EPSG','6315','EPSG','1036','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','6373','Mexico ITRF2008 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Mexico ITRF2008 is equivalent to WGS 84. -','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','6365','EPSG','4326',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,'OGP-Mex',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','6373','Mexico ITRF2008 to WGS 84 (1)','Approximation at the +/- 1m level assuming that Mexico ITRF2008 is equivalent to WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','6365','EPSG','4326',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,'OGP-Mex',0); INSERT INTO "usage" VALUES('EPSG','9720','helmert_transformation','EPSG','6373','EPSG','1160','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','6388','Ocotepeque 1935 to NAD27 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','5451','EPSG','4267',9.0,205.435,-29.099,292.202,'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-Cri',1); INSERT INTO "usage" VALUES('EPSG','9728','helmert_transformation','EPSG','6388','EPSG','3876','EPSG','1153'); @@ -1934,8 +1926,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','7676','MGI 1901 to WGS 84 (1 INSERT INTO "usage" VALUES('EPSG','10208','helmert_transformation','EPSG','7676','EPSG','4543','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','7697','Egypt 1907 to WGS 84 (4)','Derived at 30 stations throughout Egypt 1907 network. Accuracy determined at 15 stations 0.7m in each axis. Unified transformation for whole country.','EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4229','EPSG','4326',1.2,-127.535,113.495,-12.7,'EPSG','9001',1.603747,-0.153612,-5.364408,'EPSG','9104',5.33745,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4854969.728,2945552.013,2868447.61,'EPSG','9001','SRI-Egy',0); INSERT INTO "usage" VALUES('EPSG','10214','helmert_transformation','EPSG','7697','EPSG','1086','EPSG','1041'); -INSERT INTO "helmert_transformation" VALUES('EPSG','7698','NAD27 to WGS 84 (89)','Derived at stations in the provinces of Colón, Panamá, Coclé, Veraguas, -Herrera, Los Santos y Chiriquí. Standard deviation 0.871m in north and 0.531m in east.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4267','EPSG','4326',1.0,-32.3841359,180.4090461,120.8442577,'EPSG','9001',2.1545854,0.1498782,-0.5742915,'EPSG','9104',8.1049164,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGNTG-Pan',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','7698','NAD27 to WGS 84 (89)','Derived at stations in the provinces of Colón, Panamá, Coclé, Veraguas, Herrera, Los Santos y Chiriquí. Standard deviation 0.871m in north and 0.531m in east.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4267','EPSG','4326',1.0,-32.3841359,180.4090461,120.8442577,'EPSG','9001',2.1545854,0.1498782,-0.5742915,'EPSG','9104',8.1049164,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGNTG-Pan',0); INSERT INTO "usage" VALUES('EPSG','10215','helmert_transformation','EPSG','7698','EPSG','3290','EPSG','1041'); INSERT INTO "helmert_transformation" VALUES('EPSG','7702','PZ-90 to PZ-90.02 (1)','','EPSG','1066','Time-specific Coordinate Frame rotation (geocen)','EPSG','4922','EPSG','7677',0.17,-1.07,-0.03,0.02,'EPSG','9001',0.0,0.0,-130.0,'EPSG','1031',-0.22,'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 "usage" VALUES('EPSG','10217','helmert_transformation','EPSG','7702','EPSG','1262','EPSG','1027'); @@ -2341,13 +2332,13 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9082','ITRF2008 to ITRF96 (2 INSERT INTO "usage" VALUES('EPSG','10896','helmert_transformation','EPSG','9082','EPSG','1175','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','9083','ITRF2014 to ITRF96 (2)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Used as first step in ITRF2014 to NZGD2000 concatenated operations, followed by application of NZGD2000 deformation model.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','7789','EPSG','4917',0.01,6.4,3.99,-14.27,'EPSG','1025',-0.16508,0.26897,0.11984,'EPSG','1031',1.08901,'EPSG','1028',0.79,-0.6,-1.44,'EPSG','1027',-0.01347,0.01514,0.01973,'EPSG','1032',-0.07201,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'LINZ-Nzl 2014',0); INSERT INTO "usage" VALUES('EPSG','10897','helmert_transformation','EPSG','9083','EPSG','1175','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','9126','NAD83(CSRS)v2 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF96 by common transformations (codes 6864 and 8259). 6864 defines CORS96 from 1st January 1997 to 31st December 1999.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','8233','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','9126','NAD83(CSRS)v2 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF96 by common transformations (codes 6864 and 8259). 6864 defines CORS96 from 1st January 1997 to 31st December 1999.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8233','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','10940','helmert_transformation','EPSG','9126','EPSG','4544','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','9127','NAD83(CSRS)v3 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF97 by common transformations (codes 6865 and 8260). 6865 defines CORS96 from 1st January 2000 to 31st December 2001.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','8238','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1997.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','9127','NAD83(CSRS)v3 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF97 by common transformations (codes 6865 and 8260). 6865 defines CORS96 from 1st January 2000 to 31st December 2001.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8238','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','10941','helmert_transformation','EPSG','9127','EPSG','4544','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','9128','NAD83(CSRS)v4 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2000 by common transformations (codes 6866 and 8261). 6866 defines CORS96 from 1st January 2002 to 6th September 2011.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','8242','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2002.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','9128','NAD83(CSRS)v4 to NAD83(CORS96) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2000 by common transformations (codes 6866 and 8261). 6866 defines CORS96 from 1st January 2002 to 6th September 2011.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8242','EPSG','6781',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','10942','helmert_transformation','EPSG','9128','EPSG','4544','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','9129','NAD83(CSRS)v6 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2008 by common transformations (codes 7807 and 8264).','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','8250','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','9129','NAD83(CSRS)v6 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2008 by common transformations (codes 7807 and 8264).','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8250','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','10943','helmert_transformation','EPSG','9129','EPSG','4544','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','9142','MGI 1901 to KOSOVAREF01 (1)','Derived at 18 points across the area of Kosovo. May be taken as approximate transformation MGI 1901 to WGS 84 (see code 9143).','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','3906','EPSG','9140',1.0,628.54052,192.2538,498.43507,'EPSG','9001',-13.79189,-0.81467,41.21533,'EPSG','9104',-17.40368,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KCA-Kos',0); INSERT INTO "usage" VALUES('EPSG','10951','helmert_transformation','EPSG','9142','EPSG','4542','EPSG','1027'); @@ -2641,9 +2632,9 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10344','Nord Sahara 1959 to INSERT INTO "usage" VALUES('EPSG','19854','helmert_transformation','EPSG','10344','EPSG','4382','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','10415','ITRF2020 to NAD83(CSRS)v8 (1)','Concatenation of joint Canada-US tfm NAD83>ITRF96 (see tfm code 8259) with IGS value for ITRF96>ITRF97 and IERS values for ITRF97>ITRF2020 transformations. Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','9988','EPSG','10412',0.0,1.0039,-1.90961,-0.54117,'EPSG','9001',-26.78138,0.42027,-10.93206,'EPSG','1031',-0.05109,'EPSG','1028',0.00079,-0.0007,-0.00124,'EPSG','1042',-0.06667,0.75744,0.05133,'EPSG','1032',-0.07201,'EPSG','1030',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NRC-Can CSRSv8',0); INSERT INTO "usage" VALUES('EPSG','20192','helmert_transformation','EPSG','10415','EPSG','1061','EPSG','1284'); -INSERT INTO "helmert_transformation" VALUES('EPSG','10416','NAD83(CSRS)v7 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2014 by common transformations (codes 8970 and 8265).','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','8253','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','10416','NAD83(CSRS)v7 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2014 by common transformations (codes 8970 and 8265).','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8253','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','20197','helmert_transformation','EPSG','10416','EPSG','4544','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','10419','NAD83(CSRS)v8 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2020 by common transformations (codes 10334 and 10415).','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','10412','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','10419','NAD83(CSRS)v8 to NAD83(2011) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Source and target CRSs defined from ITRF2020 by common transformations (codes 10334 and 10415).','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','10412','EPSG','6317',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ISO-N Am',0); INSERT INTO "usage" VALUES('EPSG','20195','helmert_transformation','EPSG','10419','EPSG','4544','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','10478','BBT2000 to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10475','EPSG','4326',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,'BBT-Aut-Ita',0); INSERT INTO "usage" VALUES('EPSG','20343','helmert_transformation','EPSG','10478','EPSG','4744','EPSG','1252'); @@ -3059,8 +3050,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','15925','JAD2001 to WGS 84 (1 INSERT INTO "usage" VALUES('EPSG','11936','helmert_transformation','EPSG','15925','EPSG','1128','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','15926','JAD69 to JAD2001 (1)','Accuracy 0.3 to 0.5 metres. May be used as tfm to WGS 84 - see JAD69 to WGS 84 (3) (tfm code 15927).','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4242','EPSG','4758',0.5,-33.722,153.789,94.959,'EPSG','9001',8.581,4.478,-4.54,'EPSG','9104',8.95,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NLA-Jam',0); INSERT INTO "usage" VALUES('EPSG','11937','helmert_transformation','EPSG','15926','EPSG','3342','EPSG','1034'); -INSERT INTO "helmert_transformation" VALUES('EPSG','15927','JAD69 to WGS 84 (3)','Derived at 4 stations, tested at a further 9. Also used as tfm to JAD69 to JAD2001 (see code 15926). -Note: Info source paper contains an error in sign of dS, subsequently confirmed by primary author and NLA of Jamaica, and corrected in this record.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4242','EPSG','4326',1.0,-33.722,153.789,94.959,'EPSG','9001',8.581,4.478,-4.54,'EPSG','9104',8.95,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'UT-Jam 1m',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','15927','JAD69 to WGS 84 (3)','Derived at 4 stations, tested at a further 9. Also used as tfm to JAD69 to JAD2001 (see code 15926). Note: Info source paper contains an error in sign of dS, subsequently confirmed by primary author and NLA of Jamaica, and corrected in this record.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4242','EPSG','4326',1.0,-33.722,153.789,94.959,'EPSG','9001',8.581,4.478,-4.54,'EPSG','9104',8.95,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'UT-Jam 1m',0); INSERT INTO "usage" VALUES('EPSG','11938','helmert_transformation','EPSG','15927','EPSG','3342','EPSG','1041'); INSERT INTO "helmert_transformation" VALUES('EPSG','15928','BD72 to ETRS89 (2)','May be taken as approximate transformation BD72 to WGS 84 - see code 15929. Scale difference is given by information source as -1.0000012747. Given in this record in ppm to assist application usage.','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4313','EPSG','4258',0.2,-106.8686,52.2978,-103.7239,'EPSG','9001',-0.3366,0.457,-1.8422,'EPSG','9104',-1.2747,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Bel 0.2m',0); INSERT INTO "usage" VALUES('EPSG','11939','helmert_transformation','EPSG','15928','EPSG','1347','EPSG','1032'); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 36b916d829..f8acde4054 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.096'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-09-30'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.098'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-11-24'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql index e8dbe473d9..adf714a286 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -10735,7 +10735,7 @@ INSERT INTO "usage" VALUES('EPSG','7390','projected_crs','EPSG','32360','EPSG',' INSERT INTO "projected_crs" VALUES('EPSG','32401','WGS 72BE / UTM zone 1N',NULL,'EPSG','4400','EPSG','4324','EPSG','16001',NULL,0); INSERT INTO "usage" VALUES('EPSG','7391','projected_crs','EPSG','32401','EPSG','1873','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','32402','WGS 72BE / UTM zone 2N',NULL,'EPSG','4400','EPSG','4324','EPSG','16002',NULL,0); -INSERT INTO "usage" VALUES('EPSG','7392','projected_crs','EPSG','32402','EPSG','1876','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','7392','projected_crs','EPSG','32402','EPSG','1875','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','32403','WGS 72BE / UTM zone 3N',NULL,'EPSG','4400','EPSG','4324','EPSG','16003',NULL,0); INSERT INTO "usage" VALUES('EPSG','7393','projected_crs','EPSG','32403','EPSG','1877','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','32404','WGS 72BE / UTM zone 4N',NULL,'EPSG','4400','EPSG','4324','EPSG','16004',NULL,0); From 2e948326e2fa4501ec5733e8777b5913de800295 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 25 Nov 2023 20:25:35 +0100 Subject: [PATCH 095/199] docker.yml: replace depecated 'echo ::set-output name=KEY::VALUE' with echo 'name=value' >> $GITHUB_OUTPUT --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 925686e71b..25bcfebfb9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -65,8 +65,8 @@ jobs: if [[ $GITHUB_REF == refs/tags/* ]]; then VERSION=${GITHUB_REF/refs\/tags\//} fi - echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=VERSION::${VERSION} + echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - name: Build image uses: docker/build-push-action@v4 with: From afccfb609db16524b602216d9dc2b55c154403bb Mon Sep 17 00:00:00 2001 From: Marco Genasci Date: Sun, 26 Nov 2023 08:40:45 +0100 Subject: [PATCH 096/199] Database: added ability to install *.tif if present in data --- data/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 4cb89e7849..85ed6ba8d4 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -38,6 +38,8 @@ set(GRIDSHIFT_FILES ${GSB_FILES} ${GTX_FILES}) file(GLOB SCHEMA_FILES *.json) +file(GLOB GEOTIFF_FILES *.tif) + set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in") set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db") include(sql_filelist.cmake) @@ -107,6 +109,7 @@ set(ALL_DATA_FILE ${GRIDSHIFT_FILES} ${PROJ_DB} ${SCHEMA_FILES} + ${GEOTIFF_FILES} ) install( FILES ${ALL_DATA_FILE} From 89d06fa4874ac23f7690419a546ddbce2b4d64ba Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Sun, 26 Nov 2023 16:55:53 +0100 Subject: [PATCH 097/199] Update NEWS for 9.3.1 --- NEWS | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/NEWS b/NEWS index 9c98fcd132..a40b0416ad 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,70 @@ +9.3.1 Release Notes +------------------- + + Updates + ------- + + o Update to EPSG 10.098 (#3968) + + o Update ESRI objects to v3.2.0 (#3944) + + Bug fixes + --------- + + o ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T (#3870) + + o Fix build error with MSVC 2019 in /std:c++20 on NN_NO_CHECK() (#3872) + + o ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (#3874) + + o CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity + transformation and a ballpark vertical (#3881) + + o Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major axis A (and + non-zero inv flattening) isn't equivalent to a sphere of radius A (#3882) + + o isEquivalentTo(): make a datum name 'unknown' equivalent to another one (#3883) + + o cs2cs: fix handling of input coordinates in grad (#3886) + + o Make setargv.obj available on Universal Windows Platform (#3891) + + o Allow opening proj.db with a URI (#3892) + + o createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (#3915) + + o Fix test suite so that it can pass with ENABLE_TIFF=OFF (#3916) + + o GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow + on invalid bounding boxes (#3919) + + o Fix importing '+proj=topocentric ... +type=crs' by using a geocentric CRS as + the base CRS (#3924) + + o Allow LOCAL_CS with 3 axes (#3928) + + o WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, + PROJCS and VERT_CS elements (#3933) + + o createOperations(): fix issue with a obscure case involving CompoundCRS of + unknown horizontal datum + boundCRS of vertical (#3934) + + o createOperations(): fix bad PROJ pipeline when converting between Geog3D + with non-metre height to CompoundCRS (#3943) + + o createOperations(): Fix possible null dereference on invalid WKT input (#3946) + + o proj_factor: fix when input is a compound CRS of a projected CRS (#3950) + + o pj_get_suggested_operation(): tune it to give correct result for RGAF09 to + RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation (#3954) + + o Move static NameSpace::GLOBAL definition in static.cpp to avoid + 'static initialization fiasco' (#3956) + + o horner: allow arbitrary input type of coordinate (#3961) + + 9.3.0 Release Notes ------------------- From 4704ef816d45ad4b38f9bf5bacbfa9d62a66fd72 Mon Sep 17 00:00:00 2001 From: Thomas Knudsen Date: Mon, 27 Nov 2023 14:08:55 +0100 Subject: [PATCH 098/199] Repair logging messages in axisswap With this commit, `axisswap` no longer presents itself as `swapaxis` in the logging messages. --- src/conversions/axisswap.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index dce442f8f3..1435343fa9 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -258,7 +258,7 @@ PJ *CONVERSION(axisswap, 0) { if (i == j) continue; if (Q->axis[i] == Q->axis[j]) { - proj_log_error(P, _("swapaxis: duplicate axes specified")); + proj_log_error(P, _("axisswap: duplicate axes specified")); return pj_default_destructor( P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } @@ -285,7 +285,7 @@ PJ *CONVERSION(axisswap, 0) { } if (P->fwd4d == nullptr && P->fwd3d == nullptr && P->fwd == nullptr) { - proj_log_error(P, _("swapaxis: bad axis order")); + proj_log_error(P, _("axisswap: bad axis order")); return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } From ac372038f58b940cdcec54fb4fd955f95750714a Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Wed, 29 Nov 2023 16:59:50 +0100 Subject: [PATCH 099/199] remove copy and move constructors from AxisDirection --- include/proj/coordinatesystem.hpp | 5 +++++ src/apps/proj.cpp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/proj/coordinatesystem.hpp b/include/proj/coordinatesystem.hpp index a26f4c1719..5aa444db23 100644 --- a/include/proj/coordinatesystem.hpp +++ b/include/proj/coordinatesystem.hpp @@ -60,6 +60,11 @@ class AxisDirection : public util::CodeList { valueOf(const std::string &nameIn) noexcept; //! @endcond + AxisDirection(const AxisDirection&) = delete; + AxisDirection& operator=(const AxisDirection&) = delete; + AxisDirection(AxisDirection&&) = delete; + AxisDirection& operator=(AxisDirection&&) = delete; + PROJ_DLL static const AxisDirection NORTH; PROJ_DLL static const AxisDirection NORTH_NORTH_EAST; PROJ_DLL static const AxisDirection NORTH_EAST; diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 099c4b5dce..91295bc97c 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -555,7 +555,7 @@ int main(int argc, char **argv) { try { auto crs = dynamic_cast( P->iso_obj.get()); - auto dir = + auto& dir = crs->coordinateSystem()->axisList()[0]->direction(); swapAxisCrs = dir == NS_PROJ::cs::AxisDirection::NORTH || dir == NS_PROJ::cs::AxisDirection::SOUTH; From 2b33272531e569e09fb54fb28f2e5f5e7e9a3d3e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 30 Nov 2023 19:49:55 +0100 Subject: [PATCH 100/199] Database: update to EPSG 11.001 --- data/sql/alias_name.sql | 8 ++++- data/sql/compound_crs.sql | 8 +++++ data/sql/concatenated_operation.sql | 4 +++ data/sql/concatenated_operation_step.sql | 4 +++ data/sql/grid_transformation.sql | 40 +++++++++++++++------ data/sql/metadata.sql | 4 +-- data/sql/other_transformation.sql | 8 +++++ data/sql/supersession.sql | 12 +++++++ data/sql/vertical_crs.sql | 10 +++++- data/sql/vertical_datum.sql | 10 +++++- data/sql/vertical_datum_ensemble_member.sql | 4 +++ scripts/build_db.py | 3 +- src/iso19111/operation/singleoperation.cpp | 1 + 13 files changed, 99 insertions(+), 17 deletions(-) diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index a990293193..64fc64e3a9 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -293,7 +293,7 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6653','IERS Terrestrial INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5204','IGLD 1955','EPSG'); INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5205','IGLD 1985','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1271','MML07-IRF','EPSG'); -INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5206','DVR90','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5206','DVR90(2000)','EPSG'); INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1140','SHD','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6758','JAD2001','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6760','WGS 66','EPSG'); @@ -729,6 +729,11 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1366','COV23-IRF','EPSG INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','BBT2000','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','Brenner basistunnel','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1367','Galleria di base del Brennero','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5206','Dansk Vertikal Reference 1990','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1371','DVR90 ensemble','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1368','DVR90(2002)','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1369','DVR90(2013)','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1370','DVR90(2023)','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21100','Genuk / NEIEZ','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2140','NAD83(CSRS98) / SCoPQ zone 3','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2141','NAD83(CSRS98) / SCoPQ zone 4','EPSG'); @@ -7943,6 +7948,7 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22821','NAD83(CSRS) 2010 INSERT INTO "alias_name" VALUES('projected_crs','EPSG','22822','NAD83(CSRS) 2010 / UTM zone 22N','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10471','ETRS89 / COV23 SnakeGrid','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10472','ETRS89 / COV23 SnakeGrid + Newlyn height','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5799','DVR90 ensemble height','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4162','1011','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4162','Korean 1985 - LatLon','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4926','1008','EPSG'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index fc73399c2c..370ff9897b 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -844,6 +844,12 @@ INSERT INTO "compound_crs" VALUES('EPSG','10365','KGD2002 + KVD1964 height',NULL INSERT INTO "usage" VALUES('EPSG','20149','compound_crs','EPSG','10365','EPSG','3266','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','10472','COV23 Grid + ODN height',NULL,'EPSG','10471','EPSG','5701',0); INSERT INTO "usage" VALUES('EPSG','20315','compound_crs','EPSG','10472','EPSG','4743','EPSG','1141'); +INSERT INTO "compound_crs" VALUES('EPSG','10486','ETRS89 + DVR90(2002) height',NULL,'EPSG','4258','EPSG','10483',0); +INSERT INTO "usage" VALUES('EPSG','20411','compound_crs','EPSG','10486','EPSG','3237','EPSG','1270'); +INSERT INTO "compound_crs" VALUES('EPSG','10487','ETRS89 + DVR90(2013) height',NULL,'EPSG','4258','EPSG','10484',0); +INSERT INTO "usage" VALUES('EPSG','20415','compound_crs','EPSG','10487','EPSG','3237','EPSG','1270'); +INSERT INTO "compound_crs" VALUES('EPSG','10488','ETRS89 + DVR90(2023) height',NULL,'EPSG','4258','EPSG','10485',0); +INSERT INTO "usage" VALUES('EPSG','20414','compound_crs','EPSG','10488','EPSG','3237','EPSG','1270'); INSERT INTO "compound_crs" VALUES('EPSG','10497','RGF93 v2 / Lambert-93 + NGF-IGN69 height',NULL,'EPSG','9793','EPSG','5720',0); INSERT INTO "usage" VALUES('EPSG','20475','compound_crs','EPSG','10497','EPSG','1326','EPSG','1178'); INSERT INTO "compound_crs" VALUES('EPSG','10498','RGF93 v2 / Lambert-93 + NGF-IGN78 height',NULL,'EPSG','9793','EPSG','5721',0); @@ -852,6 +858,8 @@ INSERT INTO "compound_crs" VALUES('EPSG','10499','RGF93 v2b / Lambert-93 + NGF-I INSERT INTO "usage" VALUES('EPSG','20472','compound_crs','EPSG','10499','EPSG','1326','EPSG','1178'); INSERT INTO "compound_crs" VALUES('EPSG','10500','RGF93 v2b / Lambert-93 + NGF-IGN78 height',NULL,'EPSG','9794','EPSG','5721',0); INSERT INTO "usage" VALUES('EPSG','20476','compound_crs','EPSG','10500','EPSG','1327','EPSG','1178'); +INSERT INTO "compound_crs" VALUES('EPSG','10507','RGF93 v2b + NGF-IGN78 height',NULL,'EPSG','9782','EPSG','5721',0); +INSERT INTO "usage" VALUES('EPSG','20491','compound_crs','EPSG','10507','EPSG','1327','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0); INSERT INTO "usage" VALUES('EPSG','17956','compound_crs','EPSG','20001','EPSG','4058','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20003','MWC18 Grid + ODN height',NULL,'EPSG','20002','EPSG','5701',0); diff --git a/data/sql/concatenated_operation.sql b/data/sql/concatenated_operation.sql index 3858a289c1..b19a39a492 100644 --- a/data/sql/concatenated_operation.sql +++ b/data/sql/concatenated_operation.sql @@ -465,3 +465,7 @@ INSERT INTO "concatenated_operation" VALUES('EPSG','10410','Ponta Delgada height INSERT INTO "usage" VALUES('EPSG','20084','concatenated_operation','EPSG','10410','EPSG','4736','EPSG','1198'); INSERT INTO "concatenated_operation" VALUES('EPSG','10411','Cais da Vila do Porto height to ZH Portugal depth (1)','Offshore of Santa Maria and Formigas islands the Zero Hidrografico (CD Portugal) surface is defined to be 1.0m below the Cais da Vila do Porto vertical reference surface.','EPSG','6186','EPSG','10349',0.0,'IH-Por Santa Maria',0); INSERT INTO "usage" VALUES('EPSG','20102','concatenated_operation','EPSG','10411','EPSG','4737','EPSG','1198'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10495','ETRS89 + DVR90(2002) height to ETRS89 + DVR90(2013) height (1)','DVR90(2002) height and DVR90(2013) height may be considered to be equivalent for applications with accuracies of 5cm or worse. At this 5cm accuracy, data referenced to either CRS may be merged without transformation. ','EPSG','10486','EPSG','10487',0.06,'SDFI-Dnk 2013',0); +INSERT INTO "usage" VALUES('EPSG','20518','concatenated_operation','EPSG','10495','EPSG','3237','EPSG','1079'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10496','ETRS89 + DVR90(2013) height to ETRS89 + DVR90(2023) height (1)','For applications with accuracies of 5cm or worse, DVR90(2013) height and DVR90(2023) height may be considered to be equivalent. At this 3cm accuracy, data referenced to either CRS may be merged without transformation. ','EPSG','10487','EPSG','10488',0.03,'SDFI-Dnk 2023',0); +INSERT INTO "usage" VALUES('EPSG','20516','concatenated_operation','EPSG','10496','EPSG','1080','EPSG','1273'); diff --git a/data/sql/concatenated_operation_step.sql b/data/sql/concatenated_operation_step.sql index 2d0a8d0c6d..c38f0b6040 100644 --- a/data/sql/concatenated_operation_step.sql +++ b/data/sql/concatenated_operation_step.sql @@ -474,3 +474,7 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',1,'EPSG','7812') INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',2,'EPSG','10390'); INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',1,'EPSG','7812'); INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',2,'EPSG','10391'); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',1,'EPSG','10490'); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',2,'EPSG','10492'); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',1,'EPSG','10492'); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',2,'EPSG','10494'); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 2a8f90a163..f36267e336 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -510,7 +510,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','8369','BD72 to ETRS89 (3)','Fil INSERT INTO "usage" VALUES('EPSG','10516','grid_transformation','EPSG','8369','EPSG','1347','EPSG','1150'); INSERT INTO "grid_transformation" VALUES('EPSG','8371','RGF93 v2 to NGF-IGN69 height (2)','Replaces ggf97a geoid model [RGF93 v1 to NGF IGN69 height (1) (code 10000)]. Replaced by RAF18 model. Accuracy at each 0.0333333333333° in longitude and 0.025° in latitude grid node is given within the model file.','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','9776','EPSG','5720',0.02,'EPSG','8666','Geoid (height correction) model file','RAF09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra 09',0); INSERT INTO "usage" VALUES('EPSG','10517','grid_transformation','EPSG','8371','EPSG','1326','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','8372','RGF93 v2 to NGF-IGN78 height (2)','Replaces ggf97a model [RGF93 v1 to NGF-IGN78 height (1) (code 10002)]. Accuracy at each grid node is given in the geoid model file. For reversible alternative see RGF93 v2 to RGF93 v2 + NGF-IGN78 height (2) (code 9639).','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','9776','EPSG','5721',0.05,'EPSG','8666','Geoid (height correction) model file','RAC09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor 09',0); +INSERT INTO "grid_transformation" VALUES('EPSG','8372','RGF93 v2 to NGF-IGN78 height (2)','Replaces ggf97a model (code 10002)]. Replaced by RAC23 model (code 10506). Accuracy at each grid node is given in the geoid model file. For reversible alternative see RGF93 v2 to RGF93 v2 + NGF-IGN78 height (2) (code 9639).','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','9776','EPSG','5721',0.05,'EPSG','8666','Geoid (height correction) model file','RAC09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor 09',0); INSERT INTO "usage" VALUES('EPSG','10518','grid_transformation','EPSG','8372','EPSG','1327','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','8444','GDA94 to GDA2020 (4)','See GDA94 to GDA2020 (1) (code 8048) for transformation using Helmert method which gives identical results.','EPSG','9615','NTv2','EPSG','4283','EPSG','7844',0.05,'EPSG','8656','Latitude and longitude difference file','GDA94_GDA2020_conformal_christmas_island.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICSM-Cxr Conf',0); INSERT INTO "usage" VALUES('EPSG','10564','grid_transformation','EPSG','8444','EPSG','4169','EPSG','1027'); @@ -1166,9 +1166,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9877','RGF93 v2b to RGF93 v2b + INSERT INTO "usage" VALUES('EPSG','16932','grid_transformation','EPSG','9877','EPSG','1326','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9878','ETRS89 to MOLDOR11-IRF (1)','In conjunction with the MOLDOR11-TM map projection (code 9879) applied to MOLDOR11-IRF (code 9871), emulates the MOLDOR11 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009 CORS) defines MOLDOR11-IRF hence is errorless.','EPSG','9615','NTv2','EPSG','4258','EPSG','9871',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-MOLDOR11-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr MOLDOR OSNet2009',0); INSERT INTO "usage" VALUES('EPSG','16955','grid_transformation','EPSG','9878','EPSG','4655','EPSG','1141'); -INSERT INTO "grid_transformation" VALUES('EPSG','9884','ETRS89 to CD Norway depth (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (1) (code 9885). An improved model is expected in 2023.','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9884','ETRS89 to CD Norway depth (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (1) (code 9885). Replaced by ETRS89 to CD Norway depth (2) (model "CD Norway 2021b", code 10130).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021',0); INSERT INTO "usage" VALUES('EPSG','16982','grid_transformation','EPSG','9884','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','9885','ETRS89 to ETRS89 + CD Norway depth (1)','Reversible alternative to ETRS89 to CD Norway depth (1) (code 9884). An improved model is expected in 2023.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9885','ETRS89 to ETRS89 + CD Norway depth (1)','Reversible alternative to ETRS89 to CD Norway depth (1) (code 9884). Replaced by ETRS89 to ETRS89 + CD Norway depth (2) (model "CD Norway 2021b", code 10133).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021',0); INSERT INTO "usage" VALUES('EPSG','16984','grid_transformation','EPSG','9885','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','9886','NAD27 to NAD83(CSRS)v2 (2)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1703.','EPSG','9615','NTv2','EPSG','4267','EPSG','8237',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 "usage" VALUES('EPSG','16978','grid_transformation','EPSG','9886','EPSG','2375','EPSG','1151'); @@ -1440,12 +1440,6 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10114','CGVD28 height to CGVD20 INSERT INTO "usage" VALUES('EPSG','18322','grid_transformation','EPSG','10114','EPSG','1061','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10115','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v6 as interpolation CRS, but NAD83(CSRS)v7 (code 8255) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); INSERT INTO "usage" VALUES('EPSG','18323','grid_transformation','EPSG','10115','EPSG','1061','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','10116','CGVD2013a(2010) height to CGVD2013a(2002) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(2002) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10114 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20034',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); -INSERT INTO "usage" VALUES('EPSG','18325','grid_transformation','EPSG','10116','EPSG','1061','EPSG','1026'); -INSERT INTO "grid_transformation" VALUES('EPSG','10117','CGVD2013a(2010) height to CGVD2013a(1997) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10113 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); -INSERT INTO "usage" VALUES('EPSG','18352','grid_transformation','EPSG','10117','EPSG','1061','EPSG','1026'); -INSERT INTO "grid_transformation" VALUES('EPSG','10118','CGVD2013a(2002) height to CGVD2013a(1997) height (1)','Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2002) (i.e. CT code 10113 minus CT 10114).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','20034','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can',0); -INSERT INTO "usage" VALUES('EPSG','18328','grid_transformation','EPSG','10118','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10119','NAD83(CSRS)v4 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); INSERT INTO "usage" VALUES('EPSG','18201','grid_transformation','EPSG','10119','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10120','NAD83(CSRS)v4 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); @@ -1466,9 +1460,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10128','NAD83(CSRS)v4 to NAD83( INSERT INTO "usage" VALUES('EPSG','18287','grid_transformation','EPSG','10128','EPSG','1061','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','10129','NAD83(CSRS)v3 to NAD83(CSRS)v3 + CGVD2013a(1997) height (1)','Reversible alternative to NAD83(CSRS)v3 to CGVD2013a(1997) height (1) (code 10111).','EPSG','1090','Geog3D to Geog2D+GravityRelatedHeight (NRCan byn)','EPSG','8239','EPSG','20038',0.05,'EPSG','8666','Geoid (height correction) model file','CGG2013an83.byn',NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can CGG2013a 1997',0); INSERT INTO "usage" VALUES('EPSG','18285','grid_transformation','EPSG','10129','EPSG','1061','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','10130','ETRS89 to CD Norway depth (2)','Replaces ETRS89 to CD Norway depth (1) (code 9884). For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (2) (code 10133).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10130','ETRS89 to CD Norway depth (2)','Replaces model "CD Norway 2021" (also referred to as model "CD Norway 2021a") (code 9884). Replaced by model "CD Norway 2023a" (code 10504). For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (2) (code 10133).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021b',0); INSERT INTO "usage" VALUES('EPSG','18348','grid_transformation','EPSG','10130','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','10133','ETRS89 to ETRS89 + CD Norway depth (2)','Reversible alternative to ETRS89 to CD Norway depth (2) (code 10130). Replaces ETRS89 to ETRS89 + CD Norway depth (2) (code 9885).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10133','ETRS89 to ETRS89 + CD Norway depth (2)','Reversible alternative to ETRS89 to CD Norway depth (2) (code 10130). Replaces ETRS89 to ETRS89 + CD Norway depth (1) (code 9885). Replaced by ETRS89 to ETRS89 + CD Norway depth (3) (code 10505).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021b',0); INSERT INTO "usage" VALUES('EPSG','18347','grid_transformation','EPSG','10133','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','10144','SRGI2013 to INAGeoid2020 v2 height (1)','Defines INAGeoid2020 v2 reference surface and as such is considered to be errorless. Internal accuracy is between 0.05 and 0.3m on the large islands of Indonesia. Replaces INAGeoid2020 v1 (CT code 9305).','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','9469','EPSG','20036',0.0,'EPSG','8666','Geoid (height correction) model file','INAGEOID2020v2.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'BIG-Idn INAGeoid20 v2',0); INSERT INTO "usage" VALUES('EPSG','18445','grid_transformation','EPSG','10144','EPSG','1122','EPSG','1133'); @@ -1576,6 +1570,30 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10423','NAD83(CSRS)v8 to NAD83( INSERT INTO "usage" VALUES('EPSG','20190','grid_transformation','EPSG','10423','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10469','ETRS89 to COV23-IRF (1)','In conjunction with the COV23-TM map projection (code 10470) applied to COV23-IRF (code 10468), emulates the COV23 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009) defines COV23-IRF hence is errorless. ','EPSG','9615','NTv2','EPSG','4258','EPSG','10468',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-COV23-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'CCC-Gbr COV23 OSNet2009',0); INSERT INTO "usage" VALUES('EPSG','20323','grid_transformation','EPSG','10469','EPSG','4743','EPSG','1141'); +INSERT INTO "grid_transformation" VALUES('EPSG','10489','ETRS89 to DVR90(2002) height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + DVR90(2002) height (1) (code 10490).','EPSG','1123','Geographic3D to GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10483',0.06,'EPSG','8666','Geoid (height correction) model file','dvr90_2002.tif',NULL,NULL,NULL,NULL,NULL,NULL,'SDFI-Dnk 2002',0); +INSERT INTO "usage" VALUES('EPSG','20499','grid_transformation','EPSG','10489','EPSG','3237','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10490','ETRS89 to ETRS89 + DVR90(2002) height (1)','Reversible alternative to ETRS89 to DVR90(2002) height (1) (code 10489).','EPSG','1124','Geog3D to Geog2D+GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10486',0.06,'EPSG','8666','Geoid (height correction) model file','dvr90_2002.tif',NULL,NULL,NULL,NULL,'EPSG','4258','SDFI-Dnk 2002',0); +INSERT INTO "usage" VALUES('EPSG','20504','grid_transformation','EPSG','10490','EPSG','3237','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10491','ETRS89 to DVR90(2013) height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + DVR90(2013) height (1) (code 10492).','EPSG','1123','Geographic3D to GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10484',0.03,'EPSG','8666','Geoid (height correction) model file','dvr90_2013.tif',NULL,NULL,NULL,NULL,NULL,NULL,'SDFI-Dnk 2013',0); +INSERT INTO "usage" VALUES('EPSG','20498','grid_transformation','EPSG','10491','EPSG','3237','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10492','ETRS89 to ETRS89 + DVR90(2013) height (1)','Reversible alternative to ETRS89 to DVR90(2013) height (1) (code 10491).','EPSG','1124','Geog3D to Geog2D+GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10487',0.03,'EPSG','8666','Geoid (height correction) model file','dvr90_2013.tif',NULL,NULL,NULL,NULL,'EPSG','4258','SDFI-Dnk 2013',0); +INSERT INTO "usage" VALUES('EPSG','20500','grid_transformation','EPSG','10492','EPSG','3237','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10493','ETRS89 to DVR90(2023) height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + DVR90(2023) height (1) (code 10494).','EPSG','1123','Geographic3D to GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10485',0.01,'EPSG','8666','Geoid (height correction) model file','dvr90_2023.tif',NULL,NULL,NULL,NULL,NULL,NULL,'SDFI-Dnk 2023',0); +INSERT INTO "usage" VALUES('EPSG','20438','grid_transformation','EPSG','10493','EPSG','3237','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10494','ETRS89 to ETRS89 + DVR90(2023) height (1)','Reversible alternative to ETRS89 to DVR90(2023) height (1) (code 10493).','EPSG','1124','Geog3D to Geog2D+GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10488',0.01,'EPSG','8666','Geoid (height correction) model file','dvr90_2023.tif',NULL,NULL,NULL,NULL,'EPSG','4258','SDFI-Dnk 2023',0); +INSERT INTO "usage" VALUES('EPSG','20439','grid_transformation','EPSG','10494','EPSG','3237','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10504','ETRS89 to CD Norway depth (3)','Replaces model "CD Norway 2021b" (code 10130). Replaced by model "CD Norway 2023b" (code 10509). For reversible alternative to this transformation see CT code 10505.','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023a',0); +INSERT INTO "usage" VALUES('EPSG','20539','grid_transformation','EPSG','10504','EPSG','4656','EPSG','1277'); +INSERT INTO "grid_transformation" VALUES('EPSG','10505','ETRS89 to ETRS89 + CD Norway depth (3)','Reversible alternative to ETRS89 to CD Norway depth (3) (CT code 10504). Replaces ETRS89 to ETRS89 + CD Norway depth (2) (model 2021b, CT code 10133). Replaced by ETRS89 to ETRS89 + CD Norway depth (4) (model 2023b, CT code 10510).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023a',0); +INSERT INTO "usage" VALUES('EPSG','20540','grid_transformation','EPSG','10505','EPSG','4656','EPSG','1272'); +INSERT INTO "grid_transformation" VALUES('EPSG','10506','RGF93 v2b to NGF-IGN78 height (3)','Replaces RAC09 model [RGF93 v2 to NGF-IGN78 height (2) (code 8372)]. Accuracy at each grid node is given in the geoid model file. Bilinear interpolation used. For reversible alternative see RGF93 v2b to RGF93 v2b + NGF-IGN78 height (3) (code 10508).','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','9781','EPSG','5721',0.02,'EPSG','8666','Geoid (height correction) model file','RAC23.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor 23',0); +INSERT INTO "usage" VALUES('EPSG','20497','grid_transformation','EPSG','10506','EPSG','1327','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10508','RGF93 v2b to RGF93 v2b + NGF-IGN78 height (3)','Reversible alternative to RGF93 v2b to NGF-IGN78 height (3) (code 10506).','EPSG','1095','Geog3D to Geog2D+GravityRelatedHeight (IGN2009)','EPSG','9781','EPSG','10507',0.02,'EPSG','8666','Geoid (height correction) model file','RAC23.mnt',NULL,NULL,NULL,NULL,'EPSG','9782','IGN Fra Cor 23',0); +INSERT INTO "usage" VALUES('EPSG','20535','grid_transformation','EPSG','10508','EPSG','1327','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10509','ETRS89 to CD Norway depth (4)','Replaces ETRS89 to CD Norway depth (3) (code 10504). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (2) (code 10510).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023b',0); +INSERT INTO "usage" VALUES('EPSG','20537','grid_transformation','EPSG','10509','EPSG','4656','EPSG','1277'); +INSERT INTO "grid_transformation" VALUES('EPSG','10510','ETRS89 to ETRS89 + CD Norway depth (4)','Reversible alternative to ETRS89 to CD Norway depth (4) (code 10509). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. Replaces ETRS89 to ETRS89 + CD Norway depth (3) (code 10133).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023b',0); +INSERT INTO "usage" VALUES('EPSG','20541','grid_transformation','EPSG','10510','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0); INSERT INTO "usage" VALUES('EPSG','11497','grid_transformation','EPSG','15486','EPSG','1286','EPSG','1085'); INSERT INTO "grid_transformation" VALUES('EPSG','15488','RRAF 1991 to IGN 1988 MG height (1)','May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5617',0.2,'EPSG','8666','Geoid (height correction) model file','ggg00_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index f8acde4054..ae15fa80c8 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.098'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-11-24'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.001'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-11-30'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/other_transformation.sql b/data/sql/other_transformation.sql index 662494b052..12ce7ee799 100644 --- a/data/sql/other_transformation.sql +++ b/data/sql/other_transformation.sql @@ -18,6 +18,14 @@ INSERT INTO "other_transformation" VALUES('PROJ','BI_HEIGHT_TO_DOUGLAS_HEIGHT',' INSERT INTO "usage" VALUES('PROJ','BI_HEIGHT_TO_DOUGLAS_HEIGHT_USAGE','other_transformation','PROJ','BI_HEIGHT_TO_DOUGLAS_HEIGHT','EPSG','2803','EPSG','1024'); INSERT INTO "other_transformation" VALUES('PROJ','BI_HEIGHT_TO_ST_MARYS_HEIGHT','BI height to St. Marys height','Accuracy 0.4 m, from datum ensemble definition','EPSG','9616','Vertical Offset','EPSG','9451','EPSG','5749',0.4,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0); INSERT INTO "usage" VALUES('PROJ','BI_HEIGHT_TO_ST_MARYS_HEIGHT_USAGE','other_transformation','PROJ','BI_HEIGHT_TO_ST_MARYS_HEIGHT','EPSG','2802','EPSG','1024'); +INSERT INTO "other_transformation" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2000_HEIGHT','DVR90 height to DVR90(2000) height','Accuracy 0.05 m, from datum ensemble definition','EPSG','9616','Vertical Offset','EPSG','5799','EPSG','10482',0.05,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0); +INSERT INTO "usage" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2000_HEIGHT_USAGE','other_transformation','PROJ','DVR90_HEIGHT_TO_DVR90_2000_HEIGHT','EPSG','3237','EPSG','1024'); +INSERT INTO "other_transformation" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2002_HEIGHT','DVR90 height to DVR90(2002) height','Accuracy 0.05 m, from datum ensemble definition','EPSG','9616','Vertical Offset','EPSG','5799','EPSG','10483',0.05,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0); +INSERT INTO "usage" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2002_HEIGHT_USAGE','other_transformation','PROJ','DVR90_HEIGHT_TO_DVR90_2002_HEIGHT','EPSG','3237','EPSG','1024'); +INSERT INTO "other_transformation" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2013_HEIGHT','DVR90 height to DVR90(2013) height','Accuracy 0.05 m, from datum ensemble definition','EPSG','9616','Vertical Offset','EPSG','5799','EPSG','10484',0.05,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0); +INSERT INTO "usage" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2013_HEIGHT_USAGE','other_transformation','PROJ','DVR90_HEIGHT_TO_DVR90_2013_HEIGHT','EPSG','3237','EPSG','1024'); +INSERT INTO "other_transformation" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2023_HEIGHT','DVR90 height to DVR90(2023) height','Accuracy 0.05 m, from datum ensemble definition','EPSG','9616','Vertical Offset','EPSG','5799','EPSG','10485',0.05,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0); +INSERT INTO "usage" VALUES('PROJ','DVR90_HEIGHT_TO_DVR90_2023_HEIGHT_USAGE','other_transformation','PROJ','DVR90_HEIGHT_TO_DVR90_2023_HEIGHT','EPSG','3237','EPSG','1024'); INSERT INTO "other_transformation" VALUES('EPSG','1258','Bogota 1975 (Bogota) to Bogota 1975 (Greenwich)','','EPSG','9601','Longitude rotation','EPSG','4802','EPSG','4218',NULL,'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,NULL,NULL,'IGAC-Col',1); INSERT INTO "usage" VALUES('EPSG','8179','other_transformation','EPSG','1258','EPSG','1070','EPSG','1100'); INSERT INTO "other_transformation" VALUES('EPSG','1259','Lisbon (Lisbon) to Lisbon (Greenwich)','','EPSG','9601','Longitude rotation','EPSG','4803','EPSG','4207',NULL,'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,NULL,NULL,'IGC-Prt',1); diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index 4d5cf03d57..da82e46385 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -283,3 +283,15 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9719','grid_tran INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9720','grid_transformation','EPSG','10348','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10366','grid_transformation','EPSG','10368','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10367','grid_transformation','EPSG','10369','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','8372','grid_transformation','EPSG','10506','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9639','grid_transformation','EPSG','10508','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10491','grid_transformation','EPSG','10493','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10489','grid_transformation','EPSG','10491','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10492','grid_transformation','EPSG','10494','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9884','grid_transformation','EPSG','10130','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9885','grid_transformation','EPSG','10133','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10490','grid_transformation','EPSG','10492','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_transformation','EPSG','10504','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10504','grid_transformation','EPSG','10509','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10505','grid_transformation','EPSG','10510','EPSG',1); diff --git a/data/sql/vertical_crs.sql b/data/sql/vertical_crs.sql index 5e86cc56a9..6608d81665 100644 --- a/data/sql/vertical_crs.sql +++ b/data/sql/vertical_crs.sql @@ -246,7 +246,7 @@ INSERT INTO "vertical_crs" VALUES('EPSG','5797','AIOC95 height',NULL,'EPSG','649 INSERT INTO "usage" VALUES('EPSG','4240','vertical_crs','EPSG','5797','EPSG','2592','EPSG','1136'); INSERT INTO "vertical_crs" VALUES('EPSG','5798','EGM84 height',NULL,'EPSG','6499','EPSG','5203',0); INSERT INTO "usage" VALUES('EPSG','4241','vertical_crs','EPSG','5798','EPSG','1262','EPSG','1027'); -INSERT INTO "vertical_crs" VALUES('EPSG','5799','DVR90 height',NULL,'EPSG','6499','EPSG','5206',0); +INSERT INTO "vertical_crs" VALUES('EPSG','5799','DVR90 height',NULL,'EPSG','6499','EPSG','1371',0); INSERT INTO "usage" VALUES('EPSG','4242','vertical_crs','EPSG','5799','EPSG','3237','EPSG','1142'); INSERT INTO "vertical_crs" VALUES('EPSG','5829','Instantaneous Water Level height',NULL,'EPSG','6499','EPSG','5113',0); INSERT INTO "usage" VALUES('EPSG','4267','vertical_crs','EPSG','5829','EPSG','1262','EPSG','1200'); @@ -480,6 +480,14 @@ INSERT INTO "vertical_crs" VALUES('EPSG','10353','Alboran height',NULL,'EPSG','6 INSERT INTO "usage" VALUES('EPSG','19926','vertical_crs','EPSG','10353','EPSG','4741','EPSG','1178'); INSERT INTO "vertical_crs" VALUES('EPSG','10354','Melilla height',NULL,'EPSG','6499','EPSG','1364',0); INSERT INTO "usage" VALUES('EPSG','19927','vertical_crs','EPSG','10354','EPSG','4740','EPSG','1178'); +INSERT INTO "vertical_crs" VALUES('EPSG','10482','DVR90(2000) height',NULL,'EPSG','6499','EPSG','5206',0); +INSERT INTO "usage" VALUES('EPSG','20427','vertical_crs','EPSG','10482','EPSG','3237','EPSG','1142'); +INSERT INTO "vertical_crs" VALUES('EPSG','10483','DVR90(2002) height',NULL,'EPSG','6499','EPSG','1368',0); +INSERT INTO "usage" VALUES('EPSG','20429','vertical_crs','EPSG','10483','EPSG','3237','EPSG','1142'); +INSERT INTO "vertical_crs" VALUES('EPSG','10484','DVR90(2013) height',NULL,'EPSG','6499','EPSG','1369',0); +INSERT INTO "usage" VALUES('EPSG','20428','vertical_crs','EPSG','10484','EPSG','3237','EPSG','1142'); +INSERT INTO "vertical_crs" VALUES('EPSG','10485','DVR90(2023) height',NULL,'EPSG','6499','EPSG','1370',0); +INSERT INTO "usage" VALUES('EPSG','20430','vertical_crs','EPSG','10485','EPSG','3237','EPSG','1142'); INSERT INTO "vertical_crs" VALUES('EPSG','20000','SVD2006 height',NULL,'EPSG','6499','EPSG','1323',0); INSERT INTO "usage" VALUES('EPSG','17962','vertical_crs','EPSG','20000','EPSG','4058','EPSG','1180'); INSERT INTO "vertical_crs" VALUES('EPSG','20034','CGVD2013a(2002) height',NULL,'EPSG','6499','EPSG','1325',0); diff --git a/data/sql/vertical_datum.sql b/data/sql/vertical_datum.sql index 4769109417..114521d031 100644 --- a/data/sql/vertical_datum.sql +++ b/data/sql/vertical_datum.sql @@ -254,6 +254,12 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1363','Alboran',NULL,NULL,NULL,NULL, INSERT INTO "usage" VALUES('EPSG','19909','vertical_datum','EPSG','1363','EPSG','4741','EPSG','1178'); INSERT INTO "vertical_datum" VALUES('EPSG','1364','Melilla',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19910','vertical_datum','EPSG','1364','EPSG','4740','EPSG','1178'); +INSERT INTO "vertical_datum" VALUES('EPSG','1368','Dansk Vertikal Reference 1990 (2002)',NULL,'2002-01-01',NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20431','vertical_datum','EPSG','1368','EPSG','3237','EPSG','1142'); +INSERT INTO "vertical_datum" VALUES('EPSG','1369','Dansk Vertikal Reference 1990 (2013)',NULL,'2013-01-01',NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20432','vertical_datum','EPSG','1369','EPSG','3237','EPSG','1142'); +INSERT INTO "vertical_datum" VALUES('EPSG','1370','Dansk Vertikal Reference 1990 (2023)',NULL,'2023-01-01',NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20433','vertical_datum','EPSG','1370','EPSG','3237','EPSG','1142'); INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13307','vertical_datum','EPSG','5100','EPSG','1262','EPSG','1199'); INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,NULL,0); @@ -464,7 +470,7 @@ INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Dat INSERT INTO "usage" VALUES('EPSG','13410','vertical_datum','EPSG','5204','EPSG','3468','EPSG','1202'); INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,'1985-01-01',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13411','vertical_datum','EPSG','5205','EPSG','3468','EPSG','1202'); -INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990',NULL,'1990-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990 (2000)',NULL,'2000-01-01',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13412','vertical_datum','EPSG','5206','EPSG','3237','EPSG','1142'); INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference Datum 1971',NULL,'1971-01-01',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13413','vertical_datum','EPSG','5207','EPSG','3234','EPSG','1027'); @@ -486,3 +492,5 @@ INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference F INSERT INTO "usage" VALUES('EPSG','14655','vertical_datum','EPSG','5215','EPSG','3594','EPSG','1027'); INSERT INTO "vertical_datum" VALUES('EPSG','1288','British Isles height ensemble',NULL,NULL,NULL,0.4,NULL,0); INSERT INTO "usage" VALUES('EPSG','14086','vertical_datum','EPSG','1288','EPSG','4606','EPSG','1026'); +INSERT INTO "vertical_datum" VALUES('EPSG','1371','Dansk Vertikal Reference 1990 ensemble',NULL,NULL,NULL,0.05,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20365','vertical_datum','EPSG','1371','EPSG','3237','EPSG','1142'); diff --git a/data/sql/vertical_datum_ensemble_member.sql b/data/sql/vertical_datum_ensemble_member.sql index 70d163cf9d..7b3e161a9e 100644 --- a/data/sql/vertical_datum_ensemble_member.sql +++ b/data/sql/vertical_datum_ensemble_member.sql @@ -9,3 +9,7 @@ INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5140', INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5144',7); INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5148',8); INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1288','EPSG','5147',9); +INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1371','EPSG','5206',1); +INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1371','EPSG','1368',2); +INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1371','EPSG','1369',3); +INSERT INTO "vertical_datum_ensemble_member" VALUES('EPSG','1371','EPSG','1370',4); diff --git a/scripts/build_db.py b/scripts/build_db.py index 4166e59410..e22e33d7fe 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -780,9 +780,10 @@ def fill_grid_transformation(proj_db_cursor): # 1115: Geog3D to Geog2D+Depth (txt) # 1118: Geog3D to Geog2D+GravityRelatedHeight (ISG) # 1122: Geog3D to Geog2D+Depth (gtx) + # 1124: Geog3D to Geog2D+GravityRelatedHeight (gtg) # WARNING: update Transformation::isGeographic3DToGravityRelatedHeight() # in src/iso19111/operation/singleoperation.cpp if adding new methods - elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1113, 1114, 1115, 1118, 1122) and n_params == 2: + elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1113, 1114, 1115, 1118, 1122, 1124) and n_params == 2: assert param_code[1] == 1048, (code, method_code, param_code[1]) interpolation_crs_auth_name = EPSG_AUTHORITY interpolation_crs_code = str(int(param_value[1])) # needed to avoid codes like XXXX.0 diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 2f5bb94ddc..197dbd0d9d 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2079,6 +2079,7 @@ bool Transformation::isGeographic3DToGravityRelatedHeight( "1115", // Geog3D to Geog2D+Depth (txt) "1118", // Geog3D to Geog2D+GravityRelatedHeight (ISG) "1122", // Geog3D to Geog2D+Depth (gtx) + "1124", // Geog3D to Geog2D+GravityRelatedHeight (gtg) "9661", // Geographic3D to GravityRelatedHeight (EGM) "9662", // Geographic3D to GravityRelatedHeight (Ausgeoid98) "9663", // Geographic3D to GravityRelatedHeight (OSGM-GB) From ffce4a6b0870506c2470fd23e8b10d2e29d4d206 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 30 Nov 2023 20:19:34 +0100 Subject: [PATCH 101/199] Database: reference RAC23.mnt --> fr_ign_RAC23.tif, and update PROJ_DATA.VERSION to 1.17 --- data/sql/grid_alternatives.sql | 1 + data/sql/metadata.sql | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 66b9a940dd..7e839675d7 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -162,6 +162,7 @@ VALUES ('gr3df97a.txt','fr_ign_gr3df97a.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/fr_ign_gr3df97a.tif',1,1,NULL), -- Vertical grids ('RAC09.mnt','fr_ign_RAC09.tif','RAC09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAC09.tif',1,1,NULL), +('RAC23.mnt','fr_ign_RAC23.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAC23.tif',1,1,NULL), ('RAF09.mnt','fr_ign_RAF09.tif','RAF09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF09.tif',1,1,NULL), ('RAF18.mnt','fr_ign_RAF18.tif','RAF18.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18.tif',1,1,NULL), ('RAF18b.mnt','fr_ign_RAF18b.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18b.tif',1,1,NULL), diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index ae15fa80c8..af30e5df93 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -18,4 +18,4 @@ INSERT INTO "metadata" VALUES('PROJ.VERSION', '${PROJ_VERSION}'); -- Version of the PROJ-data package with which this database is the most -- compatible. -INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.16'); +INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.17'); From 2ee202f045526a984243df48ba33183d91585f2b Mon Sep 17 00:00:00 2001 From: gitartpiano <51239761+gitartpiano@users.noreply.github.com> Date: Mon, 4 Dec 2023 08:24:23 -0600 Subject: [PATCH 102/199] if(WIN32) add shell32 and ole32 libraries in lib_proj.cmake to fix missing symbols at link time for windows target as described in https://github.com/OSGeo/PROJ/issues/2983 --- src/lib_proj.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 7409e6f387..79fb73f7d6 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -438,6 +438,13 @@ set_target_properties(proj set(PROJ_LIBRARIES proj) # hack, required for test/unit set(PROJ_LIBRARIES ${PROJ_LIBRARIES} PARENT_SCOPE) +if(WIN32) +target_link_libraries (proj + PRIVATE + shell32.lib + ole32.lib +) +endif() if(UNIX) find_library(M_LIB m) if(M_LIB) From 6cd2331874c5e2c22e01d3c0a5cf2cd518436a7e Mon Sep 17 00:00:00 2001 From: Thomas Knudsen Date: Mon, 4 Dec 2023 17:16:30 +0100 Subject: [PATCH 103/199] Improve error message in axisswap The test for parameters in axisswap actually is a bit convoluted, but in essence it checks both whether ANY of the 'axis' and 'order' parameters are given, and whether BOTH are given. Hence, the error message "order and axis parameters are mutually exclusive" is misleading in the case where none of the two is given. The updated message: "must provide EITHER 'order' OR 'axis' parameter" is intended to cover both cases in an informative way --- src/conversions/axisswap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index 22f6a9adc4..6c2d4e2664 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -170,7 +170,7 @@ PJ *PJ_CONVERSION(axisswap, 0) { if (!pj_param_exists(P->params, "order") == !pj_param_exists(P->params, "axis")) { proj_log_error(P, - _("order and axis parameters are mutually exclusive.")); + _("must provide EITHER 'order' OR 'axis' parameter.")); return pj_default_destructor( P, PROJ_ERR_INVALID_OP_MUTUALLY_EXCLUSIVE_ARGS); } From decf6afd8014d3e708e4b9b9ed5e8dc4b68223d5 Mon Sep 17 00:00:00 2001 From: Jochem-L <55313523+Jochem-L@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:57:25 +0100 Subject: [PATCH 104/199] Update horner.rst (#3964) Update horner.rst with improved description of polynomium coefficient order --- .../operations/transformations/horner.rst | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/docs/source/operations/transformations/horner.rst b/docs/source/operations/transformations/horner.rst index 2ecabd7493..bcedebd7dc 100644 --- a/docs/source/operations/transformations/horner.rst +++ b/docs/source/operations/transformations/horner.rst @@ -52,6 +52,34 @@ where and :math:`u_{i,j}` and :math:`v_{i,j}` are coefficients that make up the polynomial. +The order of coefficients :math:`u_{i,j}` is (example for degree 3): + ++--------+--------+--------+--------+--------+ +| | **V⁰** | **V¹** | **V²** | **V³** | ++--------+--------+--------+--------+--------+ +| **U⁰** | 1st | 5th | 8rd | 10th | ++--------+--------+--------+--------+--------+ +| **U¹** | 2nd | 6th | 9th | – | ++--------+--------+--------+--------+--------+ +| **U²** | 3rd | 7th | – | – | ++--------+--------+--------+--------+--------+ +| **U³** | 4th | – | – | – | ++--------+--------+--------+--------+--------+ + +The order of coefficients :math:`v_{i,j}` is (example for degree 3): + ++--------+--------+--------+--------+--------+ +| | **V⁰** | **V¹** | **V²** | **V³** | ++--------+--------+--------+--------+--------+ +| **U⁰** | 1st | 2nd | 3rd | 4th | ++--------+--------+--------+--------+--------+ +| **U¹** | 5th | 6th | 7th | – | ++--------+--------+--------+--------+--------+ +| **U²** | 8th | 9th | – | – | ++--------+--------+--------+--------+--------+ +| **U³** | 10th | – | – | – | ++--------+--------+--------+--------+--------+ + The final coordinates are determined as .. math:: @@ -75,8 +103,8 @@ be done by iteratively solving a system of equations. By writing :eq:`real_poly` v_{0,0} \\ \end{bmatrix} + \begin{bmatrix} - u_{0,1} + u_{0,2} U + ... & u_{1,0} + u_{1,1} U + u_{2,0} V + ... \\ - v_{1,0} + v_{1,1} V + v_{2,0} U + ... & v_{0,1} + v_{0,2} V \\ + u_{1,0} + u_{2,0} U + ... & u_{0,1} + u_{1,1} U + u_{0,2} V + ... \\ + v_{0,1} + v_{1,1} V + v_{0,2} U + ... & v_{1,0} + v_{2,0} V \\ \end{bmatrix} \begin{bmatrix} U \\ @@ -200,12 +228,12 @@ of the polynomial: N = \frac{(d + 1)(d + 2)}{2} -.. option:: +fwd_u= +.. option:: +fwd_u= Coefficients for the forward transformation i.e. latitude to northing as described in :eq:`real_poly`. -.. option:: +fwd_v= +.. option:: +fwd_v= Coefficients for the forward transformation i.e. longitude to easting as described in :eq:`real_poly`. @@ -238,7 +266,7 @@ Optional Without this option iterative polynomial evaluation is used for the inverse transformation. -.. option:: +inv_u= +.. option:: +inv_u= .. versionchanged:: 9.1.0 @@ -247,7 +275,7 @@ Optional Without this option iterative polynomial evaluation is used for the inverse transformation. -.. option:: +inv_v= +.. option:: +inv_v= .. versionchanged:: 9.1.0 From f5303791bbcc63597f2519e9dfba176e25105922 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 8 Dec 2023 00:14:16 +0100 Subject: [PATCH 105/199] Database: add entry in grid_alternatives for ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin / no_kv_CD_above_Ell_ETRS89_v2023b.tif The transformation had been added in EPSG 11.001 ``` $ echo 61.101 4.484 | PROJ_DATA=data:/home/even/proj/PROJ-data/no_kv PROJ_DEBUG=2 bin/cs2cs EPSG:4258+9672 EPSG:4937 pj_open_lib(proj.ini): call fopen(data/proj.ini) - succeeded pj_open_lib(proj.db): call fopen(data/proj.db) - succeeded pj_open_lib(ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin): call fopen(/home/even/proj/PROJ-data/no_kv/ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin) - failed pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2021a.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2021a.tif) - succeeded pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2021a.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2021a.tif) - succeeded Using coordinate operation Inverse of ETRS89 to CD Norway depth (4) pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded 61d6'3.6"N 4d29'2.4"E 44.496 ``` --- data/sql/grid_alternatives.sql | 1 + test/unit/test_operationfactory.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 7e839675d7..cf2fd2ac51 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -248,6 +248,7 @@ VALUES ('href2008a.bin','no_kv_href2008a.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/no_kv_href2008a.tif',1,1,NULL), ('no_kv_NKGETRF14_EPSG7922_2000.tif','no_kv_NKGETRF14_EPSG7922_2000.tif',NULL,'GTiff','geocentricoffset',0,NULL,'https://cdn.proj.org/no_kv_NKGETRF14_EPSG7922_2000.tif',1,1,NULL), ('ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin','no_kv_CD_above_Ell_ETRS89_v2021a.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/no_kv_CD_above_Ell_ETRS89_v2021a.tif',1,1,NULL), +('ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin','no_kv_CD_above_Ell_ETRS89_v2023b.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/no_kv_CD_above_Ell_ETRS89_v2023b.tif',1,1,NULL), ('no_kv_ETRS89NO_NGO48_TIN.json','no_kv_ETRS89NO_NGO48_TIN.json',NULL,'JSON','tinshift',0,NULL,'https://cdn.proj.org/no_kv_ETRS89NO_NGO48_TIN.json',1,1,NULL), ('arcgp-2006-sk.bin','no_kv_arcgp-2006-sk.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/no_kv_arcgp-2006-sk.tif',1,1,NULL), diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index a7dcba966a..299fefb20c 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -883,7 +883,7 @@ TEST(operation, geog3DCRS_to_vertCRS_depth_context) { "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=deg +xy_out=rad " "+step +inv +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2021a.tif +multiplier=1 " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " "+step +proj=axisswap +order=1,2,-3 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " "+step +proj=axisswap +order=2,1"); @@ -909,7 +909,7 @@ TEST(operation, geog3DCRS_to_vertCRS_depth_context) { "+step +proj=unitconvert +xy_in=deg +xy_out=rad " "+step +proj=axisswap +order=1,2,-3 " "+step +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2021a.tif +multiplier=1 " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " "+step +proj=axisswap +order=2,1"); } @@ -940,7 +940,7 @@ TEST(operation, geog3DCRS_to_geog2DCRS_plus_vertCRS_depth_context) { "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=deg +xy_out=rad " "+step +inv +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2021a.tif +multiplier=1 " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " "+step +proj=axisswap +order=1,2,-3 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " "+step +proj=axisswap +order=2,1"); @@ -966,7 +966,7 @@ TEST(operation, geog3DCRS_to_geog2DCRS_plus_vertCRS_depth_context) { "+step +proj=unitconvert +xy_in=deg +xy_out=rad " "+step +proj=axisswap +order=1,2,-3 " "+step +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2021a.tif +multiplier=1 " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " "+step +proj=axisswap +order=2,1"); } From 389226065b9f2a72f87aa66e663b8e63626ec6f0 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 8 Dec 2023 19:19:44 +0100 Subject: [PATCH 106/199] cmake/Ccache.cmake: raise cmake_minimum_required() as newer CMake versions warn that support for CMake < 3.5 is going to be dropped at some later point --- cmake/Ccache.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Ccache.cmake b/cmake/Ccache.cmake index 10b4cfd07c..380513394e 100644 --- a/cmake/Ccache.cmake +++ b/cmake/Ccache.cmake @@ -7,7 +7,7 @@ # Add "include(Ccache)" to CMakeLists.txt and enable # using the option -D USE_CCACHE=ON -cmake_minimum_required(VERSION 3.4) +cmake_minimum_required(VERSION 3.9) option(USE_CCACHE From fe4c2ed7d0362dc3c43e4aff98a568287c8a539b Mon Sep 17 00:00:00 2001 From: DeflateAwning <11021263+DeflateAwning@users.noreply.github.com> Date: Wed, 20 Dec 2023 14:03:47 -0700 Subject: [PATCH 107/199] Fix `projsync --system-directory` command in install guide Also added a comma --- docs/source/install.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 9e22fe7f31..c3f2150541 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -187,10 +187,10 @@ Tests are run with:: ctest -With a successful install of PROJ we can now install data files using the +With a successful install of PROJ, we can now install data files using the :program:`projsync` utility:: - projsync --system-directory + projsync --system-directory --all which will download all resource files currently available for PROJ. If less than the entire collection of resource files is needed the call to :program:`projsync` From 044f499f70a77fecf98df68c74dbb14fb7a56bd3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 30 Dec 2023 20:42:27 +0100 Subject: [PATCH 108/199] Doxyfile: avoid warning with Doxygen 1.10 --- Doxyfile | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Doxyfile b/Doxyfile index 5c1a7e5b1b..ee1cd6ec5f 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1161,15 +1161,6 @@ HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. From 5ebe855f43bb74474d128ef5132cdbb09d7ae220 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 3 Jan 2024 14:14:45 +0100 Subject: [PATCH 109/199] proj.h: add PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE error code --- src/proj.h | 2 ++ src/strerrno.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/proj.h b/src/proj.h index cef28e3ccc..f0543ddfca 100644 --- a/src/proj.h +++ b/src/proj.h @@ -706,6 +706,8 @@ PJ_COORD PROJ_DLL proj_geod(const PJ *P, PJ_COORD a, PJ_COORD b); #define PROJ_ERR_COORD_TRANSFM_GRID_AT_NODATA \ (PROJ_ERR_COORD_TRANSFM + \ 5) /* point to transform falls in a grid cell that evaluates to nodata */ +#define PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE \ + (PROJ_ERR_COORD_TRANSFM + 6) /* iterative convergence method fail */ /** Other type of errors */ #define PROJ_ERR_OTHER 4096 diff --git a/src/strerrno.cpp b/src/strerrno.cpp index 2e35935d43..0784f5b6b5 100644 --- a/src/strerrno.cpp +++ b/src/strerrno.cpp @@ -34,6 +34,8 @@ static const struct { {PROJ_ERR_COORD_TRANSFM_GRID_AT_NODATA, _("Coordinate to transform falls into a grid cell that evaluates to " "nodata")}, + {PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE, + _("Iterative method fails to converge on coordinate to transform")}, {PROJ_ERR_OTHER_API_MISUSE, _("API misuse")}, {PROJ_ERR_OTHER_NO_INVERSE_OP, _("No inverse operation")}, {PROJ_ERR_OTHER_NETWORK_ERROR, From c7d41bb876887e03aaace61a13f4d5d467b02160 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 3 Jan 2024 14:15:41 +0100 Subject: [PATCH 110/199] +proj=gridshift: do not apply iteration in the reverse path with +interpolation=biquadratic As NOAA NCAT transformation tool does. Otherwise we may get convergence errors on points that are close to the boundary of cells or half-cells. --- ..._nad83_harn_conus_extract_sanfrancisco.tif | Bin 0 -> 1285 bytes src/transformations/gridshift.cpp | 119 +++++++++++------- test/gie/gridshift.gie | 15 ++- 3 files changed, 85 insertions(+), 49 deletions(-) create mode 100644 data/tests/us_noaa_nadcon5_nad83_1986_nad83_harn_conus_extract_sanfrancisco.tif diff --git a/data/tests/us_noaa_nadcon5_nad83_1986_nad83_harn_conus_extract_sanfrancisco.tif b/data/tests/us_noaa_nadcon5_nad83_1986_nad83_harn_conus_extract_sanfrancisco.tif new file mode 100644 index 0000000000000000000000000000000000000000..c2acae8a2e0de62ce3649dd198ccfda27b3a14f4 GIT binary patch literal 1285 zcmZ`&TWlLe6rFWK2*FfTwD18%qeY+ugm>+v!QM&SxN+LJO>HYS67a!l>>WF+*t=$T z?LJf>l!t$KilP=&_()5oN~LWOs=&ibR6;>WRP=)a;!z=#50EGisS*zf?ra7Qtf?_g4P#Z+{1Z)Nb6d5c$Z!nzrxVHO z-~je)yiA5SM%rZmWMVo!Fc8Ayw$)&cxAL_a&#SqbqLi6!Fn4#zvMCLf?S@jT7Zi&c zMcdk_h_9+KHSDkoqb^f6*UgIIir3LWJsgV;hnC?Cb*vCX)Ln!|wk8u(JD5ie>d|-~ z#v>_@Rk1~@Y*eNWqq<$v>n@YycjprLPLY?#oT_Qrb$3J&+W!ZcLQu0S)H7{MuQG4O zHspB0e4tJZ2gqXQFpoNA=IKSp)mhCg>qS_o93O(M>8#J+o1Kv3lbPw%eVKGVF{Nj= zY{^aJJByPOx$)^#HlNC*W$e;wtpcl4W$f4jz>XFjvnKMD<05abZZKGP$z@(=znblu z9@K)~pp`oN*D@@}VdpOs)G>*0=Ok>a+$oC@<-flRp_g713&{`1qfT-AH3DPpenXM}$G{m1}dX;gkR!&(L>vhlXR5x?7MH0i`^-Ha{EVQ+tMuWzvff2R^7#)+9X`tTkfWi){I6G^BY%H>fFC#J$@tF&UJEXe4VMr%E?q}%{`w4`eIiKy&`)#r z=T7qMfv5O`kDMdh#t%gs=g*MXGr88LIbHkVyCwepiI?AcUVDQtK75Fr*!6nr?4I+a zpI2HR-uf}QOI^pO=Eulq7y915asQXv+_%5-FTPqN?3WK(%Grw~b;nd|edz-EMC;-I E02UZ$C;$Ke literal 0 HcmV?d00001 diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index bda2e3d415..44504ae30d 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -80,7 +80,8 @@ struct gridshiftData { const PJ_LPZ &input, GenericShiftGridSet *&gridSetOut) const; PJ_LPZ grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, PJ_LP lp, - const GenericShiftGrid *grid); + const GenericShiftGrid *grid, + bool &biquadraticInterpolationOut); PJ_LPZ grid_apply_internal(PJ_CONTEXT *ctx, const std::string &type, bool isVerticalOnly, const PJ_LPZ in, PJ_DIRECTION direction, @@ -178,7 +179,8 @@ typedef struct { #define REL_TOLERANCE_HGRIDSHIFT 1e-5 PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, - PJ_LP lp, const GenericShiftGrid *grid) { + PJ_LP lp, const GenericShiftGrid *grid, + bool &biquadraticInterpolationOut) { PJ_LPZ val; val.lam = val.phi = HUGE_VAL; @@ -274,6 +276,7 @@ PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, const int idxSampleLong = gridInfo.idxSampleLong; const int idxSampleZ = gridInfo.idxSampleZ; const bool bilinearInterpolation = gridInfo.bilinearInterpolation; + biquadraticInterpolationOut = !bilinearInterpolation; ILP indx; const auto &extent = grid->extentAndRes(); @@ -521,7 +524,9 @@ PJ_LPZ gridshiftData::grid_apply_internal( const NS_PROJ::ExtentAndRes *extent; PJ_LP normalized_in = normalizeLongitude(grid, in, extent); - PJ_LPZ shift = grid_interpolate(ctx, type, normalized_in, grid); + bool biquadraticInterpolationOut = false; + PJ_LPZ shift = grid_interpolate(ctx, type, normalized_in, grid, + biquadraticInterpolationOut); if (grid->hasChanged()) { shouldRetry = gridset->reopen(ctx); PJ_LPZ out; @@ -549,57 +554,73 @@ PJ_LPZ gridshiftData::grid_apply_internal( guess.lam = normalized_in.lam - shift.lam; guess.phi = normalized_in.phi - shift.phi; - int i = MAX_ITERATIONS; - const double toltol = TOL * TOL; - PJ_LP diff; - do { - shift = grid_interpolate(ctx, type, guess, grid); - if (grid->hasChanged()) { - shouldRetry = gridset->reopen(ctx); + // NOAA NCAT transformer tool doesn't do iteration in the reverse path. + // Do the same (only for biquadratic, although NCAT applies this logic to + // bilinear too) + // Cf + // https://github.com/noaa-ngs/ncat-lib/blob/77bcff1ce4a78fe06d0312102ada008aefcc2c62/src/gov/noaa/ngs/grid/Transformer.java#L374 + // When trying to do iterative reverse path with biquadratic, we can + // get convergence failures on points that are close to the boundary of + // cells or half-cells. For example with + // echo -122.4250009683 37.8286740788 0 | bin/cct -I +proj=gridshift + // +grids=tests/us_noaa_nadcon5_nad83_1986_nad83_harn_conus_extract_sanfrancisco.tif + // +interpolation=biquadratic + if (!biquadraticInterpolationOut) { + int i = MAX_ITERATIONS; + const double toltol = TOL * TOL; + PJ_LP diff; + do { + shift = grid_interpolate(ctx, type, guess, grid, + biquadraticInterpolationOut); + if (grid->hasChanged()) { + shouldRetry = gridset->reopen(ctx); + PJ_LPZ out; + out.lam = out.phi = out.z = HUGE_VAL; + return out; + } + + /* We can possibly go outside of the initial guessed grid, so try */ + /* to fetch a new grid into which iterate... */ + if (shift.lam == HUGE_VAL) { + PJ_LPZ lp; + lp.lam = guess.lam; + lp.phi = guess.phi; + auto newGrid = findGrid(type, lp, gridset); + if (newGrid == nullptr || newGrid == grid || + newGrid->isNullGrid()) + break; + pj_log(ctx, PJ_LOG_TRACE, "Switching from grid %s to grid %s", + grid->name().c_str(), newGrid->name().c_str()); + grid = newGrid; + normalized_in = normalizeLongitude(grid, in, extent); + diff.lam = std::numeric_limits::max(); + diff.phi = std::numeric_limits::max(); + continue; + } + + diff.lam = guess.lam + shift.lam - normalized_in.lam; + diff.phi = guess.phi + shift.phi - normalized_in.phi; + guess.lam -= diff.lam; + guess.phi -= diff.phi; + + } while (--i && (diff.lam * diff.lam + diff.phi * diff.phi > + toltol)); /* prob. slightly faster than hypot() */ + + if (i == 0) { + pj_log(ctx, PJ_LOG_TRACE, + "Inverse grid shift iterator failed to converge."); + proj_context_errno_set(ctx, PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE); PJ_LPZ out; out.lam = out.phi = out.z = HUGE_VAL; return out; } - /* We can possibly go outside of the initial guessed grid, so try */ - /* to fetch a new grid into which iterate... */ if (shift.lam == HUGE_VAL) { - PJ_LPZ lp; - lp.lam = guess.lam; - lp.phi = guess.phi; - auto newGrid = findGrid(type, lp, gridset); - if (newGrid == nullptr || newGrid == grid || newGrid->isNullGrid()) - break; - pj_log(ctx, PJ_LOG_TRACE, "Switching from grid %s to grid %s", - grid->name().c_str(), newGrid->name().c_str()); - grid = newGrid; - normalized_in = normalizeLongitude(grid, in, extent); - diff.lam = std::numeric_limits::max(); - diff.phi = std::numeric_limits::max(); - continue; + pj_log( + ctx, PJ_LOG_TRACE, + "Inverse grid shift iteration failed, presumably at grid edge. " + "Using first approximation."); } - - diff.lam = guess.lam + shift.lam - normalized_in.lam; - diff.phi = guess.phi + shift.phi - normalized_in.phi; - guess.lam -= diff.lam; - guess.phi -= diff.phi; - - } while (--i && (diff.lam * diff.lam + diff.phi * diff.phi > - toltol)); /* prob. slightly faster than hypot() */ - - if (i == 0) { - pj_log(ctx, PJ_LOG_TRACE, - "Inverse grid shift iterator failed to converge."); - proj_context_errno_set(ctx, PROJ_ERR_COORD_TRANSFM); - PJ_LPZ out; - out.lam = out.phi = out.z = HUGE_VAL; - return out; - } - - if (shift.lam == HUGE_VAL) { - pj_log(ctx, PJ_LOG_TRACE, - "Inverse grid shift iteration failed, presumably at grid edge. " - "Using first approximation."); } PJ_LPZ out; @@ -667,7 +688,9 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { } if (out.lam == HUGE_VAL || out.phi == HUGE_VAL) { - proj_context_errno_set(P->ctx, PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID); + if (proj_context_errno(P->ctx) == 0) { + proj_context_errno_set(P->ctx, PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID); + } return out; } diff --git a/test/gie/gridshift.gie b/test/gie/gridshift.gie index 86de12346e..61d5729b1d 100644 --- a/test/gie/gridshift.gie +++ b/test/gie/gridshift.gie @@ -209,7 +209,7 @@ roundtrip 1 ------------------------------------------------------------------------------- operation +proj=gridshift +grids=tests/us_noaa_nadcon5_nad83_2007_nad83_2011_conus_extract.tif +interpolation=biquadratic ------------------------------------------------------------------------------- -tolerance 0.001 mm +tolerance 0.005 mm accept -95.4916666666 37.0083333333 10.000 expect -95.49166648893 37.00833334837 9.984340 @@ -224,6 +224,19 @@ accept -95.4916666666 37.0083333333 10.000 expect -95.49166648893 37.00833334838 9.984341 roundtrip 1 +---------------------------------------------------------------------------------------------------------------------- +# Test case with inverse biquadratic convergence where we are around a location where the interpolation window changes +---------------------------------------------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +operation +proj=gridshift +grids=tests/us_noaa_nadcon5_nad83_1986_nad83_harn_conus_extract_sanfrancisco.tif +interpolation=biquadratic +------------------------------------------------------------------------------- +direction inverse +tolerance 0.005 mm + +accept -122.4250009683 37.8286740788 +expect -122.4249999391 37.8286728006 + ------------- # Error cases ------------- From eaebbe289af828c922f1fbde05ede71a1cb80f56 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Thu, 4 Jan 2024 20:19:19 +0100 Subject: [PATCH 111/199] Remove non-EPSG DVR90 transformation from DB This grid transformation is now available from the EPSG-database and can now be removed. --- data/sql/grid_alternatives.sql | 1 - data/sql/grid_transformation_custom.sql | 20 -------------------- 2 files changed, 21 deletions(-) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index cf2fd2ac51..5f7ee8e3ef 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -123,7 +123,6 @@ VALUES -- dk_sdfe - Danish Agency for Data Supply and Efficiency -- Denmark mainland ('dnn.gtx','dk_sdfe_dnn.tif','dnn.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dnn.tif',1,1,NULL), -('dvr90.gtx','dk_sdfe_dvr90.tif','dvr90.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dvr90.tif',1,1,NULL), -- Faroe islands height models ('fvr09.gtx','dk_sdfe_fvr09.tif','fvr09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_fvr09.tif',1,1,NULL), -- Greenland height models diff --git a/data/sql/grid_transformation_custom.sql b/data/sql/grid_transformation_custom.sql index e8f89d0257..94b30a2fc0 100644 --- a/data/sql/grid_transformation_custom.sql +++ b/data/sql/grid_transformation_custom.sql @@ -2,26 +2,6 @@ -- Denmark -INSERT INTO "grid_transformation" VALUES( - 'PROJ','EPSG_4937_TO_EPSG_5799','ETRS89 to DVR90 height', - NULL, - 'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)', - 'EPSG','4937', -- source CRS (ETRS89) - 'EPSG','5799', -- target CRS (DVR90 height) - NULL, - 'EPSG','8666','Geoid (height correction) model file','dvr90.gtx', - NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); - -INSERT INTO "usage" VALUES( - 'PROJ', - 'EPSG_4937_TO_EPSG_5799_USAGE', - 'grid_transformation', - 'PROJ', - 'EPSG_4937_TO_EPSG_5799', - 'EPSG','3237', -- area of use: Denmark onshore - 'EPSG','1024' -- unknown -); - INSERT INTO "grid_transformation" VALUES( 'PROJ','EPSG_4937_TO_EPSG_5733','ETRS89 to DNN height', NULL, From 5498e6838e41b87ae4bdec4f740ba8ee107322ee Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Thu, 4 Jan 2024 21:29:39 +0100 Subject: [PATCH 112/199] Update grid_alternatives with new DVR90 grids --- data/sql/grid_alternatives.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 5f7ee8e3ef..7ad3af99ab 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -138,6 +138,9 @@ VALUES ('s34j_2022.gsb','dk_sdfi_s34j_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s34j_2022.tif',1,1,NULL), ('s34s_2022.gsb','dk_sdfi_s34s_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s34s_2022.tif',1,1,NULL), ('s45b_2022.gsb','dk_sdfi_s45b_2022.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_s45b_2022.tif',1,1,NULL), +('dvr90_2002.tif','dk_sdfi_dvr90_2002.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_dvr90_2002.tif',1,1,NULL), +('dvr90_2013.tif','dk_sdfi_dvr90_2013.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_dvr90_2013.tif',1,1,NULL), +('dvr90_2023.tif','dk_sdfi_dvr90_2023.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/dk_sdfi_dvr90_2023.tif',1,1,NULL), -- es_cat_icgc - Institut Cartogràfic i Geològic de Catalunya (ICGC) ('100800401.gsb','es_cat_icgc_100800401.tif','100800401.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_cat_icgc_100800401.tif',1,1,NULL), From 40bf8dc75e3405acb9c3e240a4b174aa9a2de57f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 15:29:37 +0100 Subject: [PATCH 113/199] Add EPSG:1125 Azimuthal Equidistant projection --- data/sql/proj_db_table_defs.sql | 1 + src/iso19111/operation/parammappings.cpp | 7 +++++++ src/proj_constants.h | 3 +++ test/unit/test_operation.cpp | 6 +++--- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index dd24fd7e9a..a057c1c465 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -506,6 +506,7 @@ BEGIN 'EPSG_1102_Lambert Conic Conformal (1SP variant B)', 'EPSG_1111_Transverse Mercator 3D', 'EPSG_1119_Equidistant Conic', + 'EPSG_1125_Azimuthal Equidistant', 'EPSG_9602_Geographic/geocentric conversions', 'EPSG_9659_Geographic3D to 2D conversion', 'EPSG_9801_Lambert Conic Conformal (1SP)', diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 00b9b46cce..233ea6cf00 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -637,6 +637,13 @@ static const MethodMapping projectionMethodMappings[] = { // LCC 2SP paramsLCC2SP}, + {EPSG_NAME_METHOD_AZIMUTHAL_EQUIDISTANT, + EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT, "Azimuthal_Equidistant", "aeqd", + nullptr, paramsAEQD}, + + // We don't actually implement the Modified variant of Azimuthal Equidistant + // but the exact one. The difference between both is neglectable in a few + // hundred of kilometers away from the center of projection {EPSG_NAME_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT, EPSG_CODE_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT, "Azimuthal_Equidistant", "aeqd", nullptr, paramsAEQD}, diff --git a/src/proj_constants.h b/src/proj_constants.h index 02b416a4ba..824932c011 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -77,6 +77,9 @@ "Lambert Conic Conformal (2SP Michigan)" #define EPSG_CODE_METHOD_LAMBERT_CONIC_CONFORMAL_2SP_MICHIGAN 1051 +#define EPSG_NAME_METHOD_AZIMUTHAL_EQUIDISTANT "Azimuthal Equidistant" +#define EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT 1125 + #define EPSG_NAME_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT \ "Modified Azimuthal Equidistant" #define EPSG_CODE_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT 9832 diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index 59f6a745e1..7e20be56cb 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -1547,9 +1547,9 @@ TEST(operation, azimuthal_equidistant_export) { "+proj=aeqd +lat_0=1 +lon_0=2 +x_0=3 +y_0=4"); EXPECT_EQ(conv->exportToWKT(WKTFormatter::create().get()), - "CONVERSION[\"Modified Azimuthal Equidistant\",\n" - " METHOD[\"Modified Azimuthal Equidistant\",\n" - " ID[\"EPSG\",9832]],\n" + "CONVERSION[\"Azimuthal Equidistant\",\n" + " METHOD[\"Azimuthal Equidistant\",\n" + " ID[\"EPSG\",1125]],\n" " PARAMETER[\"Latitude of natural origin\",1,\n" " ANGLEUNIT[\"degree\",0.0174532925199433],\n" " ID[\"EPSG\",8801]],\n" From 7ce0c84f65c4fba6b3f3facfa3f1bc480a327be4 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 15:30:23 +0100 Subject: [PATCH 114/199] Conversion::createAzimuthalEquidistant(): map it to EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT --- src/iso19111/operation/conversion.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index c70a5214c5..40416d7a2d 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -744,11 +744,11 @@ ConversionNNPtr Conversion::createLambertConicConformal_2SP_Belgium( /** \brief Instantiate a conversion based on the * - * Modified Azimuthal Equidistant projection method. + * Azimuthal Equidistant projection method. * * This method is defined as - * - * EPSG:9832. + * + * EPSG:1125. * * @param properties See \ref general_properties of the conversion. If the name * is not provided, it is automatically set. @@ -762,7 +762,7 @@ ConversionNNPtr Conversion::createAzimuthalEquidistant( const util::PropertyMap &properties, const common::Angle &latitudeNatOrigin, const common::Angle &longitudeNatOrigin, const common::Length &falseEasting, const common::Length &falseNorthing) { - return create(properties, EPSG_CODE_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT, + return create(properties, EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT, createParams(latitudeNatOrigin, longitudeNatOrigin, falseEasting, falseNorthing)); } From ba8b2a7fd995e185dd6115bc0595b8ebdf6438f5 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 15:31:55 +0100 Subject: [PATCH 115/199] Map ESRI Azimuthal_Equidistant to EPSG:1125 --- scripts/build_esri_projection_mapping.py | 2 +- src/iso19111/operation/esriparammappings.cpp | 5 ++--- test/unit/test_io.cpp | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/build_esri_projection_mapping.py b/scripts/build_esri_projection_mapping.py index 6e103e9f21..f82e3eb180 100644 --- a/scripts/build_esri_projection_mapping.py +++ b/scripts/build_esri_projection_mapping.py @@ -342,7 +342,7 @@ - Longitude_Of_2nd_Point: "Longitude of 2nd point" - Azimuthal_Equidistant: - WKT2_name: EPSG_NAME_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT + WKT2_name: EPSG_NAME_METHOD_AZIMUTHAL_EQUIDISTANT Params: - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING diff --git a/src/iso19111/operation/esriparammappings.cpp b/src/iso19111/operation/esriparammappings.cpp index 67241f0c6b..c7971f1c2b 100644 --- a/src/iso19111/operation/esriparammappings.cpp +++ b/src/iso19111/operation/esriparammappings.cpp @@ -1059,9 +1059,8 @@ static const ESRIMethodMapping esriMappings[] = { {"Robinson", PROJ_WKT2_NAME_METHOD_ROBINSON, 0, paramsESRI_Robinson}, {"Two_Point_Equidistant", PROJ_WKT2_NAME_METHOD_TWO_POINT_EQUIDISTANT, 0, paramsESRI_Two_Point_Equidistant}, - {"Azimuthal_Equidistant", EPSG_NAME_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT, - EPSG_CODE_METHOD_MODIFIED_AZIMUTHAL_EQUIDISTANT, - paramsESRI_Azimuthal_Equidistant}, + {"Azimuthal_Equidistant", EPSG_NAME_METHOD_AZIMUTHAL_EQUIDISTANT, + EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT, paramsESRI_Azimuthal_Equidistant}, {"Lambert_Azimuthal_Equal_Area", EPSG_NAME_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA, EPSG_CODE_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA, diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 7272873779..172dd6d29e 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -6684,7 +6684,7 @@ static const struct { {"False_Northing", 2}, {"Central_Meridian", 3}, {"Latitude_Of_Origin", 4}}, - "Modified Azimuthal Equidistant", + "Azimuthal Equidistant", { {"Latitude of natural origin", 4}, {"Longitude of natural origin", 3}, From 438e30bfa51621e9d819b429e14d7e7e6ca10204 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 15:32:23 +0100 Subject: [PATCH 116/199] Database: update to EPSG 11.002 --- data/sql/alias_name.sql | 4 +++ data/sql/compound_crs.sql | 2 +- data/sql/conversion.sql | 16 ++++++++++ data/sql/conversion_triggers.sql | 3 ++ data/sql/deprecation.sql | 1 - data/sql/extent.sql | 13 ++++++-- data/sql/grid_transformation.sql | 4 +-- data/sql/helmert_transformation.sql | 10 +++++++ data/sql/metadata.sql | 4 +-- data/sql/projected_crs.sql | 46 +++++++++++++++++++++-------- data/sql/scope.sql | 1 + data/sql/supersession.sql | 2 ++ test/unit/test_operationfactory.cpp | 7 +++-- 13 files changed, 90 insertions(+), 23 deletions(-) diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index 64fc64e3a9..1ea26e095c 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -7959,3 +7959,7 @@ INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4737','1009','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4737','KGD2002 - LatLon','EPSG'); INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5193','1010','EPSG'); INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5193','KVD1964 - NOHt','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10731','ETRS89/DREF91/R16 / UTM 31','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10733','ETRS89/DREF91/R16 / UTM 33','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10516','NAD83(2011) / WISCRS Adjusted Jackson (ftUS)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10732','ETRS89/DREF91/R16 / UTM 32','EPSG'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index 370ff9897b..bf5c1c8b5d 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -732,7 +732,7 @@ INSERT INTO "compound_crs" VALUES('EPSG','9920','OSGB36 / British National Grid INSERT INTO "usage" VALUES('EPSG','17332','compound_crs','EPSG','9920','EPSG','4390','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','9922','ETRS89 / ITM + BI height',NULL,'EPSG','2157','EPSG','9451',0); INSERT INTO "usage" VALUES('EPSG','17338','compound_crs','EPSG','9922','EPSG','1305','EPSG','1026'); -INSERT INTO "compound_crs" VALUES('EPSG','9924','ETRS89 + DHHN2016 height',NULL,'EPSG','4258','EPSG','7837',1); +INSERT INTO "compound_crs" VALUES('EPSG','9924','ETRS89 + DHHN2016 height',NULL,'EPSG','4258','EPSG','7837',0); INSERT INTO "usage" VALUES('EPSG','17168','compound_crs','EPSG','9924','EPSG','3339','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','9928','DB_REF2003 zone 2',NULL,'EPSG','5682','EPSG','9923',0); INSERT INTO "usage" VALUES('EPSG','17297','compound_crs','EPSG','9928','EPSG','1624','EPSG','1141'); diff --git a/data/sql/conversion.sql b/data/sql/conversion.sql index 896f80eff6..cbd23ff00d 100644 --- a/data/sql/conversion.sql +++ b/data/sql/conversion.sql @@ -1976,6 +1976,8 @@ INSERT INTO "conversion" VALUES('EPSG','10502','Colorado CS27 Central zone','',' INSERT INTO "usage" VALUES('EPSG','11131','conversion','EPSG','10502','EPSG','2183','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10503','Colorado CS27 South zone','','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',36.4,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',38.26,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',37.14,'EPSG','9110','EPSG','8826','Easting at false origin',2000000.0,'EPSG','9003','EPSG','8827','Northing at false origin',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11132','conversion','EPSG','10503','EPSG','2185','EPSG','1142'); +INSERT INTO "conversion" VALUES('EPSG','10515','WISCRS Adjusted Jackson County (ftUS)','Modification of WISCRS Jackson County (ftUS) (code 7451), designed to enable positioning using the WISCORS network referenced to NAD83(2011) to be used for referencing to NAD83(HARN) by approximating the NAD83(2011) to NAD83(HARN) NADCON5 transformation.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',44.151200716,'EPSG','9110','EPSG','8802','Longitude of natural origin',-90.503946745,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0000353,'EPSG','9201','EPSG','8806','False easting',88582.5,'EPSG','9003','EPSG','8807','False northing',82020.833,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20746','conversion','EPSG','10515','EPSG','4343','EPSG','1029'); INSERT INTO "conversion" VALUES('EPSG','10531','SPCS83 Colorado North zone (meter)','See code 15313 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',39.2,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',40.47,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',39.43,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11133','conversion','EPSG','10531','EPSG','2184','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10532','SPCS83 Colorado Central zone (meter)','See code 15314 for equivalent non-metric definition.','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',37.5,'EPSG','9110','EPSG','8822','Longitude of false origin',-105.3,'EPSG','9110','EPSG','8823','Latitude of 1st standard parallel',39.45,'EPSG','9110','EPSG','8824','Latitude of 2nd standard parallel',38.27,'EPSG','9110','EPSG','8826','Easting at false origin',914401.8289,'EPSG','9001','EPSG','8827','Northing at false origin',304800.6096,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0); @@ -4427,6 +4429,20 @@ INSERT INTO "conversion" VALUES('EPSG','17725','Alberta 3-degree TM reference me INSERT INTO "usage" VALUES('EPSG','12620','conversion','EPSG','17725','EPSG','3540','EPSG','1096'); INSERT INTO "conversion" VALUES('EPSG','17726','Alberta 3-degree TM reference meridian 120 W','If used for rural area control markers, area of use is amended to west of 118°W; however use of UTM encouraged in these areas.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-120.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9999,'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 "usage" VALUES('EPSG','12621','conversion','EPSG','17726','EPSG','3540','EPSG','1096'); +INSERT INTO "conversion" VALUES('EPSG','17771','Equi7 projection - Africa','Basis for the Equi7 grid for Africa. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',8.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',21.5,'EPSG','9102','EPSG','8806','False easting',5621452.02,'EPSG','9001','EPSG','8807','False northing',5990638.423,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20872','conversion','EPSG','17771','EPSG','4745','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17772','Equi7 projection - Antarctica','Basis for the Equi7 grid for Antarctica. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',-90.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',0.0,'EPSG','9102','EPSG','8806','False easting',3714266.977,'EPSG','9001','EPSG','8807','False northing',3402016.506,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20873','conversion','EPSG','17772','EPSG','4746','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17773','Equi7 projection - Asia','Basis for the Equi7 grid for Asia. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',47.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',94.0,'EPSG','9102','EPSG','8806','False easting',4340913.848,'EPSG','9001','EPSG','8807','False northing',4812712.923,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20874','conversion','EPSG','17773','EPSG','4747','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17774','Equi7 projection - Europe','Basis for the Equi7 grid for Europe. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',53.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',24.0,'EPSG','9102','EPSG','8806','False easting',5837287.82,'EPSG','9001','EPSG','8807','False northing',2121415.696,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20875','conversion','EPSG','17774','EPSG','4748','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17775','Equi7 projection - North America','Basis for the Equi7 grid for North America. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',52.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-97.5,'EPSG','9102','EPSG','8806','False easting',8264722.177,'EPSG','9001','EPSG','8807','False northing',4867518.353,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20876','conversion','EPSG','17775','EPSG','4749','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17776','Equi7 projection - Oceania','Basis for the Equi7 grid for Oceania. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',-19.5,'EPSG','9102','EPSG','8802','Longitude of natural origin',131.5,'EPSG','9102','EPSG','8806','False easting',6988408.536,'EPSG','9001','EPSG','8807','False northing',7654884.537,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20877','conversion','EPSG','17776','EPSG','4751','EPSG','1287'); +INSERT INTO "conversion" VALUES('EPSG','17777','Equi7 projection - South America','Basis for the Equi7 grid for South America. Designed in 2014 to efficiently handle the archiving, processing, and displaying of high resolution raster data over land while preserving geometric accuracy. The projection is neither conformal nor equal-area.','EPSG','1125','Azimuthal Equidistant','EPSG','8801','Latitude of natural origin',-14.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-60.5,'EPSG','9102','EPSG','8806','False easting',7257179.236,'EPSG','9001','EPSG','8807','False northing',5592024.446,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','20878','conversion','EPSG','17777','EPSG','4750','EPSG','1287'); INSERT INTO "conversion" VALUES('EPSG','17794','MTM Nova Scotia zone 4','','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',4500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','12622','conversion','EPSG','17794','EPSG','1534','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','17795','MTM Nova Scotia zone 5','','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',5500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); diff --git a/data/sql/conversion_triggers.sql b/data/sql/conversion_triggers.sql index 3ba971c0c0..6f6ae0ee2d 100644 --- a/data/sql/conversion_triggers.sql +++ b/data/sql/conversion_triggers.sql @@ -130,6 +130,9 @@ BEGIN SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Transverse Mercator (South Orientated)') WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9808' AND (NEW.method_name != 'Transverse Mercator (South Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL); + SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Azimuthal Equidistant') + WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '1125' AND (NEW.method_name != 'Azimuthal Equidistant' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8806' OR NEW.param3_name != 'False easting' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'length' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8807' OR NEW.param4_name != 'False northing' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name IS NOT NULL OR NEW.param5_code IS NOT NULL OR NEW.param5_name IS NOT NULL OR NEW.param5_value IS NOT NULL OR NEW.param5_uom_auth_name IS NOT NULL OR NEW.param5_uom_code IS NOT NULL OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL); + SELECT RAISE(ABORT, 'insert on conversion violates constraint: bad parameters for Lambert Conic Conformal (West Orientated)') WHERE NEW.deprecated != 1 AND NEW.method_auth_name = 'EPSG' AND NEW.method_code = '9826' AND (NEW.method_name != 'Lambert Conic Conformal (West Orientated)' OR NEW.param1_auth_name != 'EPSG' OR NEW.param1_code != '8801' OR NEW.param1_name != 'Latitude of natural origin' OR NEW.param1_value IS NULL OR NEW.param1_uom_auth_name IS NULL OR NEW.param1_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param1_uom_auth_name AND code = NEW.param1_uom_code) != 'angle' OR NEW.param2_auth_name != 'EPSG' OR NEW.param2_code != '8802' OR NEW.param2_name != 'Longitude of natural origin' OR NEW.param2_value IS NULL OR NEW.param2_uom_auth_name IS NULL OR NEW.param2_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param2_uom_auth_name AND code = NEW.param2_uom_code) != 'angle' OR NEW.param3_auth_name != 'EPSG' OR NEW.param3_code != '8805' OR NEW.param3_name != 'Scale factor at natural origin' OR NEW.param3_value IS NULL OR NEW.param3_uom_auth_name IS NULL OR NEW.param3_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param3_uom_auth_name AND code = NEW.param3_uom_code) != 'scale' OR NEW.param4_auth_name != 'EPSG' OR NEW.param4_code != '8806' OR NEW.param4_name != 'False easting' OR NEW.param4_value IS NULL OR NEW.param4_uom_auth_name IS NULL OR NEW.param4_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param4_uom_auth_name AND code = NEW.param4_uom_code) != 'length' OR NEW.param5_auth_name != 'EPSG' OR NEW.param5_code != '8807' OR NEW.param5_name != 'False northing' OR NEW.param5_value IS NULL OR NEW.param5_uom_auth_name IS NULL OR NEW.param5_uom_code IS NULL OR (SELECT type FROM unit_of_measure WHERE auth_name = NEW.param5_uom_auth_name AND code = NEW.param5_uom_code) != 'length' OR NEW.param6_auth_name IS NOT NULL OR NEW.param6_code IS NOT NULL OR NEW.param6_name IS NOT NULL OR NEW.param6_value IS NOT NULL OR NEW.param6_uom_auth_name IS NOT NULL OR NEW.param6_uom_code IS NOT NULL OR NEW.param7_auth_name IS NOT NULL OR NEW.param7_code IS NOT NULL OR NEW.param7_name IS NOT NULL OR NEW.param7_value IS NOT NULL OR NEW.param7_uom_auth_name IS NOT NULL OR NEW.param7_uom_code IS NOT NULL); diff --git a/data/sql/deprecation.sql b/data/sql/deprecation.sql index 98a1c34336..3cd2102545 100644 --- a/data/sql/deprecation.sql +++ b/data/sql/deprecation.sql @@ -463,6 +463,5 @@ INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5832','EPSG','9928','EPS INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5833','EPSG','9929','EPSG'); INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5834','EPSG','9930','EPSG'); INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5835','EPSG','9931','EPSG'); -INSERT INTO "deprecation" VALUES('compound_crs','EPSG','9924','EPSG','10293','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','8395','EPSG','10285','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','10480','EPSG','10481','EPSG'); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 9af8f67024..7e9a081b3d 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -1837,8 +1837,8 @@ INSERT INTO "extent" VALUES('EPSG','2857','Europe - 18°W to 12°W','Europe - be INSERT INTO "extent" VALUES('EPSG','2858','Europe - 12°W to 6°W','Europe - between 12°W and 6°W.',36.0,62.33,-12.0,-6.0,1); INSERT INTO "extent" VALUES('EPSG','2859','Europe - 6°W to 0°W','Europe - between 6°W and 0°W.',34.75,62.33,-6.0,0.0,1); INSERT INTO "extent" VALUES('EPSG','2860','Germany - west of 6°E','Germany - onshore and offshore west of 6°E.',50.97,55.92,3.34,6.0,0); -INSERT INTO "extent" VALUES('EPSG','2861','Germany - 6°E to 12°E','Germany - onshore and offshore between 6°E and 12°E, including Mecklenburg-Vorpommern west of 12°E and Schleswig-Holstein.',47.27,55.47,6.0,12.0,0); -INSERT INTO "extent" VALUES('EPSG','2862','Germany - east of 12°E','Germany - onshore and offshore east of 12°E, including Brandenburg (all state, including that part west of 12°E) and Mecklenburg-Vorpommern east of 12°E.',47.46,55.03,11.57,15.04,0); +INSERT INTO "extent" VALUES('EPSG','2861','Germany - 6°E to 12°E','Germany - onshore and offshore between 6°E and 12°E - Baden-Wurtemberg, Bayern, Bremen, Hamburg, Hessen, Mecklenburg-Vorpommern, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thuringen.',47.27,55.47,6.0,12.01,0); +INSERT INTO "extent" VALUES('EPSG','2862','Germany - east of 12°E','Germany - onshore and offshore east of 12°E, together with that part of Brandenburg state west of 12°E - Bayern, Berlin, Brandenburg (all state), Mecklenburg-Vorpommern, Sachsen, Sachsen-Anhalt, Thuringen.',47.46,55.03,11.57,15.04,0); INSERT INTO "extent" VALUES('EPSG','2863','Europe - 18°E to 24°E','Europe - between 18°E and 24°E.',34.8,75.0,18.0,24.0,1); INSERT INTO "extent" VALUES('EPSG','2864','Europe - 24°E to 30°E','Europe - between 24°E and 30°E.',34.8,75.0,24.0,30.0,1); INSERT INTO "extent" VALUES('EPSG','2865','Europe - 30°E to 36°E','Europe - between 30°E and 36°E.',34.5,75.0,30.0,36.0,1); @@ -2877,7 +2877,7 @@ INSERT INTO "extent" VALUES('EPSG','3897','France - offshore Mediterranean','Fra INSERT INTO "extent" VALUES('EPSG','3898','Ukraine - 24°E to 30°E','Ukraine - between 24°E and 30°E, onshore and offshore.',45.1,51.96,24.0,30.0,0); INSERT INTO "extent" VALUES('EPSG','3899','Europe - South Permian basin','Europe - South Permian basin.',50.5,56.0,-1.67,22.0,0); INSERT INTO "extent" VALUES('EPSG','3900','Europe - onshore - eastern - S-42(83)','Onshore Bulgaria, Czechia, Germany (former DDR), Hungary and Slovakia.',41.24,54.74,9.92,28.68,0); -INSERT INTO "extent" VALUES('EPSG','3901','Germany - onshore west of 6°E','Germany - onshore west of 6°E.',50.97,51.83,5.86,6.0,0); +INSERT INTO "extent" VALUES('EPSG','3901','Germany - onshore west of 6°E','Germany - onshore west of 6°E - Nordrhein-Westfalen.',50.97,51.83,5.86,6.01,0); INSERT INTO "extent" VALUES('EPSG','3902','Reunion','Reunion - onshore and offshore.',-24.72,-18.28,51.83,58.24,0); INSERT INTO "extent" VALUES('EPSG','3903','Ukraine - 30°E to 36°E','Ukraine - between 30°E and 36°E, onshore and offshore.',43.18,52.38,30.0,36.0,0); INSERT INTO "extent" VALUES('EPSG','3904','Germany - onshore between 6°E and 12°E','Germany - onshore between 6°E and 12°E.',47.27,55.09,6.0,12.0,0); @@ -3720,3 +3720,10 @@ INSERT INTO "extent" VALUES('EPSG','4741','Spain - Alboran','Spain - Alboran isl INSERT INTO "extent" VALUES('EPSG','4742','Netherlands - offshore and nearshore ','Netherlands - offshore North Sea and nearshore.',51.32,55.77,2.53,7.21,0); INSERT INTO "extent" VALUES('EPSG','4743','UK - Coventry','United Kingdom (UK) - in and around the area of Coventry city centre and the route to Birmingham airport.',52.3,52.5,-1.85,-1.3,0); INSERT INTO "extent" VALUES('EPSG','4744','Europe - Brenner','Austria and Italy - on or related to the Brenner Base Tunnel rail route from Innsbruck to Fortezza (Franzensfeste).',46.45,47.33,11.04,11.91,0); +INSERT INTO "extent" VALUES('EPSG','4745','Africa - Equi7','Africa and the Arabian peninsula.',-43.89,38.8,-31.68,79.3,0); +INSERT INTO "extent" VALUES('EPSG','4746','Antarctica - Equi7','Antarctica.',-90.0,-34.47,-180.0,180.0,0); +INSERT INTO "extent" VALUES('EPSG','4747','Asia - Equi7','Asia excluding Russia west of the Ural Mountains.',-10.8,90.0,31.45,-168.43,0); +INSERT INTO "extent" VALUES('EPSG','4748','Europe - Equi7','Europe including Russia west of the Ural Mountains.',29.24,90.0,-42.01,51.73,0); +INSERT INTO "extent" VALUES('EPSG','4749','North America - Equi7','North America, the Caribbean and Central America excluding Panama.',7.98,90.0,167.65,15.72,0); +INSERT INTO "extent" VALUES('EPSG','4750','South America - Equi7','South America including Panama.',-59.87,30.31,-124.82,-14.58,0); +INSERT INTO "extent" VALUES('EPSG','4751','Oceania - Equi7','Australasia and the western Pacific Ocean.',-60.56,21.57,72.37,-121.05,0); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index f36267e336..678e9c2768 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1210,9 +1210,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9919','ETRS89 to ETRS89 + BI he INSERT INTO "usage" VALUES('EPSG','17342','grid_transformation','EPSG','9919','EPSG','1305','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9921','Genoa 1942 height to EVRF2019 mean-tide height (1)','Determined at 26 points, SD 0.054m. Offset: mean -0.328m, minimum -0.469m, maximum -0.249m. The extent corresponds to the area in Italy containing benchmarks with EVRF heights.','EPSG','1085','Vertical Offset by Grid Interpolation (asc)','EPSG','5214','EPSG','9390',0.108,'EPSG','8732','Vertical offset file','it_2019m.asc',NULL,NULL,NULL,NULL,'EPSG','4258','EuG-Ita 2019m 2020-09',0); INSERT INTO "usage" VALUES('EPSG','17318','grid_transformation','EPSG','9921','EPSG','4659','EPSG','1059'); -INSERT INTO "grid_transformation" VALUES('EPSG','9925','ETRS89 to DHHN2016 height (1)','Accuracy approx. 1 cm in the lowlands, approx. 2 cm in the high mountains and 2 - 6 cm offshore. For reversible alternative to this transformation see ETRS89 to ETRS89 + DHHN2016 height (1) (code 9926).','EPSG','1082','Geographic3D to GravityRelatedHeight (txt)','EPSG','4937','EPSG','7837',0.02,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,NULL,NULL,'BKG-Deu 2016',1); +INSERT INTO "grid_transformation" VALUES('EPSG','9925','ETRS89 to DHHN2016 height (1)','Better model accuracy (approx. 1 cm in the lowlands, approx. 2 cm in the high mountains and 2 - 6 cm offshore) if applied to ETRS89/DREF91/2016 (CT code 10294). For reversible alternative to this CT see ETRS89 to ETRS89 + DHHN2016 height (1) (code 9926).','EPSG','1082','Geographic3D to GravityRelatedHeight (txt)','EPSG','4937','EPSG','7837',0.1,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,NULL,NULL,'BKG-Deu 2016',0); INSERT INTO "usage" VALUES('EPSG','17171','grid_transformation','EPSG','9925','EPSG','3339','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','9926','ETRS89 to ETRS89 + DHHN2016 height (1)','Reversible alternative to ETRS89 to DHHN2016 height (1) (code 9925). Accuracy approx. 1 cm in the lowlands, approx. 2 cm in the high mountains and 2 - 6 cm offshore.','EPSG','1098','Geog3D to Geog2D+GravityRelatedHeight (txt)','EPSG','4937','EPSG','9924',0.02,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,'EPSG','4258','BKG-Deu 2016',1); +INSERT INTO "grid_transformation" VALUES('EPSG','9926','ETRS89 to ETRS89 + DHHN2016 height (1)','Reversible alternative to ETRS89 to DHHN2016 height (1) (code 9925). Geoid model accuracy approx. 1 cm in the lowlands, approx. 2 cm in the high mountains and 2 - 6 cm offshore when applied to ETRS89/DREF91/2016 but no better than 0.1m when ETRS89 used.','EPSG','1098','Geog3D to Geog2D+GravityRelatedHeight (txt)','EPSG','4937','EPSG','9924',0.1,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,'EPSG','4258','BKG-Deu 2016',0); INSERT INTO "usage" VALUES('EPSG','17170','grid_transformation','EPSG','9926','EPSG','3339','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9940','DHDN to ETRS89 (11)','Official transformation of Hessen for the land survey register (ALKIS).','EPSG','9615','NTv2','EPSG','4314','EPSG','4258',0.1,'EPSG','8656','Latitude and longitude difference file','HeTa2010.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'LVGL-Deu HE 2010',0); INSERT INTO "usage" VALUES('EPSG','17340','grid_transformation','EPSG','9940','EPSG','4660','EPSG','1055'); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index d1027e9175..1dd7fee5ce 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -2638,6 +2638,16 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10419','NAD83(CSRS)v8 to NAD INSERT INTO "usage" VALUES('EPSG','20195','helmert_transformation','EPSG','10419','EPSG','4544','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','10478','BBT2000 to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10475','EPSG','4326',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,'BBT-Aut-Ita',0); INSERT INTO "usage" VALUES('EPSG','20343','helmert_transformation','EPSG','10478','EPSG','4744','EPSG','1252'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10511','NAD83(CSRS)v2 to NAD83(CSRS)v3 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. NAD83(CSRS)v2 and NAD83(CSRS)v3 are referenced to the same coordinate reference epoch (1997.00) and considered compatible with each other at the centimetre level.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8233','EPSG','8238',0.0,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NRCan-Can 1997',0); +INSERT INTO "usage" VALUES('EPSG','20612','helmert_transformation','EPSG','10511','EPSG','1061','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10512','NAD83(CSRS)v6 to NAD83(CSRS)v7 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. NAD83(CSRS)v6 and NAD83(CSRS)v7 are referenced to the same coordinate reference epoch (2010.00) and considered compatible with each other at the centimetre level.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8250','EPSG','8253',0.01,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NRCan-Can 2010',0); +INSERT INTO "usage" VALUES('EPSG','20890','helmert_transformation','EPSG','10512','EPSG','1061','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10513','NAD83(CSRS)v6 to NAD83(CSRS)v8 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. NAD83(CSRS)v6 and NAD83(CSRS)v8 are referenced to the same coordinate reference epoch (2010.00) and considered compatible with each other at the centimetre level.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8250','EPSG','10412',0.01,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NRCan-Can 2010',0); +INSERT INTO "usage" VALUES('EPSG','20614','helmert_transformation','EPSG','10513','EPSG','1061','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10514','NAD83(CSRS)v7 to NAD83(CSRS)v8 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. NAD83(CSRS)7 and NAD83(CSRS)v8 are referenced to the same coordinate reference epoch (2010.00) and considered compatible with each other at the millimetre level.','EPSG','1033','Position Vector transformation (geocentric domain)','EPSG','8253','EPSG','10412',0.001,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NRCan-Can 2010',0); +INSERT INTO "usage" VALUES('EPSG','20891','helmert_transformation','EPSG','10514','EPSG','1061','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10543','GDM2000 to WGS 84 (1)','Approximation at the +/- 1m level assuming that GDM2000 is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4742','EPSG','4326',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,'IOGP-Mys 1m',0); +INSERT INTO "usage" VALUES('EPSG','20831','helmert_transformation','EPSG','10543','EPSG','1151','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','15483','Tokyo to JGD2000 (1)','Derived at Tokyo datum origin. Accuracy on main islands 9m. Also used on remote islands with significantly less accuracy: Io-To 793m, Kitadaito and Minamidaito Jima 642m, Tarama and Minna Shima 560m, Ishigaki and Taketomi Jima 251m, Yonaguni Jima 248m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4612',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GSI-Jpn',0); INSERT INTO "usage" VALUES('EPSG','11494','helmert_transformation','EPSG','15483','EPSG','3957','EPSG','1142'); INSERT INTO "helmert_transformation" VALUES('EPSG','15484','Tokyo to WGS 84 (108)','Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4326',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn',0); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index af30e5df93..9febb6353e 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.001'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-11-30'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.002'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-01-07'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql index adf714a286..1ba1d76f6c 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -4107,7 +4107,7 @@ INSERT INTO "usage" VALUES('EPSG','3432','projected_crs','EPSG','4588','EPSG','1 INSERT INTO "projected_crs" VALUES('EPSG','4589','New Beijing / Gauss-Kruger CM 135E',NULL,'EPSG','4530','EPSG','4555','EPSG','16323',NULL,0); INSERT INTO "usage" VALUES('EPSG','3433','projected_crs','EPSG','4589','EPSG','1597','EPSG','1211'); INSERT INTO "projected_crs" VALUES('EPSG','4647','ETRS89 / UTM zone 32N (zE-N)',NULL,'EPSG','4400','EPSG','4258','EPSG','4648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','3481','projected_crs','EPSG','4647','EPSG','2861','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','3481','projected_crs','EPSG','4647','EPSG','2861','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','4652','New Beijing / 3-degree Gauss-Kruger zone 25',NULL,'EPSG','4530','EPSG','4555','EPSG','16285',NULL,0); INSERT INTO "usage" VALUES('EPSG','3482','projected_crs','EPSG','4652','EPSG','2711','EPSG','1055'); INSERT INTO "projected_crs" VALUES('EPSG','4653','New Beijing / 3-degree Gauss-Kruger zone 26',NULL,'EPSG','4530','EPSG','4555','EPSG','16286',NULL,0); @@ -4671,15 +4671,15 @@ INSERT INTO "usage" VALUES('EPSG','4108','projected_crs','EPSG','5644','EPSG','3 INSERT INTO "projected_crs" VALUES('EPSG','5646','NAD83 / Vermont (ftUS)',NULL,'EPSG','4497','EPSG','4269','EPSG','5645',NULL,0); INSERT INTO "usage" VALUES('EPSG','4109','projected_crs','EPSG','5646','EPSG','1414','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','5649','ETRS89 / UTM zone 31N (zE-N)',NULL,'EPSG','4400','EPSG','4258','EPSG','5647',NULL,0); -INSERT INTO "usage" VALUES('EPSG','4110','projected_crs','EPSG','5649','EPSG','2860','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','4110','projected_crs','EPSG','5649','EPSG','2860','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','5650','ETRS89 / UTM zone 33N (zE-N)',NULL,'EPSG','4400','EPSG','4258','EPSG','5648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','4111','projected_crs','EPSG','5650','EPSG','2862','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','4111','projected_crs','EPSG','5650','EPSG','2862','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','5651','ETRS89 / UTM zone 31N (N-zE)',NULL,'EPSG','4500','EPSG','4258','EPSG','5647',NULL,0); -INSERT INTO "usage" VALUES('EPSG','4112','projected_crs','EPSG','5651','EPSG','2860','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','4112','projected_crs','EPSG','5651','EPSG','2860','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','5652','ETRS89 / UTM zone 32N (N-zE)',NULL,'EPSG','4500','EPSG','4258','EPSG','4648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','4113','projected_crs','EPSG','5652','EPSG','2861','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','4113','projected_crs','EPSG','5652','EPSG','2861','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','5653','ETRS89 / UTM zone 33N (N-zE)',NULL,'EPSG','4500','EPSG','4258','EPSG','5648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','4114','projected_crs','EPSG','5653','EPSG','2862','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','4114','projected_crs','EPSG','5653','EPSG','2862','EPSG','1153'); INSERT INTO "projected_crs" VALUES('EPSG','5654','NAD83(HARN) / Vermont (ftUS)',NULL,'EPSG','4497','EPSG','4152','EPSG','5645',NULL,0); INSERT INTO "usage" VALUES('EPSG','4115','projected_crs','EPSG','5654','EPSG','1414','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','5655','NAD83(NSRS2007) / Vermont (ftUS)',NULL,'EPSG','4497','EPSG','4759','EPSG','5645',NULL,0); @@ -7492,17 +7492,17 @@ INSERT INTO "usage" VALUES('EPSG','19184','projected_crs','EPSG','10280','EPSG', INSERT INTO "projected_crs" VALUES('EPSG','10285','ETRS89/DREF91/2016 / 3-degree Gauss-Kruger zone 3',NULL,'EPSG','4400','EPSG','10284','EPSG','16263',NULL,0); INSERT INTO "usage" VALUES('EPSG','19567','projected_crs','EPSG','10285','EPSG','4490','EPSG','1029'); INSERT INTO "projected_crs" VALUES('EPSG','10286','ETRS89/DREF91/2016 / UTM zone 31N (N-zE)',NULL,'EPSG','4500','EPSG','10284','EPSG','5647',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19247','projected_crs','EPSG','10286','EPSG','2860','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19247','projected_crs','EPSG','10286','EPSG','2860','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10287','ETRS89/DREF91/2016 / UTM zone 31N (zE-N)',NULL,'EPSG','4400','EPSG','10284','EPSG','5647',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19248','projected_crs','EPSG','10287','EPSG','2860','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19248','projected_crs','EPSG','10287','EPSG','2860','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10288','ETRS89/DREF91/2016 / UTM zone 32N (N-zE)',NULL,'EPSG','4500','EPSG','10284','EPSG','4648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19249','projected_crs','EPSG','10288','EPSG','2861','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19249','projected_crs','EPSG','10288','EPSG','2861','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10289','ETRS89/DREF91/2016 / UTM zone 32N (zE-N)',NULL,'EPSG','4400','EPSG','10284','EPSG','4648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19250','projected_crs','EPSG','10289','EPSG','2861','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19250','projected_crs','EPSG','10289','EPSG','2861','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10290','ETRS89/DREF91/2016 / UTM zone 33N (N-zE)',NULL,'EPSG','4500','EPSG','10284','EPSG','5648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19251','projected_crs','EPSG','10290','EPSG','2862','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19251','projected_crs','EPSG','10290','EPSG','2862','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10291','ETRS89/DREF91/2016 / UTM zone 33N (zE-N)',NULL,'EPSG','4400','EPSG','10284','EPSG','5648',NULL,0); -INSERT INTO "usage" VALUES('EPSG','19252','projected_crs','EPSG','10291','EPSG','2862','EPSG','1056'); +INSERT INTO "usage" VALUES('EPSG','19252','projected_crs','EPSG','10291','EPSG','2862','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10306','LKS-2020 / Latvia TM',NULL,'EPSG','4530','EPSG','10305','EPSG','19990',NULL,0); INSERT INTO "usage" VALUES('EPSG','19561','projected_crs','EPSG','10306','EPSG','1139','EPSG','1056'); INSERT INTO "projected_crs" VALUES('EPSG','10314','RGNC15 / Lambert New Caledonia 2015',NULL,'EPSG','4400','EPSG','10310','EPSG','10313',NULL,0); @@ -7559,6 +7559,14 @@ INSERT INTO "projected_crs" VALUES('EPSG','10480','NAD83 / TWDB GM',NULL,'EPSG', INSERT INTO "usage" VALUES('EPSG','20355','projected_crs','EPSG','10480','EPSG','1412','EPSG','1286'); INSERT INTO "projected_crs" VALUES('EPSG','10481','NAD83 / TWDB GM',NULL,'EPSG','4497','EPSG','4269','EPSG','10479',NULL,0); INSERT INTO "usage" VALUES('EPSG','20356','projected_crs','EPSG','10481','EPSG','1412','EPSG','1286'); +INSERT INTO "projected_crs" VALUES('EPSG','10516','NAD83(2011) / Adjusted Jackson (ftUS)',NULL,'EPSG','4497','EPSG','6318','EPSG','10515',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20747','projected_crs','EPSG','10516','EPSG','4343','EPSG','1029'); +INSERT INTO "projected_crs" VALUES('EPSG','10731','ETRS89/DREF91/2016 / UTM zone 31N',NULL,'EPSG','4400','EPSG','10284','EPSG','16031',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20592','projected_crs','EPSG','10731','EPSG','2860','EPSG','1054'); +INSERT INTO "projected_crs" VALUES('EPSG','10732','ETRS89/DREF91/2016 / UTM zone 32N',NULL,'EPSG','4400','EPSG','10284','EPSG','16032',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20896','projected_crs','EPSG','10732','EPSG','2861','EPSG','1054'); +INSERT INTO "projected_crs" VALUES('EPSG','10733','ETRS89/DREF91/2016 / UTM zone 33N',NULL,'EPSG','4400','EPSG','10284','EPSG','16033',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20594','projected_crs','EPSG','10733','EPSG','2862','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','11114','MAGNA-SIRGAS 2018 / Colombia Far West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18065',NULL,0); INSERT INTO "usage" VALUES('EPSG','18947','projected_crs','EPSG','11114','EPSG','3091','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','11115','MAGNA-SIRGAS 2018 / Colombia West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18066',NULL,0); @@ -9656,6 +9664,20 @@ INSERT INTO "projected_crs" VALUES('EPSG','27594','NTF (Paris) / Corse',NULL,'EP INSERT INTO "usage" VALUES('EPSG','6853','projected_crs','EPSG','27594','EPSG','1327','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','27700','OSGB36 / British National Grid',NULL,'EPSG','4400','EPSG','4277','EPSG','19916',NULL,0); INSERT INTO "usage" VALUES('EPSG','6854','projected_crs','EPSG','27700','EPSG','4390','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','27701','WGS 84 / Equi7 Africa',NULL,'EPSG','4400','EPSG','4326','EPSG','17771',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20884','projected_crs','EPSG','27701','EPSG','4745','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27702','WGS 84 / Equi7 Antarctica',NULL,'EPSG','1027','EPSG','4326','EPSG','17772',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20885','projected_crs','EPSG','27702','EPSG','4746','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27703','WGS 84 / Equi7 Asia',NULL,'EPSG','4400','EPSG','4326','EPSG','17773',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20886','projected_crs','EPSG','27703','EPSG','4747','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27704','WGS 84 / Equi7 Europe',NULL,'EPSG','4400','EPSG','4326','EPSG','17774',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20883','projected_crs','EPSG','27704','EPSG','4748','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27705','WGS 84 / Equi7 North America',NULL,'EPSG','4400','EPSG','4326','EPSG','17775',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20887','projected_crs','EPSG','27705','EPSG','4749','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27706','WGS 84 / Equi7 Oceania',NULL,'EPSG','4400','EPSG','4326','EPSG','17776',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20889','projected_crs','EPSG','27706','EPSG','4751','EPSG','1287'); +INSERT INTO "projected_crs" VALUES('EPSG','27707','WGS 84 / Equi7 South America',NULL,'EPSG','4400','EPSG','4326','EPSG','17777',NULL,0); +INSERT INTO "usage" VALUES('EPSG','20895','projected_crs','EPSG','27707','EPSG','4750','EPSG','1287'); INSERT INTO "projected_crs" VALUES('EPSG','28191','Palestine 1923 / Palestine Grid',NULL,'EPSG','4400','EPSG','4281','EPSG','18201',NULL,0); INSERT INTO "usage" VALUES('EPSG','6855','projected_crs','EPSG','28191','EPSG','1356','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','28192','Palestine 1923 / Palestine Belt',NULL,'EPSG','4400','EPSG','4281','EPSG','18202',NULL,0); diff --git a/data/sql/scope.sql b/data/sql/scope.sql index 34e69b61a0..0875829444 100644 --- a/data/sql/scope.sql +++ b/data/sql/scope.sql @@ -263,3 +263,4 @@ INSERT INTO "scope" VALUES('EPSG','1283','Geodesy. Defines LUREF from 2020.',0); INSERT INTO "scope" VALUES('EPSG','1284','Geodesy. Defines NAD83(CSRS)v8.',0); INSERT INTO "scope" VALUES('EPSG','1285','Engineering survey and mapping for the Brenner base tunnel (BBT) railway project.',0); INSERT INTO "scope" VALUES('EPSG','1286','Mapping and data analysis for Texas Water Development Board groundwater modeling.',0); +INSERT INTO "scope" VALUES('EPSG','1287','Continental mapping of raster data.',0); diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index da82e46385..3ffd3e2fb6 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -295,3 +295,5 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_tra INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10504','grid_transformation','EPSG','10509','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10505','grid_transformation','EPSG','10510','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9925','grid_transformation','EPSG','10294','EPSG',0); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9926','grid_transformation','EPSG','10295','EPSG',0); diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 299fefb20c..76f8aba63d 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -10444,8 +10444,11 @@ TEST(operation, createOperation_test_createOperationsWithDatumPivot_iter_1) { ASSERT_GE(list.size(), 1U); EXPECT_FALSE(list[0]->hasBallparkTransformation()); EXPECT_STREQ(list[0]->nameStr().c_str(), - "Inverse of NAD83(CSRS)v8 to NAD83(CSRS)v2 (1) + " - "NAD83(CSRS)v8 to NAD83(CSRS)v3 (1)"); + "Conversion from NAD83(CSRS)v2 (geog2D) to " + "NAD83(CSRS)v2 (geocentric) + " + "NAD83(CSRS)v2 to NAD83(CSRS)v3 (1) + " + "Conversion from NAD83(CSRS)v3 (geocentric) to " + "NAD83(CSRS)v3 (geog2D)"); EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=noop"); } From 7232d5e5e5009af96244c7f6bdec5b827c29bdaf Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 20:28:54 +0100 Subject: [PATCH 117/199] Fix most Coverity Scan performance warnings --- src/apps/proj.cpp | 3 +- src/apps/projinfo.cpp | 18 +-- src/filemanager.cpp | 6 +- src/grids.cpp | 6 +- src/iso19111/c_api.cpp | 24 +-- src/iso19111/coordinatesystem.cpp | 2 +- src/iso19111/crs.cpp | 60 ++++---- src/iso19111/datum.cpp | 26 ++-- src/iso19111/factory.cpp | 21 +-- src/iso19111/io.cpp | 143 +++++++++--------- .../operation/concatenatedoperation.cpp | 8 +- src/iso19111/operation/conversion.cpp | 4 +- .../operation/coordinateoperationfactory.cpp | 32 ++-- src/iso19111/operation/projbasedoperation.cpp | 4 +- src/iso19111/operation/singleoperation.cpp | 14 +- src/iso19111/operation/transformation.cpp | 20 +-- src/transformations/gridshift.cpp | 5 +- 17 files changed, 203 insertions(+), 193 deletions(-) diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 91295bc97c..eeaaaceb8f 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -536,6 +536,7 @@ int main(int argc, char **argv) { eargv++; eargc--; // logic copied from proj_factors function + // coverity[tainted_data] if (PJ *P = proj_create(nullptr, ocrs.c_str())) { auto type = proj_get_type(P); auto ctx = P->ctx; @@ -555,7 +556,7 @@ int main(int argc, char **argv) { try { auto crs = dynamic_cast( P->iso_obj.get()); - auto& dir = + auto &dir = crs->coordinateSystem()->axisList()[0]->direction(); swapAxisCrs = dir == NS_PROJ::cs::AxisDirection::NORTH || dir == NS_PROJ::cs::AxisDirection::SOUTH; diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index f1d5ed401f..9681324c2b 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -467,7 +467,7 @@ static void outputObject( std::cout << std::endl; } - auto projStringExportable = + const auto projStringExportable = nn_dynamic_pointer_cast(obj); bool alreadyOutputted = false; if (projStringExportable) { @@ -769,7 +769,7 @@ static void outputOperationSummary( std::cout << ", "; - auto name = op->nameStr(); + const auto &name = op->nameStr(); if (!name.empty()) { std::cout << name; } else { @@ -778,7 +778,7 @@ static void outputOperationSummary( std::cout << ", "; - auto accuracies = op->coordinateOperationAccuracies(); + const auto &accuracies = op->coordinateOperationAccuracies(); if (!accuracies.empty()) { std::cout << accuracies[0]->value() << " m"; } else { @@ -791,7 +791,7 @@ static void outputOperationSummary( std::cout << ", "; - auto domains = op->domains(); + const auto &domains = op->domains(); if (!domains.empty() && domains[0]->domainOfValidity() && domains[0]->domainOfValidity()->description().has_value()) { std::cout << *(domains[0]->domainOfValidity()->description()); @@ -805,7 +805,7 @@ static void outputOperationSummary( if (dbContext && getenv("PROJINFO_NO_GRID_CHECK") == nullptr) { try { - auto setGrids = op->gridsNeeded(dbContext, false); + const auto setGrids = op->gridsNeeded(dbContext, false); for (const auto &grid : setGrids) { if (!grid.available) { std::cout << ", at least one grid missing"; @@ -841,7 +841,7 @@ static bool is3DCRS(const CRSPtr &crs) { // --------------------------------------------------------------------------- static void outputOperations( - DatabaseContextPtr dbContext, const std::string &sourceCRSStr, + const DatabaseContextPtr &dbContext, const std::string &sourceCRSStr, const std::string &sourceEpoch, const std::string &targetCRSStr, const std::string &targetEpoch, const ExtentPtr &bboxFilter, CoordinateOperationContext::SpatialCriterion spatialCriterion, @@ -907,7 +907,7 @@ static void outputOperations( auto promoted = sourceCRS->promoteTo3D(std::string(), dbContext).as_nullable(); if (!promoted->identifiers().empty()) { - sourceCRS = promoted; + sourceCRS = std::move(promoted); } } else if (is3DCRS(sourceCRS) && !is3DCRS(targetCRS) && !targetCRS->identifiers().empty() && @@ -916,7 +916,7 @@ static void outputOperations( auto promoted = targetCRS->promoteTo3D(std::string(), dbContext).as_nullable(); if (!promoted->identifiers().empty()) { - targetCRS = promoted; + targetCRS = std::move(promoted); } } } @@ -1078,7 +1078,7 @@ int main(int argc, char **argv) { bool listCRSSpecified = false; for (int i = 1; i < argc; i++) { - std::string arg(argv[i]); + const std::string arg(argv[i]); if (arg == "-o" && i + 1 < argc) { outputSwitchSpecified = true; i++; diff --git a/src/filemanager.cpp b/src/filemanager.cpp index 3ea3ad6e47..c6c646ea01 100644 --- a/src/filemanager.cpp +++ b/src/filemanager.cpp @@ -1203,7 +1203,7 @@ const char *proj_context_get_user_writable_directory(PJ_CONTEXT *ctx, } #endif path += "/proj"; - ctx->user_writable_directory = path; + ctx->user_writable_directory = std::move(path); } if (create != FALSE) { CreateDirectoryRecursively(ctx, ctx->user_writable_directory); @@ -1655,7 +1655,7 @@ NS_PROJ::FileManager::open_resource_file(PJ_CONTEXT *ctx, const char *name, auto dbContext = getDBcontext(ctx); if (dbContext) { try { - auto filename = dbContext->getProjGridName(name); + const auto filename = dbContext->getProjGridName(name); if (!filename.empty()) { file.reset(reinterpret_cast( pj_open_lib_internal(ctx, filename.c_str(), "rb", @@ -1686,7 +1686,7 @@ NS_PROJ::FileManager::open_resource_file(PJ_CONTEXT *ctx, const char *name, auto dbContext = getDBcontext(ctx); if (dbContext) { try { - auto filename = dbContext->getOldProjGridName(name); + const auto filename = dbContext->getOldProjGridName(name); if (!filename.empty()) { file.reset(reinterpret_cast( pj_open_lib_internal(ctx, filename.c_str(), "rb", diff --git a/src/grids.cpp b/src/grids.cpp index fac25a6758..e9ae9649cb 100644 --- a/src/grids.cpp +++ b/src/grids.cpp @@ -1613,7 +1613,7 @@ VerticalShiftGridSet::open(PJ_CONTEXT *ctx, const std::string &filename) { if (!fp) { return nullptr; } - const auto actualName(fp->name()); + const auto &actualName(fp->name()); if (ends_with(actualName, "gtx") || ends_with(actualName, "GTX")) { auto grid = GTXVerticalShiftGrid::open(ctx, std::move(fp), actualName); if (!grid) { @@ -2657,7 +2657,7 @@ HorizontalShiftGridSet::open(PJ_CONTEXT *ctx, const std::string &filename) { if (!fp) { return nullptr; } - const auto actualName(fp->name()); + const auto &actualName(fp->name()); char header[160]; /* -------------------------------------------------------------------- */ @@ -3086,7 +3086,6 @@ GenericShiftGridSet::open(PJ_CONTEXT *ctx, const std::string &filename) { if (!fp) { return nullptr; } - const auto actualName(fp->name()); /* -------------------------------------------------------------------- */ /* Load a header, to determine the file type. */ @@ -3100,6 +3099,7 @@ GenericShiftGridSet::open(PJ_CONTEXT *ctx, const std::string &filename) { if (IsTIFF(header_size, header)) { #ifdef TIFF_ENABLED + const std::string actualName(fp->name()); auto set = std::unique_ptr( GTiffGenericGridShiftSet::open(ctx, std::move(fp), actualName)); if (!set) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 1ec48bd3b8..cc73b8f92d 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -197,7 +197,7 @@ PJ *pj_obj_create(PJ_CONTEXT *ctx, const BaseObjectNNPtr &objIn) { auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); try { auto formatter = PROJStringFormatter::create( - PROJStringFormatter::Convention::PROJ_5, dbContext); + PROJStringFormatter::Convention::PROJ_5, std::move(dbContext)); auto projString = coordop->exportToPROJString(formatter.get()); if (proj_context_is_network_enabled(ctx)) { ctx->defer_grid_opening = true; @@ -380,7 +380,7 @@ const char *proj_context_get_database_path(PJ_CONTEXT *ctx) { try { // temporary variable must be used as getDBcontext() might create // ctx->cpp_context - auto osPath(getDBcontext(ctx)->getPath()); + const auto osPath(getDBcontext(ctx)->getPath()); ctx->get_cpp_context()->lastDbPath_ = osPath; return ctx->cpp_context->lastDbPath_.c_str(); } catch (const std::exception &e) { @@ -1629,7 +1629,7 @@ const char *proj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, PJ_WKT_TYPE type, try { auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); - auto formatter = WKTFormatter::create(convention, dbContext); + auto formatter = WKTFormatter::create(convention, std::move(dbContext)); for (auto iter = options; iter && iter[0]; ++iter) { const char *value; if ((value = getOptionValue(*iter, "MULTILINE="))) { @@ -1735,7 +1735,8 @@ const char *proj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, static_cast(type); auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); try { - auto formatter = PROJStringFormatter::create(convention, dbContext); + auto formatter = + PROJStringFormatter::create(convention, std::move(dbContext)); for (auto iter = options; iter && iter[0]; ++iter) { const char *value; if ((value = getOptionValue(*iter, "MULTILINE="))) { @@ -1807,7 +1808,7 @@ const char *proj_as_projjson(PJ_CONTEXT *ctx, const PJ *obj, auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); try { - auto formatter = JSONFormatter::create(dbContext); + auto formatter = JSONFormatter::create(std::move(dbContext)); for (auto iter = options; iter && iter[0]; ++iter) { const char *value; if ((value = getOptionValue(*iter, "MULTILINE="))) { @@ -4681,12 +4682,13 @@ static CoordinateSystemAxisNNPtr createAxis(const PJ_AXIS_DESCRIPTION &axis) { unit_type = UnitOfMeasure::Type::PARAMETRIC; break; } - auto unit = axis.unit_type == PJ_UT_ANGULAR - ? createAngularUnit(axis.unit_name, axis.unit_conv_factor) - : axis.unit_type == PJ_UT_LINEAR - ? createLinearUnit(axis.unit_name, axis.unit_conv_factor) - : UnitOfMeasure(axis.unit_name ? axis.unit_name : "unnamed", - axis.unit_conv_factor, unit_type); + const common::UnitOfMeasure unit( + axis.unit_type == PJ_UT_ANGULAR + ? createAngularUnit(axis.unit_name, axis.unit_conv_factor) + : axis.unit_type == PJ_UT_LINEAR + ? createLinearUnit(axis.unit_name, axis.unit_conv_factor) + : UnitOfMeasure(axis.unit_name ? axis.unit_name : "unnamed", + axis.unit_conv_factor, unit_type)); return CoordinateSystemAxis::create( createPropertyMapName(axis.name), diff --git a/src/iso19111/coordinatesystem.cpp b/src/iso19111/coordinatesystem.cpp index f8c455ddfe..15a0ba6010 100644 --- a/src/iso19111/coordinatesystem.cpp +++ b/src/iso19111/coordinatesystem.cpp @@ -392,7 +392,7 @@ void CoordinateSystemAxis::_exportToWKT(io::WKTFormatter *formatter, int order, formatter->startNode(io::WKTConstants::AXIS, !identifiers().empty()); const std::string &axisName = nameStr(); const std::string &abbrev = abbreviation(); - std::string parenthesizedAbbrev = "(" + abbrev + ")"; + const std::string parenthesizedAbbrev = "(" + abbrev + ")"; std::string dir = direction().toString(); std::string axisDesignation; diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 9d04844961..f391c86fe6 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -537,7 +537,7 @@ CRSNNPtr CRS::createBoundCRSToWGS84IfPossible( dbContext, allowIntermediateCRSUse); if (horiz.get() != comps[0].get() || vert.get() != comps[1].get()) { return CompoundCRS::create(createPropertyMap(this), - {horiz, vert}); + {std::move(horiz), std::move(vert)}); } } return thisAsCRS; @@ -1012,7 +1012,7 @@ void CRS::setProperties( ObjectUsage::setProperties(newProperties); - d->extensionProj4_ = extensionProj4; + d->extensionProj4_ = std::move(extensionProj4); } //! @endcond @@ -1357,7 +1357,7 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, return util::nn_static_pointer_cast( DerivedGeographicCRS::create( createProperties(), NN_CHECK_THROW(baseGeog3DCRS), - derivedGeogCRS->derivingConversion(), cs)); + derivedGeogCRS->derivingConversion(), std::move(cs))); } } @@ -1374,7 +1374,7 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, return util::nn_static_pointer_cast( DerivedProjectedCRS::create( createProperties(), NN_CHECK_THROW(baseProj3DCRS), - derivedProjCRS->derivingConversion(), cs)); + derivedProjCRS->derivingConversion(), std::move(cs))); } } @@ -1414,7 +1414,7 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, verticalAxisIfNotAlreadyPresent); return util::nn_static_pointer_cast( GeographicCRS::create(createProperties(), geogCRS->datum(), - geogCRS->datumEnsemble(), cs)); + geogCRS->datumEnsemble(), std::move(cs))); } } @@ -1430,7 +1430,7 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, createProperties(), NN_NO_CHECK( util::nn_dynamic_pointer_cast(base3DCRS)), - projCRS->derivingConversion(), cs)); + projCRS->derivingConversion(), std::move(cs))); } } @@ -1445,7 +1445,8 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, boundCRS->hubCRS()->promoteTo3D(std::string(), dbContext), transf->promoteTo3D(std::string(), dbContext)); } catch (const io::FormattingException &) { - return BoundCRS::create(base3DCRS, boundCRS->hubCRS(), transf); + return BoundCRS::create(base3DCRS, boundCRS->hubCRS(), + std::move(transf)); } } @@ -2041,7 +2042,7 @@ static bool exportAsESRIWktCompoundCRSWithEllipsoidalHeight( assert(axisList.size() == 3U); formatter->startNode(io::WKTConstants::VERTCS, false); - auto vertcs_name = l_esri_name; + auto vertcs_name = std::move(l_esri_name); if (starts_with(vertcs_name.c_str(), "GCS_")) vertcs_name = vertcs_name.substr(4); formatter->addQuotedString(vertcs_name); @@ -2107,7 +2108,7 @@ void GeodeticCRS::_exportToWKT(io::WKTFormatter *formatter) const { const auto &axisList = cs->axisList(); const bool isGeographic3D = isGeographic && axisList.size() == 3; const auto oldAxisOutputRule = formatter->outputAxis(); - auto l_name = nameStr(); + std::string l_name = nameStr(); const auto &dbContext = formatter->databaseContext(); const bool isESRIExport = !isWKT2 && formatter->useESRIDialect(); @@ -2152,7 +2153,8 @@ void GeodeticCRS::_exportToWKT(io::WKTFormatter *formatter) const { formatter->startNode(io::WKTConstants::COMPD_CS, false); formatter->addQuotedString(l_name + " + " + l_name); geogCRS2D->_exportToWKT(formatter); - const auto oldTOWGSParameters = formatter->getTOWGS84Parameters(); + const std::vector oldTOWGSParameters( + formatter->getTOWGS84Parameters()); formatter->setTOWGS84Parameters({}); geogCRS2D->_exportToWKT(formatter); formatter->setTOWGS84Parameters(oldTOWGSParameters); @@ -2233,7 +2235,8 @@ void GeodeticCRS::_exportToWKT(io::WKTFormatter *formatter) const { } } } - l_name = l_esri_name; + const std::string &l_esri_name_ref(l_esri_name); + l_name = l_esri_name_ref; } else if (!isWKT2 && isDeprecated()) { l_name += " (deprecated)"; } @@ -2483,7 +2486,7 @@ void GeodeticCRS::_exportToJSONInternal( formatter->MakeObjectContext(objectName, !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -2744,11 +2747,11 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const { &geodetic_crs_type, l_implicitCS, &dbContext]() { const auto &thisEllipsoid = thisDatum->ellipsoid(); - const auto ellipsoids = + const auto ellipsoids( thisEllipsoid->identifiers().empty() ? authorityFactory->createEllipsoidFromExisting( thisEllipsoid) - : std::list{thisEllipsoid}; + : std::list{thisEllipsoid}); for (const auto &ellps : ellipsoids) { for (const auto &id : ellps->identifiers()) { try { @@ -3505,7 +3508,7 @@ void VerticalCRS::_exportToWKT(io::WKTFormatter *formatter) const { : io::WKTConstants::VERT_CS, !identifiers().empty()); - auto l_name = nameStr(); + std::string l_name(nameStr()); const auto &dbContext = formatter->databaseContext(); if (formatter->useESRIDialect()) { bool aliasFound = false; @@ -3513,7 +3516,7 @@ void VerticalCRS::_exportToWKT(io::WKTFormatter *formatter) const { auto l_alias = dbContext->getAliasFromOfficialName( l_name, "vertical_crs", "ESRI"); if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } } @@ -3645,7 +3648,7 @@ void VerticalCRS::_exportToJSON( formatter->MakeObjectContext("VerticalCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -4113,7 +4116,7 @@ void DerivedCRS::_exportToJSON( formatter->MakeObjectContext(className(), !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -4214,7 +4217,7 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const { // perfectly matches the database definition const auto &dbContext = formatter->databaseContext(); - auto l_name = nameStr(); + std::string l_name(nameStr()); const auto &l_coordinateSystem = d->coordinateSystem(); const auto &axisList = l_coordinateSystem->axisList(); if (axisList.size() == 3 && !(isWKT2 && formatter->use2019Keywords())) { @@ -4413,7 +4416,8 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const { if (l_esri_name.empty()) { l_name = io::WKTFormatter::morphNameToESRI(l_name); } else { - l_name = l_esri_name; + const std::string &l_esri_name_ref(l_esri_name); + l_name = l_esri_name_ref; } } if (!isWKT2 && !formatter->useESRIDialect() && isDeprecated()) { @@ -4500,7 +4504,7 @@ void ProjectedCRS::_exportToJSON( formatter->MakeObjectContext("ProjectedCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -4854,7 +4858,7 @@ ProjectedCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const { const bool l_implicitCS = hasImplicitCS(); const auto addCRS = [&](const ProjectedCRSNNPtr &crs, const bool eqName, - bool hasNonMatchingId) { + bool hasNonMatchingId) -> Pair { const auto &l_unit = cs->axisList()[0]->unit(); if ((_isEquivalentTo(crs.get(), util::IComparable::Criterion:: @@ -5382,7 +5386,7 @@ void CompoundCRS::_exportToJSON( formatter->MakeObjectContext("CompoundCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -6568,7 +6572,7 @@ DerivedGeographicCRSNNPtr DerivedGeographicCRS::demoteTo2D( return DerivedGeographicCRS::create( util::PropertyMap().set(common::IdentifiedObject::NAME_KEY, !newName.empty() ? newName : nameStr()), - NN_CHECK_THROW(baseGeog2DCRS), derivingConversion(), cs); + NN_CHECK_THROW(baseGeog2DCRS), derivingConversion(), std::move(cs)); } return NN_NO_CHECK(std::dynamic_pointer_cast( @@ -6683,7 +6687,7 @@ DerivedProjectedCRS::demoteTo2D(const std::string &newName, return DerivedProjectedCRS::create( util::PropertyMap().set(common::IdentifiedObject::NAME_KEY, !newName.empty() ? newName : nameStr()), - NN_CHECK_THROW(baseProj2DCRS), derivingConversion(), cs); + NN_CHECK_THROW(baseProj2DCRS), derivingConversion(), std::move(cs)); } return NN_NO_CHECK(std::dynamic_pointer_cast( @@ -6866,7 +6870,7 @@ void TemporalCRS::_exportToJSON( formatter->MakeObjectContext("TemporalCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -6998,7 +7002,7 @@ void EngineeringCRS::_exportToJSON( formatter->MakeObjectContext("EngineeringCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -7176,7 +7180,7 @@ void ParametricCRS::_exportToJSON( formatter->MakeObjectContext("ParametricCRS", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 91b5b8468d..dd0e79b9e9 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -405,8 +405,8 @@ void PrimeMeridian::_exportToWKT( io::WKTFormatter *formatter) const // throw(FormattingException) { const bool isWKT2 = formatter->version() == io::WKTFormatter::Version::WKT2; - std::string l_name = - name()->description().has_value() ? nameStr() : "Greenwich"; + std::string l_name(name()->description().has_value() ? nameStr() + : "Greenwich"); if (!(isWKT2 && formatter->primeMeridianOmittedIfGreenwich() && l_name == "Greenwich")) { formatter->startNode(io::WKTConstants::PRIMEM, !identifiers().empty()); @@ -418,7 +418,7 @@ void PrimeMeridian::_exportToWKT( auto l_alias = dbContext->getAliasFromOfficialName( l_name, "prime_meridian", "ESRI"); if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } } @@ -873,7 +873,7 @@ void Ellipsoid::_exportToWKT( : io::WKTConstants::SPHEROID, !identifiers().empty()); { - auto l_name = nameStr(); + std::string l_name(nameStr()); if (l_name.empty()) { formatter->addQuotedString("unnamed"); } else { @@ -887,7 +887,7 @@ void Ellipsoid::_exportToWKT( auto l_alias = dbContext->getAliasFromOfficialName( l_name, "ellipsoid", "ESRI"); if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } } @@ -941,7 +941,7 @@ void Ellipsoid::_exportToJSON( formatter->MakeObjectContext("Ellipsoid", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -1334,7 +1334,7 @@ void GeodeticReferenceFrame::_exportToWKT( const bool isWKT2 = formatter->version() == io::WKTFormatter::Version::WKT2; const auto &ids = identifiers(); formatter->startNode(io::WKTConstants::DATUM, !ids.empty()); - auto l_name = nameStr(); + std::string l_name(nameStr()); if (l_name.empty()) { l_name = "unnamed"; } @@ -1356,7 +1356,7 @@ void GeodeticReferenceFrame::_exportToWKT( l_alias = dbContext->getAliasFromOfficialName( l_name.substr(0, pos), "geodetic_datum", "ESRI"); if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } } @@ -1469,7 +1469,7 @@ void GeodeticReferenceFrame::_exportToJSON( auto writer = formatter->writer(); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -1935,7 +1935,7 @@ void DatumEnsemble::_exportToJSON( auto writer = formatter->writer(); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -2148,7 +2148,7 @@ void VerticalReferenceFrame::_exportToWKT( ? io::WKTConstants::VDATUM : io::WKTConstants::VERT_DATUM, !identifiers().empty()); - auto l_name = nameStr(); + std::string l_name(nameStr()); if (!l_name.empty()) { if (!isWKT2 && formatter->useESRIDialect()) { bool aliasFound = false; @@ -2157,7 +2157,7 @@ void VerticalReferenceFrame::_exportToWKT( auto l_alias = dbContext->getAliasFromOfficialName( l_name, "vertical_datum", "ESRI"); if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } } @@ -2217,7 +2217,7 @@ void VerticalReferenceFrame::_exportToJSON( auto writer = formatter->writer(); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 5115030cce..21070a3c0d 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -392,7 +392,7 @@ SQLResultSet SQLiteHandle::run(sqlite3_stmt *stmt, const std::string &sql, for (const auto ¶m : parameters) { const auto ¶mType = param.type(); if (paramType == SQLValues::Type::STRING) { - auto strValue = param.stringValue(); + const auto &strValue = param.stringValue(); sqlite3_bind_text(stmt, nBindField, strValue.c_str(), static_cast(strValue.size()), SQLITE_TRANSIENT); @@ -1199,7 +1199,7 @@ void DatabaseContext::Private::open(const std::string &databasePath, sqlite_handle_ = SQLiteHandleCache::get().getHandle(path, ctx); - databasePath_ = path; + databasePath_ = std::move(path); } // --------------------------------------------------------------------------- @@ -1253,7 +1253,7 @@ void DatabaseContext::Private::attachExtraDatabases( "AND name NOT LIKE 'sqlite_stat%'"); std::map> tableStructure; for (const auto &rowTable : tables) { - auto tableName = rowTable[0]; + const auto &tableName = rowTable[0]; auto tableInfo = run("PRAGMA table_info(\"" + replaceAll(tableName, "\"", "\"\"") + "\")"); for (const auto &rowCol : tableInfo) { @@ -1451,7 +1451,7 @@ static void identifyFromNameOrCode( for (const auto &id : obj->identifiers()) { try { - const auto idAuthName = *(id->codeSpace()); + const auto &idAuthName = *(id->codeSpace()); if (std::find(allowedAuthoritiesTmp.begin(), allowedAuthoritiesTmp.end(), idAuthName) != allowedAuthoritiesTmp.end()) { @@ -2885,7 +2885,7 @@ DatabaseContext::create(const std::string &databasePath, } if (!auxDbs.empty()) { dbCtxPrivate->attachExtraDatabases(auxDbs); - dbCtxPrivate->auxiliaryDatabasePaths_ = auxDbs; + dbCtxPrivate->auxiliaryDatabasePaths_ = std::move(auxDbs); } dbCtxPrivate->self_ = dbCtx.as_nullable(); return dbCtx; @@ -3341,7 +3341,7 @@ bool DatabaseContext::lookForGridInfo( fullFilenameNewName.resize(strlen(fullFilenameNewName.c_str())); if (gridAvailableWithNewName) { gridAvailable = true; - fullFilename = fullFilenameNewName; + fullFilename = std::move(fullFilenameNewName); } } @@ -5548,7 +5548,8 @@ AuthorityFactory::createCompoundCRS(const std::string &code) const { auto props = d->createPropertiesSearchUsages("compound_crs", code, name, deprecated); return crs::CompoundCRS::create( - props, std::vector{horizCRS, vertCRS}); + props, std::vector{std::move(horizCRS), + std::move(vertCRS)}); } catch (const std::exception &ex) { throw buildFactoryException("compoundCRS", d->authority(), code, ex); } @@ -7347,7 +7348,7 @@ AuthorityFactory::createFromCRSCodesWithIntermediates( listTmp.emplace_back( operation::ConcatenatedOperation::createComputeMetadata( - {op1, op2}, false)); + {std::move(op1), std::move(op2)}, false)); } catch (const std::exception &e) { // Mostly for debugging purposes when using an inconsistent // database @@ -7403,7 +7404,7 @@ AuthorityFactory::createFromCRSCodesWithIntermediates( listTmp.emplace_back( operation::ConcatenatedOperation::createComputeMetadata( - {op1, op2->inverse()}, false)); + {std::move(op1), op2->inverse()}, false)); } catch (const std::exception &e) { // Mostly for debugging purposes when using an inconsistent // database @@ -7480,7 +7481,7 @@ AuthorityFactory::createFromCRSCodesWithIntermediates( listTmp.emplace_back( operation::ConcatenatedOperation::createComputeMetadata( - {op1->inverse(), op2}, false)); + {op1->inverse(), std::move(op2)}, false)); } catch (const std::exception &e) { // Mostly for debugging purposes when using an inconsistent // database diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index aa9ba0089d..8c74b6b06c 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -205,7 +205,7 @@ WKTFormatterNNPtr WKTFormatter::create(Convention convention, // cppcheck-suppress passedByValue DatabaseContextPtr dbContext) { auto ret = NN_NO_CHECK(WKTFormatter::make_unique(convention)); - ret->d->dbContext_ = dbContext; + ret->d->dbContext_ = std::move(dbContext); return ret; } @@ -1623,7 +1623,7 @@ IdentifierPtr WKTParser::Private::buildId(const WKTNodeNNPtr &node, std::string codeSpaceOut; if (dbContext_->getVersionedAuthority(codeSpace, version, codeSpaceOut)) { - codeSpace = codeSpaceOut; + codeSpace = std::move(codeSpaceOut); version.clear(); } } @@ -1761,7 +1761,7 @@ PropertyMap &WKTParser::Private::buildProperties(const WKTNodeNNPtr &node, name, tableNameForAlias, "ESRI", false, outTableName, authNameFromAlias, codeFromAlias); if (!officialName.empty()) { - name = officialName; + name = std::move(officialName); // Clearing authority for geodetic_crs because of // potential axis order mismatch. @@ -1994,9 +1994,9 @@ UnitOfMeasure WKTParser::Private::buildUnit(const WKTNodeNNPtr &node, unitName, "unit_of_measure", "ESRI", false, outTableName, authNameFromAlias, codeFromAlias); if (!officialName.empty()) { - unitName = officialName; - codeSpace = authNameFromAlias; - code = codeFromAlias; + unitName = std::move(officialName); + codeSpace = std::move(authNameFromAlias); + code = std::move(codeFromAlias); } } @@ -2415,10 +2415,10 @@ GeodeticReferenceFrameNNPtr WKTParser::Private::buildGeodeticReferenceFrame( auto nameWithPM = officialName + " (" + primeMeridian->nameStr() + ")"; if (dbContext_->isKnownName(nameWithPM, "geodetic_datum")) { - officialName = nameWithPM; + officialName = std::move(nameWithPM); } } - name = officialName; + name = std::move(officialName); } } @@ -3634,8 +3634,8 @@ WKTParser::Private::buildCoordinateOperation(const WKTNodeNNPtr &node) { std::vector parameters; std::vector values; - auto defaultLinearUnit = UnitOfMeasure::NONE; - auto defaultAngularUnit = UnitOfMeasure::NONE; + const auto &defaultLinearUnit = UnitOfMeasure::NONE; + const auto &defaultAngularUnit = UnitOfMeasure::NONE; consumeParameters(node, false, parameters, values, defaultLinearUnit, defaultAngularUnit); @@ -3680,8 +3680,8 @@ WKTParser::Private::buildPointMotionOperation(const WKTNodeNNPtr &node) { std::vector parameters; std::vector values; - auto defaultLinearUnit = UnitOfMeasure::NONE; - auto defaultAngularUnit = UnitOfMeasure::NONE; + const auto &defaultLinearUnit = UnitOfMeasure::NONE; + const auto &defaultAngularUnit = UnitOfMeasure::NONE; consumeParameters(node, false, parameters, values, defaultLinearUnit, defaultAngularUnit); @@ -4511,7 +4511,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { false, outTableName, authNameFromAlias, codeFromAlias); if (!officialNameFromFeet.empty()) { - officialName = officialNameFromFeet; + officialName = std::move(officialNameFromFeet); } } @@ -4540,11 +4540,11 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { // For WKT2, if there is no explicit parameter unit, use metre for linear // units and degree for angular units - auto linearUnit = + const UnitOfMeasure linearUnit( !isNull(conversionNode) ? UnitOfMeasure::METRE - : buildUnitInSubNode(node, UnitOfMeasure::Type::LINEAR); - auto angularUnit = + : buildUnitInSubNode(node, UnitOfMeasure::Type::LINEAR)); + const auto &angularUnit = !isNull(conversionNode) ? UnitOfMeasure::DEGREE : baseGeodCRS->coordinateSystem()->axisList()[0]->unit(); @@ -5131,7 +5131,7 @@ static TransformationNNPtr buildTransformationForBoundCRS( EPSG_CODE_PARAMETER_GEOID_CORRECTION_FILENAME); if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { - auto filename = fileParameter->valueFile(); + const auto &filename = fileParameter->valueFile(); transformation = Transformation::createGravityRelatedHeightToGeographic3D( @@ -5183,8 +5183,8 @@ BoundCRSNNPtr WKTParser::Private::buildBoundCRS(const WKTNodeNNPtr &node) { std::vector parameters; std::vector values; - auto defaultLinearUnit = UnitOfMeasure::NONE; - auto defaultAngularUnit = UnitOfMeasure::NONE; + const auto &defaultLinearUnit = UnitOfMeasure::NONE; + const auto &defaultAngularUnit = UnitOfMeasure::NONE; consumeParameters(abridgedNode, true, parameters, values, defaultLinearUnit, defaultAngularUnit); @@ -5397,7 +5397,7 @@ WKTParser::Private::buildDerivedProjectedCRS(const WKTNodeNNPtr &node) { } auto linearUnit = buildUnitInSubNode(node); - auto angularUnit = + const auto &angularUnit = baseProjCRS->baseCRS()->coordinateSystem()->axisList()[0]->unit(); auto conversion = buildConversion(conversionNode, linearUnit, angularUnit); @@ -6081,7 +6081,7 @@ IdentifierNNPtr JSONParser::buildId(const json &j, bool removeInverseOf) { std::string codeSpaceOut; if (dbContext_->getVersionedAuthority(codeSpace, version, codeSpaceOut)) { - codeSpace = codeSpaceOut; + codeSpace = std::move(codeSpaceOut); version.clear(); } } @@ -6779,9 +6779,10 @@ MeridianNNPtr JSONParser::buildMeridian(const json &j) { CoordinateSystemAxisNNPtr JSONParser::buildAxis(const json &j) { auto dirString = getString(j, "direction"); auto abbreviation = getString(j, "abbreviation"); - auto unit = j.contains("unit") ? getUnit(j, "unit") - : UnitOfMeasure(std::string(), 1.0, - UnitOfMeasure::Type::NONE); + const UnitOfMeasure unit( + j.contains("unit") + ? getUnit(j, "unit") + : UnitOfMeasure(std::string(), 1.0, UnitOfMeasure::Type::NONE)); auto direction = AxisDirection::valueOf(dirString); if (!direction) { throw ParsingException(concat("unhandled axis direction: ", dirString)); @@ -7275,7 +7276,7 @@ static CRSNNPtr importFromWMSAUTO(const std::string &text) { } }; - const auto getUnits = [=]() { + const auto getUnits = [=]() -> const UnitOfMeasure & { switch (nUnitsId) { case 9001: return UnitOfMeasure::METRE; @@ -7767,7 +7768,7 @@ static BaseObjectNNPtr createFromUserInput(const std::string &text, // urn:ogc:def:crs:EPSG::4326 if (tokens.size() == 7 && tolower(tokens[0]) == "urn") { - const auto type = tokens[3] == "CRS" ? "crs" : tokens[3]; + const std::string type(tokens[3] == "CRS" ? "crs" : tokens[3]); const auto &authName = tokens[4]; const auto &version = tokens[5]; const auto &code = tokens[6]; @@ -8751,10 +8752,10 @@ const std::string &PROJStringFormatter::toString() const { first.paramValues[0].keyEquals("z_in") && first.paramValues[1].keyEquals("z_out")) { - auto xy_in = second.paramValues[0].value; - auto xy_out = second.paramValues[1].value; - auto z_in = first.paramValues[0].value; - auto z_out = first.paramValues[1].value; + const std::string xy_in(second.paramValues[0].value); + const std::string xy_out(second.paramValues[1].value); + const std::string z_in(first.paramValues[0].value); + const std::string z_out(first.paramValues[1].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8793,8 +8794,8 @@ const std::string &PROJStringFormatter::toString() const { second.paramValues[1].keyEquals("xy_out") && first.paramValues[0].value == second.paramValues[1].value && first.paramValues[2].value == second.paramValues[0].value) { - auto z_in = first.paramValues[1].value; - auto z_out = first.paramValues[3].value; + const std::string z_in(first.paramValues[1].value); + const std::string z_out(first.paramValues[3].value); if (z_in != z_out) { iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8828,10 +8829,10 @@ const std::string &PROJStringFormatter::toString() const { curStep.paramValues[0].keyEquals("z_in") && curStep.paramValues[1].keyEquals("z_out") && prevStep.paramValues[3].value == curStep.paramValues[0].value) { - auto xy_in = prevStep.paramValues[0].value; - auto z_in = prevStep.paramValues[1].value; - auto xy_out = prevStep.paramValues[2].value; - auto z_out = curStep.paramValues[1].value; + const std::string xy_in(prevStep.paramValues[0].value); + const std::string z_in(prevStep.paramValues[1].value); + const std::string xy_out(prevStep.paramValues[2].value); + const std::string z_out(curStep.paramValues[1].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8861,10 +8862,10 @@ const std::string &PROJStringFormatter::toString() const { curStep.paramValues[2].keyEquals("xy_out") && curStep.paramValues[3].keyEquals("z_out") && prevStep.paramValues[1].value == curStep.paramValues[1].value) { - auto xy_in = curStep.paramValues[0].value; - auto z_in = prevStep.paramValues[0].value; - auto xy_out = curStep.paramValues[2].value; - auto z_out = curStep.paramValues[3].value; + const std::string xy_in(curStep.paramValues[0].value); + const std::string z_in(prevStep.paramValues[0].value); + const std::string xy_out(curStep.paramValues[2].value); + const std::string z_out(curStep.paramValues[3].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8894,10 +8895,10 @@ const std::string &PROJStringFormatter::toString() const { curStep.paramValues[0].keyEquals("xy_in") && curStep.paramValues[1].keyEquals("xy_out") && prevStep.paramValues[2].value == curStep.paramValues[0].value) { - auto xy_in = prevStep.paramValues[0].value; - auto z_in = prevStep.paramValues[1].value; - auto xy_out = curStep.paramValues[1].value; - auto z_out = prevStep.paramValues[3].value; + const std::string xy_in(prevStep.paramValues[0].value); + const std::string z_in(prevStep.paramValues[1].value); + const std::string xy_out(curStep.paramValues[1].value); + const std::string z_out(prevStep.paramValues[3].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8940,10 +8941,10 @@ const std::string &PROJStringFormatter::toString() const { curStep.paramValues[3].keyEquals("z_out") && prevStep.paramValues[2].value == curStep.paramValues[0].value && curStep.paramValues[1].value == curStep.paramValues[3].value) { - auto xy_in = prevStep.paramValues[0].value; - auto z_in = prevStep.paramValues[1].value; - auto xy_out = curStep.paramValues[2].value; - auto z_out = prevStep.paramValues[3].value; + const std::string xy_in(prevStep.paramValues[0].value); + const std::string z_in(prevStep.paramValues[1].value); + const std::string xy_out(curStep.paramValues[2].value); + const std::string z_out(prevStep.paramValues[3].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -8979,10 +8980,10 @@ const std::string &PROJStringFormatter::toString() const { prevStep.paramValues[1].value == prevStep.paramValues[3].value && curStep.paramValues[0].value == prevStep.paramValues[2].value) { - auto xy_in = prevStep.paramValues[0].value; - auto z_in = curStep.paramValues[1].value; - auto xy_out = curStep.paramValues[2].value; - auto z_out = curStep.paramValues[3].value; + const std::string xy_in(prevStep.paramValues[0].value); + const std::string z_in(curStep.paramValues[1].value); + const std::string xy_out(curStep.paramValues[2].value); + const std::string z_out(curStep.paramValues[3].value); iterCur->paramValues.clear(); iterCur->paramValues.emplace_back( @@ -9532,9 +9533,10 @@ const std::string &PROJStringFormatter::toString() const { } if (ok) { - auto stepVgridshift = *iterVgridshift; + Step stepVgridshift(*iterVgridshift); steps.erase(iterPrev, iterPush); - steps.insert(std::next(iterNext), stepVgridshift); + steps.insert(std::next(iterNext), + std::move(stepVgridshift)); iterPrev = iterPush; iterCur = std::next(iterPush); continue; @@ -9779,9 +9781,10 @@ PROJStringSyntaxParser(const std::string &projString, std::vector &steps, const auto pos = word.find('='); auto key = word.substr(0, pos); - auto pair = (pos != std::string::npos) - ? Step::KeyValue(key, word.substr(pos + 1)) - : Step::KeyValue(key); + const Step::KeyValue pair( + (pos != std::string::npos) + ? Step::KeyValue(key, word.substr(pos + 1)) + : Step::KeyValue(key)); if (steps.empty()) { globalParamValues.push_back(pair); } else { @@ -9814,11 +9817,11 @@ PROJStringSyntaxParser(const std::string &projString, std::vector &steps, } else if (inPipeline && !steps.empty() && starts_with(word, "proj=") && steps.back().name.empty()) { auto stepName = word.substr(strlen("proj=")); - steps.back().name = stepName; + steps.back().name = std::move(stepName); } else if (inPipeline && !steps.empty() && starts_with(word, "init=") && steps.back().name.empty()) { auto initName = word.substr(strlen("init=")); - steps.back().name = initName; + steps.back().name = std::move(initName); steps.back().isInit = true; } else if (!inPipeline && starts_with(word, "title=")) { title = word.substr(strlen("title=")); @@ -10999,7 +11002,7 @@ PROJStringParser::Private::processAxisSwap(Step &step, /*: (axisType == AxisType::SOUTH_POLE) ? AxisDirection::NORTH*/ : AxisDirection::NORTH; - CoordinateSystemAxisNNPtr north = createAxis( + const CoordinateSystemAxisNNPtr north = createAxis( northName, northAbbev, northDir, unit, isGeographic ? nullMeridian : (axisType == AxisType::NORTH_POLE) @@ -11008,7 +11011,7 @@ PROJStringParser::Private::processAxisSwap(Step &step, ? Meridian::create(Angle(0, UnitOfMeasure::DEGREE)).as_nullable() : nullMeridian); - CoordinateSystemAxisNNPtr west = + const CoordinateSystemAxisNNPtr west = createAxis(isSpherical ? "Planetocentric longitude" : isGeographic ? AxisName::Longitude : AxisName::Westing, @@ -11017,7 +11020,7 @@ PROJStringParser::Private::processAxisSwap(Step &step, : std::string(), AxisDirection::WEST, unit); - CoordinateSystemAxisNNPtr south = + const CoordinateSystemAxisNNPtr south = createAxis(isSpherical ? "Planetocentric latitude" : isGeographic ? AxisName::Latitude : AxisName::Southing, @@ -12321,7 +12324,7 @@ PROJStringParser::createFromPROJString(const std::string &projString) { newParamValues.emplace_back(kv); } } - step.paramValues = newParamValues; + step.paramValues = std::move(newParamValues); d->projString_.clear(); if (!step.name.empty()) { @@ -12346,13 +12349,13 @@ PROJStringParser::createFromPROJString(const std::string &projString) { if (!valid) { const int l_errno = proj_context_errno(pj_context); - std::string prefix("Error " + toString(l_errno) + " (" + - proj_errno_string(l_errno) + ")"); - if (logger.msg.empty()) { - logger.msg = prefix; - } else { - logger.msg = prefix + ": " + logger.msg; + std::string msg("Error " + toString(l_errno) + " (" + + proj_errno_string(l_errno) + ")"); + if (!logger.msg.empty()) { + msg += ": "; + msg += logger.msg; } + logger.msg = std::move(msg); } if (pj_context != d->ctx_) { @@ -12478,7 +12481,7 @@ struct JSONFormatter::Private { JSONFormatterNNPtr JSONFormatter::create( // cppcheck-suppress passedByValue DatabaseContextPtr dbContext) { auto ret = NN_NO_CHECK(JSONFormatter::make_unique()); - ret->d->dbContext_ = dbContext; + ret->d->dbContext_ = std::move(dbContext); return ret; } diff --git a/src/iso19111/operation/concatenatedoperation.cpp b/src/iso19111/operation/concatenatedoperation.cpp index b3164e67c8..6fe3462c0d 100644 --- a/src/iso19111/operation/concatenatedoperation.cpp +++ b/src/iso19111/operation/concatenatedoperation.cpp @@ -177,7 +177,7 @@ ConcatenatedOperationNNPtr ConcatenatedOperation::create( if (interpolationCRSValid) { auto subOpInterpCRS = operationsIn[i]->interpolationCRS(); if (interpolationCRS == nullptr) - interpolationCRS = subOpInterpCRS; + interpolationCRS = std::move(subOpInterpCRS); else if (subOpInterpCRS == nullptr || !(subOpInterpCRS->isEquivalentTo( interpolationCRS.get(), @@ -218,7 +218,7 @@ ConcatenatedOperationNNPtr ConcatenatedOperation::create( "Inconsistent chaining of CRS in operations"); } } - lastTargetCRS = l_targetCRS; + lastTargetCRS = std::move(l_targetCRS); } // When chaining VerticalCRS -> GeographicCRS -> VerticalCRS, use @@ -784,7 +784,7 @@ void ConcatenatedOperation::_exportToJSON( !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -828,7 +828,7 @@ CoordinateOperationNNPtr ConcatenatedOperation::_shallowClone() const { for (const auto &subOp : d->operations_) { ops.emplace_back(subOp->shallowClone()); } - op->d->operations_ = ops; + op->d->operations_ = std::move(ops); op->assignSelf(op); op->setCRSs(this, false); return util::nn_static_pointer_cast(op); diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index c70a5214c5..cdb3e6666d 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -3447,7 +3447,7 @@ void Conversion::_exportToJSON( formatter->MakeObjectContext("Conversion", !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { @@ -3539,7 +3539,7 @@ static bool createPROJ4WebMercator(const Conversion *conv, util::IComparable::Criterion::EQUIVALENT)) { auto projUnit = unit.exportToPROJString(); if (!projUnit.empty()) { - units = projUnit; + units = std::move(projUnit); } else { return false; } diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 1804c3d27e..3cda6aad9e 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -1947,7 +1947,7 @@ findCandidateGeodCRSForDatum(const io::AuthorityFactoryPtr &authFactory, const crs::GeodeticCRS *crs, const datum::GeodeticReferenceFrameNNPtr &datum) { std::string preferredAuthName; - const auto crsIds = crs->identifiers(); + const auto &crsIds = crs->identifiers(); if (crsIds.size() == 1) preferredAuthName = *(crsIds.front()->codeSpace()); return authFactory->createGeodeticCRSFromDatum(datum, preferredAuthName, @@ -2767,13 +2767,13 @@ CoordinateOperationFactory::Private::createOperationsGeogToGeog( const auto &src_pm = geogSrc->primeMeridian()->longitude(); const auto &dst_pm = geogDst->primeMeridian()->longitude(); - auto offset_pm = + const common::Angle offset_pm( (src_pm.unit() == dst_pm.unit()) ? common::Angle(src_pm.value() - dst_pm.value(), src_pm.unit()) : common::Angle( src_pm.convertToUnit(common::UnitOfMeasure::DEGREE) - dst_pm.convertToUnit(common::UnitOfMeasure::DEGREE), - common::UnitOfMeasure::DEGREE); + common::UnitOfMeasure::DEGREE)); double vconvSrc = 1.0; const auto &srcCS = geogSrc->coordinateSystem(); @@ -3107,12 +3107,12 @@ void CoordinateOperationFactory::Private::createOperationsWithDatumPivot( } } - const auto opsSecond = + const std::vector opsSecond( useOnlyDirectRegistryOp ? findOpsInRegistryDirect(candidateSrcGeod, candidateDstGeod, context, resNonEmptyBeforeFiltering) : createOperations(candidateSrcGeod, targetEpoch, - candidateDstGeod, targetEpoch, context); + candidateDstGeod, targetEpoch, context)); const auto opsThird = createOperations( sourceAndTargetAre3D ? candidateDstGeod->promoteTo3D(std::string(), dbContext) @@ -3703,12 +3703,11 @@ void CoordinateOperationFactory::Private::createOperationsFromProj4Ext( projFormatter->ingestPROJString(tmpFormatter->toString()); } - const auto PROJString = projFormatter->toString(); auto properties = util::PropertyMap().set( common::IdentifiedObject::NAME_KEY, buildTransfName(sourceCRS->nameStr(), targetCRS->nameStr())); res.emplace_back(SingleOperation::createPROJBased( - properties, PROJString, sourceCRS, targetCRS, {})); + properties, projFormatter->toString(), sourceCRS, targetCRS, {})); } // --------------------------------------------------------------------------- @@ -4181,7 +4180,7 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid( for (const auto &model : models) { const auto &modelName = model->nameStr(); const auto &modelIds = model->identifiers(); - const auto transformations = + const std::vector transformations( !modelIds.empty() ? std::vector< CoordinateOperationNNPtr>{io::AuthorityFactory::create( @@ -4198,7 +4197,7 @@ CoordinateOperationFactory::Private::createOperationsGeogToVertFromGeoid( model, modelName.substr(strlen("PROJ ")))} : authFactory->getTransformationsForGeoid( modelName, - context.context->getUsePROJAlternativeGridNames()); + context.context->getUsePROJAlternativeGridNames())); for (const auto &transf : transformations) { if (dynamic_cast( transf->sourceCRS().get()) && @@ -4706,7 +4705,8 @@ void CoordinateOperationFactory::Private:: // need it in practice. setCRSs(opSecondClone.get(), intermBoundCRS, targetCRS); res.emplace_back(ConcatenatedOperation::createComputeMetadata( - {opFirst, opSecondClone}, disallowEmptyIntersection)); + {opFirst, std::move(opSecondClone)}, + disallowEmptyIntersection)); } catch (const InvalidOperationEmptyIntersection &) { } } @@ -4766,7 +4766,7 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( auto baseCRS = std::dynamic_pointer_cast( derivedGeogCRS->baseCRS().as_nullable()); if (baseCRS) { - geogCRSOfBaseOfBoundSrc = baseCRS; + geogCRSOfBaseOfBoundSrc = std::move(baseCRS); } } } @@ -5078,7 +5078,7 @@ void CoordinateOperationFactory::Private::createOperationsBoundToGeog( } } } else { - res = opsFirst; + res = std::move(opsFirst); } } return; @@ -5930,7 +5930,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( } } if (foundRegisteredTransformWithAllGridsAvailable) { - verticalTransforms = verticalTransformsTmp; + verticalTransforms = std::move(verticalTransformsTmp); } else if (foundRegisteredTransform) { verticalTransforms.insert(verticalTransforms.end(), verticalTransformsTmp.begin(), @@ -6196,7 +6196,7 @@ void CoordinateOperationFactory::Private::createOperationsToGeod( setCRSs(newOp.get(), sourceCRS, intermGeog3DCRS); try { res.emplace_back(ConcatenatedOperation::createComputeMetadata( - {newOp, geog3DToTargetOps.front()}, + {std::move(newOp), geog3DToTargetOps.front()}, disallowEmptyIntersection)); } catch (const InvalidOperationEmptyIntersection &) { } @@ -6688,7 +6688,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound( verticalTransform->nameStr().find( "CGVD28 height to CGVD2013a(2002) height (1)") != std::string::npos))) { - interpolationGeogCRS = nad83CSRSv7; + interpolationGeogCRS = std::move(nad83CSRSv7); } } catch (const std::exception &) { } @@ -7259,7 +7259,7 @@ crs::CRSNNPtr CRS::getResolvedCRS(const crs::CRSNNPtr &crs, extentOut = extentOut->intersection( NN_NO_CHECK(componentExtent)); else if (componentExtent) - extentOut = componentExtent; + extentOut = std::move(componentExtent); } } } diff --git a/src/iso19111/operation/projbasedoperation.cpp b/src/iso19111/operation/projbasedoperation.cpp index fd03fc0943..04275f3f5f 100644 --- a/src/iso19111/operation/projbasedoperation.cpp +++ b/src/iso19111/operation/projbasedoperation.cpp @@ -118,7 +118,7 @@ PROJBasedOperationNNPtr PROJBasedOperation::create( if (inverse) { formatter->stopInversion(); } - auto projString = formatter->toString(); + const auto &projString = formatter->toString(); auto method = OperationMethod::create( util::PropertyMap().set(common::IdentifiedObject::NAME_KEY, @@ -209,7 +209,7 @@ void PROJBasedOperation::_exportToJSON( !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 197dbd0d9d..9ea0306cdf 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2382,7 +2382,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( EPSG_CODE_PARAMETER_GEOID_CORRECTION_FILENAME); if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { - auto filename = fileParameter->valueFile(); + const auto &filename = fileParameter->valueFile(); if (databaseContext->lookForGridAlternative( filename, projFilename, projGridFormat, inverseDirection)) { @@ -3152,12 +3152,12 @@ void SingleOperation::exportToPROJStringChangeVerticalUnit( const auto uom = common::UnitOfMeasure(std::string(), convFactor, common::UnitOfMeasure::Type::LINEAR) .exportToPROJString(); - const auto reverse_uom = + const std::string reverse_uom( convFactor == 0.0 ? std::string() : common::UnitOfMeasure(std::string(), 1.0 / convFactor, common::UnitOfMeasure::Type::LINEAR) - .exportToPROJString(); + .exportToPROJString()); if (uom == "m") { // do nothing } else if (!uom.empty()) { @@ -4078,8 +4078,8 @@ bool SingleOperation::exportToPROJStringGeneric( sourceCRSGeog->ellipsoid()->_exportToPROJString(formatter); formatter->addStep("deformation"); - auto srcName = sourceCRS()->nameStr(); - auto dstName = targetCRS()->nameStr(); + const std::string srcName(sourceCRS()->nameStr()); + const std::string dstName(targetCRS()->nameStr()); const struct { const char *name; double epoch; @@ -4260,7 +4260,7 @@ bool SingleOperation::exportToPROJStringGeneric( EPSG_CODE_PARAMETER_GEOID_CORRECTION_FILENAME); if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { - auto filename = fileParameter->valueFile(); + const auto &filename = fileParameter->valueFile(); auto l_sourceCRS = sourceCRS(); auto sourceCRSGeog = @@ -4920,7 +4920,7 @@ void PointMotionOperation::_exportToJSON( !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { diff --git a/src/iso19111/operation/transformation.cpp b/src/iso19111/operation/transformation.cpp index 22569c5a5f..52898d8192 100644 --- a/src/iso19111/operation/transformation.cpp +++ b/src/iso19111/operation/transformation.cpp @@ -1577,7 +1577,7 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { } if (isLongitudeRotation()) { - auto offset = + const auto &offset = parameterValueMeasure(EPSG_CODE_PARAMETER_LONGITUDE_OFFSET); const common::Angle newOffset(negate(offset.value()), offset.unit()); return Private::registerInv( @@ -1587,12 +1587,12 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { } if (methodEPSGCode == EPSG_CODE_METHOD_GEOGRAPHIC2D_OFFSETS) { - auto offsetLat = + const auto &offsetLat = parameterValueMeasure(EPSG_CODE_PARAMETER_LATITUDE_OFFSET); const common::Angle newOffsetLat(negate(offsetLat.value()), offsetLat.unit()); - auto offsetLong = + const auto &offsetLong = parameterValueMeasure(EPSG_CODE_PARAMETER_LONGITUDE_OFFSET); const common::Angle newOffsetLong(negate(offsetLong.value()), offsetLong.unit()); @@ -1605,17 +1605,17 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { } if (methodEPSGCode == EPSG_CODE_METHOD_GEOGRAPHIC3D_OFFSETS) { - auto offsetLat = + const auto &offsetLat = parameterValueMeasure(EPSG_CODE_PARAMETER_LATITUDE_OFFSET); const common::Angle newOffsetLat(negate(offsetLat.value()), offsetLat.unit()); - auto offsetLong = + const auto &offsetLong = parameterValueMeasure(EPSG_CODE_PARAMETER_LONGITUDE_OFFSET); const common::Angle newOffsetLong(negate(offsetLong.value()), offsetLong.unit()); - auto offsetHeight = + const auto &offsetHeight = parameterValueMeasure(EPSG_CODE_PARAMETER_VERTICAL_OFFSET); const common::Length newOffsetHeight(negate(offsetHeight.value()), offsetHeight.unit()); @@ -1633,12 +1633,12 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { const common::Angle newOffsetLat(negate(offsetLat.value()), offsetLat.unit()); - auto offsetLong = + const auto &offsetLong = parameterValueMeasure(EPSG_CODE_PARAMETER_LONGITUDE_OFFSET); const common::Angle newOffsetLong(negate(offsetLong.value()), offsetLong.unit()); - auto offsetHeight = + const auto &offsetHeight = parameterValueMeasure(EPSG_CODE_PARAMETER_GEOID_UNDULATION); const common::Length newOffsetHeight(negate(offsetHeight.value()), offsetHeight.unit()); @@ -1652,7 +1652,7 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { if (methodEPSGCode == EPSG_CODE_METHOD_VERTICAL_OFFSET) { - auto offsetHeight = + const auto &offsetHeight = parameterValueMeasure(EPSG_CODE_PARAMETER_VERTICAL_OFFSET); const common::Length newOffsetHeight(negate(offsetHeight.value()), offsetHeight.unit()); @@ -1773,7 +1773,7 @@ void Transformation::_exportToJSON( !identifiers().empty())); writer->AddObjKey("name"); - auto l_name = nameStr(); + const auto &l_name = nameStr(); if (l_name.empty()) { writer->Add("unnamed"); } else { diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index 44504ae30d..d628d36d32 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -96,7 +96,7 @@ struct gridshiftData { bool gridshiftData::checkGridTypes(PJ *P) { for (const auto &gridset : m_grids) { for (const auto &grid : gridset->grids()) { - const auto type = grid->metadataItem("TYPE"); + const auto &type = grid->metadataItem("TYPE"); if (type == "HORIZONTAL_OFFSET") m_bHasHorizontalOffset = true; else if (type == "GEOGRAPHIC_3D_OFFSET") @@ -268,8 +268,7 @@ PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, gridInfo.idxSampleLatLongZ[0] = idxSampleLat; gridInfo.idxSampleLatLongZ[1] = idxSampleLong; gridInfo.idxSampleLatLongZ[2] = idxSampleZ; - m_cacheGridInfo[grid] = gridInfo; - iterCache = m_cacheGridInfo.find(grid); + iterCache = m_cacheGridInfo.emplace(grid, std::move(gridInfo)).first; } GridInfo &gridInfo = iterCache->second; const int idxSampleLat = gridInfo.idxSampleLat; From ad4d5ea85a00e68ef54e5ad7be445ff950ac6bce Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 16:45:12 +0100 Subject: [PATCH 118/199] Add a anchor_epoch column to geodetic_datum and vertical_datum tables --- data/sql/esri.sql | 1192 ++++++++++---------- data/sql/geodetic_datum.sql | 1280 +++++++++++----------- data/sql/iau.sql | 230 ++-- data/sql/ignf.sql | 260 ++--- data/sql/nkg.sql | 2 + data/sql/proj_db_table_defs.sql | 2 + data/sql/vertical_datum.sql | 494 ++++----- scripts/build_db.py | 12 +- scripts/build_db_create_ignf_from_xml.py | 6 +- scripts/build_db_from_esri.py | 8 +- scripts/build_db_from_iau.py | 4 +- src/iso19111/datum.cpp | 10 + src/iso19111/factory.cpp | 69 +- test/cli/testprojinfo_out.dist | 2 +- test/unit/test_c_api.cpp | 4 +- test/unit/test_factory.cpp | 62 +- 16 files changed, 1871 insertions(+), 1766 deletions(-) diff --git a/data/sql/esri.sql b/data/sql/esri.sql index fc147189a5..7846cad8f6 100644 --- a/data/sql/esri.sql +++ b/data/sql/esri.sql @@ -1303,7 +1303,7 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4301','GCS_Tokyo','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4302','GCS_Trinidad_1903','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4303','GCS_Trucial_Coast_1948','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4304','GCS_Voirol_1875','ESRI'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106011','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106011','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106011_USAGE','geodetic_datum','ESRI','106011','EPSG','1365','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','4305','GCS_Voirol_Unifie_1960',NULL,'geographic 2D','EPSG','6403','ESRI','106011',NULL,1); INSERT INTO "usage" VALUES('ESRI', '4305_USAGE','geodetic_crs','ESRI','4305','EPSG','1365','EPSG','1024'); @@ -1498,7 +1498,7 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4808','GCS_Padang_1884_Jaka INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4809','GCS_Belge_1950_Brussels','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4810','GCS_Tananarive_1925_Paris','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','4811','GCS_Voirol_1875_Paris','ESRI'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106011_Paris','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8903',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106011_Paris','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8903',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106011_Paris_USAGE','geodetic_datum','ESRI','106011_Paris','EPSG','1365','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','4812','GCS_Voirol_Unifie_1960_Paris',NULL,'geographic 2D','EPSG','6403','ESRI','106011_Paris',NULL,1); INSERT INTO "usage" VALUES('ESRI', '4812_USAGE','geodetic_crs','ESRI','4812','EPSG','1365','EPSG','1024'); @@ -1844,129 +1844,129 @@ INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20040','SIRGAS-Chile_2021_3 INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20041','SIRGAS-Chile_2021','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20045','MAGNA-SIRGAS_2018_3D','ESRI'); INSERT INTO alias_name VALUES('geodetic_crs','EPSG','20046','MAGNA-SIRGAS_2018','ESRI'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106001','D_WGS_1966','WGS 1966','EPSG','7025','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106001','D_WGS_1966','WGS 1966','EPSG','7025','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106001_USAGE','geodetic_datum','ESRI','106001','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37001','GCS_WGS_1966',NULL,'geographic 2D','EPSG','6422','ESRI','106001',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37001_USAGE','geodetic_crs','ESRI','37001','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37001','geodetic_crs','EPSG','4760','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106002','D_Fischer_1960','Fischer 1960','ESRI','107002','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106002','D_Fischer_1960','Fischer 1960','ESRI','107002','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106002_USAGE','geodetic_datum','ESRI','106002','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37002','GCS_Fischer_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106002',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37002_USAGE','geodetic_crs','ESRI','37002','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106003','D_Fischer_1968','Fischer 1968','ESRI','107003','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106003','D_Fischer_1968','Fischer 1968','ESRI','107003','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106003_USAGE','geodetic_datum','ESRI','106003','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37003','GCS_Fischer_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106003',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37003_USAGE','geodetic_crs','ESRI','37003','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106004','D_Fischer_Modified','Fischer modified','ESRI','107004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106004','D_Fischer_Modified','Fischer modified','ESRI','107004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106004_USAGE','geodetic_datum','ESRI','106004','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37004','GCS_Fischer_Modified',NULL,'geographic 2D','EPSG','6422','ESRI','106004',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37004_USAGE','geodetic_crs','ESRI','37004','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106005','D_Hough_1960','Hough 1960','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106005','D_Hough_1960','Hough 1960','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106005_USAGE','geodetic_datum','ESRI','106005','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37005','GCS_Hough_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106005',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37005_USAGE','geodetic_crs','ESRI','37005','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106006','D_Everest_Modified_1969','Everest modified 1969','EPSG','7056','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106006','D_Everest_Modified_1969','Everest modified 1969','EPSG','7056','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106006_USAGE','geodetic_datum','ESRI','106006','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37006','GCS_Everest_Modified_1969',NULL,'geographic 2D','EPSG','6422','ESRI','106006',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37006_USAGE','geodetic_crs','ESRI','37006','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106007','D_Walbeck','Walbeck','ESRI','107007','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106007','D_Walbeck','Walbeck','ESRI','107007','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106007_USAGE','geodetic_datum','ESRI','106007','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37007','GCS_Walbeck',NULL,'geographic 2D','EPSG','6422','ESRI','106007',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37007_USAGE','geodetic_crs','ESRI','37007','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106008','D_Sphere_ARC_INFO','Authalic sphere (ARC/INFO)','ESRI','107008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106008','D_Sphere_ARC_INFO','Authalic sphere (ARC/INFO)','ESRI','107008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106008_USAGE','geodetic_datum','ESRI','106008','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37008','GCS_Sphere_ARC_INFO',NULL,'geographic 2D','EPSG','6422','ESRI','106008',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37008_USAGE','geodetic_crs','ESRI','37008','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106201','D_European_1979','European 1979','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106201','D_European_1979','European 1979','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106201_USAGE','geodetic_datum','ESRI','106201','EPSG','1297','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37201','GCS_European_1979',NULL,'geographic 2D','EPSG','6422','ESRI','106201',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37201_USAGE','geodetic_crs','ESRI','37201','EPSG','1297','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37201','geodetic_crs','EPSG','4668','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106202','D_Everest_Bangladesh','Everest - Bangladesh','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106202','D_Everest_Bangladesh','Everest - Bangladesh','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106202_USAGE','geodetic_datum','ESRI','106202','EPSG','1041','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37202','GCS_Everest_Bangladesh',NULL,'geographic 2D','EPSG','6422','ESRI','106202',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37202_USAGE','geodetic_crs','ESRI','37202','EPSG','1041','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106203','D_Everest_India_Nepal','Everest - India and Nepal','EPSG','7044','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106203','D_Everest_India_Nepal','Everest - India and Nepal','EPSG','7044','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106203_USAGE','geodetic_datum','ESRI','106203','EPSG','1121','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37203','GCS_Everest_India_Nepal',NULL,'geographic 2D','EPSG','6422','ESRI','106203',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37203_USAGE','geodetic_crs','ESRI','37203','EPSG','1121','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106204','D_Hjorsey_1955','Hjorsey 1955','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106204','D_Hjorsey_1955','Hjorsey 1955','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106204_USAGE','geodetic_datum','ESRI','106204','EPSG','3262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37204','GCS_Hjorsey_1955',NULL,'geographic 2D','EPSG','6422','ESRI','106204',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37204_USAGE','geodetic_crs','ESRI','37204','EPSG','3262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37204','geodetic_crs','EPSG','4658','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106205','D_Hong_Kong_1963_67','Hong Kong 1963(67)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106205','D_Hong_Kong_1963_67','Hong Kong 1963(67)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106205_USAGE','geodetic_datum','ESRI','106205','EPSG','1118','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37205','GCS_Hong_Kong_1963_67',NULL,'geographic 2D','EPSG','6422','ESRI','106205',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37205_USAGE','geodetic_crs','ESRI','37205','EPSG','1118','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37205','geodetic_crs','EPSG','4739','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106206','D_Oman','Oman','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106206','D_Oman','Oman','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106206_USAGE','geodetic_datum','ESRI','106206','EPSG','1183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37206','GCS_Oman',NULL,'geographic 2D','EPSG','6422','ESRI','106206',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37206_USAGE','geodetic_crs','ESRI','37206','EPSG','1183','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106207','D_South_Asia_Singapore','South Asia Singapore','ESRI','107004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106207','D_South_Asia_Singapore','South Asia Singapore','ESRI','107004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106207_USAGE','geodetic_datum','ESRI','106207','EPSG','1210','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37207','GCS_South_Asia_Singapore',NULL,'geographic 2D','EPSG','6422','ESRI','106207',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37207_USAGE','geodetic_crs','ESRI','37207','EPSG','1210','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106208','D_Ayabelle','Ayabelle Lighthouse','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106208','D_Ayabelle','Ayabelle Lighthouse','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106208_USAGE','geodetic_datum','ESRI','106208','EPSG','1081','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37208','GCS_Ayabelle',NULL,'geographic 2D','EPSG','6422','ESRI','106208',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37208_USAGE','geodetic_crs','ESRI','37208','EPSG','1081','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37208','geodetic_crs','EPSG','4713','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106211','D_Point_58','Point 58','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106211','D_Point_58','Point 58','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106211_USAGE','geodetic_datum','ESRI','106211','EPSG','2790','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37211','GCS_Point_58',NULL,'geographic 2D','EPSG','6422','ESRI','106211',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37211_USAGE','geodetic_crs','ESRI','37211','EPSG','2790','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37211','geodetic_crs','EPSG','4620','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106212','D_Beacon_E_1945','Astro Beacon E 1945 (Iwo Jima 1945)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106212','D_Beacon_E_1945','Astro Beacon E 1945 (Iwo Jima 1945)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106212_USAGE','geodetic_datum','ESRI','106212','EPSG','3200','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37212','GCS_Beacon_E_1945',NULL,'geographic 2D','EPSG','6422','ESRI','106212',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37212_USAGE','geodetic_crs','ESRI','37212','EPSG','3200','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37212','geodetic_crs','EPSG','4709','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106213','D_Tern_Island_1961','Tern Island Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106213','D_Tern_Island_1961','Tern Island Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106213_USAGE','geodetic_datum','ESRI','106213','EPSG','3181','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37213','GCS_Tern_Island_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106213',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37213_USAGE','geodetic_crs','ESRI','37213','EPSG','3181','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37213','geodetic_crs','EPSG','4707','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106214','D_Astro_1952','Astronomical Station 1952 (Marcus Island 1952 )','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106214','D_Astro_1952','Astronomical Station 1952 (Marcus Island 1952 )','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106214_USAGE','geodetic_datum','ESRI','106214','EPSG','1872','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37214','GCS_Astro_1952',NULL,'geographic 2D','EPSG','6422','ESRI','106214',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37214_USAGE','geodetic_crs','ESRI','37214','EPSG','1872','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37214','geodetic_crs','EPSG','4711','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106215','D_Bellevue_IGN','Bellevue IGN','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106215','D_Bellevue_IGN','Bellevue IGN','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106215_USAGE','geodetic_datum','ESRI','106215','EPSG','3193','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37215','GCS_Bellevue_IGN',NULL,'geographic 2D','EPSG','6422','ESRI','106215',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37215_USAGE','geodetic_crs','ESRI','37215','EPSG','3193','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37215','geodetic_crs','EPSG','4714','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106216','D_Canton_1966','Canton Astro 1966 (Phoenix Islands 1966)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106216','D_Canton_1966','Canton Astro 1966 (Phoenix Islands 1966)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106216_USAGE','geodetic_datum','ESRI','106216','EPSG','3196','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37216','GCS_Canton_1966',NULL,'geographic 2D','EPSG','6422','ESRI','106216',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37216_USAGE','geodetic_crs','ESRI','37216','EPSG','3196','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37216','geodetic_crs','EPSG','4716','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106217','D_Chatham_Island_1971','Chatham Island Astro 1971','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106217','D_Chatham_Island_1971','Chatham Island Astro 1971','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106217_USAGE','geodetic_datum','ESRI','106217','EPSG','2889','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37217','GCS_Chatham_Island_1971',NULL,'geographic 2D','EPSG','6422','ESRI','106217',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37217_USAGE','geodetic_crs','ESRI','37217','EPSG','2889','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37217','geodetic_crs','EPSG','4672','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106218','D_DOS_1968','DOS 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106218','D_DOS_1968','DOS 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106218_USAGE','geodetic_datum','ESRI','106218','EPSG','3198','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37218','GCS_DOS_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106218',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37218_USAGE','geodetic_crs','ESRI','37218','EPSG','3198','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106219','D_Easter_Island_1967','Easter Island 1967','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106219','D_Easter_Island_1967','Easter Island 1967','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106219_USAGE','geodetic_datum','ESRI','106219','EPSG','3188','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37219','GCS_Easter_Island_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106219',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37219_USAGE','geodetic_crs','ESRI','37219','EPSG','3188','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37219','geodetic_crs','EPSG','4719','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106220','D_Guam_1963','Guam 1963','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106220','D_Guam_1963','Guam 1963','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106220_USAGE','geodetic_datum','ESRI','106220','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37220','GCS_Guam_1963',NULL,'geographic 2D','EPSG','6422','ESRI','106220',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37220_USAGE','geodetic_crs','ESRI','37220','EPSG','4167','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37220','geodetic_crs','EPSG','4675','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106221','D_GUX_1','GUX 1 Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106221','D_GUX_1','GUX 1 Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106221_USAGE','geodetic_datum','ESRI','106221','EPSG','3197','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37221','GCS_GUX_1',NULL,'geographic 2D','EPSG','6422','ESRI','106221',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37221_USAGE','geodetic_crs','ESRI','37221','EPSG','3197','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106222','D_Johnston_Island_1961','Johnston Island 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106222','D_Johnston_Island_1961','Johnston Island 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106222_USAGE','geodetic_datum','ESRI','106222','EPSG','3201','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37222','GCS_Johnston_Island_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106222',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37222_USAGE','geodetic_crs','ESRI','37222','EPSG','3201','EPSG','1024'); @@ -1974,159 +1974,159 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37222','geodetic_crs',' INSERT INTO "geodetic_crs" VALUES('ESRI','37223','GCS_Carthage',NULL,'geographic 2D','EPSG','6422','EPSG','6223',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37223_USAGE','geodetic_crs','ESRI','37223','EPSG','1236','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37223','geodetic_crs','EPSG','4223','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106224','D_Midway_1961','Midway Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106224','D_Midway_1961','Midway Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106224_USAGE','geodetic_datum','ESRI','106224','EPSG','3202','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37224','GCS_Midway_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106224',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37224_USAGE','geodetic_crs','ESRI','37224','EPSG','3202','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37224','geodetic_crs','EPSG','4727','ESRI',1); INSERT INTO "geodetic_crs" VALUES('ESRI','37225','GCS_Carthage_Grad',NULL,'geographic 2D','EPSG','6403','EPSG','6223',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37225_USAGE','geodetic_crs','ESRI','37225','EPSG','1236','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106226','D_Pitcairn_1967','Pitcairn Astro 1967','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106226','D_Pitcairn_1967','Pitcairn Astro 1967','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106226_USAGE','geodetic_datum','ESRI','106226','EPSG','3208','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37226','GCS_Pitcairn_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106226',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37226_USAGE','geodetic_crs','ESRI','37226','EPSG','3208','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37226','geodetic_crs','EPSG','4729','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106227','D_Santo_DOS_1965','Santo DOS 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106227','D_Santo_DOS_1965','Santo DOS 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106227_USAGE','geodetic_datum','ESRI','106227','EPSG','3194','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37227','GCS_Santo_DOS_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106227',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37227_USAGE','geodetic_crs','ESRI','37227','EPSG','3194','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37227','geodetic_crs','EPSG','4730','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106228','D_Viti_Levu_1916','Viti Levu 1916','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106228','D_Viti_Levu_1916','Viti Levu 1916','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106228_USAGE','geodetic_datum','ESRI','106228','EPSG','3195','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37228','GCS_Viti_Levu_1916',NULL,'geographic 2D','EPSG','6422','ESRI','106228',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37228_USAGE','geodetic_crs','ESRI','37228','EPSG','3195','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37228','geodetic_crs','EPSG','4731','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106229','D_Wake_Eniwetok_1960','Wake-Eniwetok 1960 (Marshall Islands 1960)','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106229','D_Wake_Eniwetok_1960','Wake-Eniwetok 1960 (Marshall Islands 1960)','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106229_USAGE','geodetic_datum','ESRI','106229','EPSG','3191','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37229','GCS_Wake_Eniwetok_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106229',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37229_USAGE','geodetic_crs','ESRI','37229','EPSG','3191','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37229','geodetic_crs','EPSG','4732','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106230','D_Wake_Island_1952','Wake Island Astro 1952','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106230','D_Wake_Island_1952','Wake Island Astro 1952','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106230_USAGE','geodetic_datum','ESRI','106230','EPSG','3190','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37230','GCS_Wake_Island_1952',NULL,'geographic 2D','EPSG','6422','ESRI','106230',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37230_USAGE','geodetic_crs','ESRI','37230','EPSG','3190','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37230','geodetic_crs','EPSG','4733','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106231','D_Anna_1_1965','Anna 1 Astro 1965 (Cocos Islands 1965)','EPSG','7003','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106231','D_Anna_1_1965','Anna 1 Astro 1965 (Cocos Islands 1965)','EPSG','7003','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106231_USAGE','geodetic_datum','ESRI','106231','EPSG','1069','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37231','GCS_Anna_1_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106231',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37231_USAGE','geodetic_crs','ESRI','37231','EPSG','1069','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37231','geodetic_crs','EPSG','4708','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106232','D_Gan_1970','Gan 1970','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106232','D_Gan_1970','Gan 1970','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106232_USAGE','geodetic_datum','ESRI','106232','EPSG','3274','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37232','GCS_Gan_1970',NULL,'geographic 2D','EPSG','6422','ESRI','106232',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37232_USAGE','geodetic_crs','ESRI','37232','EPSG','3274','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37232','geodetic_crs','EPSG','4684','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106233','D_ISTS_073_1969','ISTS 073 Astro 1969 (Diego Garcia 1969)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106233','D_ISTS_073_1969','ISTS 073 Astro 1969 (Diego Garcia 1969)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106233_USAGE','geodetic_datum','ESRI','106233','EPSG','3189','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37233','GCS_ISTS_073_1969',NULL,'geographic 2D','EPSG','6422','ESRI','106233',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37233_USAGE','geodetic_crs','ESRI','37233','EPSG','3189','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37233','geodetic_crs','EPSG','4724','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106234','D_Kerguelen_Island_1949','Kerguelen Island 1949','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106234','D_Kerguelen_Island_1949','Kerguelen Island 1949','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106234_USAGE','geodetic_datum','ESRI','106234','EPSG','2816','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37234','GCS_Kerguelen_Island_1949',NULL,'geographic 2D','EPSG','6422','ESRI','106234',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37234_USAGE','geodetic_crs','ESRI','37234','EPSG','2816','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37234','geodetic_crs','EPSG','4698','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106235','D_Reunion_1947','Reunion 1947','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106235','D_Reunion_1947','Reunion 1947','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106235_USAGE','geodetic_datum','ESRI','106235','EPSG','3337','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37235','GCS_Reunion_1947',NULL,'geographic 2D','EPSG','6422','ESRI','106235',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37235_USAGE','geodetic_crs','ESRI','37235','EPSG','3337','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37235','geodetic_crs','EPSG','4626','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106237','D_Ascension_Island_1958','Ascension Island 1958','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106237','D_Ascension_Island_1958','Ascension Island 1958','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106237_USAGE','geodetic_datum','ESRI','106237','EPSG','3182','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37237','GCS_Ascension_Island_1958',NULL,'geographic 2D','EPSG','6422','ESRI','106237',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37237_USAGE','geodetic_crs','ESRI','37237','EPSG','3182','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37237','geodetic_crs','EPSG','4712','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106238','D_DOS_71_4','Astro DOS 71/4 (St. Helena 1971)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106238','D_DOS_71_4','Astro DOS 71/4 (St. Helena 1971)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106238_USAGE','geodetic_datum','ESRI','106238','EPSG','3183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37238','GCS_DOS_71_4',NULL,'geographic 2D','EPSG','6422','ESRI','106238',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37238_USAGE','geodetic_crs','ESRI','37238','EPSG','3183','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37238','geodetic_crs','EPSG','4710','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106239','D_Cape_Canaveral','Cape Canaveral','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106239','D_Cape_Canaveral','Cape Canaveral','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106239_USAGE','geodetic_datum','ESRI','106239','EPSG','3206','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37239','GCS_Cape_Canaveral',NULL,'geographic 2D','EPSG','6422','ESRI','106239',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37239_USAGE','geodetic_crs','ESRI','37239','EPSG','3206','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37239','geodetic_crs','EPSG','4717','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106240','D_Fort_Thomas_1955','Fort Thomas 1955','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106240','D_Fort_Thomas_1955','Fort Thomas 1955','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106240_USAGE','geodetic_datum','ESRI','106240','EPSG','1200','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37240','GCS_Fort_Thomas_1955',NULL,'geographic 2D','EPSG','6422','ESRI','106240',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37240_USAGE','geodetic_crs','ESRI','37240','EPSG','1200','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106241','D_Graciosa_Base_SW_1948','Graciosa Base SW 1948','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106241','D_Graciosa_Base_SW_1948','Graciosa Base SW 1948','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106241_USAGE','geodetic_datum','ESRI','106241','EPSG','1301','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37241','GCS_Graciosa_Base_SW_1948',NULL,'geographic 2D','EPSG','6422','ESRI','106241',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37241_USAGE','geodetic_crs','ESRI','37241','EPSG','1301','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106242','D_ISTS_061_1968','ISTS 061 Astro 1968 (South Georgia 1968)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106242','D_ISTS_061_1968','ISTS 061 Astro 1968 (South Georgia 1968)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106242_USAGE','geodetic_datum','ESRI','106242','EPSG','3529','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37242','GCS_ISTS_061_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106242',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37242_USAGE','geodetic_crs','ESRI','37242','EPSG','3529','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37242','geodetic_crs','EPSG','4722','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106243','D_LC5_1961','L.C. 5 Astro 1961','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106243','D_LC5_1961','L.C. 5 Astro 1961','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106243_USAGE','geodetic_datum','ESRI','106243','EPSG','3186','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37243','GCS_LC5_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106243',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37243_USAGE','geodetic_crs','ESRI','37243','EPSG','3186','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106245','D_Observatorio_Meteorologico_1939','Observ. Meteorologico 1939','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106245','D_Observatorio_Meteorologico_1939','Observ. Meteorologico 1939','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106245_USAGE','geodetic_datum','ESRI','106245','EPSG','1344','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37245','GCS_Observatorio_Meteorologico_1939',NULL,'geographic 2D','EPSG','6422','ESRI','106245',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37245_USAGE','geodetic_crs','ESRI','37245','EPSG','1344','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106246','D_Pico_de_Las_Nieves','Pico de Las Nieves','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106246','D_Pico_de_Las_Nieves','Pico de Las Nieves','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106246_USAGE','geodetic_datum','ESRI','106246','EPSG','3873','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37246','GCS_Pico_de_Las_Nieves',NULL,'geographic 2D','EPSG','6422','ESRI','106246',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37246_USAGE','geodetic_crs','ESRI','37246','EPSG','3873','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37246','geodetic_crs','EPSG','4728','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106247','D_Porto_Santo_1936','Porto Santo 1936','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106247','D_Porto_Santo_1936','Porto Santo 1936','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106247_USAGE','geodetic_datum','ESRI','106247','EPSG','1314','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37247','GCS_Porto_Santo_1936',NULL,'geographic 2D','EPSG','6422','ESRI','106247',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37247_USAGE','geodetic_crs','ESRI','37247','EPSG','1314','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37247','geodetic_crs','EPSG','4615','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106249','D_Sao_Braz','Sao Braz','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106249','D_Sao_Braz','Sao Braz','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106249_USAGE','geodetic_datum','ESRI','106249','EPSG','1345','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37249','GCS_Sao_Braz',NULL,'geographic 2D','EPSG','6422','ESRI','106249',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37249_USAGE','geodetic_crs','ESRI','37249','EPSG','1345','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106250','D_Selvagem_Grande_1938','Selvagem Grande 1938','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106250','D_Selvagem_Grande_1938','Selvagem Grande 1938','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106250_USAGE','geodetic_datum','ESRI','106250','EPSG','2779','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37250','GCS_Selvagem_Grande_1938',NULL,'geographic 2D','EPSG','6422','ESRI','106250',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37250_USAGE','geodetic_crs','ESRI','37250','EPSG','2779','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37250','geodetic_crs','EPSG','4616','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106251','D_Tristan_1968','Tristan Astro 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106251','D_Tristan_1968','Tristan Astro 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106251_USAGE','geodetic_datum','ESRI','106251','EPSG','3184','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37251','GCS_Tristan_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106251',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37251_USAGE','geodetic_crs','ESRI','37251','EPSG','3184','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37251','geodetic_crs','EPSG','4734','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106252','D_American_Samoa_1962','American Samoa 1962','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106252','D_American_Samoa_1962','American Samoa 1962','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106252_USAGE','geodetic_datum','ESRI','106252','EPSG','3109','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37252','GCS_American_Samoa_1962',NULL,'geographic 2D','EPSG','6422','ESRI','106252',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37252_USAGE','geodetic_crs','ESRI','37252','EPSG','3109','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37252','geodetic_crs','EPSG','4169','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106253','D_Camp_Area','Camp Area Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106253','D_Camp_Area','Camp Area Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106253_USAGE','geodetic_datum','ESRI','106253','EPSG','3205','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37253','GCS_Camp_Area',NULL,'geographic 2D','EPSG','6422','ESRI','106253',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37253_USAGE','geodetic_crs','ESRI','37253','EPSG','3205','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37253','geodetic_crs','EPSG','4715','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106254','D_Deception_Island','Deception Island','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106254','D_Deception_Island','Deception Island','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106254_USAGE','geodetic_datum','ESRI','106254','EPSG','3204','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37254','GCS_Deception_Island',NULL,'geographic 2D','EPSG','6422','ESRI','106254',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37254_USAGE','geodetic_crs','ESRI','37254','EPSG','3204','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37254','geodetic_crs','EPSG','4736','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106255','D_Gunung_Segara','Gunung Segara','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106255','D_Gunung_Segara','Gunung Segara','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106255_USAGE','geodetic_datum','ESRI','106255','EPSG','1360','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37255','GCS_Gunung_Segara',NULL,'geographic 2D','EPSG','6422','ESRI','106255',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37255_USAGE','geodetic_crs','ESRI','37255','EPSG','1360','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37255','geodetic_crs','EPSG','4613','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106257','D_S42_Hungary','S-42 Hungary','EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106257','D_S42_Hungary','S-42 Hungary','EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106257_USAGE','geodetic_datum','ESRI','106257','EPSG','1119','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37257','GCS_S42_Hungary',NULL,'geographic 2D','EPSG','6422','ESRI','106257',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37257_USAGE','geodetic_crs','ESRI','37257','EPSG','1119','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106259','D_Kusaie_1951','Kusaie Astro 1951','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106259','D_Kusaie_1951','Kusaie Astro 1951','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106259_USAGE','geodetic_datum','ESRI','106259','EPSG','3192','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37259','GCS_Kusaie_1951',NULL,'geographic 2D','EPSG','6422','ESRI','106259',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37259_USAGE','geodetic_crs','ESRI','37259','EPSG','3192','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37259','geodetic_crs','EPSG','4735','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106260','D_Alaskan_Islands','Alaskan Islands','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106260','D_Alaskan_Islands','Alaskan Islands','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106260_USAGE','geodetic_datum','ESRI','106260','EPSG','1330','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37260','GCS_Alaskan_Islands',NULL,'geographic 2D','EPSG','6422','ESRI','106260',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37260_USAGE','geodetic_crs','ESRI','37260','EPSG','1330','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104000','GCS_Assumed_Geographic_1',NULL,'geographic 2D','EPSG','6422','EPSG','6267',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104000_USAGE','geodetic_crs','ESRI','104000','EPSG','1263','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106009','D_Kyrgyz_Republic_2006','Kyrgyz Republic 2006','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106009','D_Kyrgyz_Republic_2006','Kyrgyz Republic 2006','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106009_USAGE','geodetic_datum','ESRI','106009','EPSG','1137','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104009','GCS_Kyrg-06',NULL,'geographic 2D','EPSG','6422','ESRI','106009',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104009_USAGE','geodetic_crs','ESRI','104009','EPSG','1137','EPSG','1024'); @@ -2161,7 +2161,7 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104018','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104019','ITRF2014',NULL,'geographic 2D','EPSG','6422','EPSG','1165',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104019_USAGE','geodetic_crs','ESRI','104019','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104019','geodetic_crs','EPSG','9000','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106020','D_JGD_2011','Japan Geodetic Datum 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106020','D_JGD_2011','Japan Geodetic Datum 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106020_USAGE','geodetic_datum','ESRI','106020','EPSG','1129','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104020','GCS_JGD_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106020',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104020_USAGE','geodetic_crs','ESRI','104020','EPSG','1129','EPSG','1024'); @@ -2169,106 +2169,106 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104020','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104021','IGS14',NULL,'geographic 2D','EPSG','6422','EPSG','1191',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104021_USAGE','geodetic_crs','ESRI','104021','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104021','geodetic_crs','EPSG','9019','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106010','Georgia_Geodetic_Datum','Georgia Geodetic Datum - ITRF2008/IGS08','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106010','Georgia_Geodetic_Datum','Georgia Geodetic Datum - ITRF2008/IGS08','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106010_USAGE','geodetic_datum','ESRI','106010','EPSG','3251','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104022','GGD',NULL,'geographic 2D','EPSG','6422','ESRI','106010',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104022_USAGE','geodetic_crs','ESRI','104022','EPSG','3251','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','6023','D_International_1967','International 1967','ESRI','7023','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','6023','D_International_1967','International 1967','ESRI','7023','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '6023_USAGE','geodetic_datum','ESRI','6023','EPSG','1263','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104023','GCS_International_1967',NULL,'geographic 2D','EPSG','6422','ESRI','6023',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104023_USAGE','geodetic_crs','ESRI','104023','EPSG','1263','EPSG','1024'); INSERT INTO "extent" VALUES('ESRI','1','USA - California and borders of NV, AZ, OR and MX','USA - California and borders of NV, AZ, OR and MX',32.25,42.53,-124.45,-113.6,0); -INSERT INTO "geodetic_datum" VALUES('ESRI','106012','California_SRS_Epoch_2017.50_(NAD83)','California SRS Epoch 2017.5 (NAD83)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106012','California_SRS_Epoch_2017.50_(NAD83)','California SRS Epoch 2017.5 (NAD83)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106012_USAGE','geodetic_datum','ESRI','106012','ESRI','1','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104024','California_SRS_Epoch_2017.50_(NAD83)',NULL,'geographic 2D','EPSG','6422','ESRI','106012',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104024_USAGE','geodetic_crs','ESRI','104024','ESRI','1','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104025','GCS_Voirol_Unifie_1960_Paris',NULL,'geographic 2D','EPSG','6403','ESRI','106011',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104025_USAGE','geodetic_crs','ESRI','104025','EPSG','1365','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106011_Greenwich','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106011_Greenwich','D_Voirol_Unifie_1960','Voirol Unifie 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106011_Greenwich_USAGE','geodetic_datum','ESRI','106011_Greenwich','EPSG','1365','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104026','GCS_Voirol_Unifie_1960',NULL,'geographic 2D','EPSG','6403','ESRI','106011_Greenwich',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104026_USAGE','geodetic_crs','ESRI','104026','EPSG','1365','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106027','Oman_National_Geodetic_Datum_2017','Oman National Geodetic Datum 2017','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106027','Oman_National_Geodetic_Datum_2017','Oman National Geodetic Datum 2017','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106027_USAGE','geodetic_datum','ESRI','106027','EPSG','1183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104027','ONGD17',NULL,'geographic 2D','EPSG','6422','ESRI','106027',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104027_USAGE','geodetic_crs','ESRI','104027','EPSG','1183','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104027','geodetic_crs','EPSG','9294','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106028','Geocentric_Datum_of_Mauritius_2008','Geocentric Datum of Mauritius 2008','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106028','Geocentric_Datum_of_Mauritius_2008','Geocentric Datum of Mauritius 2008','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106028_USAGE','geodetic_datum','ESRI','106028','EPSG','1158','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104028','GDM2008',NULL,'geographic 2D','EPSG','6422','ESRI','106028',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104028_USAGE','geodetic_crs','ESRI','104028','EPSG','1158','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106047','D_Sphere_GRS_1980_Mean_Radius','GRS 1980 Mean Radius Sphere','ESRI','107047','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106047','D_Sphere_GRS_1980_Mean_Radius','GRS 1980 Mean Radius Sphere','ESRI','107047','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106047_USAGE','geodetic_datum','ESRI','106047','EPSG','1263','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104047','GCS_Sphere_GRS_1980_Mean_Radius',NULL,'geographic 2D','EPSG','6422','ESRI','106047',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104047_USAGE','geodetic_crs','ESRI','104047','EPSG','1263','EPSG','1024'); INSERT INTO "extent" VALUES('ESRI','2','UK - London','UK - London',51.2,51.8,-0.7,0.6,0); -INSERT INTO "geodetic_datum" VALUES('ESRI','106050','D_Xrail84','Xrail84','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106050','D_Xrail84','Xrail84','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106050_USAGE','geodetic_datum','ESRI','106050','ESRI','2','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104050','GCS_Xrail84',NULL,'geographic 2D','EPSG','6422','ESRI','106050',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104050_USAGE','geodetic_crs','ESRI','104050','ESRI','2','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106100','D_GDBD2009','GDBD2009','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106100','D_GDBD2009','GDBD2009','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106100_USAGE','geodetic_datum','ESRI','106100','EPSG','1055','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104100','GCS_GDBD2009',NULL,'geographic 2D','EPSG','6422','ESRI','106100',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104100_USAGE','geodetic_crs','ESRI','104100','EPSG','1055','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104100','geodetic_crs','EPSG','5246','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106101','D_Estonia_1937','Estonia 1937','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106101','D_Estonia_1937','Estonia 1937','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106101_USAGE','geodetic_datum','ESRI','106101','EPSG','1090','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104101','GCS_Estonia_1937',NULL,'geographic 2D','EPSG','6422','ESRI','106101',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104101_USAGE','geodetic_crs','ESRI','104101','EPSG','1090','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106102','D_Hermannskogel','Hermannskogel','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106102','D_Hermannskogel','Hermannskogel','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106102_USAGE','geodetic_datum','ESRI','106102','EPSG','1321','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104102','GCS_Hermannskogel',NULL,'geographic 2D','EPSG','6422','ESRI','106102',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104102_USAGE','geodetic_crs','ESRI','104102','EPSG','1321','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106103','D_Sierra_Leone_1960','Sierra Leone 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106103','D_Sierra_Leone_1960','Sierra Leone 1960','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106103_USAGE','geodetic_datum','ESRI','106103','EPSG','1209','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104103','GCS_Sierra_Leone_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106103',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104103_USAGE','geodetic_crs','ESRI','104103','EPSG','1209','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106261','D_Hong_Kong_1980','Hong Kong 1980','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106261','D_Hong_Kong_1980','Hong Kong 1980','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106261_USAGE','geodetic_datum','ESRI','106261','EPSG','1118','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104104','GCS_Hong_Kong_1980',NULL,'geographic 2D','EPSG','6422','ESRI','106261',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104104_USAGE','geodetic_crs','ESRI','104104','EPSG','1118','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104104','geodetic_crs','EPSG','4611','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106262','D_Datum_Lisboa_Bessel','Datum Lisboa Bessel','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106262','D_Datum_Lisboa_Bessel','Datum Lisboa Bessel','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106262_USAGE','geodetic_datum','ESRI','106262','EPSG','1193','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104105','GCS_Datum_Lisboa_Bessel',NULL,'geographic 2D','EPSG','6422','ESRI','106262',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104105_USAGE','geodetic_crs','ESRI','104105','EPSG','1193','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106263','D_Datum_Lisboa_Hayford','Datum Lisboa Hayford','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106263','D_Datum_Lisboa_Hayford','Datum Lisboa Hayford','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106263_USAGE','geodetic_datum','ESRI','106263','EPSG','1193','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104106','GCS_Datum_Lisboa_Hayford',NULL,'geographic 2D','EPSG','6422','ESRI','106263',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104106_USAGE','geodetic_crs','ESRI','104106','EPSG','1193','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106264','D_RGF_1993','Reseau Geodesique Francais 1993','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106264','D_RGF_1993','Reseau Geodesique Francais 1993','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106264_USAGE','geodetic_datum','ESRI','106264','EPSG','1096','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104107','GCS_RGF_1993',NULL,'geographic 2D','EPSG','6422','ESRI','106264',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104107_USAGE','geodetic_crs','ESRI','104107','EPSG','1096','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104107','geodetic_crs','EPSG','4171','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106265','D_NZGD_2000','New Zealand Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106265','D_NZGD_2000','New Zealand Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106265_USAGE','geodetic_datum','ESRI','106265','EPSG','1175','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104108','GCS_NZGD_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106265',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104108_USAGE','geodetic_crs','ESRI','104108','EPSG','1175','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104108','geodetic_crs','EPSG','4167','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106266','D_Pohnpei','Pohnpei - Fed. States Micronesia','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106266','D_Pohnpei','Pohnpei - Fed. States Micronesia','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106266_USAGE','geodetic_datum','ESRI','106266','EPSG','1161','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104109','GCS_Pohnpei',NULL,'geographic 2D','EPSG','6422','ESRI','106266',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104109_USAGE','geodetic_crs','ESRI','104109','EPSG','1161','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106267','D_REGVEN','REGVEN','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106267','D_REGVEN','REGVEN','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106267_USAGE','geodetic_datum','ESRI','106267','EPSG','1251','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104110','GCS_REGVEN',NULL,'geographic 2D','EPSG','6422','ESRI','106267',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104110_USAGE','geodetic_crs','ESRI','104110','EPSG','1251','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104110','geodetic_crs','EPSG','4189','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106268','D_JGD_2000','Japan Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106268','D_JGD_2000','Japan Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106268_USAGE','geodetic_datum','ESRI','106268','EPSG','1129','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104111','GCS_JGD_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106268',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104111_USAGE','geodetic_crs','ESRI','104111','EPSG','1129','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104111','geodetic_crs','EPSG','4612','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106269','D_Bab_South','Bab South Astro - Bablethuap Is - Republic of Palau','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106269','D_Bab_South','Bab South Astro - Bablethuap Is - Republic of Palau','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106269_USAGE','geodetic_datum','ESRI','106269','EPSG','1185','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104112','GCS_Bab_South',NULL,'geographic 2D','EPSG','6422','ESRI','106269',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104112_USAGE','geodetic_crs','ESRI','104112','EPSG','1185','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106270','D_Majuro','Majuro - Republic of Marshall Is.','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106270','D_Majuro','Majuro - Republic of Marshall Is.','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106270_USAGE','geodetic_datum','ESRI','106270','EPSG','1155','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104113','GCS_Majuro',NULL,'geographic 2D','EPSG','6422','ESRI','106270',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104113_USAGE','geodetic_crs','ESRI','104113','EPSG','1155','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106271','D_Bermuda_2000','Bermuda 2000','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106271','D_Bermuda_2000','Bermuda 2000','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106271_USAGE','geodetic_datum','ESRI','106271','EPSG','1047','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104114','GCS_Bermuda_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106271',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104114_USAGE','geodetic_crs','ESRI','104114','EPSG','1047','EPSG','1024'); @@ -2303,40 +2303,40 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104123','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104124','GCS_ITRF_2000',NULL,'geographic 2D','EPSG','6422','EPSG','6656',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104124_USAGE','geodetic_crs','ESRI','104124','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104124','geodetic_crs','EPSG','8997','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106273','D_Chatham_Islands_1979','Chatham Islands 1979','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106273','D_Chatham_Islands_1979','Chatham Islands 1979','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106273_USAGE','geodetic_datum','ESRI','106273','EPSG','2889','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104125','GCS_Chatham_Islands_1979',NULL,'geographic 2D','EPSG','6422','ESRI','106273',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104125_USAGE','geodetic_crs','ESRI','104125','EPSG','2889','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104125','geodetic_crs','EPSG','4673','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106274','D_Observatorio_Meteorologico_1965','Observatorio Meteorologico 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106274','D_Observatorio_Meteorologico_1965','Observatorio Meteorologico 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106274_USAGE','geodetic_datum','ESRI','106274','EPSG','1147','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104126','GCS_Observatorio_Meteorologico_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106274',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104126_USAGE','geodetic_crs','ESRI','104126','EPSG','1147','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106275','D_Roma_1940','Roma 1940','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106275','D_Roma_1940','Roma 1940','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106275_USAGE','geodetic_datum','ESRI','106275','EPSG','3343','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104127','GCS_Roma_1940',NULL,'geographic 2D','EPSG','6422','ESRI','106275',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104127_USAGE','geodetic_crs','ESRI','104127','EPSG','3343','EPSG','1024'); INSERT INTO "extent" VALUES('ESRI','3','Europe','Europe',34.0,85.0,-30.0,50.0,0); -INSERT INTO "geodetic_datum" VALUES('ESRI','106276','D_Sphere_EMEP','EMEP','ESRI','107009','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106276','D_Sphere_EMEP','EMEP','ESRI','107009','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106276_USAGE','geodetic_datum','ESRI','106276','ESRI','3','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104128','GCS_Sphere_EMEP',NULL,'geographic 2D','EPSG','6422','ESRI','106276',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104128_USAGE','geodetic_crs','ESRI','104128','ESRI','3','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104129','GCS_EUREF_FIN',NULL,'geographic 2D','EPSG','6422','EPSG','6258',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104129_USAGE','geodetic_crs','ESRI','104129','EPSG','1095','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106277','D_Jordan','Jordan','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106277','D_Jordan','Jordan','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106277_USAGE','geodetic_datum','ESRI','106277','EPSG','1130','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104130','GCS_Jordan',NULL,'geographic 2D','EPSG','6422','ESRI','106277',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104130_USAGE','geodetic_crs','ESRI','104130','EPSG','1130','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106278','D_D48','D48 - Slovenia','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106278','D_D48','D48 - Slovenia','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106278_USAGE','geodetic_datum','ESRI','106278','EPSG','1212','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104131','GCS_D48',NULL,'geographic 2D','EPSG','6422','ESRI','106278',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104131_USAGE','geodetic_crs','ESRI','104131','EPSG','1212','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106279','D_Ocotepeque_1935','Ocotepeque 1935','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106279','D_Ocotepeque_1935','Ocotepeque 1935','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106279_USAGE','geodetic_datum','ESRI','106279','EPSG','3876','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104132','GCS_Ocotepeque_1935',NULL,'geographic 2D','EPSG','6422','ESRI','106279',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104132_USAGE','geodetic_crs','ESRI','104132','EPSG','3876','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104132','geodetic_crs','EPSG','5451','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106280','D_Jamaica_2001','Jamaica 2001','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106280','D_Jamaica_2001','Jamaica 2001','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106280_USAGE','geodetic_datum','ESRI','106280','EPSG','1128','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104133','GCS_JAD_2001',NULL,'geographic 2D','EPSG','6422','ESRI','106280',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104133_USAGE','geodetic_crs','ESRI','104133','EPSG','1128','EPSG','1024'); @@ -2345,17 +2345,17 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104134','GCS_MONREF_1997',NULL,'geogra INSERT INTO "usage" VALUES('ESRI', '104134_USAGE','geodetic_crs','ESRI','104134','EPSG','1164','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104135','GCS_MSK_1942',NULL,'geographic 2D','EPSG','6422','EPSG','6284',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104135_USAGE','geodetic_crs','ESRI','104135','EPSG','1164','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106281','D_TWD_1967','Taiwan 1967','EPSG','7050','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106281','D_TWD_1967','Taiwan 1967','EPSG','7050','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106281_USAGE','geodetic_datum','ESRI','106281','EPSG','3315','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104136','GCS_TWD_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106281',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104136_USAGE','geodetic_crs','ESRI','104136','EPSG','3315','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104136','geodetic_crs','EPSG','3821','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106282','D_TWD_1997','Taiwan 1997','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106282','D_TWD_1997','Taiwan 1997','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106282_USAGE','geodetic_datum','ESRI','106282','EPSG','1228','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104137','GCS_TWD_1997',NULL,'geographic 2D','EPSG','6422','ESRI','106282',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104137_USAGE','geodetic_crs','ESRI','104137','EPSG','1228','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104137','geodetic_crs','EPSG','3824','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106284','D_Old_Hawaiian_Intl_1924','Old Hawaiian on Intl_1924 spheroid (NGS)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106284','D_Old_Hawaiian_Intl_1924','Old Hawaiian on Intl_1924 spheroid (NGS)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106284_USAGE','geodetic_datum','ESRI','106284','EPSG','1334','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104138','GCS_Old_Hawaiian_Intl_1924',NULL,'geographic 2D','EPSG','6422','ESRI','106284',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104138_USAGE','geodetic_crs','ESRI','104138','EPSG','1334','EPSG','1024'); @@ -2363,27 +2363,27 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104139','GCS_Voirol_1875_Grad',NULL,'g INSERT INTO "usage" VALUES('ESRI', '104139_USAGE','geodetic_crs','ESRI','104139','EPSG','1365','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104140','GCS_Voirol_1879_Grad',NULL,'geographic 2D','EPSG','6403','EPSG','6671',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104140_USAGE','geodetic_crs','ESRI','104140','EPSG','1365','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106225','D_Cyprus_Geodetic_Reference_System_1993','Cyprus GRS 1993','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106225','D_Cyprus_Geodetic_Reference_System_1993','Cyprus GRS 1993','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106225_USAGE','geodetic_datum','ESRI','106225','EPSG','3236','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104141','GCS_CGRS_1993',NULL,'geographic 2D','EPSG','6422','ESRI','106225',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104141_USAGE','geodetic_crs','ESRI','104141','EPSG','3236','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104141','geodetic_crs','EPSG','6311','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106236','D_PTRA08','Portugal - Autonomous Regions (Madeira and Azores Archipelagos)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106236','D_PTRA08','Portugal - Autonomous Regions (Madeira and Azores Archipelagos)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106236_USAGE','geodetic_datum','ESRI','106236','EPSG','3670','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104142','GCS_PTRA08',NULL,'geographic 2D','EPSG','6422','ESRI','106236',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104142_USAGE','geodetic_crs','ESRI','104142','EPSG','3670','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104142','geodetic_crs','EPSG','5013','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106244','D_Costa_Rica_2005','Costa Rica 2005','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106244','D_Costa_Rica_2005','Costa Rica 2005','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106244_USAGE','geodetic_datum','ESRI','106244','EPSG','1074','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104143','GCS_CR05',NULL,'geographic 2D','EPSG','6422','ESRI','106244',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104143_USAGE','geodetic_crs','ESRI','104143','EPSG','1074','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104143','geodetic_crs','EPSG','5365','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106144','D_Islands_Network_2004','Islands Network 2004','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106144','D_Islands_Network_2004','Islands Network 2004','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106144_USAGE','geodetic_datum','ESRI','106144','EPSG','1120','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104144','GCS_ISN_2004',NULL,'geographic 2D','EPSG','6422','ESRI','106144',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104144_USAGE','geodetic_crs','ESRI','104144','EPSG','1120','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104144','geodetic_crs','EPSG','5324','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106285','D_NAD_1983_2011','NAD 1983 (2011)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106285','D_NAD_1983_2011','NAD 1983 (2011)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106285_USAGE','geodetic_datum','ESRI','106285','EPSG','1511','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104145','GCS_NAD_1983_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106285',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104145_USAGE','geodetic_crs','ESRI','104145','EPSG','1511','EPSG','1024'); @@ -2412,22 +2412,22 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104185','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104186','ETRF2000',NULL,'geographic 2D','EPSG','6422','EPSG','1186',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104186_USAGE','geodetic_crs','ESRI','104186','EPSG','1298','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104186','geodetic_crs','EPSG','9067','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106283','D_WGS_1984_Major_Auxiliary_Sphere','Major auxiliary sphere based on WGS 1984','EPSG','7059','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106283','D_WGS_1984_Major_Auxiliary_Sphere','Major auxiliary sphere based on WGS 1984','EPSG','7059','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106283_USAGE','geodetic_datum','ESRI','106283','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104199','GCS_WGS_1984_Major_Auxiliary_Sphere',NULL,'geographic 2D','EPSG','6422','ESRI','106283',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104199_USAGE','geodetic_crs','ESRI','104199','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104199','geodetic_crs','EPSG','4055','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106223','D_NAD_1983_CORS96','NAD 1983 (CORS96)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106223','D_NAD_1983_CORS96','NAD 1983 (CORS96)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106223_USAGE','geodetic_datum','ESRI','106223','EPSG','1511','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104223','GCS_NAD_1983_CORS96',NULL,'geographic 2D','EPSG','6422','ESRI','106223',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104223_USAGE','geodetic_crs','ESRI','104223','EPSG','1511','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104223','geodetic_crs','EPSG','6783','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106248','D_MACAO_2008','Macao 2008 (ITRF 2005)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106248','D_MACAO_2008','Macao 2008 (ITRF 2005)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106248_USAGE','geodetic_datum','ESRI','106248','EPSG','1147','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104248','GCS_MACAO_2008',NULL,'geographic 2D','EPSG','6422','ESRI','106248',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104248_USAGE','geodetic_crs','ESRI','104248','EPSG','1147','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104248','geodetic_crs','EPSG','8431','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106256','D_Nepal_Nagarkot','Nepal Nagarkot','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106256','D_Nepal_Nagarkot','Nepal Nagarkot','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106256_USAGE','geodetic_datum','ESRI','106256','EPSG','1171','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104256','GCS_Nepal_Nagarkot',NULL,'geographic 2D','EPSG','6422','ESRI','106256',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104256_USAGE','geodetic_crs','ESRI','104256','EPSG','1171','EPSG','1024'); @@ -2435,17 +2435,17 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104256','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104257','GCS_ITRF_2008',NULL,'geographic 2D','EPSG','6422','EPSG','1061',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104257_USAGE','geodetic_crs','ESRI','104257','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104257','geodetic_crs','EPSG','8999','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106258','D_ETRF_1989','European Terrestrial Ref. Frame 1989','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106258','D_ETRF_1989','European Terrestrial Ref. Frame 1989','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106258_USAGE','geodetic_datum','ESRI','106258','EPSG','1298','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104258','GCS_ETRF_1989',NULL,'geographic 2D','EPSG','6422','ESRI','106258',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104258_USAGE','geodetic_crs','ESRI','104258','EPSG','1298','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104258','geodetic_crs','EPSG','9059','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106209','D_NAD_1983_PACP00','NAD 1983 PACP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106209','D_NAD_1983_PACP00','NAD 1983 PACP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106209_USAGE','geodetic_datum','ESRI','106209','EPSG','4162','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104259','GCS_NAD_1983_PACP00',NULL,'geographic 2D','EPSG','6422','ESRI','106209',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104259_USAGE','geodetic_crs','ESRI','104259','EPSG','4162','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104259','geodetic_crs','EPSG','9075','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106210','D_NAD_1983_MARP00','NAD 1983 MARP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106210','D_NAD_1983_MARP00','NAD 1983 MARP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106210_USAGE','geodetic_datum','ESRI','106210','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104260','GCS_NAD_1983_MARP00',NULL,'geographic 2D','EPSG','6422','ESRI','106210',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104260_USAGE','geodetic_crs','ESRI','104260','EPSG','4167','EPSG','1024'); @@ -2453,12 +2453,12 @@ INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104260','geodetic_crs', INSERT INTO "geodetic_crs" VALUES('ESRI','104261','GCS_Merchich',NULL,'geographic 2D','EPSG','6422','EPSG','6261',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104261_USAGE','geodetic_crs','ESRI','104261','EPSG','4581','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104261','geodetic_crs','EPSG','4261','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106286','D_NAD_1983_MA11','NAD 1983 (MA11) - Marianas Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106286','D_NAD_1983_MA11','NAD 1983 (MA11) - Marianas Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106286_USAGE','geodetic_datum','ESRI','106286','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104286','GCS_NAD_1983_MA11',NULL,'geographic 2D','EPSG','6422','ESRI','106286',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104286_USAGE','geodetic_crs','ESRI','104286','EPSG','4167','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104286','geodetic_crs','EPSG','6325','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106287','D_NAD_1983_PA11','NAD 1983 (PA11) - Pacific Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106287','D_NAD_1983_PA11','NAD 1983 (PA11) - Pacific Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106287_USAGE','geodetic_datum','ESRI','106287','EPSG','4162','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104287','GCS_NAD_1983_PA11',NULL,'geographic 2D','EPSG','6422','ESRI','106287',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104287_USAGE','geodetic_crs','ESRI','104287','EPSG','4162','EPSG','1024'); @@ -2476,7 +2476,7 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104644','California_SRS_Epoch_2017.50_ INSERT INTO "usage" VALUES('ESRI', '104644_USAGE','geodetic_crs','ESRI','104644','ESRI','1','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104645','GGD_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106010',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104645_USAGE','geodetic_crs','ESRI','104645','EPSG','3251','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106272','PANAMA08_2011','Panama - ITRF_2008 epoch 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106272','PANAMA08_2011','Panama - ITRF_2008 epoch 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106272_USAGE','geodetic_datum','ESRI','106272','EPSG','1186','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104646','GCS_PANAMA08_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106272',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104646_USAGE','geodetic_crs','ESRI','104646','EPSG','1186','EPSG','1024'); @@ -2495,457 +2495,457 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104696','S_JTSK/05_3D',NULL,'geographi INSERT INTO "usage" VALUES('ESRI', '104696_USAGE','geodetic_crs','ESRI','104696','EPSG','1079','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104697','S_JTSK/05_Ferro_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1052',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104697_USAGE','geodetic_crs','ESRI','104697','EPSG','1079','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106700','D_NAD_1983_HARN_Adj_MN_Anoka','NAD 1983 HARN Adj. Minnesota Anoka','ESRI','107700','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106700','D_NAD_1983_HARN_Adj_MN_Anoka','NAD 1983 HARN Adj. Minnesota Anoka','ESRI','107700','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106700_USAGE','geodetic_datum','ESRI','106700','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104700','GCS_NAD_1983_HARN_Adj_MN_Anoka',NULL,'geographic 2D','EPSG','6422','ESRI','106700',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104700_USAGE','geodetic_crs','ESRI','104700','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106701','D_NAD_1983_HARN_Adj_MN_Becker','NAD 1983 HARN Adj. Minnesota Becker','ESRI','107701','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106701','D_NAD_1983_HARN_Adj_MN_Becker','NAD 1983 HARN Adj. Minnesota Becker','ESRI','107701','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106701_USAGE','geodetic_datum','ESRI','106701','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104701','GCS_NAD_1983_HARN_Adj_MN_Becker',NULL,'geographic 2D','EPSG','6422','ESRI','106701',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104701_USAGE','geodetic_crs','ESRI','104701','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106702','D_NAD_1983_HARN_Adj_MN_Beltrami_North','NAD 1983 HARN Adj. Minnesota Beltrami North','ESRI','107702','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106702','D_NAD_1983_HARN_Adj_MN_Beltrami_North','NAD 1983 HARN Adj. Minnesota Beltrami North','ESRI','107702','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106702_USAGE','geodetic_datum','ESRI','106702','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104702','GCS_NAD_1983_HARN_Adj_MN_Beltrami_North',NULL,'geographic 2D','EPSG','6422','ESRI','106702',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104702_USAGE','geodetic_crs','ESRI','104702','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106703','D_NAD_1983_HARN_Adj_MN_Beltrami_South','NAD 1983 HARN Adj. Minnesota Beltrami South','ESRI','107703','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106703','D_NAD_1983_HARN_Adj_MN_Beltrami_South','NAD 1983 HARN Adj. Minnesota Beltrami South','ESRI','107703','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106703_USAGE','geodetic_datum','ESRI','106703','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104703','GCS_NAD_1983_HARN_Adj_MN_Beltrami_South',NULL,'geographic 2D','EPSG','6422','ESRI','106703',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104703_USAGE','geodetic_crs','ESRI','104703','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106704','D_NAD_1983_HARN_Adj_MN_Benton','NAD 1983 HARN Adj. Minnesota Benton','ESRI','107704','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106704','D_NAD_1983_HARN_Adj_MN_Benton','NAD 1983 HARN Adj. Minnesota Benton','ESRI','107704','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106704_USAGE','geodetic_datum','ESRI','106704','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104704','GCS_NAD_1983_HARN_Adj_MN_Benton',NULL,'geographic 2D','EPSG','6422','ESRI','106704',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104704_USAGE','geodetic_crs','ESRI','104704','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106705','D_NAD_1983_HARN_Adj_MN_Big_Stone','NAD 1983 HARN Adj. Minnesota Big Stone','ESRI','107705','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106705','D_NAD_1983_HARN_Adj_MN_Big_Stone','NAD 1983 HARN Adj. Minnesota Big Stone','ESRI','107705','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106705_USAGE','geodetic_datum','ESRI','106705','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104705','GCS_NAD_1983_HARN_Adj_MN_Big_Stone',NULL,'geographic 2D','EPSG','6422','ESRI','106705',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104705_USAGE','geodetic_crs','ESRI','104705','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106706','D_NAD_1983_HARN_Adj_MN_Blue_Earth','NAD 1983 HARN Adj. Minnesota Blue Earth','ESRI','107706','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106706','D_NAD_1983_HARN_Adj_MN_Blue_Earth','NAD 1983 HARN Adj. Minnesota Blue Earth','ESRI','107706','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106706_USAGE','geodetic_datum','ESRI','106706','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104706','GCS_NAD_1983_HARN_Adj_MN_Blue_Earth',NULL,'geographic 2D','EPSG','6422','ESRI','106706',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104706_USAGE','geodetic_crs','ESRI','104706','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106707','D_NAD_1983_HARN_Adj_MN_Brown','NAD 1983 HARN Adj. Minnesota Brown','ESRI','107707','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106707','D_NAD_1983_HARN_Adj_MN_Brown','NAD 1983 HARN Adj. Minnesota Brown','ESRI','107707','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106707_USAGE','geodetic_datum','ESRI','106707','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104707','GCS_NAD_1983_HARN_Adj_MN_Brown',NULL,'geographic 2D','EPSG','6422','ESRI','106707',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104707_USAGE','geodetic_crs','ESRI','104707','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106708','D_NAD_1983_HARN_Adj_MN_Carlton','NAD 1983 HARN Adj. Minnesota Carlton','ESRI','107708','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106708','D_NAD_1983_HARN_Adj_MN_Carlton','NAD 1983 HARN Adj. Minnesota Carlton','ESRI','107708','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106708_USAGE','geodetic_datum','ESRI','106708','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104708','GCS_NAD_1983_HARN_Adj_MN_Carlton',NULL,'geographic 2D','EPSG','6422','ESRI','106708',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104708_USAGE','geodetic_crs','ESRI','104708','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106709','D_NAD_1983_HARN_Adj_MN_Carver','NAD 1983 HARN Adj. Minnesota Carver','ESRI','107709','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106709','D_NAD_1983_HARN_Adj_MN_Carver','NAD 1983 HARN Adj. Minnesota Carver','ESRI','107709','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106709_USAGE','geodetic_datum','ESRI','106709','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104709','GCS_NAD_1983_HARN_Adj_MN_Carver',NULL,'geographic 2D','EPSG','6422','ESRI','106709',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104709_USAGE','geodetic_crs','ESRI','104709','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106710','D_NAD_1983_HARN_Adj_MN_Cass_North','NAD 1983 HARN Adj. Minnesota Cass North','ESRI','107710','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106710','D_NAD_1983_HARN_Adj_MN_Cass_North','NAD 1983 HARN Adj. Minnesota Cass North','ESRI','107710','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106710_USAGE','geodetic_datum','ESRI','106710','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104710','GCS_NAD_1983_HARN_Adj_MN_Cass_North',NULL,'geographic 2D','EPSG','6422','ESRI','106710',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104710_USAGE','geodetic_crs','ESRI','104710','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106711','D_NAD_1983_HARN_Adj_MN_Cass_South','NAD 1983 HARN Adj. Minnesota Cass South','ESRI','107711','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106711','D_NAD_1983_HARN_Adj_MN_Cass_South','NAD 1983 HARN Adj. Minnesota Cass South','ESRI','107711','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106711_USAGE','geodetic_datum','ESRI','106711','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104711','GCS_NAD_1983_HARN_Adj_MN_Cass_South',NULL,'geographic 2D','EPSG','6422','ESRI','106711',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104711_USAGE','geodetic_crs','ESRI','104711','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106712','D_NAD_1983_HARN_Adj_MN_Chippewa','NAD 1983 HARN Adj. Minnesota Chippewa','ESRI','107712','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106712','D_NAD_1983_HARN_Adj_MN_Chippewa','NAD 1983 HARN Adj. Minnesota Chippewa','ESRI','107712','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106712_USAGE','geodetic_datum','ESRI','106712','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104712','GCS_NAD_1983_HARN_Adj_MN_Chippewa',NULL,'geographic 2D','EPSG','6422','ESRI','106712',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104712_USAGE','geodetic_crs','ESRI','104712','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106713','D_NAD_1983_HARN_Adj_MN_Chisago','NAD 1983 HARN Adj. Minnesota Chisago','ESRI','107713','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106713','D_NAD_1983_HARN_Adj_MN_Chisago','NAD 1983 HARN Adj. Minnesota Chisago','ESRI','107713','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106713_USAGE','geodetic_datum','ESRI','106713','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104713','GCS_NAD_1983_HARN_Adj_MN_Chisago',NULL,'geographic 2D','EPSG','6422','ESRI','106713',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104713_USAGE','geodetic_crs','ESRI','104713','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106714','D_NAD_1983_HARN_Adj_MN_Cook_North','NAD 1983 HARN Adj. Minnesota Cook North','ESRI','107714','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106714','D_NAD_1983_HARN_Adj_MN_Cook_North','NAD 1983 HARN Adj. Minnesota Cook North','ESRI','107714','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106714_USAGE','geodetic_datum','ESRI','106714','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104714','GCS_NAD_1983_HARN_Adj_MN_Cook_North',NULL,'geographic 2D','EPSG','6422','ESRI','106714',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104714_USAGE','geodetic_crs','ESRI','104714','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106715','D_NAD_1983_HARN_Adj_MN_Cook_South','NAD 1983 HARN Adj. Minnesota Cook South','ESRI','107715','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106715','D_NAD_1983_HARN_Adj_MN_Cook_South','NAD 1983 HARN Adj. Minnesota Cook South','ESRI','107715','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106715_USAGE','geodetic_datum','ESRI','106715','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104715','GCS_NAD_1983_HARN_Adj_MN_Cook_South',NULL,'geographic 2D','EPSG','6422','ESRI','106715',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104715_USAGE','geodetic_crs','ESRI','104715','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106716','D_NAD_1983_HARN_Adj_MN_Cottonwood','NAD 1983 HARN Adj. Minnesota Cottonwood','ESRI','107716','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106716','D_NAD_1983_HARN_Adj_MN_Cottonwood','NAD 1983 HARN Adj. Minnesota Cottonwood','ESRI','107716','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106716_USAGE','geodetic_datum','ESRI','106716','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104716','GCS_NAD_1983_HARN_Adj_MN_Cottonwood',NULL,'geographic 2D','EPSG','6422','ESRI','106716',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104716_USAGE','geodetic_crs','ESRI','104716','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106717','D_NAD_1983_HARN_Adj_MN_Crow_Wing','NAD 1983 HARN Adj. Minnesota Crow Wing','ESRI','107717','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106717','D_NAD_1983_HARN_Adj_MN_Crow_Wing','NAD 1983 HARN Adj. Minnesota Crow Wing','ESRI','107717','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106717_USAGE','geodetic_datum','ESRI','106717','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104717','GCS_NAD_1983_HARN_Adj_MN_Crow_Wing',NULL,'geographic 2D','EPSG','6422','ESRI','106717',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104717_USAGE','geodetic_crs','ESRI','104717','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106718','D_NAD_1983_HARN_Adj_MN_Dakota','NAD 1983 HARN Adj. Minnesota Dakota','ESRI','107718','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106718','D_NAD_1983_HARN_Adj_MN_Dakota','NAD 1983 HARN Adj. Minnesota Dakota','ESRI','107718','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106718_USAGE','geodetic_datum','ESRI','106718','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104718','GCS_NAD_1983_HARN_Adj_MN_Dakota',NULL,'geographic 2D','EPSG','6422','ESRI','106718',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104718_USAGE','geodetic_crs','ESRI','104718','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106719','D_NAD_1983_HARN_Adj_MN_Dodge','NAD 1983 HARN Adj. Minnesota Dodge','ESRI','107719','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106719','D_NAD_1983_HARN_Adj_MN_Dodge','NAD 1983 HARN Adj. Minnesota Dodge','ESRI','107719','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106719_USAGE','geodetic_datum','ESRI','106719','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104719','GCS_NAD_1983_HARN_Adj_MN_Dodge',NULL,'geographic 2D','EPSG','6422','ESRI','106719',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104719_USAGE','geodetic_crs','ESRI','104719','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106720','D_NAD_1983_HARN_Adj_MN_Douglas','NAD 1983 HARN Adj. Minnesota Douglas','ESRI','107720','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106720','D_NAD_1983_HARN_Adj_MN_Douglas','NAD 1983 HARN Adj. Minnesota Douglas','ESRI','107720','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106720_USAGE','geodetic_datum','ESRI','106720','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104720','GCS_NAD_1983_HARN_Adj_MN_Douglas',NULL,'geographic 2D','EPSG','6422','ESRI','106720',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104720_USAGE','geodetic_crs','ESRI','104720','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106721','D_NAD_1983_HARN_Adj_MN_Faribault','NAD 1983 HARN Adj. Minnesota Faribault','ESRI','107721','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106721','D_NAD_1983_HARN_Adj_MN_Faribault','NAD 1983 HARN Adj. Minnesota Faribault','ESRI','107721','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106721_USAGE','geodetic_datum','ESRI','106721','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104721','GCS_NAD_1983_HARN_Adj_MN_Faribault',NULL,'geographic 2D','EPSG','6422','ESRI','106721',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104721_USAGE','geodetic_crs','ESRI','104721','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106722','D_NAD_1983_HARN_Adj_MN_Fillmore','NAD 1983 HARN Adj. Minnesota Fillmore','ESRI','107722','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106722','D_NAD_1983_HARN_Adj_MN_Fillmore','NAD 1983 HARN Adj. Minnesota Fillmore','ESRI','107722','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106722_USAGE','geodetic_datum','ESRI','106722','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104722','GCS_NAD_1983_HARN_Adj_MN_Fillmore',NULL,'geographic 2D','EPSG','6422','ESRI','106722',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104722_USAGE','geodetic_crs','ESRI','104722','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106723','D_NAD_1983_HARN_Adj_MN_Freeborn','NAD 1983 HARN Adj. Minnesota Freeborn','ESRI','107723','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106723','D_NAD_1983_HARN_Adj_MN_Freeborn','NAD 1983 HARN Adj. Minnesota Freeborn','ESRI','107723','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106723_USAGE','geodetic_datum','ESRI','106723','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104723','GCS_NAD_1983_HARN_Adj_MN_Freeborn',NULL,'geographic 2D','EPSG','6422','ESRI','106723',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104723_USAGE','geodetic_crs','ESRI','104723','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106724','D_NAD_1983_HARN_Adj_MN_Goodhue','NAD 1983 HARN Adj. Minnesota Goodhue','ESRI','107724','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106724','D_NAD_1983_HARN_Adj_MN_Goodhue','NAD 1983 HARN Adj. Minnesota Goodhue','ESRI','107724','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106724_USAGE','geodetic_datum','ESRI','106724','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104724','GCS_NAD_1983_HARN_Adj_MN_Goodhue',NULL,'geographic 2D','EPSG','6422','ESRI','106724',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104724_USAGE','geodetic_crs','ESRI','104724','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106725','D_NAD_1983_HARN_Adj_MN_Grant','NAD 1983 HARN Adj. Minnesota Grant','ESRI','107725','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106725','D_NAD_1983_HARN_Adj_MN_Grant','NAD 1983 HARN Adj. Minnesota Grant','ESRI','107725','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106725_USAGE','geodetic_datum','ESRI','106725','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104725','GCS_NAD_1983_HARN_Adj_MN_Grant',NULL,'geographic 2D','EPSG','6422','ESRI','106725',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104725_USAGE','geodetic_crs','ESRI','104725','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106726','D_NAD_1983_HARN_Adj_MN_Hennepin','NAD 1983 HARN Adj. Minnesota Hennepin','ESRI','107726','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106726','D_NAD_1983_HARN_Adj_MN_Hennepin','NAD 1983 HARN Adj. Minnesota Hennepin','ESRI','107726','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106726_USAGE','geodetic_datum','ESRI','106726','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104726','GCS_NAD_1983_HARN_Adj_MN_Hennepin',NULL,'geographic 2D','EPSG','6422','ESRI','106726',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104726_USAGE','geodetic_crs','ESRI','104726','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106727','D_NAD_1983_HARN_Adj_MN_Houston','NAD 1983 HARN Adj. Minnesota Houston','ESRI','107727','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106727','D_NAD_1983_HARN_Adj_MN_Houston','NAD 1983 HARN Adj. Minnesota Houston','ESRI','107727','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106727_USAGE','geodetic_datum','ESRI','106727','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104727','GCS_NAD_1983_HARN_Adj_MN_Houston',NULL,'geographic 2D','EPSG','6422','ESRI','106727',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104727_USAGE','geodetic_crs','ESRI','104727','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106728','D_NAD_1983_HARN_Adj_MN_Isanti','NAD 1983 HARN Adj. Minnesota Isanti','ESRI','107728','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106728','D_NAD_1983_HARN_Adj_MN_Isanti','NAD 1983 HARN Adj. Minnesota Isanti','ESRI','107728','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106728_USAGE','geodetic_datum','ESRI','106728','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104728','GCS_NAD_1983_HARN_Adj_MN_Isanti',NULL,'geographic 2D','EPSG','6422','ESRI','106728',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104728_USAGE','geodetic_crs','ESRI','104728','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106729','D_NAD_1983_HARN_Adj_MN_Itasca_North','NAD 1983 HARN Adj. Minnesota Itasca North','ESRI','107729','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106729','D_NAD_1983_HARN_Adj_MN_Itasca_North','NAD 1983 HARN Adj. Minnesota Itasca North','ESRI','107729','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106729_USAGE','geodetic_datum','ESRI','106729','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104729','GCS_NAD_1983_HARN_Adj_MN_Itasca_North',NULL,'geographic 2D','EPSG','6422','ESRI','106729',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104729_USAGE','geodetic_crs','ESRI','104729','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106730','D_NAD_1983_HARN_Adj_MN_Itasca_South','NAD 1983 HARN Adj. Minnesota Itasca South','ESRI','107730','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106730','D_NAD_1983_HARN_Adj_MN_Itasca_South','NAD 1983 HARN Adj. Minnesota Itasca South','ESRI','107730','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106730_USAGE','geodetic_datum','ESRI','106730','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104730','GCS_NAD_1983_HARN_Adj_MN_Itasca_South',NULL,'geographic 2D','EPSG','6422','ESRI','106730',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104730_USAGE','geodetic_crs','ESRI','104730','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106731','D_NAD_1983_HARN_Adj_MN_Jackson','NAD 1983 HARN Adj. Minnesota Jackson','ESRI','107731','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106731','D_NAD_1983_HARN_Adj_MN_Jackson','NAD 1983 HARN Adj. Minnesota Jackson','ESRI','107731','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106731_USAGE','geodetic_datum','ESRI','106731','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104731','GCS_NAD_1983_HARN_Adj_MN_Jackson',NULL,'geographic 2D','EPSG','6422','ESRI','106731',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104731_USAGE','geodetic_crs','ESRI','104731','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106732','D_NAD_1983_HARN_Adj_MN_Kanabec','NAD 1983 HARN Adj. Minnesota Kanabec','ESRI','107732','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106732','D_NAD_1983_HARN_Adj_MN_Kanabec','NAD 1983 HARN Adj. Minnesota Kanabec','ESRI','107732','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106732_USAGE','geodetic_datum','ESRI','106732','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104732','GCS_NAD_1983_HARN_Adj_MN_Kanabec',NULL,'geographic 2D','EPSG','6422','ESRI','106732',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104732_USAGE','geodetic_crs','ESRI','104732','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106733','D_NAD_1983_HARN_Adj_MN_Kandiyohi','NAD 1983 HARN Adj. Minnesota Kandiyohi','ESRI','107733','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106733','D_NAD_1983_HARN_Adj_MN_Kandiyohi','NAD 1983 HARN Adj. Minnesota Kandiyohi','ESRI','107733','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106733_USAGE','geodetic_datum','ESRI','106733','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104733','GCS_NAD_1983_HARN_Adj_MN_Kandiyohi',NULL,'geographic 2D','EPSG','6422','ESRI','106733',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104733_USAGE','geodetic_crs','ESRI','104733','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106734','D_NAD_1983_HARN_Adj_MN_Kittson','NAD 1983 HARN Adj. Minnesota Kittson','ESRI','107734','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106734','D_NAD_1983_HARN_Adj_MN_Kittson','NAD 1983 HARN Adj. Minnesota Kittson','ESRI','107734','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106734_USAGE','geodetic_datum','ESRI','106734','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104734','GCS_NAD_1983_HARN_Adj_MN_Kittson',NULL,'geographic 2D','EPSG','6422','ESRI','106734',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104734_USAGE','geodetic_crs','ESRI','104734','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106735','D_NAD_1983_HARN_Adj_MN_Koochiching','NAD 1983 HARN Adj. Minnesota Koochiching','ESRI','107735','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106735','D_NAD_1983_HARN_Adj_MN_Koochiching','NAD 1983 HARN Adj. Minnesota Koochiching','ESRI','107735','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106735_USAGE','geodetic_datum','ESRI','106735','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104735','GCS_NAD_1983_HARN_Adj_MN_Koochiching',NULL,'geographic 2D','EPSG','6422','ESRI','106735',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104735_USAGE','geodetic_crs','ESRI','104735','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106736','D_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle','NAD 1983 HARN Adj. Minnesota Lac Qui Parle','ESRI','107736','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106736','D_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle','NAD 1983 HARN Adj. Minnesota Lac Qui Parle','ESRI','107736','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106736_USAGE','geodetic_datum','ESRI','106736','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104736','GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle',NULL,'geographic 2D','EPSG','6422','ESRI','106736',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104736_USAGE','geodetic_crs','ESRI','104736','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106737','D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North','NAD 1983 HARN Adj. Minnesota Lake of the Woods North','ESRI','107737','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106737','D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North','NAD 1983 HARN Adj. Minnesota Lake of the Woods North','ESRI','107737','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106737_USAGE','geodetic_datum','ESRI','106737','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104737','GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North',NULL,'geographic 2D','EPSG','6422','ESRI','106737',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104737_USAGE','geodetic_crs','ESRI','104737','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106738','D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South','NAD 1983 HARN Adj. Minnesota Lake of the Woods South','ESRI','107738','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106738','D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South','NAD 1983 HARN Adj. Minnesota Lake of the Woods South','ESRI','107738','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106738_USAGE','geodetic_datum','ESRI','106738','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104738','GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South',NULL,'geographic 2D','EPSG','6422','ESRI','106738',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104738_USAGE','geodetic_crs','ESRI','104738','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106739','D_NAD_1983_HARN_Adj_MN_Le_Sueur','NAD 1983 HARN Adj. Minnesota Le Sueur','ESRI','107739','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106739','D_NAD_1983_HARN_Adj_MN_Le_Sueur','NAD 1983 HARN Adj. Minnesota Le Sueur','ESRI','107739','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106739_USAGE','geodetic_datum','ESRI','106739','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104739','GCS_NAD_1983_HARN_Adj_MN_Le_Sueur',NULL,'geographic 2D','EPSG','6422','ESRI','106739',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104739_USAGE','geodetic_crs','ESRI','104739','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106740','D_NAD_1983_HARN_Adj_MN_Lincoln','NAD 1983 HARN Adj. Minnesota Lincoln','ESRI','107740','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106740','D_NAD_1983_HARN_Adj_MN_Lincoln','NAD 1983 HARN Adj. Minnesota Lincoln','ESRI','107740','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106740_USAGE','geodetic_datum','ESRI','106740','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104740','GCS_NAD_1983_HARN_Adj_MN_Lincoln',NULL,'geographic 2D','EPSG','6422','ESRI','106740',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104740_USAGE','geodetic_crs','ESRI','104740','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106741','D_NAD_1983_HARN_Adj_MN_Lyon','NAD 1983 HARN Adj. Minnesota Lyon','ESRI','107741','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106741','D_NAD_1983_HARN_Adj_MN_Lyon','NAD 1983 HARN Adj. Minnesota Lyon','ESRI','107741','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106741_USAGE','geodetic_datum','ESRI','106741','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104741','GCS_NAD_1983_HARN_Adj_MN_Lyon',NULL,'geographic 2D','EPSG','6422','ESRI','106741',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104741_USAGE','geodetic_crs','ESRI','104741','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106742','D_NAD_1983_HARN_Adj_MN_McLeod','NAD 1983 HARN Adj. Minnesota McLeod','ESRI','107742','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106742','D_NAD_1983_HARN_Adj_MN_McLeod','NAD 1983 HARN Adj. Minnesota McLeod','ESRI','107742','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106742_USAGE','geodetic_datum','ESRI','106742','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104742','GCS_NAD_1983_HARN_Adj_MN_McLeod',NULL,'geographic 2D','EPSG','6422','ESRI','106742',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104742_USAGE','geodetic_crs','ESRI','104742','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106743','D_NAD_1983_HARN_Adj_MN_Mahnomen','NAD 1983 HARN Adj. Minnesota Mahnomen','ESRI','107743','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106743','D_NAD_1983_HARN_Adj_MN_Mahnomen','NAD 1983 HARN Adj. Minnesota Mahnomen','ESRI','107743','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106743_USAGE','geodetic_datum','ESRI','106743','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104743','GCS_NAD_1983_HARN_Adj_MN_Mahnomen',NULL,'geographic 2D','EPSG','6422','ESRI','106743',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104743_USAGE','geodetic_crs','ESRI','104743','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106744','D_NAD_1983_HARN_Adj_MN_Marshall','NAD 1983 HARN Adj. Minnesota Marshall','ESRI','107744','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106744','D_NAD_1983_HARN_Adj_MN_Marshall','NAD 1983 HARN Adj. Minnesota Marshall','ESRI','107744','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106744_USAGE','geodetic_datum','ESRI','106744','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104744','GCS_NAD_1983_HARN_Adj_MN_Marshall',NULL,'geographic 2D','EPSG','6422','ESRI','106744',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104744_USAGE','geodetic_crs','ESRI','104744','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106745','D_NAD_1983_HARN_Adj_MN_Martin','NAD 1983 HARN Adj. Minnesota Martin','ESRI','107745','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106745','D_NAD_1983_HARN_Adj_MN_Martin','NAD 1983 HARN Adj. Minnesota Martin','ESRI','107745','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106745_USAGE','geodetic_datum','ESRI','106745','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104745','GCS_NAD_1983_HARN_Adj_MN_Martin',NULL,'geographic 2D','EPSG','6422','ESRI','106745',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104745_USAGE','geodetic_crs','ESRI','104745','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106746','D_NAD_1983_HARN_Adj_MN_Meeker','NAD 1983 HARN Adj. Minnesota Meeker','ESRI','107746','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106746','D_NAD_1983_HARN_Adj_MN_Meeker','NAD 1983 HARN Adj. Minnesota Meeker','ESRI','107746','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106746_USAGE','geodetic_datum','ESRI','106746','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104746','GCS_NAD_1983_HARN_Adj_MN_Meeker',NULL,'geographic 2D','EPSG','6422','ESRI','106746',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104746_USAGE','geodetic_crs','ESRI','104746','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106747','D_NAD_1983_HARN_Adj_MN_Morrison','NAD 1983 HARN Adj. Minnesota Morrison','ESRI','107747','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106747','D_NAD_1983_HARN_Adj_MN_Morrison','NAD 1983 HARN Adj. Minnesota Morrison','ESRI','107747','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106747_USAGE','geodetic_datum','ESRI','106747','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104747','GCS_NAD_1983_HARN_Adj_MN_Morrison',NULL,'geographic 2D','EPSG','6422','ESRI','106747',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104747_USAGE','geodetic_crs','ESRI','104747','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106748','D_NAD_1983_HARN_Adj_MN_Mower','NAD 1983 HARN Adj. Minnesota Mower','ESRI','107748','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106748','D_NAD_1983_HARN_Adj_MN_Mower','NAD 1983 HARN Adj. Minnesota Mower','ESRI','107748','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106748_USAGE','geodetic_datum','ESRI','106748','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104748','GCS_NAD_1983_HARN_Adj_MN_Mower',NULL,'geographic 2D','EPSG','6422','ESRI','106748',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104748_USAGE','geodetic_crs','ESRI','104748','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106749','D_NAD_1983_HARN_Adj_MN_Murray','NAD 1983 HARN Adj. Minnesota Murray','ESRI','107749','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106749','D_NAD_1983_HARN_Adj_MN_Murray','NAD 1983 HARN Adj. Minnesota Murray','ESRI','107749','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106749_USAGE','geodetic_datum','ESRI','106749','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104749','GCS_NAD_1983_HARN_Adj_MN_Murray',NULL,'geographic 2D','EPSG','6422','ESRI','106749',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104749_USAGE','geodetic_crs','ESRI','104749','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106750','D_NAD_1983_HARN_Adj_MN_Nicollet','NAD 1983 HARN Adj. Minnesota Nicollet','ESRI','107750','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106750','D_NAD_1983_HARN_Adj_MN_Nicollet','NAD 1983 HARN Adj. Minnesota Nicollet','ESRI','107750','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106750_USAGE','geodetic_datum','ESRI','106750','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104750','GCS_NAD_1983_HARN_Adj_MN_Nicollet',NULL,'geographic 2D','EPSG','6422','ESRI','106750',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104750_USAGE','geodetic_crs','ESRI','104750','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106751','D_NAD_1983_HARN_Adj_MN_Nobles','NAD 1983 HARN Adj. Minnesota Nobles','ESRI','107751','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106751','D_NAD_1983_HARN_Adj_MN_Nobles','NAD 1983 HARN Adj. Minnesota Nobles','ESRI','107751','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106751_USAGE','geodetic_datum','ESRI','106751','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104751','GCS_NAD_1983_HARN_Adj_MN_Nobles',NULL,'geographic 2D','EPSG','6422','ESRI','106751',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104751_USAGE','geodetic_crs','ESRI','104751','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106752','D_NAD_1983_HARN_Adj_MN_Norman','NAD 1983 HARN Adj. Minnesota Norman','ESRI','107752','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106752','D_NAD_1983_HARN_Adj_MN_Norman','NAD 1983 HARN Adj. Minnesota Norman','ESRI','107752','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106752_USAGE','geodetic_datum','ESRI','106752','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104752','GCS_NAD_1983_HARN_Adj_MN_Norman',NULL,'geographic 2D','EPSG','6422','ESRI','106752',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104752_USAGE','geodetic_crs','ESRI','104752','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106753','D_NAD_1983_HARN_Adj_MN_Olmsted','NAD 1983 HARN Adj. Minnesota Olmsted','ESRI','107753','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106753','D_NAD_1983_HARN_Adj_MN_Olmsted','NAD 1983 HARN Adj. Minnesota Olmsted','ESRI','107753','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106753_USAGE','geodetic_datum','ESRI','106753','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104753','GCS_NAD_1983_HARN_Adj_MN_Olmsted',NULL,'geographic 2D','EPSG','6422','ESRI','106753',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104753_USAGE','geodetic_crs','ESRI','104753','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106754','D_NAD_1983_HARN_Adj_MN_Ottertail','NAD 1983 HARN Adj. Minnesota Ottertail','ESRI','107754','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106754','D_NAD_1983_HARN_Adj_MN_Ottertail','NAD 1983 HARN Adj. Minnesota Ottertail','ESRI','107754','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106754_USAGE','geodetic_datum','ESRI','106754','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104754','GCS_NAD_1983_HARN_Adj_MN_Ottertail',NULL,'geographic 2D','EPSG','6422','ESRI','106754',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104754_USAGE','geodetic_crs','ESRI','104754','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106755','D_NAD_1983_HARN_Adj_MN_Pennington','NAD 1983 HARN Adj. Minnesota Pennington','ESRI','107755','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106755','D_NAD_1983_HARN_Adj_MN_Pennington','NAD 1983 HARN Adj. Minnesota Pennington','ESRI','107755','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106755_USAGE','geodetic_datum','ESRI','106755','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104755','GCS_NAD_1983_HARN_Adj_MN_Pennington',NULL,'geographic 2D','EPSG','6422','ESRI','106755',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104755_USAGE','geodetic_crs','ESRI','104755','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106756','D_NAD_1983_HARN_Adj_MN_Pine','NAD 1983 HARN Adj. Minnesota Pine','ESRI','107756','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106756','D_NAD_1983_HARN_Adj_MN_Pine','NAD 1983 HARN Adj. Minnesota Pine','ESRI','107756','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106756_USAGE','geodetic_datum','ESRI','106756','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104756','GCS_NAD_1983_HARN_Adj_MN_Pine',NULL,'geographic 2D','EPSG','6422','ESRI','106756',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104756_USAGE','geodetic_crs','ESRI','104756','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106757','D_NAD_1983_HARN_Adj_MN_Pipestone','NAD 1983 HARN Adj. Minnesota Pipestone','ESRI','107757','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106757','D_NAD_1983_HARN_Adj_MN_Pipestone','NAD 1983 HARN Adj. Minnesota Pipestone','ESRI','107757','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106757_USAGE','geodetic_datum','ESRI','106757','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104757','GCS_NAD_1983_HARN_Adj_MN_Pipestone',NULL,'geographic 2D','EPSG','6422','ESRI','106757',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104757_USAGE','geodetic_crs','ESRI','104757','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106758','D_NAD_1983_HARN_Adj_MN_Polk','NAD 1983 HARN Adj. Minnesota Polk','ESRI','107758','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106758','D_NAD_1983_HARN_Adj_MN_Polk','NAD 1983 HARN Adj. Minnesota Polk','ESRI','107758','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106758_USAGE','geodetic_datum','ESRI','106758','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104758','GCS_NAD_1983_HARN_Adj_MN_Polk',NULL,'geographic 2D','EPSG','6422','ESRI','106758',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104758_USAGE','geodetic_crs','ESRI','104758','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106759','D_NAD_1983_HARN_Adj_MN_Pope','NAD 1983 HARN Adj. Minnesota Pope','ESRI','107759','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106759','D_NAD_1983_HARN_Adj_MN_Pope','NAD 1983 HARN Adj. Minnesota Pope','ESRI','107759','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106759_USAGE','geodetic_datum','ESRI','106759','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104759','GCS_NAD_1983_HARN_Adj_MN_Pope',NULL,'geographic 2D','EPSG','6422','ESRI','106759',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104759_USAGE','geodetic_crs','ESRI','104759','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106760','D_NAD_1983_HARN_Adj_MN_Ramsey','NAD 1983 HARN Adj. Minnesota Ramsey','ESRI','107760','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106760','D_NAD_1983_HARN_Adj_MN_Ramsey','NAD 1983 HARN Adj. Minnesota Ramsey','ESRI','107760','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106760_USAGE','geodetic_datum','ESRI','106760','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104760','GCS_NAD_1983_HARN_Adj_MN_Ramsey',NULL,'geographic 2D','EPSG','6422','ESRI','106760',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104760_USAGE','geodetic_crs','ESRI','104760','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106761','D_NAD_1983_HARN_Adj_MN_Red_Lake','NAD 1983 HARN Adj. Minnesota Red Lake','ESRI','107761','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106761','D_NAD_1983_HARN_Adj_MN_Red_Lake','NAD 1983 HARN Adj. Minnesota Red Lake','ESRI','107761','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106761_USAGE','geodetic_datum','ESRI','106761','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104761','GCS_NAD_1983_HARN_Adj_MN_Red_Lake',NULL,'geographic 2D','EPSG','6422','ESRI','106761',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104761_USAGE','geodetic_crs','ESRI','104761','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106762','D_NAD_1983_HARN_Adj_MN_Redwood','NAD 1983 HARN Adj. Minnesota Redwood','ESRI','107762','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106762','D_NAD_1983_HARN_Adj_MN_Redwood','NAD 1983 HARN Adj. Minnesota Redwood','ESRI','107762','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106762_USAGE','geodetic_datum','ESRI','106762','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104762','GCS_NAD_1983_HARN_Adj_MN_Redwood',NULL,'geographic 2D','EPSG','6422','ESRI','106762',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104762_USAGE','geodetic_crs','ESRI','104762','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106763','D_NAD_1983_HARN_Adj_MN_Renville','NAD 1983 HARN Adj. Minnesota Renville','ESRI','107763','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106763','D_NAD_1983_HARN_Adj_MN_Renville','NAD 1983 HARN Adj. Minnesota Renville','ESRI','107763','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106763_USAGE','geodetic_datum','ESRI','106763','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104763','GCS_NAD_1983_HARN_Adj_MN_Renville',NULL,'geographic 2D','EPSG','6422','ESRI','106763',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104763_USAGE','geodetic_crs','ESRI','104763','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106764','D_NAD_1983_HARN_Adj_MN_Rice','NAD 1983 HARN Adj. Minnesota Rice','ESRI','107764','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106764','D_NAD_1983_HARN_Adj_MN_Rice','NAD 1983 HARN Adj. Minnesota Rice','ESRI','107764','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106764_USAGE','geodetic_datum','ESRI','106764','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104764','GCS_NAD_1983_HARN_Adj_MN_Rice',NULL,'geographic 2D','EPSG','6422','ESRI','106764',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104764_USAGE','geodetic_crs','ESRI','104764','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106765','D_NAD_1983_HARN_Adj_MN_Rock','NAD 1983 HARN Adj. Minnesota Rock','ESRI','107765','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106765','D_NAD_1983_HARN_Adj_MN_Rock','NAD 1983 HARN Adj. Minnesota Rock','ESRI','107765','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106765_USAGE','geodetic_datum','ESRI','106765','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104765','GCS_NAD_1983_HARN_Adj_MN_Rock',NULL,'geographic 2D','EPSG','6422','ESRI','106765',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104765_USAGE','geodetic_crs','ESRI','104765','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106766','D_NAD_1983_HARN_Adj_MN_Roseau','NAD 1983 HARN Adj. Minnesota Roseau','ESRI','107766','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106766','D_NAD_1983_HARN_Adj_MN_Roseau','NAD 1983 HARN Adj. Minnesota Roseau','ESRI','107766','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106766_USAGE','geodetic_datum','ESRI','106766','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104766','GCS_NAD_1983_HARN_Adj_MN_Roseau',NULL,'geographic 2D','EPSG','6422','ESRI','106766',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104766_USAGE','geodetic_crs','ESRI','104766','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106767','D_NAD_1983_HARN_Adj_MN_St_Louis_North','NAD 1983 HARN Adj. Minnesota St Louis North','ESRI','107767','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106767','D_NAD_1983_HARN_Adj_MN_St_Louis_North','NAD 1983 HARN Adj. Minnesota St Louis North','ESRI','107767','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106767_USAGE','geodetic_datum','ESRI','106767','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104767','GCS_NAD_1983_HARN_Adj_MN_St_Louis_North',NULL,'geographic 2D','EPSG','6422','ESRI','106767',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104767_USAGE','geodetic_crs','ESRI','104767','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106768','D_NAD_1983_HARN_Adj_MN_St_Louis_Central','NAD 1983 HARN Adj. Minnesota St Louis Central','ESRI','107768','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106768','D_NAD_1983_HARN_Adj_MN_St_Louis_Central','NAD 1983 HARN Adj. Minnesota St Louis Central','ESRI','107768','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106768_USAGE','geodetic_datum','ESRI','106768','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104768','GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central',NULL,'geographic 2D','EPSG','6422','ESRI','106768',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104768_USAGE','geodetic_crs','ESRI','104768','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106769','D_NAD_1983_HARN_Adj_MN_St_Louis_South','NAD 1983 HARN Adj. Minnesota St Louis South','ESRI','107769','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106769','D_NAD_1983_HARN_Adj_MN_St_Louis_South','NAD 1983 HARN Adj. Minnesota St Louis South','ESRI','107769','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106769_USAGE','geodetic_datum','ESRI','106769','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104769','GCS_NAD_1983_HARN_Adj_MN_St_Louis_South',NULL,'geographic 2D','EPSG','6422','ESRI','106769',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104769_USAGE','geodetic_crs','ESRI','104769','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106770','D_NAD_1983_HARN_Adj_MN_Scott','NAD 1983 HARN Adj. Minnesota Scott','ESRI','107770','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106770','D_NAD_1983_HARN_Adj_MN_Scott','NAD 1983 HARN Adj. Minnesota Scott','ESRI','107770','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106770_USAGE','geodetic_datum','ESRI','106770','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104770','GCS_NAD_1983_HARN_Adj_MN_Scott',NULL,'geographic 2D','EPSG','6422','ESRI','106770',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104770_USAGE','geodetic_crs','ESRI','104770','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106771','D_NAD_1983_HARN_Adj_MN_Sherburne','NAD 1983 HARN Adj. Minnesota Sherburne','ESRI','107771','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106771','D_NAD_1983_HARN_Adj_MN_Sherburne','NAD 1983 HARN Adj. Minnesota Sherburne','ESRI','107771','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106771_USAGE','geodetic_datum','ESRI','106771','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104771','GCS_NAD_1983_HARN_Adj_MN_Sherburne',NULL,'geographic 2D','EPSG','6422','ESRI','106771',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104771_USAGE','geodetic_crs','ESRI','104771','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106772','D_NAD_1983_HARN_Adj_MN_Sibley','NAD 1983 HARN Adj. Minnesota Sibley','ESRI','107772','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106772','D_NAD_1983_HARN_Adj_MN_Sibley','NAD 1983 HARN Adj. Minnesota Sibley','ESRI','107772','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106772_USAGE','geodetic_datum','ESRI','106772','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104772','GCS_NAD_1983_HARN_Adj_MN_Sibley',NULL,'geographic 2D','EPSG','6422','ESRI','106772',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104772_USAGE','geodetic_crs','ESRI','104772','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106773','D_NAD_1983_HARN_Adj_MN_Stearns','NAD 1983 HARN Adj. Minnesota Stearns','ESRI','107773','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106773','D_NAD_1983_HARN_Adj_MN_Stearns','NAD 1983 HARN Adj. Minnesota Stearns','ESRI','107773','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106773_USAGE','geodetic_datum','ESRI','106773','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104773','GCS_NAD_1983_HARN_Adj_MN_Stearns',NULL,'geographic 2D','EPSG','6422','ESRI','106773',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104773_USAGE','geodetic_crs','ESRI','104773','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106774','D_NAD_1983_HARN_Adj_MN_Steele','NAD 1983 HARN Adj. Minnesota Steele','ESRI','107774','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106774','D_NAD_1983_HARN_Adj_MN_Steele','NAD 1983 HARN Adj. Minnesota Steele','ESRI','107774','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106774_USAGE','geodetic_datum','ESRI','106774','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104774','GCS_NAD_1983_HARN_Adj_MN_Steele',NULL,'geographic 2D','EPSG','6422','ESRI','106774',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104774_USAGE','geodetic_crs','ESRI','104774','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106775','D_NAD_1983_HARN_Adj_MN_Stevens','NAD 1983 HARN Adj. Minnesota Stevens','ESRI','107775','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106775','D_NAD_1983_HARN_Adj_MN_Stevens','NAD 1983 HARN Adj. Minnesota Stevens','ESRI','107775','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106775_USAGE','geodetic_datum','ESRI','106775','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104775','GCS_NAD_1983_HARN_Adj_MN_Stevens',NULL,'geographic 2D','EPSG','6422','ESRI','106775',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104775_USAGE','geodetic_crs','ESRI','104775','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106776','D_NAD_1983_HARN_Adj_MN_Swift','NAD 1983 HARN Adj. Minnesota Swift','ESRI','107776','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106776','D_NAD_1983_HARN_Adj_MN_Swift','NAD 1983 HARN Adj. Minnesota Swift','ESRI','107776','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106776_USAGE','geodetic_datum','ESRI','106776','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104776','GCS_NAD_1983_HARN_Adj_MN_Swift',NULL,'geographic 2D','EPSG','6422','ESRI','106776',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104776_USAGE','geodetic_crs','ESRI','104776','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106777','D_NAD_1983_HARN_Adj_MN_Todd','NAD 1983 HARN Adj. Minnesota Todd','ESRI','107777','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106777','D_NAD_1983_HARN_Adj_MN_Todd','NAD 1983 HARN Adj. Minnesota Todd','ESRI','107777','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106777_USAGE','geodetic_datum','ESRI','106777','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104777','GCS_NAD_1983_HARN_Adj_MN_Todd',NULL,'geographic 2D','EPSG','6422','ESRI','106777',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104777_USAGE','geodetic_crs','ESRI','104777','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106778','D_NAD_1983_HARN_Adj_MN_Traverse','NAD 1983 HARN Adj. Minnesota Traverse','ESRI','107778','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106778','D_NAD_1983_HARN_Adj_MN_Traverse','NAD 1983 HARN Adj. Minnesota Traverse','ESRI','107778','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106778_USAGE','geodetic_datum','ESRI','106778','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104778','GCS_NAD_1983_HARN_Adj_MN_Traverse',NULL,'geographic 2D','EPSG','6422','ESRI','106778',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104778_USAGE','geodetic_crs','ESRI','104778','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106779','D_NAD_1983_HARN_Adj_MN_Wabasha','NAD 1983 HARN Adj. Minnesota Wabasha','ESRI','107779','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106779','D_NAD_1983_HARN_Adj_MN_Wabasha','NAD 1983 HARN Adj. Minnesota Wabasha','ESRI','107779','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106779_USAGE','geodetic_datum','ESRI','106779','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104779','GCS_NAD_1983_HARN_Adj_MN_Wabasha',NULL,'geographic 2D','EPSG','6422','ESRI','106779',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104779_USAGE','geodetic_crs','ESRI','104779','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106780','D_NAD_1983_HARN_Adj_MN_Wadena','NAD 1983 HARN Adj. Minnesota Wadena','ESRI','107780','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106780','D_NAD_1983_HARN_Adj_MN_Wadena','NAD 1983 HARN Adj. Minnesota Wadena','ESRI','107780','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106780_USAGE','geodetic_datum','ESRI','106780','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104780','GCS_NAD_1983_HARN_Adj_MN_Wadena',NULL,'geographic 2D','EPSG','6422','ESRI','106780',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104780_USAGE','geodetic_crs','ESRI','104780','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106781','D_NAD_1983_HARN_Adj_MN_Waseca','NAD 1983 HARN Adj. Minnesota Waseca','ESRI','107781','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106781','D_NAD_1983_HARN_Adj_MN_Waseca','NAD 1983 HARN Adj. Minnesota Waseca','ESRI','107781','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106781_USAGE','geodetic_datum','ESRI','106781','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104781','GCS_NAD_1983_HARN_Adj_MN_Waseca',NULL,'geographic 2D','EPSG','6422','ESRI','106781',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104781_USAGE','geodetic_crs','ESRI','104781','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106782','D_NAD_1983_HARN_Adj_MN_Watonwan','NAD 1983 HARN Adj. Minnesota Watonwan','ESRI','107782','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106782','D_NAD_1983_HARN_Adj_MN_Watonwan','NAD 1983 HARN Adj. Minnesota Watonwan','ESRI','107782','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106782_USAGE','geodetic_datum','ESRI','106782','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104782','GCS_NAD_1983_HARN_Adj_MN_Watonwan',NULL,'geographic 2D','EPSG','6422','ESRI','106782',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104782_USAGE','geodetic_crs','ESRI','104782','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106783','D_NAD_1983_HARN_Adj_MN_Winona','NAD 1983 HARN Adj. Minnesota Winona','ESRI','107783','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106783','D_NAD_1983_HARN_Adj_MN_Winona','NAD 1983 HARN Adj. Minnesota Winona','ESRI','107783','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106783_USAGE','geodetic_datum','ESRI','106783','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104783','GCS_NAD_1983_HARN_Adj_MN_Winona',NULL,'geographic 2D','EPSG','6422','ESRI','106783',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104783_USAGE','geodetic_crs','ESRI','104783','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106784','D_NAD_1983_HARN_Adj_MN_Wright','NAD 1983 HARN Adj. Minnesota Wright','ESRI','107784','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106784','D_NAD_1983_HARN_Adj_MN_Wright','NAD 1983 HARN Adj. Minnesota Wright','ESRI','107784','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106784_USAGE','geodetic_datum','ESRI','106784','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104784','GCS_NAD_1983_HARN_Adj_MN_Wright',NULL,'geographic 2D','EPSG','6422','ESRI','106784',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104784_USAGE','geodetic_crs','ESRI','104784','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106785','D_NAD_1983_HARN_Adj_MN_Yellow_Medicine','NAD 1983 HARN Adj. Minnesota Yellow Medicine','ESRI','107785','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106785','D_NAD_1983_HARN_Adj_MN_Yellow_Medicine','NAD 1983 HARN Adj. Minnesota Yellow Medicine','ESRI','107785','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106785_USAGE','geodetic_datum','ESRI','106785','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104785','GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine',NULL,'geographic 2D','EPSG','6422','ESRI','106785',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104785_USAGE','geodetic_crs','ESRI','104785','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106786','D_NAD_1983_HARN_Adj_MN_St_Louis','NAD 1983 HARN Adj. Minnesota St Louis','ESRI','107786','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106786','D_NAD_1983_HARN_Adj_MN_St_Louis','NAD 1983 HARN Adj. Minnesota St Louis','ESRI','107786','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106786_USAGE','geodetic_datum','ESRI','106786','EPSG','1392','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104786','GCS_NAD_1983_HARN_Adj_MN_St_Louis',NULL,'geographic 2D','EPSG','6422','ESRI','106786',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104786_USAGE','geodetic_crs','ESRI','104786','EPSG','1392','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106851','D_NAD_1983_HARN_Adj_WI_AD_JN','NAD 1983 HARN Adj. Wisconsin Adams and Juneau','ESRI','107851','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106851','D_NAD_1983_HARN_Adj_WI_AD_JN','NAD 1983 HARN Adj. Wisconsin Adams and Juneau','ESRI','107851','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106851_USAGE','geodetic_datum','ESRI','106851','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104800','GCS_NAD_1983_HARN_Adj_WI_Adams',NULL,'geographic 2D','EPSG','6422','ESRI','106851',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104800_USAGE','geodetic_crs','ESRI','104800','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106800','D_NAD_1983_HARN_Adj_WI_AL','NAD 1983 HARN Adj. Wisconsin Ashland','ESRI','107800','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106800','D_NAD_1983_HARN_Adj_WI_AL','NAD 1983 HARN Adj. Wisconsin Ashland','ESRI','107800','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106800_USAGE','geodetic_datum','ESRI','106800','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104801','GCS_NAD_1983_HARN_Adj_WI_Ashland',NULL,'geographic 2D','EPSG','6422','ESRI','106800',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104801_USAGE','geodetic_crs','ESRI','104801','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106801','D_NAD_1983_HARN_Adj_WI_BA','NAD 1983 HARN Adj. Wisconsin Barron','ESRI','107801','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106801','D_NAD_1983_HARN_Adj_WI_BA','NAD 1983 HARN Adj. Wisconsin Barron','ESRI','107801','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106801_USAGE','geodetic_datum','ESRI','106801','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104802','GCS_NAD_1983_HARN_Adj_WI_Barron',NULL,'geographic 2D','EPSG','6422','ESRI','106801',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104802_USAGE','geodetic_crs','ESRI','104802','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106802','D_NAD_1983_HARN_Adj_WI_BF','NAD 1983 HARN Adj. Wisconsin Bayfield','ESRI','107802','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106802','D_NAD_1983_HARN_Adj_WI_BF','NAD 1983 HARN Adj. Wisconsin Bayfield','ESRI','107802','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106802_USAGE','geodetic_datum','ESRI','106802','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104803','GCS_NAD_1983_HARN_Adj_WI_Bayfield',NULL,'geographic 2D','EPSG','6422','ESRI','106802',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104803_USAGE','geodetic_crs','ESRI','104803','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106803','D_NAD_1983_HARN_Adj_WI_BR','NAD 1983 HARN Adj. Wisconsin Brown','ESRI','107803','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106803','D_NAD_1983_HARN_Adj_WI_BR','NAD 1983 HARN Adj. Wisconsin Brown','ESRI','107803','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106803_USAGE','geodetic_datum','ESRI','106803','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104804','GCS_NAD_1983_HARN_Adj_WI_Brown',NULL,'geographic 2D','EPSG','6422','ESRI','106803',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104804_USAGE','geodetic_crs','ESRI','104804','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106804','D_NAD_1983_HARN_Adj_WI_BU','NAD 1983 HARN Adj. Wisconsin Buffalo','ESRI','107804','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106804','D_NAD_1983_HARN_Adj_WI_BU','NAD 1983 HARN Adj. Wisconsin Buffalo','ESRI','107804','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106804_USAGE','geodetic_datum','ESRI','106804','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104805','GCS_NAD_1983_HARN_Adj_WI_Buffalo',NULL,'geographic 2D','EPSG','6422','ESRI','106804',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104805_USAGE','geodetic_crs','ESRI','104805','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106805','D_NAD_1983_HARN_Adj_WI_BN','NAD 1983 HARN Adj. Wisconsin Burnett','ESRI','107805','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106805','D_NAD_1983_HARN_Adj_WI_BN','NAD 1983 HARN Adj. Wisconsin Burnett','ESRI','107805','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106805_USAGE','geodetic_datum','ESRI','106805','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104806','GCS_NAD_1983_HARN_Adj_WI_Burnett',NULL,'geographic 2D','EPSG','6422','ESRI','106805',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104806_USAGE','geodetic_crs','ESRI','104806','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106856','D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN','NAD 1983 HARN Adj. Wisconsin Calumet, Fond du Lac, Outagamie, and Winnebago','ESRI','107856','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106856','D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN','NAD 1983 HARN Adj. Wisconsin Calumet, Fond du Lac, Outagamie, and Winnebago','ESRI','107856','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106856_USAGE','geodetic_datum','ESRI','106856','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104807','GCS_NAD_1983_HARN_Adj_WI_Calumet',NULL,'geographic 2D','EPSG','6422','ESRI','106856',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104807_USAGE','geodetic_crs','ESRI','104807','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106806','D_NAD_1983_HARN_Adj_WI_CP','NAD 1983 HARN Adj. Wisconsin Chippewa','ESRI','107806','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106806','D_NAD_1983_HARN_Adj_WI_CP','NAD 1983 HARN Adj. Wisconsin Chippewa','ESRI','107806','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106806_USAGE','geodetic_datum','ESRI','106806','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104808','GCS_NAD_1983_HARN_Adj_WI_Chippewa',NULL,'geographic 2D','EPSG','6422','ESRI','106806',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104808_USAGE','geodetic_crs','ESRI','104808','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106807','D_NAD_1983_HARN_Adj_WI_CK','NAD 1983 HARN Adj. Wisconsin Clark','ESRI','107807','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106807','D_NAD_1983_HARN_Adj_WI_CK','NAD 1983 HARN Adj. Wisconsin Clark','ESRI','107807','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106807_USAGE','geodetic_datum','ESRI','106807','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104809','GCS_NAD_1983_HARN_Adj_WI_Clark',NULL,'geographic 2D','EPSG','6422','ESRI','106807',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104809_USAGE','geodetic_crs','ESRI','104809','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106808','D_NAD_1983_HARN_Adj_WI_CO','NAD 1983 HARN Adj. Wisconsin Columbia','ESRI','107808','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106808','D_NAD_1983_HARN_Adj_WI_CO','NAD 1983 HARN Adj. Wisconsin Columbia','ESRI','107808','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106808_USAGE','geodetic_datum','ESRI','106808','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104810','GCS_NAD_1983_HARN_Adj_WI_Columbia',NULL,'geographic 2D','EPSG','6422','ESRI','106808',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104810_USAGE','geodetic_crs','ESRI','104810','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106809','D_NAD_1983_HARN_Adj_WI_CR','NAD 1983 HARN Adj. Wisconsin Crawford','ESRI','107809','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106809','D_NAD_1983_HARN_Adj_WI_CR','NAD 1983 HARN Adj. Wisconsin Crawford','ESRI','107809','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106809_USAGE','geodetic_datum','ESRI','106809','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104811','GCS_NAD_1983_HARN_Adj_WI_Crawford',NULL,'geographic 2D','EPSG','6422','ESRI','106809',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104811_USAGE','geodetic_crs','ESRI','104811','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106810','D_NAD_1983_HARN_Adj_WI_DN','NAD 1983 HARN Adj. Wisconsin Dane','ESRI','107810','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106810','D_NAD_1983_HARN_Adj_WI_DN','NAD 1983 HARN Adj. Wisconsin Dane','ESRI','107810','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106810_USAGE','geodetic_datum','ESRI','106810','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104812','GCS_NAD_1983_HARN_Adj_WI_Dane',NULL,'geographic 2D','EPSG','6422','ESRI','106810',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104812_USAGE','geodetic_crs','ESRI','104812','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106854','D_NAD_1983_HARN_Adj_WI_DD_JF','NAD 1983 HARN Adj. Wisconsin Dodge and Jefferson','ESRI','107854','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106854','D_NAD_1983_HARN_Adj_WI_DD_JF','NAD 1983 HARN Adj. Wisconsin Dodge and Jefferson','ESRI','107854','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106854_USAGE','geodetic_datum','ESRI','106854','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104813','GCS_NAD_1983_HARN_Adj_WI_Dodge',NULL,'geographic 2D','EPSG','6422','ESRI','106854',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104813_USAGE','geodetic_crs','ESRI','104813','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106811','D_NAD_1983_HARN_Adj_WI_DR','NAD 1983 HARN Adj. Wisconsin Door','ESRI','107811','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106811','D_NAD_1983_HARN_Adj_WI_DR','NAD 1983 HARN Adj. Wisconsin Door','ESRI','107811','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106811_USAGE','geodetic_datum','ESRI','106811','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104814','GCS_NAD_1983_HARN_Adj_WI_Door',NULL,'geographic 2D','EPSG','6422','ESRI','106811',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104814_USAGE','geodetic_crs','ESRI','104814','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106812','D_NAD_1983_HARN_Adj_WI_DG','NAD 1983 HARN Adj. Wisconsin Douglas','ESRI','107812','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106812','D_NAD_1983_HARN_Adj_WI_DG','NAD 1983 HARN Adj. Wisconsin Douglas','ESRI','107812','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106812_USAGE','geodetic_datum','ESRI','106812','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104815','GCS_NAD_1983_HARN_Adj_WI_Douglas',NULL,'geographic 2D','EPSG','6422','ESRI','106812',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104815_USAGE','geodetic_crs','ESRI','104815','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106813','D_NAD_1983_HARN_Adj_WI_DU','NAD 1983 HARN Adj. Wisconsin Dunn','ESRI','107813','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106813','D_NAD_1983_HARN_Adj_WI_DU','NAD 1983 HARN Adj. Wisconsin Dunn','ESRI','107813','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106813_USAGE','geodetic_datum','ESRI','106813','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104816','GCS_NAD_1983_HARN_Adj_WI_Dunn',NULL,'geographic 2D','EPSG','6422','ESRI','106813',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104816_USAGE','geodetic_crs','ESRI','104816','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106814','D_NAD_1983_HARN_Adj_WI_EC','NAD 1983 HARN Adj. Wisconsin EauClaire','ESRI','107814','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106814','D_NAD_1983_HARN_Adj_WI_EC','NAD 1983 HARN Adj. Wisconsin EauClaire','ESRI','107814','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106814_USAGE','geodetic_datum','ESRI','106814','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104817','GCS_NAD_1983_HARN_Adj_WI_EauClaire',NULL,'geographic 2D','EPSG','6422','ESRI','106814',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104817_USAGE','geodetic_crs','ESRI','104817','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106815','D_NAD_1983_HARN_Adj_WI_FN','NAD 1983 HARN Adj. Wisconsin Florence','ESRI','107815','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106815','D_NAD_1983_HARN_Adj_WI_FN','NAD 1983 HARN Adj. Wisconsin Florence','ESRI','107815','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106815_USAGE','geodetic_datum','ESRI','106815','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104818','GCS_NAD_1983_HARN_Adj_WI_Florence',NULL,'geographic 2D','EPSG','6422','ESRI','106815',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104818_USAGE','geodetic_crs','ESRI','104818','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104819','GCS_NAD_1983_HARN_Adj_WI_FondduLac',NULL,'geographic 2D','EPSG','6422','ESRI','106856',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104819_USAGE','geodetic_crs','ESRI','104819','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106816','D_NAD_1983_HARN_Adj_WI_FR','NAD 1983 HARN Adj. Wisconsin Forest','ESRI','107816','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106816','D_NAD_1983_HARN_Adj_WI_FR','NAD 1983 HARN Adj. Wisconsin Forest','ESRI','107816','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106816_USAGE','geodetic_datum','ESRI','106816','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104820','GCS_NAD_1983_HARN_Adj_WI_Forest',NULL,'geographic 2D','EPSG','6422','ESRI','106816',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104820_USAGE','geodetic_crs','ESRI','104820','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106817','D_NAD_1983_HARN_Adj_WI_GT','NAD 1983 HARN Adj. Wisconsin Grant','ESRI','107817','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106817','D_NAD_1983_HARN_Adj_WI_GT','NAD 1983 HARN Adj. Wisconsin Grant','ESRI','107817','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106817_USAGE','geodetic_datum','ESRI','106817','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104821','GCS_NAD_1983_HARN_Adj_WI_Grant',NULL,'geographic 2D','EPSG','6422','ESRI','106817',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104821_USAGE','geodetic_crs','ESRI','104821','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106852','D_NAD_1983_HARN_Adj_WI_GR_LF','NAD 1983 HARN Adj. Wisconsin Green and Lafayette','ESRI','107852','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106852','D_NAD_1983_HARN_Adj_WI_GR_LF','NAD 1983 HARN Adj. Wisconsin Green and Lafayette','ESRI','107852','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106852_USAGE','geodetic_datum','ESRI','106852','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104822','GCS_NAD_1983_HARN_Adj_WI_Green',NULL,'geographic 2D','EPSG','6422','ESRI','106852',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104822_USAGE','geodetic_crs','ESRI','104822','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106853','D_NAD_1983_HARN_Adj_WI_GL_MQ','NAD 1983 HARN Adj. Wisconsin Green Lake and Marquette','ESRI','107853','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106853','D_NAD_1983_HARN_Adj_WI_GL_MQ','NAD 1983 HARN Adj. Wisconsin Green Lake and Marquette','ESRI','107853','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106853_USAGE','geodetic_datum','ESRI','106853','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104823','GCS_NAD_1983_HARN_Adj_WI_GreenLake',NULL,'geographic 2D','EPSG','6422','ESRI','106853',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104823_USAGE','geodetic_crs','ESRI','104823','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106818','D_NAD_1983_HARN_Adj_WI_IA','NAD 1983 HARN Adj. Wisconsin Iowa','ESRI','107818','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106818','D_NAD_1983_HARN_Adj_WI_IA','NAD 1983 HARN Adj. Wisconsin Iowa','ESRI','107818','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106818_USAGE','geodetic_datum','ESRI','106818','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104824','GCS_NAD_1983_HARN_Adj_WI_Iowa',NULL,'geographic 2D','EPSG','6422','ESRI','106818',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104824_USAGE','geodetic_crs','ESRI','104824','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106819','D_NAD_1983_HARN_Adj_WI_IR','NAD 1983 HARN Adj. Wisconsin Iron','ESRI','107819','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106819','D_NAD_1983_HARN_Adj_WI_IR','NAD 1983 HARN Adj. Wisconsin Iron','ESRI','107819','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106819_USAGE','geodetic_datum','ESRI','106819','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104825','GCS_NAD_1983_HARN_Adj_WI_Iron',NULL,'geographic 2D','EPSG','6422','ESRI','106819',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104825_USAGE','geodetic_crs','ESRI','104825','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106820','D_NAD_1983_HARN_Adj_WI_JA','NAD 1983 HARN Adj. Wisconsin Jackson','ESRI','107820','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106820','D_NAD_1983_HARN_Adj_WI_JA','NAD 1983 HARN Adj. Wisconsin Jackson','ESRI','107820','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106820_USAGE','geodetic_datum','ESRI','106820','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104826','GCS_NAD_1983_HARN_Adj_WI_Jackson',NULL,'geographic 2D','EPSG','6422','ESRI','106820',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104826_USAGE','geodetic_crs','ESRI','104826','EPSG','1418','EPSG','1024'); @@ -2953,55 +2953,55 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104827','GCS_NAD_1983_HARN_Adj_WI_Jeff INSERT INTO "usage" VALUES('ESRI', '104827_USAGE','geodetic_crs','ESRI','104827','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104828','GCS_NAD_1983_HARN_Adj_WI_Juneau',NULL,'geographic 2D','EPSG','6422','ESRI','106851',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104828_USAGE','geodetic_crs','ESRI','104828','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106857','D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA','NAD 1983 HARN Adj. Wisconsin Kenosha, Milwaukee, Ozaukee, and Racine','ESRI','107857','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106857','D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA','NAD 1983 HARN Adj. Wisconsin Kenosha, Milwaukee, Ozaukee, and Racine','ESRI','107857','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106857_USAGE','geodetic_datum','ESRI','106857','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104829','GCS_NAD_1983_HARN_Adj_WI_Kenosha',NULL,'geographic 2D','EPSG','6422','ESRI','106857',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104829_USAGE','geodetic_crs','ESRI','104829','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106858','D_NAD_1983_HARN_Adj_WI_KW_MT_SG','NAD 1983 HARN Adj. Wisconsin Kewaunee, Manitowoc, and Sheboygan','ESRI','107858','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106858','D_NAD_1983_HARN_Adj_WI_KW_MT_SG','NAD 1983 HARN Adj. Wisconsin Kewaunee, Manitowoc, and Sheboygan','ESRI','107858','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106858_USAGE','geodetic_datum','ESRI','106858','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104830','GCS_NAD_1983_HARN_Adj_WI_Kewaunee',NULL,'geographic 2D','EPSG','6422','ESRI','106858',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104830_USAGE','geodetic_crs','ESRI','104830','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106821','D_NAD_1983_HARN_Adj_WI_LC','NAD 1983 HARN Adj. Wisconsin LaCrosse','ESRI','107821','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106821','D_NAD_1983_HARN_Adj_WI_LC','NAD 1983 HARN Adj. Wisconsin LaCrosse','ESRI','107821','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106821_USAGE','geodetic_datum','ESRI','106821','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104831','GCS_NAD_1983_HARN_Adj_WI_LaCrosse',NULL,'geographic 2D','EPSG','6422','ESRI','106821',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104831_USAGE','geodetic_crs','ESRI','104831','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104832','GCS_NAD_1983_HARN_Adj_WI_Lafayette',NULL,'geographic 2D','EPSG','6422','ESRI','106852',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104832_USAGE','geodetic_crs','ESRI','104832','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106822','D_NAD_1983_HARN_Adj_WI_LG','NAD 1983 HARN Adj. Wisconsin Langlade','ESRI','107822','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106822','D_NAD_1983_HARN_Adj_WI_LG','NAD 1983 HARN Adj. Wisconsin Langlade','ESRI','107822','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106822_USAGE','geodetic_datum','ESRI','106822','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104833','GCS_NAD_1983_HARN_Adj_WI_Langlade',NULL,'geographic 2D','EPSG','6422','ESRI','106822',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104833_USAGE','geodetic_crs','ESRI','104833','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106823','D_NAD_1983_HARN_Adj_WI_LN','NAD 1983 HARN Adj. Wisconsin Lincoln','ESRI','107823','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106823','D_NAD_1983_HARN_Adj_WI_LN','NAD 1983 HARN Adj. Wisconsin Lincoln','ESRI','107823','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106823_USAGE','geodetic_datum','ESRI','106823','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104834','GCS_NAD_1983_HARN_Adj_WI_Lincoln',NULL,'geographic 2D','EPSG','6422','ESRI','106823',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104834_USAGE','geodetic_crs','ESRI','104834','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104835','GCS_NAD_1983_HARN_Adj_WI_Manitowoc',NULL,'geographic 2D','EPSG','6422','ESRI','106858',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104835_USAGE','geodetic_crs','ESRI','104835','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106824','D_NAD_1983_HARN_Adj_WI_MA','NAD 1983 HARN Adj. Wisconsin Marathon','ESRI','107824','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106824','D_NAD_1983_HARN_Adj_WI_MA','NAD 1983 HARN Adj. Wisconsin Marathon','ESRI','107824','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106824_USAGE','geodetic_datum','ESRI','106824','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104836','GCS_NAD_1983_HARN_Adj_WI_Marathon',NULL,'geographic 2D','EPSG','6422','ESRI','106824',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104836_USAGE','geodetic_crs','ESRI','104836','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106825','D_NAD_1983_HARN_Adj_WI_MN','NAD 1983 HARN Adj. Wisconsin Marinette','ESRI','107825','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106825','D_NAD_1983_HARN_Adj_WI_MN','NAD 1983 HARN Adj. Wisconsin Marinette','ESRI','107825','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106825_USAGE','geodetic_datum','ESRI','106825','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104837','GCS_NAD_1983_HARN_Adj_WI_Marinette',NULL,'geographic 2D','EPSG','6422','ESRI','106825',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104837_USAGE','geodetic_crs','ESRI','104837','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104838','GCS_NAD_1983_HARN_Adj_WI_Marquette',NULL,'geographic 2D','EPSG','6422','ESRI','106853',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104838_USAGE','geodetic_crs','ESRI','104838','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106826','D_NAD_1983_HARN_Adj_WI_ME','NAD 1983 HARN Adj. Wisconsin Menominee','ESRI','107826','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106826','D_NAD_1983_HARN_Adj_WI_ME','NAD 1983 HARN Adj. Wisconsin Menominee','ESRI','107826','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106826_USAGE','geodetic_datum','ESRI','106826','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104839','GCS_NAD_1983_HARN_Adj_WI_Menominee',NULL,'geographic 2D','EPSG','6422','ESRI','106826',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104839_USAGE','geodetic_crs','ESRI','104839','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104840','GCS_NAD_1983_HARN_Adj_WI_Milwaukee',NULL,'geographic 2D','EPSG','6422','ESRI','106857',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104840_USAGE','geodetic_crs','ESRI','104840','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106827','D_NAD_1983_HARN_Adj_WI_MR','NAD 1983 HARN Adj. Wisconsin Monroe','ESRI','107827','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106827','D_NAD_1983_HARN_Adj_WI_MR','NAD 1983 HARN Adj. Wisconsin Monroe','ESRI','107827','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106827_USAGE','geodetic_datum','ESRI','106827','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104841','GCS_NAD_1983_HARN_Adj_WI_Monroe',NULL,'geographic 2D','EPSG','6422','ESRI','106827',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104841_USAGE','geodetic_crs','ESRI','104841','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106828','D_NAD_1983_HARN_Adj_WI_OC','NAD 1983 HARN Adj. Wisconsin Oconto','ESRI','107828','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106828','D_NAD_1983_HARN_Adj_WI_OC','NAD 1983 HARN Adj. Wisconsin Oconto','ESRI','107828','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106828_USAGE','geodetic_datum','ESRI','106828','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104842','GCS_NAD_1983_HARN_Adj_WI_Oconto',NULL,'geographic 2D','EPSG','6422','ESRI','106828',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104842_USAGE','geodetic_crs','ESRI','104842','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106829','D_NAD_1983_HARN_Adj_WI_ON','NAD 1983 HARN Adj. Wisconsin Oneida','ESRI','107829','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106829','D_NAD_1983_HARN_Adj_WI_ON','NAD 1983 HARN Adj. Wisconsin Oneida','ESRI','107829','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106829_USAGE','geodetic_datum','ESRI','106829','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104843','GCS_NAD_1983_HARN_Adj_WI_Oneida',NULL,'geographic 2D','EPSG','6422','ESRI','106829',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104843_USAGE','geodetic_crs','ESRI','104843','EPSG','1418','EPSG','1024'); @@ -3009,549 +3009,549 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104844','GCS_NAD_1983_HARN_Adj_WI_Outa INSERT INTO "usage" VALUES('ESRI', '104844_USAGE','geodetic_crs','ESRI','104844','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104845','GCS_NAD_1983_HARN_Adj_WI_Ozaukee',NULL,'geographic 2D','EPSG','6422','ESRI','106857',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104845_USAGE','geodetic_crs','ESRI','104845','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106855','D_NAD_1983_HARN_Adj_WI_PP_PC','NAD 1983 HARN Adj. Wisconsin Pepin and Pierce','ESRI','107855','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106855','D_NAD_1983_HARN_Adj_WI_PP_PC','NAD 1983 HARN Adj. Wisconsin Pepin and Pierce','ESRI','107855','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106855_USAGE','geodetic_datum','ESRI','106855','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104846','GCS_NAD_1983_HARN_Adj_WI_Pepin',NULL,'geographic 2D','EPSG','6422','ESRI','106855',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104846_USAGE','geodetic_crs','ESRI','104846','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104847','GCS_NAD_1983_HARN_Adj_WI_Pierce',NULL,'geographic 2D','EPSG','6422','ESRI','106855',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104847_USAGE','geodetic_crs','ESRI','104847','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106830','D_NAD_1983_HARN_Adj_WI_PK','NAD 1983 HARN Adj. Wisconsin Polk','ESRI','107830','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106830','D_NAD_1983_HARN_Adj_WI_PK','NAD 1983 HARN Adj. Wisconsin Polk','ESRI','107830','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106830_USAGE','geodetic_datum','ESRI','106830','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104848','GCS_NAD_1983_HARN_Adj_WI_Polk',NULL,'geographic 2D','EPSG','6422','ESRI','106830',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104848_USAGE','geodetic_crs','ESRI','104848','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106831','D_NAD_1983_HARN_Adj_WI_PT','NAD 1983 HARN Adj. Wisconsin Portage','ESRI','107831','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106831','D_NAD_1983_HARN_Adj_WI_PT','NAD 1983 HARN Adj. Wisconsin Portage','ESRI','107831','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106831_USAGE','geodetic_datum','ESRI','106831','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104849','GCS_NAD_1983_HARN_Adj_WI_Portage',NULL,'geographic 2D','EPSG','6422','ESRI','106831',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104849_USAGE','geodetic_crs','ESRI','104849','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106832','D_NAD_1983_HARN_Adj_WI_PR','NAD 1983 HARN Adj. Wisconsin Price','ESRI','107832','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106832','D_NAD_1983_HARN_Adj_WI_PR','NAD 1983 HARN Adj. Wisconsin Price','ESRI','107832','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106832_USAGE','geodetic_datum','ESRI','106832','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104850','GCS_NAD_1983_HARN_Adj_WI_Price',NULL,'geographic 2D','EPSG','6422','ESRI','106832',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104850_USAGE','geodetic_crs','ESRI','104850','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104851','GCS_NAD_1983_HARN_Adj_WI_Racine',NULL,'geographic 2D','EPSG','6422','ESRI','106857',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104851_USAGE','geodetic_crs','ESRI','104851','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106833','D_NAD_1983_HARN_Adj_WI_RC','NAD 1983 HARN Adj. Wisconsin Richland','ESRI','107833','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106833','D_NAD_1983_HARN_Adj_WI_RC','NAD 1983 HARN Adj. Wisconsin Richland','ESRI','107833','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106833_USAGE','geodetic_datum','ESRI','106833','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104852','GCS_NAD_1983_HARN_Adj_WI_Richland',NULL,'geographic 2D','EPSG','6422','ESRI','106833',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104852_USAGE','geodetic_crs','ESRI','104852','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106834','D_NAD_1983_HARN_Adj_WI_RK','NAD 1983 HARN Adj. Wisconsin Rock','ESRI','107834','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106834','D_NAD_1983_HARN_Adj_WI_RK','NAD 1983 HARN Adj. Wisconsin Rock','ESRI','107834','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106834_USAGE','geodetic_datum','ESRI','106834','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104853','GCS_NAD_1983_HARN_Adj_WI_Rock',NULL,'geographic 2D','EPSG','6422','ESRI','106834',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104853_USAGE','geodetic_crs','ESRI','104853','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106835','D_NAD_1983_HARN_Adj_WI_RS','NAD 1983 HARN Adj. Wisconsin Rusk','ESRI','107835','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106835','D_NAD_1983_HARN_Adj_WI_RS','NAD 1983 HARN Adj. Wisconsin Rusk','ESRI','107835','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106835_USAGE','geodetic_datum','ESRI','106835','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104854','GCS_NAD_1983_HARN_Adj_WI_Rusk',NULL,'geographic 2D','EPSG','6422','ESRI','106835',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104854_USAGE','geodetic_crs','ESRI','104854','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106836','D_NAD_1983_HARN_Adj_WI_SC','NAD 1983 HARN Adj. Wisconsin StCroix','ESRI','107836','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106836','D_NAD_1983_HARN_Adj_WI_SC','NAD 1983 HARN Adj. Wisconsin StCroix','ESRI','107836','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106836_USAGE','geodetic_datum','ESRI','106836','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104855','GCS_NAD_1983_HARN_Adj_WI_StCroix',NULL,'geographic 2D','EPSG','6422','ESRI','106836',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104855_USAGE','geodetic_crs','ESRI','104855','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106837','D_NAD_1983_HARN_Adj_WI_SK','NAD 1983 HARN Adj. Wisconsin Sauk','ESRI','107837','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106837','D_NAD_1983_HARN_Adj_WI_SK','NAD 1983 HARN Adj. Wisconsin Sauk','ESRI','107837','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106837_USAGE','geodetic_datum','ESRI','106837','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104856','GCS_NAD_1983_HARN_Adj_WI_Sauk',NULL,'geographic 2D','EPSG','6422','ESRI','106837',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104856_USAGE','geodetic_crs','ESRI','104856','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106838','D_NAD_1983_HARN_Adj_WI_SW','NAD 1983 HARN Adj. Wisconsin Sawyer','ESRI','107838','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106838','D_NAD_1983_HARN_Adj_WI_SW','NAD 1983 HARN Adj. Wisconsin Sawyer','ESRI','107838','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106838_USAGE','geodetic_datum','ESRI','106838','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104857','GCS_NAD_1983_HARN_Adj_WI_Sawyer',NULL,'geographic 2D','EPSG','6422','ESRI','106838',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104857_USAGE','geodetic_crs','ESRI','104857','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106839','D_NAD_1983_HARN_Adj_WI_SH','NAD 1983 HARN Adj. Wisconsin Shawano','ESRI','107839','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106839','D_NAD_1983_HARN_Adj_WI_SH','NAD 1983 HARN Adj. Wisconsin Shawano','ESRI','107839','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106839_USAGE','geodetic_datum','ESRI','106839','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104858','GCS_NAD_1983_HARN_Adj_WI_Shawano',NULL,'geographic 2D','EPSG','6422','ESRI','106839',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104858_USAGE','geodetic_crs','ESRI','104858','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104859','GCS_NAD_1983_HARN_Adj_WI_Sheboygan',NULL,'geographic 2D','EPSG','6422','ESRI','106858',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104859_USAGE','geodetic_crs','ESRI','104859','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106840','D_NAD_1983_HARN_Adj_WI_TA','NAD 1983 HARN Adj. Wisconsin Taylor','ESRI','107840','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106840','D_NAD_1983_HARN_Adj_WI_TA','NAD 1983 HARN Adj. Wisconsin Taylor','ESRI','107840','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106840_USAGE','geodetic_datum','ESRI','106840','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104860','GCS_NAD_1983_HARN_Adj_WI_Taylor',NULL,'geographic 2D','EPSG','6422','ESRI','106840',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104860_USAGE','geodetic_crs','ESRI','104860','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106841','D_NAD_1983_HARN_Adj_WI_TR','NAD 1983 HARN Adj. Wisconsin Trempealeau','ESRI','107841','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106841','D_NAD_1983_HARN_Adj_WI_TR','NAD 1983 HARN Adj. Wisconsin Trempealeau','ESRI','107841','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106841_USAGE','geodetic_datum','ESRI','106841','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104861','GCS_NAD_1983_HARN_Adj_WI_Trempealeau',NULL,'geographic 2D','EPSG','6422','ESRI','106841',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104861_USAGE','geodetic_crs','ESRI','104861','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106842','D_NAD_1983_HARN_Adj_WI_VR','NAD 1983 HARN Adj. Wisconsin Vernon','ESRI','107842','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106842','D_NAD_1983_HARN_Adj_WI_VR','NAD 1983 HARN Adj. Wisconsin Vernon','ESRI','107842','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106842_USAGE','geodetic_datum','ESRI','106842','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104862','GCS_NAD_1983_HARN_Adj_WI_Vernon',NULL,'geographic 2D','EPSG','6422','ESRI','106842',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104862_USAGE','geodetic_crs','ESRI','104862','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106843','D_NAD_1983_HARN_Adj_WI_VI','NAD 1983 HARN Adj. Wisconsin Vilas','ESRI','107843','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106843','D_NAD_1983_HARN_Adj_WI_VI','NAD 1983 HARN Adj. Wisconsin Vilas','ESRI','107843','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106843_USAGE','geodetic_datum','ESRI','106843','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104863','GCS_NAD_1983_HARN_Adj_WI_Vilas',NULL,'geographic 2D','EPSG','6422','ESRI','106843',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104863_USAGE','geodetic_crs','ESRI','104863','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106844','D_NAD_1983_HARN_Adj_WI_WW','NAD 1983 HARN Adj. Wisconsin Walworth','ESRI','107844','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106844','D_NAD_1983_HARN_Adj_WI_WW','NAD 1983 HARN Adj. Wisconsin Walworth','ESRI','107844','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106844_USAGE','geodetic_datum','ESRI','106844','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104864','GCS_NAD_1983_HARN_Adj_WI_Walworth',NULL,'geographic 2D','EPSG','6422','ESRI','106844',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104864_USAGE','geodetic_crs','ESRI','104864','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106845','D_NAD_1983_HARN_Adj_WI_WB','NAD 1983 HARN Adj. Wisconsin Washburn','ESRI','107845','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106845','D_NAD_1983_HARN_Adj_WI_WB','NAD 1983 HARN Adj. Wisconsin Washburn','ESRI','107845','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106845_USAGE','geodetic_datum','ESRI','106845','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104865','GCS_NAD_1983_HARN_Adj_WI_Washburn',NULL,'geographic 2D','EPSG','6422','ESRI','106845',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104865_USAGE','geodetic_crs','ESRI','104865','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106846','D_NAD_1983_HARN_Adj_WI_WA','NAD 1983 HARN Adj. Wisconsin Washington','ESRI','107846','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106846','D_NAD_1983_HARN_Adj_WI_WA','NAD 1983 HARN Adj. Wisconsin Washington','ESRI','107846','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106846_USAGE','geodetic_datum','ESRI','106846','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104866','GCS_NAD_1983_HARN_Adj_WI_Washington',NULL,'geographic 2D','EPSG','6422','ESRI','106846',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104866_USAGE','geodetic_crs','ESRI','104866','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106847','D_NAD_1983_HARN_Adj_WI_WK','NAD 1983 HARN Adj. Wisconsin Waukesha','ESRI','107847','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106847','D_NAD_1983_HARN_Adj_WI_WK','NAD 1983 HARN Adj. Wisconsin Waukesha','ESRI','107847','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106847_USAGE','geodetic_datum','ESRI','106847','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104867','GCS_NAD_1983_HARN_Adj_WI_Waukesha',NULL,'geographic 2D','EPSG','6422','ESRI','106847',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104867_USAGE','geodetic_crs','ESRI','104867','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106848','D_NAD_1983_HARN_Adj_WI_WP','NAD 1983 HARN Adj. Wisconsin Waupaca','ESRI','107848','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106848','D_NAD_1983_HARN_Adj_WI_WP','NAD 1983 HARN Adj. Wisconsin Waupaca','ESRI','107848','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106848_USAGE','geodetic_datum','ESRI','106848','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104868','GCS_NAD_1983_HARN_Adj_WI_Waupaca',NULL,'geographic 2D','EPSG','6422','ESRI','106848',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104868_USAGE','geodetic_crs','ESRI','104868','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106849','D_NAD_1983_HARN_Adj_WI_WS','NAD 1983 HARN Adj. Wisconsin Waushara','ESRI','107849','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106849','D_NAD_1983_HARN_Adj_WI_WS','NAD 1983 HARN Adj. Wisconsin Waushara','ESRI','107849','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106849_USAGE','geodetic_datum','ESRI','106849','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104869','GCS_NAD_1983_HARN_Adj_WI_Waushara',NULL,'geographic 2D','EPSG','6422','ESRI','106849',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104869_USAGE','geodetic_crs','ESRI','104869','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104870','GCS_NAD_1983_HARN_Adj_WI_Winnebago',NULL,'geographic 2D','EPSG','6422','ESRI','106856',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104870_USAGE','geodetic_crs','ESRI','104870','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106850','D_NAD_1983_HARN_Adj_WI_WD','NAD 1983 HARN Adj. Wisconsin Wood','ESRI','107850','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106850','D_NAD_1983_HARN_Adj_WI_WD','NAD 1983 HARN Adj. Wisconsin Wood','ESRI','107850','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106850_USAGE','geodetic_datum','ESRI','106850','EPSG','1418','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104871','GCS_NAD_1983_HARN_Adj_WI_Wood',NULL,'geographic 2D','EPSG','6422','ESRI','106850',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104871_USAGE','geodetic_crs','ESRI','104871','EPSG','1418','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106861','Phobos_2015','Mars - Phobos IAU 2015','ESRI','107861','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106861','Phobos_2015','Mars - Phobos IAU 2015','ESRI','107861','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106861_USAGE','geodetic_datum','ESRI','106861','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104872','Phobos_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106861',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104872_USAGE','geodetic_crs','ESRI','104872','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106862','Callisto_2015','Jupiter - Callisto IAU 2015','ESRI','107862','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106862','Callisto_2015','Jupiter - Callisto IAU 2015','ESRI','107862','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106862_USAGE','geodetic_datum','ESRI','106862','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104873','Callisto_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106862',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104873_USAGE','geodetic_crs','ESRI','104873','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106863','Europa_2015','Jupiter - Europa IAU 2015','ESRI','107863','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106863','Europa_2015','Jupiter - Europa IAU 2015','ESRI','107863','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106863_USAGE','geodetic_datum','ESRI','106863','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104874','Europa_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106863',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104874_USAGE','geodetic_crs','ESRI','104874','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106864','Ganymede_2015','Jupiter - Ganymede IAU 2015','ESRI','107864','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106864','Ganymede_2015','Jupiter - Ganymede IAU 2015','ESRI','107864','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106864_USAGE','geodetic_datum','ESRI','106864','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104875','Ganymede_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106864',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104875_USAGE','geodetic_crs','ESRI','104875','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106865','Io_2015','Jupiter - Io IAU 2015','ESRI','107865','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106865','Io_2015','Jupiter - Io IAU 2015','ESRI','107865','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106865_USAGE','geodetic_datum','ESRI','106865','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104876','Io_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106865',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104876_USAGE','geodetic_crs','ESRI','104876','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106866','Metis_2015','Jupiter - Metis IAU 2015','ESRI','107866','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106866','Metis_2015','Jupiter - Metis IAU 2015','ESRI','107866','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106866_USAGE','geodetic_datum','ESRI','106866','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104877','Metis_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106866',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104877_USAGE','geodetic_crs','ESRI','104877','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106867','Aegaeon_2015','Saturn - Aegaeon IAU 2015','ESRI','107867','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106867','Aegaeon_2015','Saturn - Aegaeon IAU 2015','ESRI','107867','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106867_USAGE','geodetic_datum','ESRI','106867','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104878','Aegaeon_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106867',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104878_USAGE','geodetic_crs','ESRI','104878','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106868','Anthe_2015','Saturn - Anthe IAU 2015','ESRI','107868','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106868','Anthe_2015','Saturn - Anthe IAU 2015','ESRI','107868','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106868_USAGE','geodetic_datum','ESRI','106868','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104879','Anthe_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106868',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104879_USAGE','geodetic_crs','ESRI','104879','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104896','GCS_ITRF_2005',NULL,'geographic 2D','EPSG','6422','EPSG','6896',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104896_USAGE','geodetic_crs','ESRI','104896','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104896','geodetic_crs','EPSG','8998','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106890','Pandora_2015','Saturn - Pandora IAU 2015','ESRI','107990','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106890','Pandora_2015','Saturn - Pandora IAU 2015','ESRI','107990','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106890_USAGE','geodetic_datum','ESRI','106890','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104897','Pandora_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106890',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104897_USAGE','geodetic_crs','ESRI','104897','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106891','Phoebe_2015','Saturn - Phoebe IAU 2015','ESRI','107991','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106891','Phoebe_2015','Saturn - Phoebe IAU 2015','ESRI','107991','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106891_USAGE','geodetic_datum','ESRI','106891','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104898','Phoebe_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106891',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104898_USAGE','geodetic_crs','ESRI','104898','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106892','Polydeuces_2015','Saturn - Polydeuces IAU 2015','ESRI','107992','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106892','Polydeuces_2015','Saturn - Polydeuces IAU 2015','ESRI','107992','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106892_USAGE','geodetic_datum','ESRI','106892','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104899','Polydeuces_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106892',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104899_USAGE','geodetic_crs','ESRI','104899','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106900','D_Mercury_2000','Mercury','ESRI','107900','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106900','D_Mercury_2000','Mercury','ESRI','107900','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106900_USAGE','geodetic_datum','ESRI','106900','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104900','GCS_Mercury_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106900',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104900_USAGE','geodetic_crs','ESRI','104900','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106901','D_Venus_1985','Venus 1985','ESRI','107901','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106901','D_Venus_1985','Venus 1985','ESRI','107901','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106901_USAGE','geodetic_datum','ESRI','106901','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104901','GCS_Venus_1985',NULL,'geographic 2D','EPSG','6422','ESRI','106901',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104901_USAGE','geodetic_crs','ESRI','104901','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106902','D_Venus_2000','Venus 2000','ESRI','107902','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106902','D_Venus_2000','Venus 2000','ESRI','107902','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106902_USAGE','geodetic_datum','ESRI','106902','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104902','GCS_Venus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106902',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104902_USAGE','geodetic_crs','ESRI','104902','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106903','D_Moon_2000','The Moon','ESRI','107903','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106903','D_Moon_2000','The Moon','ESRI','107903','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106903_USAGE','geodetic_datum','ESRI','106903','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104903','GCS_Moon_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106903',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104903_USAGE','geodetic_crs','ESRI','104903','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106904','D_Mars_1979','Mars 1979','ESRI','107904','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106904','D_Mars_1979','Mars 1979','ESRI','107904','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106904_USAGE','geodetic_datum','ESRI','106904','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104904','GCS_Mars_1979',NULL,'geographic 2D','EPSG','6422','ESRI','106904',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104904_USAGE','geodetic_crs','ESRI','104904','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106905','D_Mars_2000','Mars 2000','ESRI','107905','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106905','D_Mars_2000','Mars 2000','ESRI','107905','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106905_USAGE','geodetic_datum','ESRI','106905','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104905','GCS_Mars_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106905',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104905_USAGE','geodetic_crs','ESRI','104905','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106906','D_Deimos_2000','Mars - Deimos','ESRI','107906','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106906','D_Deimos_2000','Mars - Deimos','ESRI','107906','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106906_USAGE','geodetic_datum','ESRI','106906','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104906','GCS_Deimos_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106906',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104906_USAGE','geodetic_crs','ESRI','104906','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106907','D_Phobos_2000','Mars - Phobos','ESRI','107907','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106907','D_Phobos_2000','Mars - Phobos','ESRI','107907','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106907_USAGE','geodetic_datum','ESRI','106907','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104907','GCS_Phobos_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106907',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104907_USAGE','geodetic_crs','ESRI','104907','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106908','D_Jupiter_2000','Jupiter','ESRI','107908','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106908','D_Jupiter_2000','Jupiter','ESRI','107908','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106908_USAGE','geodetic_datum','ESRI','106908','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104908','GCS_Jupiter_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106908',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104908_USAGE','geodetic_crs','ESRI','104908','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106909','D_Adrastea_2000','Jupiter - Adrastea','ESRI','107909','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106909','D_Adrastea_2000','Jupiter - Adrastea','ESRI','107909','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106909_USAGE','geodetic_datum','ESRI','106909','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104909','GCS_Adrastea_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106909',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104909_USAGE','geodetic_crs','ESRI','104909','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106910','D_Amalthea_2000','Jupiter - Amalthea','ESRI','107910','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106910','D_Amalthea_2000','Jupiter - Amalthea','ESRI','107910','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106910_USAGE','geodetic_datum','ESRI','106910','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104910','GCS_Amalthea_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106910',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104910_USAGE','geodetic_crs','ESRI','104910','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106911','D_Ananke_2000','Jupiter - Ananke','ESRI','107911','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106911','D_Ananke_2000','Jupiter - Ananke','ESRI','107911','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106911_USAGE','geodetic_datum','ESRI','106911','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104911','GCS_Ananke_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106911',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104911_USAGE','geodetic_crs','ESRI','104911','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106912','D_Callisto_2000','Jupiter - Callisto','ESRI','107912','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106912','D_Callisto_2000','Jupiter - Callisto','ESRI','107912','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106912_USAGE','geodetic_datum','ESRI','106912','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104912','GCS_Callisto_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106912',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104912_USAGE','geodetic_crs','ESRI','104912','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106913','D_Carme_2000','Jupiter - Carme','ESRI','107913','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106913','D_Carme_2000','Jupiter - Carme','ESRI','107913','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106913_USAGE','geodetic_datum','ESRI','106913','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104913','GCS_Carme_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106913',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104913_USAGE','geodetic_crs','ESRI','104913','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106914','D_Elara_2000','Jupiter - Elara','ESRI','107914','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106914','D_Elara_2000','Jupiter - Elara','ESRI','107914','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106914_USAGE','geodetic_datum','ESRI','106914','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104914','GCS_Elara_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106914',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104914_USAGE','geodetic_crs','ESRI','104914','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106915','D_Europa_2000','Jupiter - Europa','ESRI','107915','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106915','D_Europa_2000','Jupiter - Europa','ESRI','107915','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106915_USAGE','geodetic_datum','ESRI','106915','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104915','GCS_Europa_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106915',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104915_USAGE','geodetic_crs','ESRI','104915','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106916','D_Ganymede_2000','Jupiter - Ganymede','ESRI','107916','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106916','D_Ganymede_2000','Jupiter - Ganymede','ESRI','107916','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106916_USAGE','geodetic_datum','ESRI','106916','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104916','GCS_Ganymede_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106916',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104916_USAGE','geodetic_crs','ESRI','104916','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106917','D_Himalia_2000','Jupiter - Himalia','ESRI','107917','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106917','D_Himalia_2000','Jupiter - Himalia','ESRI','107917','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106917_USAGE','geodetic_datum','ESRI','106917','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104917','GCS_Himalia_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106917',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104917_USAGE','geodetic_crs','ESRI','104917','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106918','D_Io_2000','Jupiter - Io','ESRI','107918','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106918','D_Io_2000','Jupiter - Io','ESRI','107918','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106918_USAGE','geodetic_datum','ESRI','106918','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104918','GCS_Io_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106918',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104918_USAGE','geodetic_crs','ESRI','104918','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106919','D_Leda_2000','Jupiter - Leda','ESRI','107919','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106919','D_Leda_2000','Jupiter - Leda','ESRI','107919','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106919_USAGE','geodetic_datum','ESRI','106919','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104919','GCS_Leda_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106919',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104919_USAGE','geodetic_crs','ESRI','104919','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106920','D_Lysithea_2000','Jupiter - Lysithea','ESRI','107920','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106920','D_Lysithea_2000','Jupiter - Lysithea','ESRI','107920','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106920_USAGE','geodetic_datum','ESRI','106920','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104920','GCS_Lysithea_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106920',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104920_USAGE','geodetic_crs','ESRI','104920','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106921','D_Metis_2000','Jupiter - Metis','ESRI','107921','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106921','D_Metis_2000','Jupiter - Metis','ESRI','107921','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106921_USAGE','geodetic_datum','ESRI','106921','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104921','GCS_Metis_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106921',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104921_USAGE','geodetic_crs','ESRI','104921','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106922','D_Pasiphae_2000','Jupiter - Pasiphae','ESRI','107922','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106922','D_Pasiphae_2000','Jupiter - Pasiphae','ESRI','107922','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106922_USAGE','geodetic_datum','ESRI','106922','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104922','GCS_Pasiphae_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106922',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104922_USAGE','geodetic_crs','ESRI','104922','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106923','D_Sinope_2000','Jupiter - Sinope','ESRI','107923','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106923','D_Sinope_2000','Jupiter - Sinope','ESRI','107923','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106923_USAGE','geodetic_datum','ESRI','106923','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104923','GCS_Sinope_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106923',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104923_USAGE','geodetic_crs','ESRI','104923','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106924','D_Thebe_2000','Jupiter - Thebe','ESRI','107924','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106924','D_Thebe_2000','Jupiter - Thebe','ESRI','107924','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106924_USAGE','geodetic_datum','ESRI','106924','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104924','GCS_Thebe_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106924',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104924_USAGE','geodetic_crs','ESRI','104924','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106925','D_Saturn_2000','Saturn','ESRI','107925','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106925','D_Saturn_2000','Saturn','ESRI','107925','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106925_USAGE','geodetic_datum','ESRI','106925','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104925','GCS_Saturn_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106925',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104925_USAGE','geodetic_crs','ESRI','104925','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106926','D_Atlas_2000','Saturn - Atlas','ESRI','107926','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106926','D_Atlas_2000','Saturn - Atlas','ESRI','107926','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106926_USAGE','geodetic_datum','ESRI','106926','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104926','GCS_Atlas_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106926',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104926_USAGE','geodetic_crs','ESRI','104926','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106927','D_Calypso_2000','Saturn - Calypso','ESRI','107927','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106927','D_Calypso_2000','Saturn - Calypso','ESRI','107927','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106927_USAGE','geodetic_datum','ESRI','106927','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104927','GCS_Calypso_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106927',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104927_USAGE','geodetic_crs','ESRI','104927','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106928','D_Dione_2000','Saturn - Dione','ESRI','107928','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106928','D_Dione_2000','Saturn - Dione','ESRI','107928','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106928_USAGE','geodetic_datum','ESRI','106928','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104928','GCS_Dione_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106928',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104928_USAGE','geodetic_crs','ESRI','104928','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106929','D_Enceladus_2000','Saturn - Enceladus','ESRI','107929','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106929','D_Enceladus_2000','Saturn - Enceladus','ESRI','107929','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106929_USAGE','geodetic_datum','ESRI','106929','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104929','GCS_Enceladus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106929',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104929_USAGE','geodetic_crs','ESRI','104929','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106930','D_Epimetheus_2000','Saturn - Epimetheus','ESRI','107930','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106930','D_Epimetheus_2000','Saturn - Epimetheus','ESRI','107930','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106930_USAGE','geodetic_datum','ESRI','106930','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104930','GCS_Epimetheus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106930',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104930_USAGE','geodetic_crs','ESRI','104930','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106931','D_Helene_2000','Saturn - Helene','ESRI','107931','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106931','D_Helene_2000','Saturn - Helene','ESRI','107931','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106931_USAGE','geodetic_datum','ESRI','106931','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104931','GCS_Helene_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106931',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104931_USAGE','geodetic_crs','ESRI','104931','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106932','D_Hyperion_2000','Saturn - Hyperion','ESRI','107932','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106932','D_Hyperion_2000','Saturn - Hyperion','ESRI','107932','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106932_USAGE','geodetic_datum','ESRI','106932','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104932','GCS_Hyperion_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106932',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104932_USAGE','geodetic_crs','ESRI','104932','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106933','D_Iapetus_2000','Saturn - Iapetus','ESRI','107933','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106933','D_Iapetus_2000','Saturn - Iapetus','ESRI','107933','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106933_USAGE','geodetic_datum','ESRI','106933','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104933','GCS_Iapetus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106933',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104933_USAGE','geodetic_crs','ESRI','104933','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106934','D_Janus_2000','Saturn - Janus','ESRI','107934','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106934','D_Janus_2000','Saturn - Janus','ESRI','107934','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106934_USAGE','geodetic_datum','ESRI','106934','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104934','GCS_Janus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106934',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104934_USAGE','geodetic_crs','ESRI','104934','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106935','D_Mimas_2000','Saturn - Mimas','ESRI','107935','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106935','D_Mimas_2000','Saturn - Mimas','ESRI','107935','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106935_USAGE','geodetic_datum','ESRI','106935','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104935','GCS_Mimas_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106935',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104935_USAGE','geodetic_crs','ESRI','104935','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106936','D_Pan_2000','Saturn - Pan','ESRI','107936','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106936','D_Pan_2000','Saturn - Pan','ESRI','107936','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106936_USAGE','geodetic_datum','ESRI','106936','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104936','GCS_Pan_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106936',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104936_USAGE','geodetic_crs','ESRI','104936','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106937','D_Pandora_2000','Saturn - Pandora','ESRI','107937','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106937','D_Pandora_2000','Saturn - Pandora','ESRI','107937','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106937_USAGE','geodetic_datum','ESRI','106937','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104937','GCS_Pandora_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106937',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104937_USAGE','geodetic_crs','ESRI','104937','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106938','D_Phoebe_2000','Saturn - Phoebe','ESRI','107938','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106938','D_Phoebe_2000','Saturn - Phoebe','ESRI','107938','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106938_USAGE','geodetic_datum','ESRI','106938','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104938','GCS_Phoebe_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106938',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104938_USAGE','geodetic_crs','ESRI','104938','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106939','D_Prometheus_2000','Saturn - Prometheus','ESRI','107939','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106939','D_Prometheus_2000','Saturn - Prometheus','ESRI','107939','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106939_USAGE','geodetic_datum','ESRI','106939','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104939','GCS_Prometheus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106939',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104939_USAGE','geodetic_crs','ESRI','104939','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106940','D_Rhea_2000','Saturn - Rhea','ESRI','107940','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106940','D_Rhea_2000','Saturn - Rhea','ESRI','107940','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106940_USAGE','geodetic_datum','ESRI','106940','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104940','GCS_Rhea_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106940',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104940_USAGE','geodetic_crs','ESRI','104940','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106941','D_Telesto_2000','Saturn - Telesto','ESRI','107941','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106941','D_Telesto_2000','Saturn - Telesto','ESRI','107941','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106941_USAGE','geodetic_datum','ESRI','106941','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104941','GCS_Telesto_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106941',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104941_USAGE','geodetic_crs','ESRI','104941','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106942','D_Tethys_2000','Saturn - Tethys','ESRI','107942','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106942','D_Tethys_2000','Saturn - Tethys','ESRI','107942','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106942_USAGE','geodetic_datum','ESRI','106942','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104942','GCS_Tethys_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106942',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104942_USAGE','geodetic_crs','ESRI','104942','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106943','D_Titan_2000','Saturn - Titan','ESRI','107943','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106943','D_Titan_2000','Saturn - Titan','ESRI','107943','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106943_USAGE','geodetic_datum','ESRI','106943','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104943','GCS_Titan_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106943',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104943_USAGE','geodetic_crs','ESRI','104943','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106944','D_Uranus_2000','Uranus','ESRI','107944','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106944','D_Uranus_2000','Uranus','ESRI','107944','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106944_USAGE','geodetic_datum','ESRI','106944','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104944','GCS_Uranus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106944',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104944_USAGE','geodetic_crs','ESRI','104944','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106945','D_Ariel_2000','Uranus - Ariel','ESRI','107945','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106945','D_Ariel_2000','Uranus - Ariel','ESRI','107945','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106945_USAGE','geodetic_datum','ESRI','106945','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104945','GCS_Ariel_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106945',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104945_USAGE','geodetic_crs','ESRI','104945','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106946','D_Belinda_2000','Uranus - Belinda','ESRI','107946','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106946','D_Belinda_2000','Uranus - Belinda','ESRI','107946','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106946_USAGE','geodetic_datum','ESRI','106946','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104946','GCS_Belinda_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106946',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104946_USAGE','geodetic_crs','ESRI','104946','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106947','D_Bianca_2000','Uranus - Bianca','ESRI','107947','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106947','D_Bianca_2000','Uranus - Bianca','ESRI','107947','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106947_USAGE','geodetic_datum','ESRI','106947','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104947','GCS_Bianca_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106947',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104947_USAGE','geodetic_crs','ESRI','104947','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106948','D_Cordelia_2000','Uranus - Cordelia','ESRI','107948','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106948','D_Cordelia_2000','Uranus - Cordelia','ESRI','107948','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106948_USAGE','geodetic_datum','ESRI','106948','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104948','GCS_Cordelia_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106948',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104948_USAGE','geodetic_crs','ESRI','104948','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106949','D_Cressida_2000','Uranus - Cressida','ESRI','107949','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106949','D_Cressida_2000','Uranus - Cressida','ESRI','107949','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106949_USAGE','geodetic_datum','ESRI','106949','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104949','GCS_Cressida_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106949',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104949_USAGE','geodetic_crs','ESRI','104949','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106950','D_Desdemona_2000','Uranus - Desdemona','ESRI','107950','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106950','D_Desdemona_2000','Uranus - Desdemona','ESRI','107950','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106950_USAGE','geodetic_datum','ESRI','106950','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104950','GCS_Desdemona_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106950',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104950_USAGE','geodetic_crs','ESRI','104950','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106951','D_Juliet_2000','Uranus - Juliet','ESRI','107951','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106951','D_Juliet_2000','Uranus - Juliet','ESRI','107951','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106951_USAGE','geodetic_datum','ESRI','106951','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104951','GCS_Juliet_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106951',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104951_USAGE','geodetic_crs','ESRI','104951','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106952','D_Miranda_2000','Uranus - Miranda','ESRI','107952','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106952','D_Miranda_2000','Uranus - Miranda','ESRI','107952','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106952_USAGE','geodetic_datum','ESRI','106952','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104952','GCS_Miranda_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106952',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104952_USAGE','geodetic_crs','ESRI','104952','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106953','D_Oberon_2000','Uranus - Oberon','ESRI','107953','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106953','D_Oberon_2000','Uranus - Oberon','ESRI','107953','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106953_USAGE','geodetic_datum','ESRI','106953','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104953','GCS_Oberon_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106953',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104953_USAGE','geodetic_crs','ESRI','104953','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106954','D_Ophelia_2000','Uranus - Ophelia','ESRI','107954','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106954','D_Ophelia_2000','Uranus - Ophelia','ESRI','107954','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106954_USAGE','geodetic_datum','ESRI','106954','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104954','GCS_Ophelia_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106954',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104954_USAGE','geodetic_crs','ESRI','104954','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106955','D_Portia_2000','Uranus - Portia','ESRI','107955','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106955','D_Portia_2000','Uranus - Portia','ESRI','107955','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106955_USAGE','geodetic_datum','ESRI','106955','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104955','GCS_Portia_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106955',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104955_USAGE','geodetic_crs','ESRI','104955','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106956','D_Puck_2000','Uranus - Puck','ESRI','107956','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106956','D_Puck_2000','Uranus - Puck','ESRI','107956','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106956_USAGE','geodetic_datum','ESRI','106956','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104956','GCS_Puck_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106956',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104956_USAGE','geodetic_crs','ESRI','104956','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106957','D_Rosalind_2000','Uranus - Rosalind','ESRI','107957','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106957','D_Rosalind_2000','Uranus - Rosalind','ESRI','107957','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106957_USAGE','geodetic_datum','ESRI','106957','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104957','GCS_Rosalind_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106957',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104957_USAGE','geodetic_crs','ESRI','104957','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106958','D_Titania_2000','Uranus - Titania','ESRI','107958','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106958','D_Titania_2000','Uranus - Titania','ESRI','107958','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106958_USAGE','geodetic_datum','ESRI','106958','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104958','GCS_Titania_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106958',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104958_USAGE','geodetic_crs','ESRI','104958','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106959','D_Umbriel_2000','Uranus - Umbriel','ESRI','107959','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106959','D_Umbriel_2000','Uranus - Umbriel','ESRI','107959','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106959_USAGE','geodetic_datum','ESRI','106959','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104959','GCS_Umbriel_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106959',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104959_USAGE','geodetic_crs','ESRI','104959','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106960','D_Neptune_2000','Neptune','ESRI','107960','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106960','D_Neptune_2000','Neptune','ESRI','107960','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106960_USAGE','geodetic_datum','ESRI','106960','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104960','GCS_Neptune_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106960',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104960_USAGE','geodetic_crs','ESRI','104960','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106961','D_Despina_2000','Neptune - Despina','ESRI','107961','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106961','D_Despina_2000','Neptune - Despina','ESRI','107961','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106961_USAGE','geodetic_datum','ESRI','106961','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104961','GCS_Despina_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106961',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104961_USAGE','geodetic_crs','ESRI','104961','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106962','D_Galatea_2000','Neptune - Galatea','ESRI','107962','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106962','D_Galatea_2000','Neptune - Galatea','ESRI','107962','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106962_USAGE','geodetic_datum','ESRI','106962','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104962','GCS_Galatea_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106962',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104962_USAGE','geodetic_crs','ESRI','104962','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106963','D_Larissa_2000','Neptune - Larissa','ESRI','107963','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106963','D_Larissa_2000','Neptune - Larissa','ESRI','107963','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106963_USAGE','geodetic_datum','ESRI','106963','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104963','GCS_Larissa_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106963',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104963_USAGE','geodetic_crs','ESRI','104963','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106964','D_Naiad_2000','Neptune - Naiad','ESRI','107964','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106964','D_Naiad_2000','Neptune - Naiad','ESRI','107964','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106964_USAGE','geodetic_datum','ESRI','106964','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104964','GCS_Naiad_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106964',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104964_USAGE','geodetic_crs','ESRI','104964','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106965','D_Nereid_2000','Neptune - Nereid','ESRI','107965','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106965','D_Nereid_2000','Neptune - Nereid','ESRI','107965','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106965_USAGE','geodetic_datum','ESRI','106965','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104965','GCS_Nereid_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106965',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104965_USAGE','geodetic_crs','ESRI','104965','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106966','D_Proteus_2000','Neptune - Proteus','ESRI','107966','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106966','D_Proteus_2000','Neptune - Proteus','ESRI','107966','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106966_USAGE','geodetic_datum','ESRI','106966','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104966','GCS_Proteus_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106966',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104966_USAGE','geodetic_crs','ESRI','104966','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106967','D_Thalassa_2000','Neptune - Thalassa','ESRI','107967','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106967','D_Thalassa_2000','Neptune - Thalassa','ESRI','107967','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106967_USAGE','geodetic_datum','ESRI','106967','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104967','GCS_Thalassa_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106967',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104967_USAGE','geodetic_crs','ESRI','104967','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106968','D_Triton_2000','Neptune - Triton','ESRI','107968','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106968','D_Triton_2000','Neptune - Triton','ESRI','107968','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106968_USAGE','geodetic_datum','ESRI','106968','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104968','GCS_Triton_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106968',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104968_USAGE','geodetic_crs','ESRI','104968','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106969','D_Pluto_2000','Pluto','ESRI','107969','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106969','D_Pluto_2000','Pluto','ESRI','107969','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106969_USAGE','geodetic_datum','ESRI','106969','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104969','GCS_Pluto_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106969',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104969_USAGE','geodetic_crs','ESRI','104969','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106970','D_Charon_2000','Pluto - Charon','ESRI','107970','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106970','D_Charon_2000','Pluto - Charon','ESRI','107970','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106970_USAGE','geodetic_datum','ESRI','106970','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104970','GCS_Charon_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106970',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104970_USAGE','geodetic_crs','ESRI','104970','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106971','Mars_2000_(Sphere)','Mars 2000 (Sphere)','ESRI','107971','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106971','Mars_2000_(Sphere)','Mars 2000 (Sphere)','ESRI','107971','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106971_USAGE','geodetic_datum','ESRI','106971','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104971','Mars_2000_(Sphere)',NULL,'geographic 2D','EPSG','6422','ESRI','106971',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104971_USAGE','geodetic_crs','ESRI','104971','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106972','1_Ceres_2015','1 Ceres 2015','ESRI','107972','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106972','1_Ceres_2015','1 Ceres 2015','ESRI','107972','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106972_USAGE','geodetic_datum','ESRI','106972','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104972','1_Ceres_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106972',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104972_USAGE','geodetic_crs','ESRI','104972','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106973','4_Vesta_2015','4 Vesta 2015','ESRI','107973','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106973','4_Vesta_2015','4 Vesta 2015','ESRI','107973','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106973_USAGE','geodetic_datum','ESRI','106973','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104973','4_Vesta_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106973',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104973_USAGE','geodetic_crs','ESRI','104973','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106974','Mercury_2015','Mercury 2015','ESRI','107974','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106974','Mercury_2015','Mercury 2015','ESRI','107974','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106974_USAGE','geodetic_datum','ESRI','106974','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104974','Mercury_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106974',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104974_USAGE','geodetic_crs','ESRI','104974','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106975','Sun_2015','Sun IAU 2015','ESRI','107975','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106975','Sun_2015','Sun IAU 2015','ESRI','107975','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106975_USAGE','geodetic_datum','ESRI','106975','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104975','Sun_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106975',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104975_USAGE','geodetic_crs','ESRI','104975','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106976','Atlas_2015','Saturn - Atlas IAU 2015','ESRI','107976','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106976','Atlas_2015','Saturn - Atlas IAU 2015','ESRI','107976','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106976_USAGE','geodetic_datum','ESRI','106976','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104976','Atlas_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106976',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104976_USAGE','geodetic_crs','ESRI','104976','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106977','Calypso_2015','Saturn - Calypso IAU 2015','ESRI','107977','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106977','Calypso_2015','Saturn - Calypso IAU 2015','ESRI','107977','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106977_USAGE','geodetic_datum','ESRI','106977','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104977','Calypso_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106977',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104977_USAGE','geodetic_crs','ESRI','104977','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106978','Daphnis_2015','Saturn - Daphnis IAU 2015','ESRI','107978','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106978','Daphnis_2015','Saturn - Daphnis IAU 2015','ESRI','107978','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106978_USAGE','geodetic_datum','ESRI','106978','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104978','Daphnis_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106978',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104978_USAGE','geodetic_crs','ESRI','104978','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106979','Dione_2015','Saturn - Dione IAU 2015','ESRI','107979','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106979','Dione_2015','Saturn - Dione IAU 2015','ESRI','107979','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106979_USAGE','geodetic_datum','ESRI','106979','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104979','Dione_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106979',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104979_USAGE','geodetic_crs','ESRI','104979','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106880','Enceladus_2015','Saturn - Enceladus IAU 2015','ESRI','107980','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106880','Enceladus_2015','Saturn - Enceladus IAU 2015','ESRI','107980','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106880_USAGE','geodetic_datum','ESRI','106880','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104980','Enceladus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106880',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104980_USAGE','geodetic_crs','ESRI','104980','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106881','Epimetheus_2015','Saturn - Epimetheus IAU 2015','ESRI','107981','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106881','Epimetheus_2015','Saturn - Epimetheus IAU 2015','ESRI','107981','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106881_USAGE','geodetic_datum','ESRI','106881','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104981','Epimetheus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106881',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104981_USAGE','geodetic_crs','ESRI','104981','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106882','Helene_2015','Saturn - Helene IAU 2015','ESRI','107982','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106882','Helene_2015','Saturn - Helene IAU 2015','ESRI','107982','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106882_USAGE','geodetic_datum','ESRI','106882','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104982','Helene_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106882',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104982_USAGE','geodetic_crs','ESRI','104982','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106883','Hyperion_2015','Saturn - Hyperion IAU 2015','ESRI','107983','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106883','Hyperion_2015','Saturn - Hyperion IAU 2015','ESRI','107983','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106883_USAGE','geodetic_datum','ESRI','106883','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104983','Hyperion_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106883',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104983_USAGE','geodetic_crs','ESRI','104983','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106884','Iapetus_2015','Saturn - Iapetus IAU 2015','ESRI','107984','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106884','Iapetus_2015','Saturn - Iapetus IAU 2015','ESRI','107984','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106884_USAGE','geodetic_datum','ESRI','106884','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104984','Iapetus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106884',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104984_USAGE','geodetic_crs','ESRI','104984','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106985','Janus_2015','Saturn - Janus IAU 2015','ESRI','107985','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106985','Janus_2015','Saturn - Janus IAU 2015','ESRI','107985','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106985_USAGE','geodetic_datum','ESRI','106985','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104985','Janus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106985',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104985_USAGE','geodetic_crs','ESRI','104985','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106986','Methone_2015','Saturn - Methone IAU 2015','ESRI','107986','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106986','Methone_2015','Saturn - Methone IAU 2015','ESRI','107986','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106986_USAGE','geodetic_datum','ESRI','106986','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104986','Methone_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106986',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104986_USAGE','geodetic_crs','ESRI','104986','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106987','Mimas_2015','Saturn - Mimas IAU 2015','ESRI','107987','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106987','Mimas_2015','Saturn - Mimas IAU 2015','ESRI','107987','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106987_USAGE','geodetic_datum','ESRI','106987','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104987','Mimas_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106987',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104987_USAGE','geodetic_crs','ESRI','104987','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106988','Pallene_2015','Saturn - Pallene IAU 2015','ESRI','107988','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106988','Pallene_2015','Saturn - Pallene IAU 2015','ESRI','107988','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106988_USAGE','geodetic_datum','ESRI','106988','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104988','Pallene_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106988',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104988_USAGE','geodetic_crs','ESRI','104988','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106989','Pan_2015','Saturn - Pan IAU 2015','ESRI','107989','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106989','Pan_2015','Saturn - Pan IAU 2015','ESRI','107989','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106989_USAGE','geodetic_datum','ESRI','106989','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104989','Pan_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106989',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104989_USAGE','geodetic_crs','ESRI','104989','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106990','D_Hungarian_Datum_1909','Hungarian Datum 1909','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106990','D_Hungarian_Datum_1909','Hungarian Datum 1909','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106990_USAGE','geodetic_datum','ESRI','106990','EPSG','1119','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104990','GCS_HD1909',NULL,'geographic 2D','EPSG','6422','ESRI','106990',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104990_USAGE','geodetic_crs','ESRI','104990','EPSG','1119','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104990','geodetic_crs','EPSG','3819','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106991','D_Iraqi_Geospatial_Reference_System','Iraqi Geospatial Reference System','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106991','D_Iraqi_Geospatial_Reference_System','Iraqi Geospatial Reference System','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106991_USAGE','geodetic_datum','ESRI','106991','EPSG','1124','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104991','GCS_IGRS',NULL,'geographic 2D','EPSG','6422','ESRI','106991',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104991_USAGE','geodetic_crs','ESRI','104991','EPSG','1124','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104991','geodetic_crs','EPSG','3889','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106992','D_MGI_1901','MGI 1901','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('ESRI','106992','D_MGI_1901','MGI 1901','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106992_USAGE','geodetic_datum','ESRI','106992','EPSG','2370','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104992','GCS_MGI_1901',NULL,'geographic 2D','EPSG','6422','ESRI','106992',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104992_USAGE','geodetic_crs','ESRI','104992','EPSG','2370','EPSG','1024'); INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104992','geodetic_crs','EPSG','3906','ESRI',1); -INSERT INTO "geodetic_datum" VALUES('ESRI','106893','Prometheus_2015','Saturn - Prometheus IAU 2015','ESRI','107993','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106893','Prometheus_2015','Saturn - Prometheus IAU 2015','ESRI','107993','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106893_USAGE','geodetic_datum','ESRI','106893','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104993','Prometheus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106893',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104993_USAGE','geodetic_crs','ESRI','104993','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106894','Rhea_2015','Saturn - Rhea IAU 2015','ESRI','107994','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106894','Rhea_2015','Saturn - Rhea IAU 2015','ESRI','107994','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106894_USAGE','geodetic_datum','ESRI','106894','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104994','Rhea_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106894',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104994_USAGE','geodetic_crs','ESRI','104994','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106895','Telesto_2015','Saturn - Telesto IAU 2015','ESRI','107995','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106895','Telesto_2015','Saturn - Telesto IAU 2015','ESRI','107995','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106895_USAGE','geodetic_datum','ESRI','106895','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104995','Telesto_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106895',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104995_USAGE','geodetic_crs','ESRI','104995','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106896','Tethys_2015','Saturn - Tethys IAU 2015','ESRI','107996','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106896','Tethys_2015','Saturn - Tethys IAU 2015','ESRI','107996','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106896_USAGE','geodetic_datum','ESRI','106896','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104996','Tethys_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106896',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104996_USAGE','geodetic_crs','ESRI','104996','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106897','Larissa_2015','Neptune - Larissa IAU 2015','ESRI','107997','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106897','Larissa_2015','Neptune - Larissa IAU 2015','ESRI','107997','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106897_USAGE','geodetic_datum','ESRI','106897','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104997','Larissa_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106897',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104997_USAGE','geodetic_crs','ESRI','104997','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106898','Pluto_2015','Pluto IAU 2015','ESRI','107998','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106898','Pluto_2015','Pluto IAU 2015','ESRI','107998','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106898_USAGE','geodetic_datum','ESRI','106898','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104998','Pluto_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106898',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104998_USAGE','geodetic_crs','ESRI','104998','EPSG','1262','EPSG','1024'); -INSERT INTO "geodetic_datum" VALUES('ESRI','106899','Charon_2015','Pluto - Charon IAU 2015','ESRI','107999','ESRI','108900',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('ESRI','106899','Charon_2015','Pluto - Charon IAU 2015','ESRI','107999','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106899_USAGE','geodetic_datum','ESRI','106899','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104999','Charon_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106899',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104999_USAGE','geodetic_crs','ESRI','104999','EPSG','1262','EPSG','1024'); @@ -17609,20 +17609,20 @@ INSERT INTO alias_name VALUES('vertical_crs','EPSG','20000','SVD2006_height','ES INSERT INTO alias_name VALUES('vertical_crs','EPSG','20034','CGVD2013a(2002)_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','20035','CGVD2013a(1997)_height','ESRI'); INSERT INTO alias_name VALUES('vertical_crs','EPSG','20036','INAGeoid2020_v2_height','ESRI'); -INSERT INTO "vertical_datum" VALUES('ESRI','105103','Red_Espanola_de_Nivelacion_de_Alta_Precision',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','105103','Red_Espanola_de_Nivelacion_de_Alta_Precision',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '105103_USAGE','vertical_datum','ESRI','105103','EPSG','3429','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105603','REDNAP_height',NULL,'EPSG','6499','ESRI','105103',0); INSERT INTO "usage" VALUES('ESRI', '105603_USAGE','vertical_crs','ESRI','105603','EPSG','3429','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','105100','WGS_1984_Geoid',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','105100','WGS_1984_Geoid',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '105100_USAGE','vertical_datum','ESRI','105100','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105700','WGS_1984_Geoid',NULL,'EPSG','6499','ESRI','105100',0); INSERT INTO "usage" VALUES('ESRI', '105700_USAGE','vertical_crs','ESRI','105700','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','105101','Dansk_Vertikal_Reference_1990',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105101','Dansk_Vertikal_Reference_1990',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105101_USAGE','vertical_datum','ESRI','105101','EPSG','3237','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105701','DVR90',NULL,'EPSG','6499','ESRI','105101',1); INSERT INTO "usage" VALUES('ESRI', '105701_USAGE','vertical_crs','ESRI','105701','EPSG','3237','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105701','vertical_crs','EPSG','5799','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105102','Rikets_Hojdsystem_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105102','Rikets_Hojdsystem_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105102_USAGE','vertical_datum','ESRI','105102','EPSG','3313','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105702','RH2000',NULL,'EPSG','6499','ESRI','105102',1); INSERT INTO "usage" VALUES('ESRI', '105702_USAGE','vertical_crs','ESRI','105702','EPSG','3313','EPSG','1024'); @@ -17630,869 +17630,869 @@ INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105702','vertical_crs', INSERT INTO "vertical_crs" VALUES('ESRI','105703','NAVD88_height_(ftUS)',NULL,'EPSG','6497','EPSG','5103',1); INSERT INTO "usage" VALUES('ESRI', '105703_USAGE','vertical_crs','ESRI','105703','EPSG','3664','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105703','vertical_crs','EPSG','6360','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105104','Lithuanian_Height_System_2007',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105104','Lithuanian_Height_System_2007',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105104_USAGE','vertical_datum','ESRI','105104','EPSG','3272','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105704','LAS07_height',NULL,'EPSG','6499','ESRI','105104',1); INSERT INTO "usage" VALUES('ESRI', '105704_USAGE','vertical_crs','ESRI','105704','EPSG','3272','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105704','vertical_crs','EPSG','9666','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105290','EGM2008_Geoid',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105290','EGM2008_Geoid',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105290_USAGE','vertical_datum','ESRI','105290','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105790','EGM2008_Geoid',NULL,'EPSG','6499','ESRI','105290',1); INSERT INTO "usage" VALUES('ESRI', '105790_USAGE','vertical_crs','ESRI','105790','EPSG','1262','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105790','vertical_crs','EPSG','3855','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105291','Fao_1979',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105291','Fao_1979',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105291_USAGE','vertical_datum','ESRI','105291','EPSG','3625','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105791','Fao_1979',NULL,'EPSG','6499','ESRI','105291',1); INSERT INTO "usage" VALUES('ESRI', '105791_USAGE','vertical_crs','ESRI','105791','EPSG','3625','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105791','vertical_crs','EPSG','3886','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105292','New_Zealand_Vertical_Datum_2009',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105292','New_Zealand_Vertical_Datum_2009',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105292_USAGE','vertical_datum','ESRI','105292','EPSG','1175','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105792','NZVD2009_height',NULL,'EPSG','6499','ESRI','105292',1); INSERT INTO "usage" VALUES('ESRI', '105792_USAGE','vertical_crs','ESRI','105792','EPSG','1175','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105792','vertical_crs','EPSG','4440','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105293','N2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105293','N2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105293_USAGE','vertical_datum','ESRI','105293','EPSG','3333','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105793','N2000_height',NULL,'EPSG','6499','ESRI','105293',1); INSERT INTO "usage" VALUES('ESRI', '105793_USAGE','vertical_crs','ESRI','105793','EPSG','3333','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105793','vertical_crs','EPSG','3900','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','105294','Dunedin_Bluff_1960',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','105294','Dunedin_Bluff_1960',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105294_USAGE','vertical_datum','ESRI','105294','EPSG','3806','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105794','Dunedin_Bluff_1960_height',NULL,'EPSG','6499','ESRI','105294',1); INSERT INTO "usage" VALUES('ESRI', '105794_USAGE','vertical_crs','ESRI','105794','EPSG','3806','EPSG','1024'); INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105794','vertical_crs','EPSG','4458','ESRI',1); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6326','D_WGS_1984',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6326','D_WGS_1984',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6326_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6326','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115700','WGS_1984',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6326',0); INSERT INTO "usage" VALUES('ESRI', '115700_USAGE','vertical_crs','ESRI','115700','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6258','D_ETRS_1989',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6258','D_ETRS_1989',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6258_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6258','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115701','ETRS_1989',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6258',0); INSERT INTO "usage" VALUES('ESRI', '115701_USAGE','vertical_crs','ESRI','115701','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6269','D_North_American_1983',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6269','D_North_American_1983',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6269_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6269','EPSG','1350','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115702','NAD_1983',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6269',0); INSERT INTO "usage" VALUES('ESRI', '115702_USAGE','vertical_crs','ESRI','115702','EPSG','1350','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6176','D_Australian_Antarctic_1998',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6176','D_Australian_Antarctic_1998',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6176_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6176','EPSG','1278','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115703','Australian_Antarctic_1998',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6176',0); INSERT INTO "usage" VALUES('ESRI', '115703_USAGE','vertical_crs','ESRI','115703','EPSG','1278','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106999','D_Cadastre_1997',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106999','D_Cadastre_1997',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106999_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106999','EPSG','3340','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115704','Cadastre_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106999',0); INSERT INTO "usage" VALUES('ESRI', '115704_USAGE','vertical_crs','ESRI','115704','EPSG','3340','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106980','D_China_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106980','D_China_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106980_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106980','EPSG','1067','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115705','China_Geodetic_Coordinate_System_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106980',0); INSERT INTO "usage" VALUES('ESRI', '115705_USAGE','vertical_crs','ESRI','115705','EPSG','1067','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6151','D_Swiss_TRF_1995',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6151','D_Swiss_TRF_1995',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6151_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6151','EPSG','1286','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115706','Swiss_TRF_1995',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6151',0); INSERT INTO "usage" VALUES('ESRI', '115706_USAGE','vertical_crs','ESRI','115706','EPSG','1286','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1100','D_Cayman_Islands_Geodetic_Datum_2011',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1100','D_Cayman_Islands_Geodetic_Datum_2011',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1100_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1100','EPSG','1063','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115707','CIGD11',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1100',0); INSERT INTO "usage" VALUES('ESRI', '115707_USAGE','vertical_crs','ESRI','115707','EPSG','1063','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106244','D_Costa_Rica_2005',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106244','D_Costa_Rica_2005',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106244_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106244','EPSG','1074','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115708','CR05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106244',0); INSERT INTO "usage" VALUES('ESRI', '115708_USAGE','vertical_crs','ESRI','115708','EPSG','1074','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1081','D_Deutsche_Bahn_Reference_System',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1081','D_Deutsche_Bahn_Reference_System',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1081_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1081','EPSG','3339','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115709','DB_REF',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1081',0); INSERT INTO "usage" VALUES('ESRI', '115709_USAGE','vertical_crs','ESRI','115709','EPSG','3339','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6755','D_Datum_Geodesi_Nasional_1995',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6755','D_Datum_Geodesi_Nasional_1995',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6755_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6755','EPSG','1122','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115710','DGN_1995',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6755',0); INSERT INTO "usage" VALUES('ESRI', '115710_USAGE','vertical_crs','ESRI','115710','EPSG','1122','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1058','D_Bhutan_National_Geodetic_Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1058','D_Bhutan_National_Geodetic_Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1058_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1058','EPSG','1048','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115711','DRUKREF_03',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1058',0); INSERT INTO "usage" VALUES('ESRI', '115711_USAGE','vertical_crs','ESRI','115711','EPSG','1048','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6180','D_Estonia_1997',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6180','D_Estonia_1997',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6180_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6180','EPSG','1090','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115712','Estonia_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6180',0); INSERT INTO "usage" VALUES('ESRI', '115712_USAGE','vertical_crs','ESRI','115712','EPSG','1090','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115713','EUREF_FIN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6258',0); INSERT INTO "usage" VALUES('ESRI', '115713_USAGE','vertical_crs','ESRI','115713','EPSG','1095','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1078','D_Fehmarnbelt_Datum_2010',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1078','D_Fehmarnbelt_Datum_2010',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1078_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1078','EPSG','3889','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115714','FEH2010',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1078',0); INSERT INTO "usage" VALUES('ESRI', '115714_USAGE','vertical_crs','ESRI','115714','EPSG','3889','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6283','D_GDA_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6283','D_GDA_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6283_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6283','EPSG','4177','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115715','GDA_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6283',0); INSERT INTO "usage" VALUES('ESRI', '115715_USAGE','vertical_crs','ESRI','115715','EPSG','4177','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106100','D_GDBD2009',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106100','D_GDBD2009',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106100_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106100','EPSG','1055','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115716','GDBD2009',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106100',0); INSERT INTO "usage" VALUES('ESRI', '115716_USAGE','vertical_crs','ESRI','115716','EPSG','1055','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6742','D_GDM_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6742','D_GDM_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6742_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6742','EPSG','1151','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115717','GDM_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6742',0); INSERT INTO "usage" VALUES('ESRI', '115717_USAGE','vertical_crs','ESRI','115717','EPSG','1151','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6747','D_Greenland_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6747','D_Greenland_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6747_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6747','EPSG','1107','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115718','Greenland_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6747',0); INSERT INTO "usage" VALUES('ESRI', '115718_USAGE','vertical_crs','ESRI','115718','EPSG','1107','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6148','D_Hartebeesthoek_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6148','D_Hartebeesthoek_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6148_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6148','EPSG','4540','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115719','Hartebeesthoek_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6148',0); INSERT INTO "usage" VALUES('ESRI', '115719_USAGE','vertical_crs','ESRI','115719','EPSG','4540','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1114','Israel_Geodetic_Datum_2005',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1114','Israel_Geodetic_Datum_2005',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1114_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1114','EPSG','1126','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115720','IGD05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1114',0); INSERT INTO "usage" VALUES('ESRI', '115720_USAGE','vertical_crs','ESRI','115720','EPSG','1126','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1142','IG05_Intermediate_Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1142','IG05_Intermediate_Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1142_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1142','EPSG','2603','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115721','IG05_Intermediate_CRS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1142',0); INSERT INTO "usage" VALUES('ESRI', '115721_USAGE','vertical_crs','ESRI','115721','EPSG','2603','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1115','Israeli_Geodetic_Datum_2005(2012)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1115','Israeli_Geodetic_Datum_2005(2012)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1115_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1115','EPSG','1126','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115722','IGD05(2012)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1115',0); INSERT INTO "usage" VALUES('ESRI', '115722_USAGE','vertical_crs','ESRI','115722','EPSG','1126','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1144','IG05(2012)_Intermediate_Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1144','IG05(2012)_Intermediate_Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1144_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1144','EPSG','2603','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115723','IG05(2012)_Intermediate_CRS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1144',0); INSERT INTO "usage" VALUES('ESRI', '115723_USAGE','vertical_crs','ESRI','115723','EPSG','2603','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6670','D_IGM_1995',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6670','D_IGM_1995',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6670_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6670','EPSG','3343','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115724','IGM_1995',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6670',0); INSERT INTO "usage" VALUES('ESRI', '115724_USAGE','vertical_crs','ESRI','115724','EPSG','3343','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106991','D_Iraqi_Geospatial_Reference_System',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106991','D_Iraqi_Geospatial_Reference_System',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106991_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106991','EPSG','1124','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115725','IGRS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106991',0); INSERT INTO "usage" VALUES('ESRI', '115725_USAGE','vertical_crs','ESRI','115725','EPSG','1124','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6173','D_IRENET95',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6173','D_IRENET95',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6173_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6173','EPSG','1305','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115726','IRENET95',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6173',0); INSERT INTO "usage" VALUES('ESRI', '115726_USAGE','vertical_crs','ESRI','115726','EPSG','1305','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6659','D_Islands_Network_1993',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6659','D_Islands_Network_1993',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6659_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6659','EPSG','1120','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115727','ISN_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6659',0); INSERT INTO "usage" VALUES('ESRI', '115727_USAGE','vertical_crs','ESRI','115727','EPSG','1120','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106144','D_Islands_Network_2004',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106144','D_Islands_Network_2004',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106144_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106144','EPSG','1120','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115728','ISN_2004',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106144',0); INSERT INTO "usage" VALUES('ESRI', '115728_USAGE','vertical_crs','ESRI','115728','EPSG','1120','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6647','D_ITRF_1988',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6647','D_ITRF_1988',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6647_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6647','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115729','ITRF_1988',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6647',0); INSERT INTO "usage" VALUES('ESRI', '115729_USAGE','vertical_crs','ESRI','115729','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6648','D_ITRF_1989',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6648','D_ITRF_1989',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6648_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6648','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115730','ITRF_1989',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6648',0); INSERT INTO "usage" VALUES('ESRI', '115730_USAGE','vertical_crs','ESRI','115730','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6649','D_ITRF_1990',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6649','D_ITRF_1990',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6649_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6649','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115731','ITRF_1990',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6649',0); INSERT INTO "usage" VALUES('ESRI', '115731_USAGE','vertical_crs','ESRI','115731','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6650','D_ITRF_1991',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6650','D_ITRF_1991',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6650_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6650','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115732','ITRF_1991',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6650',0); INSERT INTO "usage" VALUES('ESRI', '115732_USAGE','vertical_crs','ESRI','115732','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6651','D_ITRF_1992',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6651','D_ITRF_1992',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6651_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6651','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115733','ITRF_1992',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6651',0); INSERT INTO "usage" VALUES('ESRI', '115733_USAGE','vertical_crs','ESRI','115733','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6652','D_ITRF_1993',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6652','D_ITRF_1993',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6652_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6652','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115734','ITRF_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6652',0); INSERT INTO "usage" VALUES('ESRI', '115734_USAGE','vertical_crs','ESRI','115734','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6654','D_ITRF_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6654','D_ITRF_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6654_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6654','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115735','ITRF_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6654',0); INSERT INTO "usage" VALUES('ESRI', '115735_USAGE','vertical_crs','ESRI','115735','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6655','D_ITRF_1997',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6655','D_ITRF_1997',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6655_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6655','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115736','ITRF_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6655',0); INSERT INTO "usage" VALUES('ESRI', '115736_USAGE','vertical_crs','ESRI','115736','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6656','D_ITRF_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6656','D_ITRF_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6656_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6656','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115737','ITRF_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6656',0); INSERT INTO "usage" VALUES('ESRI', '115737_USAGE','vertical_crs','ESRI','115737','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6896','D_ITRF_2005',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6896','D_ITRF_2005',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6896_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6896','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115738','ITRF_2005',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6896',0); INSERT INTO "usage" VALUES('ESRI', '115738_USAGE','vertical_crs','ESRI','115738','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106280','D_Jamaica_2001',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106280','D_Jamaica_2001',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106280_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106280','EPSG','1128','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115739','JAD_2001',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106280',0); INSERT INTO "usage" VALUES('ESRI', '115739_USAGE','vertical_crs','ESRI','115739','EPSG','1128','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106268','D_JGD_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106268','D_JGD_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106268_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106268','EPSG','1129','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115740','JGD_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106268',0); INSERT INTO "usage" VALUES('ESRI', '115740_USAGE','vertical_crs','ESRI','115740','EPSG','1129','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106020','D_JGD_2011',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106020','D_JGD_2011',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106020_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106020','EPSG','1129','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115741','JGD_2011',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106020',0); INSERT INTO "usage" VALUES('ESRI', '115741_USAGE','vertical_crs','ESRI','115741','EPSG','1129','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6737','D_Korea_Geodetic_Datum_2002',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6737','D_Korea_Geodetic_Datum_2002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6737_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6737','EPSG','1135','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115742','KGD2002',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6737',0); INSERT INTO "usage" VALUES('ESRI', '115742_USAGE','vertical_crs','ESRI','115742','EPSG','1135','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6678','D_Lao_National_Datum_1997',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6678','D_Lao_National_Datum_1997',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6678_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6678','EPSG','1138','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115743','Lao_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6678',0); INSERT INTO "usage" VALUES('ESRI', '115743_USAGE','vertical_crs','ESRI','115743','EPSG','1138','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6754','D_Libyan_Geodetic_Datum_2006',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6754','D_Libyan_Geodetic_Datum_2006',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6754_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6754','EPSG','1143','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115744','LGD2006',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6754',0); INSERT INTO "usage" VALUES('ESRI', '115744_USAGE','vertical_crs','ESRI','115744','EPSG','1143','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6661','D_Latvia_1992',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6661','D_Latvia_1992',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6661_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6661','EPSG','1139','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115745','LKS_1992',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6661',0); INSERT INTO "usage" VALUES('ESRI', '115745_USAGE','vertical_crs','ESRI','115745','EPSG','1139','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6126','D_Lithuania_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6126','D_Lithuania_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6126_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6126','EPSG','1145','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115746','LKS_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6126',0); INSERT INTO "usage" VALUES('ESRI', '115746_USAGE','vertical_crs','ESRI','115746','EPSG','1145','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106248','D_MACAO_2008',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106248','D_MACAO_2008',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106248_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106248','EPSG','1147','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115747','MACAO_2008',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106248',0); INSERT INTO "usage" VALUES('ESRI', '115747_USAGE','vertical_crs','ESRI','115747','EPSG','1147','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6686','D_MAGNA',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6686','D_MAGNA',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6686_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6686','EPSG','1070','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115748','MAGNA',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6686',0); INSERT INTO "usage" VALUES('ESRI', '115748_USAGE','vertical_crs','ESRI','115748','EPSG','1070','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1066','D_SGNP_MARCARIO_SOLIS',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1066','D_SGNP_MARCARIO_SOLIS',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1066_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1066','EPSG','1186','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115749','MARCARIO_SOLIS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1066',0); INSERT INTO "usage" VALUES('ESRI', '115749_USAGE','vertical_crs','ESRI','115749','EPSG','1186','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1063','D_Marco_Geodesico_Nacional',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1063','D_Marco_Geodesico_Nacional',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1063_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1063','EPSG','1049','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115750','MARGEN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1063',0); INSERT INTO "usage" VALUES('ESRI', '115750_USAGE','vertical_crs','ESRI','115750','EPSG','1049','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1120','D_Mexico_ITRF2008',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1120','D_Mexico_ITRF2008',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1120_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1120','EPSG','1160','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115751','Mexico_ITRF2008',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1120',0); INSERT INTO "usage" VALUES('ESRI', '115751_USAGE','vertical_crs','ESRI','115751','EPSG','1160','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106993','D_MOLDREF99',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106993','D_MOLDREF99',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106993_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106993','EPSG','1162','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115752','MOLDREF99',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106993',0); INSERT INTO "usage" VALUES('ESRI', '115752_USAGE','vertical_crs','ESRI','115752','EPSG','1162','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115753','MONREF_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6656',0); INSERT INTO "usage" VALUES('ESRI', '115753_USAGE','vertical_crs','ESRI','115753','EPSG','1164','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6130','D_Moznet',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6130','D_Moznet',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6130_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6130','EPSG','1167','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115754','Moznet',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6130',0); INSERT INTO "usage" VALUES('ESRI', '115754_USAGE','vertical_crs','ESRI','115754','EPSG','1167','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106285','D_NAD_1983_2011',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106285','D_NAD_1983_2011',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106285_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106285','EPSG','1511','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115755','NAD_1983_2011',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106285',0); INSERT INTO "usage" VALUES('ESRI', '115755_USAGE','vertical_crs','ESRI','115755','EPSG','1511','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106223','D_NAD_1983_CORS96',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106223','D_NAD_1983_CORS96',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106223_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106223','EPSG','1511','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115756','NAD_1983_CORS96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106223',0); INSERT INTO "usage" VALUES('ESRI', '115756_USAGE','vertical_crs','ESRI','115756','EPSG','1511','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6140','D_North_American_1983_CSRS',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6140','D_North_American_1983_CSRS',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6140_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6140','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115757','North_American_1983_CSRS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6140',0); INSERT INTO "usage" VALUES('ESRI', '115757_USAGE','vertical_crs','ESRI','115757','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6152','D_North_American_1983_HARN',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6152','D_North_American_1983_HARN',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6152_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6152','EPSG','1337','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115758','North_American_1983_HARN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6152',0); INSERT INTO "usage" VALUES('ESRI', '115758_USAGE','vertical_crs','ESRI','115758','EPSG','1337','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106286','D_NAD_1983_MA11',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106286','D_NAD_1983_MA11',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106286_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106286','EPSG','4167','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115759','NAD_1983_MA11',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106286',0); INSERT INTO "usage" VALUES('ESRI', '115759_USAGE','vertical_crs','ESRI','115759','EPSG','4167','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106210','D_NAD_1983_MARP00',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106210','D_NAD_1983_MARP00',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106210_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106210','EPSG','4167','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115760','NAD_1983_MARP00',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106210',0); INSERT INTO "usage" VALUES('ESRI', '115760_USAGE','vertical_crs','ESRI','115760','EPSG','4167','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6759','D_NAD_1983_NSRS2007',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6759','D_NAD_1983_NSRS2007',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6759_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6759','EPSG','1511','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115761','NAD_1983_NSRS2007',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6759',0); INSERT INTO "usage" VALUES('ESRI', '115761_USAGE','vertical_crs','ESRI','115761','EPSG','1511','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106287','D_NAD_1983_PA11',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106287','D_NAD_1983_PA11',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106287_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106287','EPSG','4162','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115762','NAD_1983_PA11',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106287',0); INSERT INTO "usage" VALUES('ESRI', '115762_USAGE','vertical_crs','ESRI','115762','EPSG','4162','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106209','D_NAD_1983_PACP00',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106209','D_NAD_1983_PACP00',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106209_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106209','EPSG','4162','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115763','NAD_1983_PACP00',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106209',0); INSERT INTO "usage" VALUES('ESRI', '115763_USAGE','vertical_crs','ESRI','115763','EPSG','4162','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106256','D_Nepal_Nagarkot',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106256','D_Nepal_Nagarkot',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106256_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106256','EPSG','1171','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115764','Nepal_Nagarkot',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106256',0); INSERT INTO "usage" VALUES('ESRI', '115764_USAGE','vertical_crs','ESRI','115764','EPSG','1171','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106265','D_NZGD_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106265','D_NZGD_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106265_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106265','EPSG','1175','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115765','NZGD_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106265',0); INSERT INTO "usage" VALUES('ESRI', '115765_USAGE','vertical_crs','ESRI','115765','EPSG','1175','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1067','D_Peru96',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1067','D_Peru96',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1067_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1067','EPSG','1189','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115766','Peru96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1067',0); INSERT INTO "usage" VALUES('ESRI', '115766_USAGE','vertical_crs','ESRI','115766','EPSG','1189','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1076','D_Papua_New_Guinea_Geodetic_Datum_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1076','D_Papua_New_Guinea_Geodetic_Datum_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1076_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1076','EPSG','1187','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115767','PNG94',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1076',0); INSERT INTO "usage" VALUES('ESRI', '115767_USAGE','vertical_crs','ESRI','115767','EPSG','1187','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6172','D_POSGAR',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6172','D_POSGAR',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6172_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6172','EPSG','1033','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115768','POSGAR',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6172',0); INSERT INTO "usage" VALUES('ESRI', '115768_USAGE','vertical_crs','ESRI','115768','EPSG','1033','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6694','D_POSGAR_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6694','D_POSGAR_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6694_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6694','EPSG','1033','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115769','POSGAR_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6694',0); INSERT INTO "usage" VALUES('ESRI', '115769_USAGE','vertical_crs','ESRI','115769','EPSG','1033','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6190','D_POSGAR_1998',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6190','D_POSGAR_1998',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6190_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6190','EPSG','1033','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115770','POSGAR_1998',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6190',0); INSERT INTO "usage" VALUES('ESRI', '115770_USAGE','vertical_crs','ESRI','115770','EPSG','1033','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6683','D_Philippine_Reference_System_1992',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6683','D_Philippine_Reference_System_1992',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6683_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6683','EPSG','1190','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115771','PRS_1992',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6683',0); INSERT INTO "usage" VALUES('ESRI', '115771_USAGE','vertical_crs','ESRI','115771','EPSG','1190','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106236','D_PTRA08',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106236','D_PTRA08',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106236_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106236','EPSG','3670','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115772','PTRA08',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106236',0); INSERT INTO "usage" VALUES('ESRI', '115772_USAGE','vertical_crs','ESRI','115772','EPSG','3670','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6740','D_Parametrop_Zemp_1990',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6740','D_Parametrop_Zemp_1990',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6740_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6740','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115773','PZ_1990',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6740',0); INSERT INTO "usage" VALUES('ESRI', '115773_USAGE','vertical_crs','ESRI','115773','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1132','D_Rete_Dinamica_Nazionale_2008',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1132','D_Rete_Dinamica_Nazionale_2008',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1132_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1132','EPSG','3343','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115774','RDN2008',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1132',0); INSERT INTO "usage" VALUES('ESRI', '115774_USAGE','vertical_crs','ESRI','115774','EPSG','3343','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106996','D_Red_Geodesica_de_Canarias_1995',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106996','D_Red_Geodesica_de_Canarias_1995',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106996_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106996','EPSG','3199','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115775','REGCAN95',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106996',0); INSERT INTO "usage" VALUES('ESRI', '115775_USAGE','vertical_crs','ESRI','115775','EPSG','3199','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106267','D_REGVEN',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106267','D_REGVEN',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106267_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106267','EPSG','1251','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115776','REGVEN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106267',0); INSERT INTO "usage" VALUES('ESRI', '115776_USAGE','vertical_crs','ESRI','115776','EPSG','1251','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1073','Reseau_Geodesique_des_Antilles_Francaises_2009',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1073','Reseau_Geodesique_des_Antilles_Francaises_2009',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1073_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1073','EPSG','2824','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115777','RGAF09',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1073',0); INSERT INTO "usage" VALUES('ESRI', '115777_USAGE','vertical_crs','ESRI','115777','EPSG','2824','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106264','D_RGF_1993',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106264','D_RGF_1993',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106264_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106264','EPSG','1096','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115778','RGF_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106264',0); INSERT INTO "usage" VALUES('ESRI', '115778_USAGE','vertical_crs','ESRI','115778','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6624','D_RGFG_1995',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6624','D_RGFG_1995',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6624_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6624','EPSG','1097','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115779','RGFG_1995',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6624',0); INSERT INTO "usage" VALUES('ESRI', '115779_USAGE','vertical_crs','ESRI','115779','EPSG','1097','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106998','D_Reseau_Geodesique_de_Mayotte_2004',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106998','D_Reseau_Geodesique_de_Mayotte_2004',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106998_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106998','EPSG','1159','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115780','RGM_2004',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106998',0); INSERT INTO "usage" VALUES('ESRI', '115780_USAGE','vertical_crs','ESRI','115780','EPSG','1159','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6645','D_RGNC_1991',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6645','D_RGNC_1991',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6645_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6645','EPSG','1174','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115781','RGNC_1991',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6645',0); INSERT INTO "usage" VALUES('ESRI', '115781_USAGE','vertical_crs','ESRI','115781','EPSG','1174','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6749','D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6749','D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6749_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6749','EPSG','1174','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115782','RGNC_1991-93',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6749',0); INSERT INTO "usage" VALUES('ESRI', '115782_USAGE','vertical_crs','ESRI','115782','EPSG','1174','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6687','D_Reseau_Geodesique_de_la_Polynesie_Francaise',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6687','D_Reseau_Geodesique_de_la_Polynesie_Francaise',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6687_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6687','EPSG','1098','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115783','RGPF',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6687',0); INSERT INTO "usage" VALUES('ESRI', '115783_USAGE','vertical_crs','ESRI','115783','EPSG','1098','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6627','D_RGR_1992',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6627','D_RGR_1992',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6627_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6627','EPSG','1196','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115784','RGR_1992',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6627',0); INSERT INTO "usage" VALUES('ESRI', '115784_USAGE','vertical_crs','ESRI','115784','EPSG','1196','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106994','D_Reseau_Geodesique_de_la_RDC_2005',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106994','D_Reseau_Geodesique_de_la_RDC_2005',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106994_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106994','EPSG','3613','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115785','RGRDC_2005',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106994',0); INSERT INTO "usage" VALUES('ESRI', '115785_USAGE','vertical_crs','ESRI','115785','EPSG','3613','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106997','D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106997','D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106997_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106997','EPSG','1220','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115786','RGSPM_2006',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106997',0); INSERT INTO "usage" VALUES('ESRI', '115786_USAGE','vertical_crs','ESRI','115786','EPSG','1220','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1047','D_RRAF_1991',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1047','D_RRAF_1991',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1047_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1047','EPSG','2824','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115787','RRAF_1991',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1047',0); INSERT INTO "usage" VALUES('ESRI', '115787_USAGE','vertical_crs','ESRI','115787','EPSG','2824','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6764','D_Ross_Sea_Region_Geodetic_Datum_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6764','D_Ross_Sea_Region_Geodetic_Datum_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6764_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6764','EPSG','3558','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115788','RSRGD2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6764',0); INSERT INTO "usage" VALUES('ESRI', '115788_USAGE','vertical_crs','ESRI','115788','EPSG','3558','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6674','D_SIRGAS_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6674','D_SIRGAS_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6674_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6674','EPSG','3418','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115789','SIRGAS_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6674',0); INSERT INTO "usage" VALUES('ESRI', '115789_USAGE','vertical_crs','ESRI','115789','EPSG','3418','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1064','SIRGAS-Chile_realization_1_epoch_2002',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1064','SIRGAS-Chile_realization_1_epoch_2002',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1064_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1064','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115790','SIRGAS-Chile_2002',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1064',0); INSERT INTO "usage" VALUES('ESRI', '115790_USAGE','vertical_crs','ESRI','115790','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1069','D_SIRGAS_ES2007.8',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1069','D_SIRGAS_ES2007.8',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1069_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1069','EPSG','1087','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115791','SIRGAS_ES2007.8',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1069',0); INSERT INTO "usage" VALUES('ESRI', '115791_USAGE','vertical_crs','ESRI','115791','EPSG','1087','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1068','D_SIRGAS-ROU98',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1068','D_SIRGAS-ROU98',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1068_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1068','EPSG','1247','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115792','SIRGAS-ROU98',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1068',0); INSERT INTO "usage" VALUES('ESRI', '115792_USAGE','vertical_crs','ESRI','115792','EPSG','1247','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1053','D_Sri_Lanka_Datum_1999',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1053','D_Sri_Lanka_Datum_1999',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1053_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1053','EPSG','3310','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115793','SLD99',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1053',0); INSERT INTO "usage" VALUES('ESRI', '115793_USAGE','vertical_crs','ESRI','115793','EPSG','3310','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6765','D_Slovenia_Geodetic_Datum_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6765','D_Slovenia_Geodetic_Datum_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6765_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6765','EPSG','1212','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115794','Slovenia_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6765',0); INSERT INTO "usage" VALUES('ESRI', '115794_USAGE','vertical_crs','ESRI','115794','EPSG','1212','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106995','D_Serbian_Reference_Network_1998',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106995','D_Serbian_Reference_Network_1998',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106995_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106995','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115795','SREF98',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106995',0); INSERT INTO "usage" VALUES('ESRI', '115795_USAGE','vertical_crs','ESRI','115795','EPSG','4543','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1052','D_S_JTSK_05',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1052','D_S_JTSK_05',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1052_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1052','EPSG','1079','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115796','S_JTSK/05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1052',0); INSERT INTO "usage" VALUES('ESRI', '115796_USAGE','vertical_crs','ESRI','115796','EPSG','1079','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115797','S_JTSK/05_Ferro',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1052',0); INSERT INTO "usage" VALUES('ESRI', '115797_USAGE','vertical_crs','ESRI','115797','EPSG','1079','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6619','D_SWEREF99',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6619','D_SWEREF99',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6619_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6619','EPSG','1225','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115798','SWEREF99',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6619',0); INSERT INTO "usage" VALUES('ESRI', '115798_USAGE','vertical_crs','ESRI','115798','EPSG','1225','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1095','D_Tonga_Geodetic_Datum_2005',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1095','D_Tonga_Geodetic_Datum_2005',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1095_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1095','EPSG','1234','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115799','TGD2005',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1095',0); INSERT INTO "usage" VALUES('ESRI', '115799_USAGE','vertical_crs','ESRI','115799','EPSG','1234','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106282','D_TWD_1997',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106282','D_TWD_1997',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106282_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106282','EPSG','1228','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115800','TWD_1997',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106282',0); INSERT INTO "usage" VALUES('ESRI', '115800_USAGE','vertical_crs','ESRI','115800','EPSG','1228','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1077','D_Ukraine_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1077','D_Ukraine_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1077_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1077','EPSG','1242','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115801','Ukraine_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1077',0); INSERT INTO "usage" VALUES('ESRI', '115801_USAGE','vertical_crs','ESRI','115801','EPSG','1242','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6163','D_Yemen_NGN_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6163','D_Yemen_NGN_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6163_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6163','EPSG','1257','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115802','Yemen_NGN_1996',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6163',0); INSERT INTO "usage" VALUES('ESRI', '115802_USAGE','vertical_crs','ESRI','115802','EPSG','1257','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1061','D_ITRF_2008',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1061','D_ITRF_2008',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1061_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1061','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115803','ITRF_2008',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1061',0); INSERT INTO "usage" VALUES('ESRI', '115803_USAGE','vertical_crs','ESRI','115803','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1057','D_Turkish_National_Reference_Frame',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1057','D_Turkish_National_Reference_Frame',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1057_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1057','EPSG','1237','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115804','TUREF',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1057',0); INSERT INTO "usage" VALUES('ESRI', '115804_USAGE','vertical_crs','ESRI','115804','EPSG','1237','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1168','GDA2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1168','GDA2020',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1168_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1168','EPSG','4177','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115805','GDA2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1168',0); INSERT INTO "usage" VALUES('ESRI', '115805_USAGE','vertical_crs','ESRI','115805','EPSG','4177','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1167','Bulgaria_Geodetic_System_2005',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1167','Bulgaria_Geodetic_System_2005',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1167_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1167','EPSG','1056','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115806','BGS2005',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1167',0); INSERT INTO "usage" VALUES('ESRI', '115806_USAGE','vertical_crs','ESRI','115806','EPSG','1056','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','105110','Unknown_height_system_(meters)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','105110','Unknown_height_system_(meters)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '105110_USAGE','vertical_datum','ESRI','105110','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115807','Unknown_height_system_(meters)',NULL,'EPSG','6499','ESRI','105110',0); INSERT INTO "usage" VALUES('ESRI', '115807_USAGE','vertical_crs','ESRI','115807','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','105111','Unknown_height_system_(US_survey_feet)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','105111','Unknown_height_system_(US_survey_feet)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '105111_USAGE','vertical_datum','ESRI','105111','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115808','Unknown_height_system_(US_survey_feet)',NULL,'EPSG','6497','ESRI','105111',0); INSERT INTO "usage" VALUES('ESRI', '115808_USAGE','vertical_crs','ESRI','115808','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','105112','Unknown_height_system_(Intl_feet)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','105112','Unknown_height_system_(Intl_feet)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '105112_USAGE','vertical_datum','ESRI','105112','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115809','Unknown_height_system_(Intl_Feet)',NULL,'EPSG','1030','ESRI','105112',0); INSERT INTO "usage" VALUES('ESRI', '115809_USAGE','vertical_crs','ESRI','115809','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1165','International_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1165','International_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1165_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1165','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115810','ITRF2014',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1165',0); INSERT INTO "usage" VALUES('ESRI', '115810_USAGE','vertical_crs','ESRI','115810','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1174','St_Helena_Geodetic_Datum_2015',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1174','St_Helena_Geodetic_Datum_2015',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1174_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1174','EPSG','3183','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115811','SHGD2015',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1174',0); INSERT INTO "usage" VALUES('ESRI', '115811_USAGE','vertical_crs','ESRI','115811','EPSG','3183','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1173','St_Helena_Tritan',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1173','St_Helena_Tritan',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1173_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1173','EPSG','3183','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115812','St_Helena_Tritan',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1173',0); INSERT INTO "usage" VALUES('ESRI', '115812_USAGE','vertical_crs','ESRI','115812','EPSG','3183','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1159','Geodezicheskaya_Sistema_Koordinat_2011',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1159','Geodezicheskaya_Sistema_Koordinat_2011',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1159_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1159','EPSG','1198','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115813','GSK-2011',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1159',0); INSERT INTO "usage" VALUES('ESRI', '115813_USAGE','vertical_crs','ESRI','115813','EPSG','1198','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1158','Parametry_Zemli_1990.11',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1158','Parametry_Zemli_1990.11',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1158_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1158','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115814','PZ-90.11',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1158',0); INSERT INTO "usage" VALUES('ESRI', '115814_USAGE','vertical_crs','ESRI','115814','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1157','Parametry_Zemli_1990.02',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1157','Parametry_Zemli_1990.02',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1157_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1157','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115815','PZ-90.02',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1157',0); INSERT INTO "usage" VALUES('ESRI', '115815_USAGE','vertical_crs','ESRI','115815','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1166','World_Geodetic_System_1984_(Transit)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1166','World_Geodetic_System_1984_(Transit)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1166_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1166','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115816','WGS_1984_(Transit)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1166',0); INSERT INTO "usage" VALUES('ESRI', '115816_USAGE','vertical_crs','ESRI','115816','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1156','World_Geodetic_System_1984_(G1762)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1156','World_Geodetic_System_1984_(G1762)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1156_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1156','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115817','WGS_1984_(G1762)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1156',0); INSERT INTO "usage" VALUES('ESRI', '115817_USAGE','vertical_crs','ESRI','115817','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1155','World_Geodetic_System_1984_(G1674)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1155','World_Geodetic_System_1984_(G1674)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1155_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1155','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115818','WGS_1984_(G1674)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1155',0); INSERT INTO "usage" VALUES('ESRI', '115818_USAGE','vertical_crs','ESRI','115818','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1154','World_Geodetic_System_1984_(G1150)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1154','World_Geodetic_System_1984_(G1150)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1154_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1154','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115819','WGS_1984_(G1150)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1154',0); INSERT INTO "usage" VALUES('ESRI', '115819_USAGE','vertical_crs','ESRI','115819','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1153','World_Geodetic_System_1984_(G873)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1153','World_Geodetic_System_1984_(G873)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1153_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1153','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115820','WGS_1984_(G873)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1153',0); INSERT INTO "usage" VALUES('ESRI', '115820_USAGE','vertical_crs','ESRI','115820','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1152','World_Geodetic_System_1984_(G730)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1152','World_Geodetic_System_1984_(G730)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1152_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1152','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115821','WGS_1984_(G730)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1152',0); INSERT INTO "usage" VALUES('ESRI', '115821_USAGE','vertical_crs','ESRI','115821','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1179','European_Terrestrial_Reference_Frame_1990',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1179','European_Terrestrial_Reference_Frame_1990',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1179_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1179','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115822','ETRF90',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1179',0); INSERT INTO "usage" VALUES('ESRI', '115822_USAGE','vertical_crs','ESRI','115822','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1180','European_Terrestrial_Reference_Frame_1991',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1180','European_Terrestrial_Reference_Frame_1991',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1180_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1180','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115823','ETRF91',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1180',0); INSERT INTO "usage" VALUES('ESRI', '115823_USAGE','vertical_crs','ESRI','115823','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1181','European_Terrestrial_Reference_Frame_1992',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1181','European_Terrestrial_Reference_Frame_1992',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1181_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1181','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115824','ETRF92',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1181',0); INSERT INTO "usage" VALUES('ESRI', '115824_USAGE','vertical_crs','ESRI','115824','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1182','European_Terrestrial_Reference_Frame_1993',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1182','European_Terrestrial_Reference_Frame_1993',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1182_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1182','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115825','ETRF93',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1182',0); INSERT INTO "usage" VALUES('ESRI', '115825_USAGE','vertical_crs','ESRI','115825','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1183','European_Terrestrial_Reference_Frame_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1183','European_Terrestrial_Reference_Frame_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1183_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1183','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115826','ETRF94',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1183',0); INSERT INTO "usage" VALUES('ESRI', '115826_USAGE','vertical_crs','ESRI','115826','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1184','European_Terrestrial_Reference_Frame_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1184','European_Terrestrial_Reference_Frame_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1184_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1184','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115827','ETRF96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1184',0); INSERT INTO "usage" VALUES('ESRI', '115827_USAGE','vertical_crs','ESRI','115827','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1185','European_Terrestrial_Reference_Frame_1997',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1185','European_Terrestrial_Reference_Frame_1997',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1185_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1185','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115828','ETRF97',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1185',0); INSERT INTO "usage" VALUES('ESRI', '115828_USAGE','vertical_crs','ESRI','115828','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1186','European_Terrestrial_Reference_Frame_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1186','European_Terrestrial_Reference_Frame_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1186_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1186','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115829','ETRF2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1186',0); INSERT INTO "usage" VALUES('ESRI', '115829_USAGE','vertical_crs','ESRI','115829','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1192','North_American_Datum_of_1983_(CSRS96)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1192','North_American_Datum_of_1983_(CSRS96)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1192_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1192','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115830','NAD83(CSRS96)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1192',0); INSERT INTO "usage" VALUES('ESRI', '115830_USAGE','vertical_crs','ESRI','115830','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1193','North_American_Datum_of_1983_(CSRS)_version_2',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1193','North_American_Datum_of_1983_(CSRS)_version_2',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1193_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1193','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115831','NAD83(CSRS)v2',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1193',0); INSERT INTO "usage" VALUES('ESRI', '115831_USAGE','vertical_crs','ESRI','115831','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1194','North_American_Datum_of_1983_(CSRS)_version_3',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1194','North_American_Datum_of_1983_(CSRS)_version_3',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1194_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1194','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115832','NAD83(CSRS)v3',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1194',0); INSERT INTO "usage" VALUES('ESRI', '115832_USAGE','vertical_crs','ESRI','115832','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1195','North_American_Datum_of_1983_(CSRS)_version_4',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1195','North_American_Datum_of_1983_(CSRS)_version_4',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1195_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1195','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115833','NAD83(CSRS)v4',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1195',0); INSERT INTO "usage" VALUES('ESRI', '115833_USAGE','vertical_crs','ESRI','115833','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1196','North_American_Datum_of_1983_(CSRS)_version_5',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1196','North_American_Datum_of_1983_(CSRS)_version_5',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1196_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1196','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115834','NAD83(CSRS)v5',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1196',0); INSERT INTO "usage" VALUES('ESRI', '115834_USAGE','vertical_crs','ESRI','115834','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1197','North_American_Datum_of_1983_(CSRS)_version_6',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1197','North_American_Datum_of_1983_(CSRS)_version_6',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1197_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1197','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115835','NAD83(CSRS)v6',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1197',0); INSERT INTO "usage" VALUES('ESRI', '115835_USAGE','vertical_crs','ESRI','115835','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1198','North_American_Datum_of_1983_(CSRS)_version_7',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1198','North_American_Datum_of_1983_(CSRS)_version_7',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1198_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1198','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115836','NAD83(CSRS)v7',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1198',0); INSERT INTO "usage" VALUES('ESRI', '115836_USAGE','vertical_crs','ESRI','115836','EPSG','1061','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1191','IGS14',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1191','IGS14',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1191_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1191','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115837','IGS14',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1191',0); INSERT INTO "usage" VALUES('ESRI', '115837_USAGE','vertical_crs','ESRI','115837','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1187','Islands_Net_2016',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1187','Islands_Net_2016',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1187_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1187','EPSG','1120','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115838','ISN2016',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1187',0); INSERT INTO "usage" VALUES('ESRI', '115838_USAGE','vertical_crs','ESRI','115838','EPSG','1120','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1209','Hong_Kong_Geodetic',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1209','Hong_Kong_Geodetic',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1209_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1209','EPSG','1118','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115839','Hong_Kong_Geodetic_CS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1209',0); INSERT INTO "usage" VALUES('ESRI', '115839_USAGE','vertical_crs','ESRI','115839','EPSG','1118','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1211','NAD_1983_(Federal_Base_Network)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1211','NAD_1983_(Federal_Base_Network)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1211_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1211','EPSG','4515','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115840','NAD_1983_(FBN)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1211',0); INSERT INTO "usage" VALUES('ESRI', '115840_USAGE','vertical_crs','ESRI','115840','EPSG','4515','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1212','NAD_1983_(High_Accuracy_Reference_Network-Corrected)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1212','NAD_1983_(High_Accuracy_Reference_Network-Corrected)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1212_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1212','EPSG','3634','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115841','NAD_1983_(HARN_Corrected)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1212',0); INSERT INTO "usage" VALUES('ESRI', '115841_USAGE','vertical_crs','ESRI','115841','EPSG','3634','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1214','Serbian_Spatial_Reference_System_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1214','Serbian_Spatial_Reference_System_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1214_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1214','EPSG','4543','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115842','SRB_ETRS89',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1214',0); INSERT INTO "usage" VALUES('ESRI', '115842_USAGE','vertical_crs','ESRI','115842','EPSG','4543','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1218','MOMRA_Terrestrial_Reference_Frame_2000',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1218','MOMRA_Terrestrial_Reference_Frame_2000',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1218_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1218','EPSG','1206','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115843','MTRF-2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1218',0); INSERT INTO "usage" VALUES('ESRI', '115843_USAGE','vertical_crs','ESRI','115843','EPSG','1206','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106012','California_SRS_Epoch_2017.50_(NAD83)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106012','California_SRS_Epoch_2017.50_(NAD83)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106012_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106012','ESRI','1','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115844','California_SRS_Epoch_2017.50_(NAD83)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106012',0); INSERT INTO "usage" VALUES('ESRI', '115844_USAGE','vertical_crs','ESRI','115844','ESRI','1','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106010','Georgia_Geodetic_Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106010','Georgia_Geodetic_Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106010_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106010','EPSG','3251','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115845','GGD',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106010',0); INSERT INTO "usage" VALUES('ESRI', '115845_USAGE','vertical_crs','ESRI','115845','EPSG','3251','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1147','Oman_National_Geodetic_Datum_2014',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1147','Oman_National_Geodetic_Datum_2014',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1147_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1147','EPSG','1183','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115846','ONGD14',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1147',0); INSERT INTO "usage" VALUES('ESRI', '115846_USAGE','vertical_crs','ESRI','115846','EPSG','1183','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106027','Oman_National_Geodetic_Datum_2017',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106027','Oman_National_Geodetic_Datum_2017',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106027_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106027','EPSG','1183','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115847','ONGD17',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106027',0); INSERT INTO "usage" VALUES('ESRI', '115847_USAGE','vertical_crs','ESRI','115847','EPSG','1183','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1201','S-JTSK_[JTSK03]',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1201','S-JTSK_[JTSK03]',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1201_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1201','EPSG','1211','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115848','S-JTSK_[JTSK03]',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1201',0); INSERT INTO "usage" VALUES('ESRI', '115848_USAGE','vertical_crs','ESRI','115848','EPSG','1211','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1225','CR-SIRGAS',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1225','CR-SIRGAS',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1225_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1225','EPSG','1074','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115849','CR-SIRGAS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1225',0); INSERT INTO "usage" VALUES('ESRI', '115849_USAGE','vertical_crs','ESRI','115849','EPSG','1074','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1223','Reseau_Geodesique_de_Wallis_et_Futuna_1996',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1223','Reseau_Geodesique_de_Wallis_et_Futuna_1996',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1223_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1223','EPSG','1255','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115850','RGWF96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1223',0); INSERT INTO "usage" VALUES('ESRI', '115850_USAGE','vertical_crs','ESRI','115850','EPSG','1255','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1227','SIRGAS_Continuously_Operating_Network_DGF00P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1227','SIRGAS_Continuously_Operating_Network_DGF00P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1227_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1227','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115851','SIRGAS-CON_DGF00P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1227',0); INSERT INTO "usage" VALUES('ESRI', '115851_USAGE','vertical_crs','ESRI','115851','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1228','SIRGAS_Continuously_Operating_Network_DGF01P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1228','SIRGAS_Continuously_Operating_Network_DGF01P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1228_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1228','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115852','SIRGAS-CON_DGF01P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1228',0); INSERT INTO "usage" VALUES('ESRI', '115852_USAGE','vertical_crs','ESRI','115852','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1229','SIRGAS_Continuously_Operating_Network_DGF01P02',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1229','SIRGAS_Continuously_Operating_Network_DGF01P02',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1229_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1229','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115853','SIRGAS-CON_DGF01P02',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1229',0); INSERT INTO "usage" VALUES('ESRI', '115853_USAGE','vertical_crs','ESRI','115853','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1230','SIRGAS_Continuously_Operating_Network_DGF02P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1230','SIRGAS_Continuously_Operating_Network_DGF02P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1230_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1230','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115854','SIRGAS-CON_DGF02P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1230',0); INSERT INTO "usage" VALUES('ESRI', '115854_USAGE','vertical_crs','ESRI','115854','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1231','SIRGAS_Continuously_Operating_Network_DGF04P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1231','SIRGAS_Continuously_Operating_Network_DGF04P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1231_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1231','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115855','SIRGAS-CON_DGF04P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1231',0); INSERT INTO "usage" VALUES('ESRI', '115855_USAGE','vertical_crs','ESRI','115855','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1232','SIRGAS_Continuously_Operating_Network_DGF05P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1232','SIRGAS_Continuously_Operating_Network_DGF05P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1232_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1232','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115856','SIRGAS-CON_DGF05P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1232',0); INSERT INTO "usage" VALUES('ESRI', '115856_USAGE','vertical_crs','ESRI','115856','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1233','SIRGAS_Continuously_Operating_Network_DGF06P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1233','SIRGAS_Continuously_Operating_Network_DGF06P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1233_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1233','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115857','SIRGAS-CON_DGF06P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1233',0); INSERT INTO "usage" VALUES('ESRI', '115857_USAGE','vertical_crs','ESRI','115857','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1234','SIRGAS_Continuously_Operating_Network_DGF07P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1234','SIRGAS_Continuously_Operating_Network_DGF07P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1234_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1234','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115858','SIRGAS-CON_DGF07P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1234',0); INSERT INTO "usage" VALUES('ESRI', '115858_USAGE','vertical_crs','ESRI','115858','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1235','SIRGAS_Continuously_Operating_Network_DGF08P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1235','SIRGAS_Continuously_Operating_Network_DGF08P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1235_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1235','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115859','SIRGAS-CON_DGF08P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1235',0); INSERT INTO "usage" VALUES('ESRI', '115859_USAGE','vertical_crs','ESRI','115859','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1236','SIRGAS_Continuously_Operating_Network_SIR09P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1236','SIRGAS_Continuously_Operating_Network_SIR09P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1236_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1236','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115860','SIRGAS-CON_SIR09P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1236',0); INSERT INTO "usage" VALUES('ESRI', '115860_USAGE','vertical_crs','ESRI','115860','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1237','SIRGAS_Continuously_Operating_Network_SIR10P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1237','SIRGAS_Continuously_Operating_Network_SIR10P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1237_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1237','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115861','SIRGAS-CON_SIR10P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1237',0); INSERT INTO "usage" VALUES('ESRI', '115861_USAGE','vertical_crs','ESRI','115861','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1238','SIRGAS_Continuously_Operating_Network_SIR11P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1238','SIRGAS_Continuously_Operating_Network_SIR11P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1238_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1238','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115862','SIRGAS-CON_SIR11P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1238',0); INSERT INTO "usage" VALUES('ESRI', '115862_USAGE','vertical_crs','ESRI','115862','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1239','SIRGAS_Continuously_Operating_Network_SIR13P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1239','SIRGAS_Continuously_Operating_Network_SIR13P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1239_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1239','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115863','SIRGAS-CON_SIR13P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1239',0); INSERT INTO "usage" VALUES('ESRI', '115863_USAGE','vertical_crs','ESRI','115863','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1240','SIRGAS_Continuously_Operating_Network_SIR14P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1240','SIRGAS_Continuously_Operating_Network_SIR14P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1240_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1240','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115864','SIRGAS-CON_SIR14P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1240',0); INSERT INTO "usage" VALUES('ESRI', '115864_USAGE','vertical_crs','ESRI','115864','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1241','SIRGAS_Continuously_Operating_Network_SIR15P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1241','SIRGAS_Continuously_Operating_Network_SIR15P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1241_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1241','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115865','SIRGAS-CON_SIR15P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1241',0); INSERT INTO "usage" VALUES('ESRI', '115865_USAGE','vertical_crs','ESRI','115865','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1242','SIRGAS_Continuously_Operating_Network_SIR17P01',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1242','SIRGAS_Continuously_Operating_Network_SIR17P01',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1242_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1242','EPSG','4530','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115866','SIRGAS-CON_SIR17P01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1242',0); INSERT INTO "usage" VALUES('ESRI', '115866_USAGE','vertical_crs','ESRI','115866','EPSG','4530','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1244','IGS97',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1244','IGS97',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1244_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1244','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115867','IGS97',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1244',0); INSERT INTO "usage" VALUES('ESRI', '115867_USAGE','vertical_crs','ESRI','115867','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1245','IGS00',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1245','IGS00',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1245_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1245','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115868','IGS00',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1245',0); INSERT INTO "usage" VALUES('ESRI', '115868_USAGE','vertical_crs','ESRI','115868','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1246','IGb00',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1246','IGb00',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1246_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1246','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115869','IGb00',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1246',0); INSERT INTO "usage" VALUES('ESRI', '115869_USAGE','vertical_crs','ESRI','115869','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1247','IGS05',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1247','IGS05',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1247_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1247','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115870','IGS05',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1247',0); INSERT INTO "usage" VALUES('ESRI', '115870_USAGE','vertical_crs','ESRI','115870','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1248','IGb08',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1248','IGb08',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1248_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1248','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115871','IGb08',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1248',0); INSERT INTO "usage" VALUES('ESRI', '115871_USAGE','vertical_crs','ESRI','115871','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1251','Kosovo_Reference_System_2001',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1251','Kosovo_Reference_System_2001',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1251_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1251','EPSG','4542','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115872','KOSOVAREF01',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1251',0); INSERT INTO "usage" VALUES('ESRI', '115872_USAGE','vertical_crs','ESRI','115872','EPSG','4542','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1204','European_Terrestrial_Reference_Frame_2005',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1204','European_Terrestrial_Reference_Frame_2005',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1204_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1204','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115873','ETRF2005',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1204',0); INSERT INTO "usage" VALUES('ESRI', '115873_USAGE','vertical_crs','ESRI','115873','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1206','European_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1206','European_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1206_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1206','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115874','ETRF2014',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1206',0); INSERT INTO "usage" VALUES('ESRI', '115874_USAGE','vertical_crs','ESRI','115874','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6150','D_CH1903+',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6150','D_CH1903+',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6150_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6150','EPSG','1286','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115875','CH1903+',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6150',0); INSERT INTO "usage" VALUES('ESRI', '115875_USAGE','vertical_crs','ESRI','115875','EPSG','1286','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1291','Australian_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1291','Australian_Terrestrial_Reference_Frame_2014',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1291_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1291','EPSG','4177','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115876','ATRF2014',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1291',0); INSERT INTO "usage" VALUES('ESRI', '115876_USAGE','vertical_crs','ESRI','115876','EPSG','4177','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6203','D_Australian_1984',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6203','D_Australian_1984',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6203_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6203','EPSG','2576','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115877','Australian_1984',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6203',0); INSERT INTO "usage" VALUES('ESRI', '115877_USAGE','vertical_crs','ESRI','115877','EPSG','2576','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6202','D_Australian_1966',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6202','D_Australian_1966',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6202_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6202','EPSG','1279','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115878','Australian_1966',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6202',0); INSERT INTO "usage" VALUES('ESRI', '115878_USAGE','vertical_crs','ESRI','115878','EPSG','1279','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6653','D_ITRF_1994',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6653','D_ITRF_1994',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6653_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6653','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115879','ITRF_1994',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6653',0); INSERT INTO "usage" VALUES('ESRI', '115879_USAGE','vertical_crs','ESRI','115879','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1062','D_POSGAR_2007',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1062','D_POSGAR_2007',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1062_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1062','EPSG','1033','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115880','POSGAR_2007',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1062',0); INSERT INTO "usage" VALUES('ESRI', '115880_USAGE','vertical_crs','ESRI','115880','EPSG','1033','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1312','Reseau_Geodesique_Francais_1993_v2',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1312','Reseau_Geodesique_Francais_1993_v2',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1312_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1312','EPSG','1096','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115881','RGF93_v2',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1312',0); INSERT INTO "usage" VALUES('ESRI', '115881_USAGE','vertical_crs','ESRI','115881','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1313','Reseau_Geodesique_Francais_1993_v2b',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1313','Reseau_Geodesique_Francais_1993_v2b',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1313_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1313','EPSG','1096','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115882','RGF93_v2b',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1313',0); INSERT INTO "usage" VALUES('ESRI', '115882_USAGE','vertical_crs','ESRI','115882','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1322','International_Terrestrial_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1322','International_Terrestrial_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1322_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1322','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115883','ITRF2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1322',0); INSERT INTO "usage" VALUES('ESRI', '115883_USAGE','vertical_crs','ESRI','115883','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1327','SIRGAS-Chile_realization_5_epoch_2021',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1327','SIRGAS-Chile_realization_5_epoch_2021',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1327_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1327','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115884','SIRGAS_Chile_2021_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1327',0); INSERT INTO "usage" VALUES('ESRI', '115884_USAGE','vertical_crs','ESRI','115884','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1309','WGS_1984_(G2139)',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1309','WGS_1984_(G2139)',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1309_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1309','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115885','WGS_1984_(G2139)_height',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1309',0); INSERT INTO "usage" VALUES('ESRI', '115885_USAGE','vertical_crs','ESRI','115885','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6181','D_Luxembourg_Reference_Frame',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6181','D_Luxembourg_Reference_Frame',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6181_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6181','EPSG','1146','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115886','LUREF',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6181',0); INSERT INTO "usage" VALUES('ESRI', '115886_USAGE','vertical_crs','ESRI','115886','EPSG','1146','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106271','D_Bermuda_2000',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106271','D_Bermuda_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106271_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106271','EPSG','1047','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115887','Bermuda_2000',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106271',0); INSERT INTO "usage" VALUES('ESRI', '115887_USAGE','vertical_crs','ESRI','115887','EPSG','1047','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106225','D_Cyprus_Geodetic_Reference_System_1993',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106225','D_Cyprus_Geodetic_Reference_System_1993',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106225_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106225','EPSG','3236','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115888','CGRS_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106225',0); INSERT INTO "usage" VALUES('ESRI', '115888_USAGE','vertical_crs','ESRI','115888','EPSG','3236','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106258','D_ETRF_1989',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106258','D_ETRF_1989',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106258_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106258','EPSG','1298','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115889','ETRF_1989',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106258',0); INSERT INTO "usage" VALUES('ESRI', '115889_USAGE','vertical_crs','ESRI','115889','EPSG','1298','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1305','ETRF2000_Poland',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1305','ETRF2000_Poland',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1305_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1305','EPSG','1192','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115890','ETRF2000-PL',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1305',0); INSERT INTO "usage" VALUES('ESRI', '115890_USAGE','vertical_crs','ESRI','115890','EPSG','1192','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6761','D_Croatian_Terrestrial_Reference_System',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6761','D_Croatian_Terrestrial_Reference_System',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6761_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6761','EPSG','1076','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115891','HTRS96',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6761',0); INSERT INTO "usage" VALUES('ESRI', '115891_USAGE','vertical_crs','ESRI','115891','EPSG','1076','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1272','IGb14',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1272','IGb14',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1272_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1272','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115892','IGb14',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1272',0); INSERT INTO "usage" VALUES('ESRI', '115892_USAGE','vertical_crs','ESRI','115892','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1141','IGS08',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1141','IGS08',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1141_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1141','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115893','IGS08',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1141',0); INSERT INTO "usage" VALUES('ESRI', '115893_USAGE','vertical_crs','ESRI','115893','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1268','Kingdom_of_Saudi_Arabia_Geodetic_Reference_Frame_2017',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1268','Kingdom_of_Saudi_Arabia_Geodetic_Reference_Frame_2017',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1268_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1268','EPSG','1206','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115894','KSA-GRF17',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1268',0); INSERT INTO "usage" VALUES('ESRI', '115894_USAGE','vertical_crs','ESRI','115894','EPSG','1206','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106009','D_Kyrgyz_Republic_2006',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106009','D_Kyrgyz_Republic_2006',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106009_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106009','EPSG','1137','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115895','Kyrg-06',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106009',0); INSERT INTO "usage" VALUES('ESRI', '115895_USAGE','vertical_crs','ESRI','115895','EPSG','1137','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6677','D_Lao_1993',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6677','D_Lao_1993',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6677_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6677','EPSG','1138','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115896','Lao_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6677',0); INSERT INTO "usage" VALUES('ESRI', '115896_USAGE','vertical_crs','ESRI','115896','EPSG','1138','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1295','Lyon_Turin_Ferroviaire_2004',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1295','Lyon_Turin_Ferroviaire_2004',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1295_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1295','EPSG','4613','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115897','LTF2004(G)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1295',0); INSERT INTO "usage" VALUES('ESRI', '115897_USAGE','vertical_crs','ESRI','115897','EPSG','4613','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6702','D_Mauritania_1999',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6702','D_Mauritania_1999',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6702_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6702','EPSG','1157','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115898','Mauritania_1999',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6702',0); INSERT INTO "usage" VALUES('ESRI', '115898_USAGE','vertical_crs','ESRI','115898','EPSG','1157','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1304','Red_Geodesica_Para_Mineria_en_Chile',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1304','Red_Geodesica_Para_Mineria_en_Chile',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1304_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1304','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115899','REDGEOMIN',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1304',0); INSERT INTO "usage" VALUES('ESRI', '115899_USAGE','vertical_crs','ESRI','115899','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1113','D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1113','D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1113_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1113','EPSG','4246','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115900','RGTAAF07',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1113',0); INSERT INTO "usage" VALUES('ESRI', '115900_USAGE','vertical_crs','ESRI','115900','EPSG','4246','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115901','RGTAAF07_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1113',0); INSERT INTO "usage" VALUES('ESRI', '115901_USAGE','vertical_crs','ESRI','115901','EPSG','4246','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1220','Reference_System_de_Angola_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1220','Reference_System_de_Angola_2013',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1220_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1220','EPSG','1029','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115902','RSAO13',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1220',0); INSERT INTO "usage" VALUES('ESRI', '115902_USAGE','vertical_crs','ESRI','115902','EPSG','1029','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1243','SIRGAS-Chile_realization_2_epoch_2010',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1243','SIRGAS-Chile_realization_2_epoch_2010',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1243_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1243','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115903','SIRGAS-Chile_2010',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1243',0); INSERT INTO "usage" VALUES('ESRI', '115903_USAGE','vertical_crs','ESRI','115903','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1252','SIRGAS-Chile_realization_3_epoch_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1252','SIRGAS-Chile_realization_3_epoch_2013',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1252_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1252','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115904','SIRGAS-Chile_2013',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1252',0); INSERT INTO "usage" VALUES('ESRI', '115904_USAGE','vertical_crs','ESRI','115904','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1253','SIRGAS-Chile_realization_4_epoch_2016',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1253','SIRGAS-Chile_realization_4_epoch_2016',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1253_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1253','EPSG','1066','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115905','SIRGAS-Chile_2016',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1253',0); INSERT INTO "usage" VALUES('ESRI', '115905_USAGE','vertical_crs','ESRI','115905','EPSG','1066','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1293','Sistem_Referensi_Geospasial_Indonesia_2013',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1293','Sistem_Referensi_Geospasial_Indonesia_2013',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1293_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1293','EPSG','1122','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115906','SRGI2013',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1293',0); INSERT INTO "usage" VALUES('ESRI', '115906_USAGE','vertical_crs','ESRI','115906','EPSG','1122','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106001','D_WGS_1966',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106001','D_WGS_1966',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106001_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106001','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115907','WGS_1966',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106001',0); INSERT INTO "usage" VALUES('ESRI', '115907_USAGE','vertical_crs','ESRI','115907','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6322','D_WGS_1972',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6322','D_WGS_1972',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6322_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6322','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115908','WGS_1972',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6322',0); INSERT INTO "usage" VALUES('ESRI', '115908_USAGE','vertical_crs','ESRI','115908','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6324','D_WGS_1972_BE',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6324','D_WGS_1972_BE',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6324_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6324','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115909','WGS_1972_BE',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6324',0); INSERT INTO "usage" VALUES('ESRI', '115909_USAGE','vertical_crs','ESRI','115909','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106984','D_Mexican_Datum_of_1993',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_ESRI_106984','D_Mexican_Datum_of_1993',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_ESRI_106984_USAGE','vertical_datum','ESRI','from_geogdatum_ESRI_106984','EPSG','1160','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115910','Mexican_Datum_of_1993',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_ESRI_106984',0); INSERT INTO "usage" VALUES('ESRI', '115910_USAGE','vertical_crs','ESRI','115910','EPSG','1160','EPSG','1024'); @@ -18514,47 +18514,47 @@ INSERT INTO "vertical_crs" VALUES('ESRI','115918','RGF93_v2_(lon-lat)',NULL,'ESR INSERT INTO "usage" VALUES('ESRI', '115918_USAGE','vertical_crs','ESRI','115918','EPSG','1096','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115919','RGF93_v2b_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1313',0); INSERT INTO "usage" VALUES('ESRI', '115919_USAGE','vertical_crs','ESRI','115919','EPSG','1096','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6170','D_SIRGAS',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6170','D_SIRGAS',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6170_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6170','EPSG','3448','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115920','SIRGAS',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6170',0); INSERT INTO "usage" VALUES('ESRI', '115920_USAGE','vertical_crs','ESRI','115920','EPSG','3448','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6312','D_MGI',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6312','D_MGI',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6312_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6312','EPSG','1321','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115921','MGI',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6312',0); INSERT INTO "usage" VALUES('ESRI', '115921_USAGE','vertical_crs','ESRI','115921','EPSG','1321','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1333','IGS20',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1333','IGS20',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1333_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1333','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115922','IGS20',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1333',0); INSERT INTO "usage" VALUES('ESRI', '115922_USAGE','vertical_crs','ESRI','115922','EPSG','1262','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1353','ETRS89_DREF91_Realization_2016',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1353','ETRS89_DREF91_Realization_2016',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1353_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1353','EPSG','1103','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115923','ETRS89_DREF91_2016',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1353',0); INSERT INTO "usage" VALUES('ESRI', '115923_USAGE','vertical_crs','ESRI','115923','EPSG','1103','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1355','Sonatrach_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1355','Sonatrach_Reference_Frame_2020',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1355_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1355','EPSG','1026','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115924','RGSH2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1355',0); INSERT INTO "usage" VALUES('ESRI', '115924_USAGE','vertical_crs','ESRI','115924','EPSG','1026','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1356','Latvian_coordinate_system_2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1356','Latvian_coordinate_system_2020',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1356_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1356','EPSG','1139','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115925','LKS-2020',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1356',0); INSERT INTO "usage" VALUES('ESRI', '115925_USAGE','vertical_crs','ESRI','115925','EPSG','1139','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115926','RGNC_1991-93_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6749',0); INSERT INTO "usage" VALUES('ESRI', '115926_USAGE','vertical_crs','ESRI','115926','EPSG','1174','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1357','Reseau_Geodesique_de_Nouvelle_Caledonie_2015',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1357','Reseau_Geodesique_de_Nouvelle_Caledonie_2015',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1357_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1357','EPSG','1174','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115927','RGNC15',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1357',0); INSERT INTO "usage" VALUES('ESRI', '115927_USAGE','vertical_crs','ESRI','115927','EPSG','1174','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115928','RGNC15_(lon-lat)',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1357',0); INSERT INTO "usage" VALUES('ESRI', '115928_USAGE','vertical_crs','ESRI','115928','EPSG','1174','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1358','BH_ETRS89',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1358','BH_ETRS89',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1358_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1358','EPSG','1050','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115929','BH_ETRS89',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1358',0); INSERT INTO "usage" VALUES('ESRI', '115929_USAGE','vertical_crs','ESRI','115929','EPSG','1050','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1329','Marco_Geocentrico_Nacional_de_Referencia_2018',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1329','Marco_Geocentrico_Nacional_de_Referencia_2018',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1329_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1329','EPSG','1070','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115930','MAGNA-SIRGAS_2018',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1329',0); INSERT INTO "usage" VALUES('ESRI', '115930_USAGE','vertical_crs','ESRI','115930','EPSG','1070','EPSG','1024'); -INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1365','North_American_Datum_of_1983_(CSRS)_version_8',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_1365','North_American_Datum_of_1983_(CSRS)_version_8',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_1365_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_1365','EPSG','1061','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115931','NAD83(CSRS)v8',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_1365',0); INSERT INTO "usage" VALUES('ESRI', '115931_USAGE','vertical_crs','ESRI','115931','EPSG','1061','EPSG','1024'); diff --git a/data/sql/geodetic_datum.sql b/data/sql/geodetic_datum.sql index 283dbf79e3..055291f274 100644 --- a/data/sql/geodetic_datum.sql +++ b/data/sql/geodetic_datum.sql @@ -1,1282 +1,1282 @@ --- This file has been generated by scripts/build_db.py. DO NOT EDIT ! -INSERT INTO "geodetic_datum" VALUES('EPSG','1024','Hungarian Datum 1909',NULL,'EPSG','7004','EPSG','8901','1909-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1024','Hungarian Datum 1909',NULL,'EPSG','7004','EPSG','8901','1909-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13076','geodetic_datum','EPSG','1024','EPSG','1119','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1025','Taiwan Datum 1967',NULL,'EPSG','7050','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1025','Taiwan Datum 1967',NULL,'EPSG','7050','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13077','geodetic_datum','EPSG','1025','EPSG','3315','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1026','Taiwan Datum 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1026','Taiwan Datum 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13078','geodetic_datum','EPSG','1026','EPSG','1228','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1029','Iraqi Geospatial Reference System',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1029','Iraqi Geospatial Reference System',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13081','geodetic_datum','EPSG','1029','EPSG','1124','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1031','MGI 1901',NULL,'EPSG','7004','EPSG','8901','1901-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1031','MGI 1901',NULL,'EPSG','7004','EPSG','8901','1901-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13083','geodetic_datum','EPSG','1031','EPSG','2370','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1032','MOLDREF99',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1032','MOLDREF99',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13084','geodetic_datum','EPSG','1032','EPSG','1162','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1033','Reseau Geodesique de la RDC 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1033','Reseau Geodesique de la RDC 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13085','geodetic_datum','EPSG','1033','EPSG','3613','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1034','Serbian Reference Network 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1034','Serbian Reference Network 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13086','geodetic_datum','EPSG','1034','EPSG','4543','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1035','Red Geodesica de Canarias 1995',NULL,'EPSG','7019','EPSG','8901','2007-08-29',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1035','Red Geodesica de Canarias 1995',NULL,'EPSG','7019','EPSG','8901','2007-08-29',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13087','geodetic_datum','EPSG','1035','EPSG','3199','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1036','Reseau Geodesique de Mayotte 2004',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1036','Reseau Geodesique de Mayotte 2004',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13088','geodetic_datum','EPSG','1036','EPSG','1159','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1037','Cadastre 1997',NULL,'EPSG','7022','EPSG','8901','1997-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1037','Cadastre 1997',NULL,'EPSG','7022','EPSG','8901','1997-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13089','geodetic_datum','EPSG','1037','EPSG','3340','EPSG','1028'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1038','Reseau Geodesique de Saint Pierre et Miquelon 2006',NULL,'EPSG','7019','EPSG','8901','2006-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1038','Reseau Geodesique de Saint Pierre et Miquelon 2006',NULL,'EPSG','7019','EPSG','8901','2006-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13090','geodetic_datum','EPSG','1038','EPSG','1220','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1041','Autonomous Regions of Portugal 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1041','Autonomous Regions of Portugal 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13093','geodetic_datum','EPSG','1041','EPSG','3670','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1042','Mexico ITRF92',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1042','Mexico ITRF92',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13094','geodetic_datum','EPSG','1042','EPSG','1160','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1043','China 2000',NULL,'EPSG','1024','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1043','China 2000',NULL,'EPSG','1024','EPSG','8901','2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13095','geodetic_datum','EPSG','1043','EPSG','1067','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1044','Sao Tome',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1044','Sao Tome',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13096','geodetic_datum','EPSG','1044','EPSG','3645','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1045','New Beijing',NULL,'EPSG','7024','EPSG','8901','1982-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1045','New Beijing',NULL,'EPSG','7024','EPSG','8901','1982-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13097','geodetic_datum','EPSG','1045','EPSG','3228','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1046','Principe',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1046','Principe',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13098','geodetic_datum','EPSG','1046','EPSG','3646','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1047','Reseau de Reference des Antilles Francaises 1991',NULL,'EPSG','7019','EPSG','8901','1991-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1047','Reseau de Reference des Antilles Francaises 1991',NULL,'EPSG','7019','EPSG','8901','1991-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13099','geodetic_datum','EPSG','1047','EPSG','2824','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1048','Tokyo 1892',NULL,'EPSG','7004','EPSG','8901','1892-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1048','Tokyo 1892',NULL,'EPSG','7004','EPSG','8901','1892-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13100','geodetic_datum','EPSG','1048','EPSG','1364','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1052','System of the Unified Trigonometrical Cadastral Network/05',NULL,'EPSG','7004','EPSG','8901','2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1052','System of the Unified Trigonometrical Cadastral Network/05',NULL,'EPSG','7004','EPSG','8901','2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13104','geodetic_datum','EPSG','1052','EPSG','1079','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1053','Sri Lanka Datum 1999',NULL,'EPSG','7015','EPSG','8901','1999-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1053','Sri Lanka Datum 1999',NULL,'EPSG','7015','EPSG','8901','1999-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13105','geodetic_datum','EPSG','1053','EPSG','3310','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1055','System of the Unified Trigonometrical Cadastral Network/05 (Ferro)',NULL,'EPSG','7004','EPSG','8909','2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1055','System of the Unified Trigonometrical Cadastral Network/05 (Ferro)',NULL,'EPSG','7004','EPSG','8909','2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13107','geodetic_datum','EPSG','1055','EPSG','1079','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1056','Geocentric Datum Brunei Darussalam 2009',NULL,'EPSG','7019','EPSG','8901','2009-07-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1056','Geocentric Datum Brunei Darussalam 2009',NULL,'EPSG','7019','EPSG','8901','2009-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13108','geodetic_datum','EPSG','1056','EPSG','1055','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1057','Turkish National Reference Frame',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1057','Turkish National Reference Frame',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13109','geodetic_datum','EPSG','1057','EPSG','1237','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1058','Bhutan National Geodetic Datum',NULL,'EPSG','7019','EPSG','8901','2003-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1058','Bhutan National Geodetic Datum',NULL,'EPSG','7019','EPSG','8901','2003-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13110','geodetic_datum','EPSG','1058','EPSG','1048','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1060','Islands Net 2004',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1060','Islands Net 2004',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13112','geodetic_datum','EPSG','1060','EPSG','1120','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1061','International Terrestrial Reference Frame 2008',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1061','International Terrestrial Reference Frame 2008',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13113','geodetic_datum','EPSG','1061','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1062','Posiciones Geodesicas Argentinas 2007',NULL,'EPSG','7030','EPSG','8901','2006-08-19',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1062','Posiciones Geodesicas Argentinas 2007',NULL,'EPSG','7030','EPSG','8901','2006-08-19',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13114','geodetic_datum','EPSG','1062','EPSG','1033','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1063','Marco Geodesico Nacional de Bolivia',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1063','Marco Geodesico Nacional de Bolivia',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13115','geodetic_datum','EPSG','1063','EPSG','1049','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1064','SIRGAS-Chile realization 1 epoch 2002',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1064','SIRGAS-Chile realization 1 epoch 2002',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13116','geodetic_datum','EPSG','1064','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1065','Costa Rica 2005',NULL,'EPSG','7030','EPSG','8901','2007-07-30',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1065','Costa Rica 2005',NULL,'EPSG','7030','EPSG','8901','2007-07-30',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13117','geodetic_datum','EPSG','1065','EPSG','1074','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1066','Sistema Geodesico Nacional de Panama MACARIO SOLIS',NULL,'EPSG','7019','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1066','Sistema Geodesico Nacional de Panama MACARIO SOLIS',NULL,'EPSG','7019','EPSG','8901','2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13118','geodetic_datum','EPSG','1066','EPSG','1186','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1067','Peru96',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1067','Peru96',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13119','geodetic_datum','EPSG','1067','EPSG','1189','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1068','SIRGAS-ROU98',NULL,'EPSG','7030','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1068','SIRGAS-ROU98',NULL,'EPSG','7030','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13120','geodetic_datum','EPSG','1068','EPSG','1247','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1069','SIRGAS_ES2007.8',NULL,'EPSG','7019','EPSG','8901','2007-11-07',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1069','SIRGAS_ES2007.8',NULL,'EPSG','7019','EPSG','8901','2007-11-07',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13121','geodetic_datum','EPSG','1069','EPSG','1087','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1070','Ocotepeque 1935',NULL,'EPSG','7008','EPSG','8901','1935-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1070','Ocotepeque 1935',NULL,'EPSG','7008','EPSG','8901','1935-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13122','geodetic_datum','EPSG','1070','EPSG','3876','EPSG','1142'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1071','Sibun Gorge 1922',NULL,'EPSG','7007','EPSG','8901','1922-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1071','Sibun Gorge 1922',NULL,'EPSG','7007','EPSG','8901','1922-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13123','geodetic_datum','EPSG','1071','EPSG','3219','EPSG','1142'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1072','Panama-Colon 1911',NULL,'EPSG','7008','EPSG','8901','1911-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1072','Panama-Colon 1911',NULL,'EPSG','7008','EPSG','8901','1911-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13124','geodetic_datum','EPSG','1072','EPSG','3290','EPSG','1142'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1073','Reseau Geodesique des Antilles Francaises 2009',NULL,'EPSG','7019','EPSG','8901','2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1073','Reseau Geodesique des Antilles Francaises 2009',NULL,'EPSG','7019','EPSG','8901','2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13125','geodetic_datum','EPSG','1073','EPSG','2824','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1074','Corrego Alegre 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1074','Corrego Alegre 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13126','geodetic_datum','EPSG','1074','EPSG','3874','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1075','South American Datum 1969(96)',NULL,'EPSG','7050','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1075','South American Datum 1969(96)',NULL,'EPSG','7050','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13127','geodetic_datum','EPSG','1075','EPSG','1053','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1076','Papua New Guinea Geodetic Datum 1994',NULL,'EPSG','7019','EPSG','8901','1994-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1076','Papua New Guinea Geodetic Datum 1994',NULL,'EPSG','7019','EPSG','8901','1994-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13128','geodetic_datum','EPSG','1076','EPSG','1187','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1077','Ukraine 2000',NULL,'EPSG','7024','EPSG','8901','2003-09-17',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1077','Ukraine 2000',NULL,'EPSG','7024','EPSG','8901','2003-09-17',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13129','geodetic_datum','EPSG','1077','EPSG','1242','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1078','Fehmarnbelt Datum 2010',NULL,'EPSG','7019','EPSG','8901','2010-02-21',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1078','Fehmarnbelt Datum 2010',NULL,'EPSG','7019','EPSG','8901','2010-02-21',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13130','geodetic_datum','EPSG','1078','EPSG','3889','EPSG','1139'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1081','Deutsche Bahn Reference System',NULL,'EPSG','7004','EPSG','8901','2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1081','Deutsche Bahn Reference System',NULL,'EPSG','7004','EPSG','8901','2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13133','geodetic_datum','EPSG','1081','EPSG','3339','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1095','Tonga Geodetic Datum 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1095','Tonga Geodetic Datum 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13147','geodetic_datum','EPSG','1095','EPSG','1234','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1100','Cayman Islands Geodetic Datum 2011',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1100','Cayman Islands Geodetic Datum 2011',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13152','geodetic_datum','EPSG','1100','EPSG','1063','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1111','Nepal 1981',NULL,'EPSG','7015','EPSG','8901','1981-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1111','Nepal 1981',NULL,'EPSG','7015','EPSG','8901','1981-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13163','geodetic_datum','EPSG','1111','EPSG','1171','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1112','Cyprus Geodetic Reference System 1993',NULL,'EPSG','7030','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1112','Cyprus Geodetic Reference System 1993',NULL,'EPSG','7030','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13164','geodetic_datum','EPSG','1112','EPSG','3236','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1113','Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1113','Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13165','geodetic_datum','EPSG','1113','EPSG','4246','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1114','Israeli Geodetic Datum 2005',NULL,'EPSG','7030','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1114','Israeli Geodetic Datum 2005',NULL,'EPSG','7030','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13166','geodetic_datum','EPSG','1114','EPSG','1126','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1115','Israeli Geodetic Datum 2005(2012)',NULL,'EPSG','7030','EPSG','8901','2012-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1115','Israeli Geodetic Datum 2005(2012)',NULL,'EPSG','7030','EPSG','8901','2012-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13167','geodetic_datum','EPSG','1115','EPSG','1126','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1116','NAD83 (National Spatial Reference System 2011)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1116','NAD83 (National Spatial Reference System 2011)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13168','geodetic_datum','EPSG','1116','EPSG','1511','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1117','NAD83 (National Spatial Reference System PA11)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1117','NAD83 (National Spatial Reference System PA11)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13169','geodetic_datum','EPSG','1117','EPSG','4162','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1118','NAD83 (National Spatial Reference System MA11)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1118','NAD83 (National Spatial Reference System MA11)',NULL,'EPSG','7019','EPSG','8901','2012-06-12',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13170','geodetic_datum','EPSG','1118','EPSG','4167','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1120','Mexico ITRF2008',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1120','Mexico ITRF2008',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13172','geodetic_datum','EPSG','1120','EPSG','1160','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1128','Japanese Geodetic Datum 2011',NULL,'EPSG','7019','EPSG','8901','2011-10-21',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1128','Japanese Geodetic Datum 2011',NULL,'EPSG','7019','EPSG','8901','2011-10-21',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13180','geodetic_datum','EPSG','1128','EPSG','1129','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1132','Rete Dinamica Nazionale 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1132','Rete Dinamica Nazionale 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13184','geodetic_datum','EPSG','1132','EPSG','3343','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1133','NAD83 (Continuously Operating Reference Station 1996)',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1133','NAD83 (Continuously Operating Reference Station 1996)',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13185','geodetic_datum','EPSG','1133','EPSG','1511','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1135','Aden 1925',NULL,'EPSG','7012','EPSG','8901','1925-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1135','Aden 1925',NULL,'EPSG','7012','EPSG','8901','1925-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13187','geodetic_datum','EPSG','1135','EPSG','1340','EPSG','1138'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1136','Bioko',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1136','Bioko',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13188','geodetic_datum','EPSG','1136','EPSG','4220','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1137','Bekaa Valley 1920',NULL,'EPSG','7012','EPSG','8901','1920-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1137','Bekaa Valley 1920',NULL,'EPSG','7012','EPSG','8901','1920-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13189','geodetic_datum','EPSG','1137','EPSG','3269','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1138','South East Island 1943',NULL,'EPSG','7012','EPSG','8901','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1138','South East Island 1943',NULL,'EPSG','7012','EPSG','8901','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13190','geodetic_datum','EPSG','1138','EPSG','4183','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1139','Gambia',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1139','Gambia',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13191','geodetic_datum','EPSG','1139','EPSG','3250','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1141','IGS08',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1141','IGS08',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13193','geodetic_datum','EPSG','1141','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1142','IG05 Intermediate Datum',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1142','IG05 Intermediate Datum',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13194','geodetic_datum','EPSG','1142','EPSG','2603','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1143','Israeli Geodetic Datum 2005',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','1143','Israeli Geodetic Datum 2005',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13195','geodetic_datum','EPSG','1143','EPSG','1126','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1144','IG05/12 Intermediate Datum',NULL,'EPSG','7019','EPSG','8901','2012-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1144','IG05/12 Intermediate Datum',NULL,'EPSG','7019','EPSG','8901','2012-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13196','geodetic_datum','EPSG','1144','EPSG','2603','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1145','Israeli Geodetic Datum 2005(2012)',NULL,'EPSG','7019','EPSG','8901','2012-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','1145','Israeli Geodetic Datum 2005(2012)',NULL,'EPSG','7019','EPSG','8901','2012-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13197','geodetic_datum','EPSG','1145','EPSG','1126','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1147','Oman National Geodetic Datum 2014',NULL,'EPSG','7019','EPSG','8901','2013-12-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1147','Oman National Geodetic Datum 2014',NULL,'EPSG','7019','EPSG','8901','2013-12-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13199','geodetic_datum','EPSG','1147','EPSG','1183','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1152','World Geodetic System 1984 (G730)',NULL,'EPSG','7030','EPSG','8901','1994-01-01',1994.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1152','World Geodetic System 1984 (G730)',NULL,'EPSG','7030','EPSG','8901','1994-01-01',1994.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13204','geodetic_datum','EPSG','1152','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1153','World Geodetic System 1984 (G873)',NULL,'EPSG','7030','EPSG','8901','1997-01-01',1997.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1153','World Geodetic System 1984 (G873)',NULL,'EPSG','7030','EPSG','8901','1997-01-01',1997.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13205','geodetic_datum','EPSG','1153','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1154','World Geodetic System 1984 (G1150)',NULL,'EPSG','7030','EPSG','8901','2001-01-01',2001.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1154','World Geodetic System 1984 (G1150)',NULL,'EPSG','7030','EPSG','8901','2001-01-01',2001.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13206','geodetic_datum','EPSG','1154','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1155','World Geodetic System 1984 (G1674)',NULL,'EPSG','7030','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1155','World Geodetic System 1984 (G1674)',NULL,'EPSG','7030','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13207','geodetic_datum','EPSG','1155','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1156','World Geodetic System 1984 (G1762)',NULL,'EPSG','7030','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1156','World Geodetic System 1984 (G1762)',NULL,'EPSG','7030','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13208','geodetic_datum','EPSG','1156','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1157','Parametry Zemli 1990.02',NULL,'EPSG','7054','EPSG','8901','2002-01-01',2002.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1157','Parametry Zemli 1990.02',NULL,'EPSG','7054','EPSG','8901','2002-01-01',2002.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13209','geodetic_datum','EPSG','1157','EPSG','1262','EPSG','1177'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1158','Parametry Zemli 1990.11',NULL,'EPSG','7054','EPSG','8901','2010-01-01',2010.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1158','Parametry Zemli 1990.11',NULL,'EPSG','7054','EPSG','8901','2010-01-01',2010.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13210','geodetic_datum','EPSG','1158','EPSG','1262','EPSG','1177'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1159','Geodezicheskaya Sistema Koordinat 2011',NULL,'EPSG','1025','EPSG','8901','2012-12-28',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1159','Geodezicheskaya Sistema Koordinat 2011',NULL,'EPSG','1025','EPSG','8901','2012-12-28',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13211','geodetic_datum','EPSG','1159','EPSG','1198','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1160','Kyrgyzstan Geodetic Datum 2006',NULL,'EPSG','7019','EPSG','8901','2006-09-13',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1160','Kyrgyzstan Geodetic Datum 2006',NULL,'EPSG','7019','EPSG','8901','2006-09-13',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13212','geodetic_datum','EPSG','1160','EPSG','1137','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1165','International Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1165','International Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13217','geodetic_datum','EPSG','1165','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1166','World Geodetic System 1984 (Transit)',NULL,'EPSG','7030','EPSG','8901','1984-01-01',1984.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1166','World Geodetic System 1984 (Transit)',NULL,'EPSG','7030','EPSG','8901','1984-01-01',1984.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13218','geodetic_datum','EPSG','1166','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1167','Bulgaria Geodetic System 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1167','Bulgaria Geodetic System 2005',NULL,'EPSG','7019','EPSG','8901','2005-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13219','geodetic_datum','EPSG','1167','EPSG','1056','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1168','Geocentric Datum of Australia 2020',NULL,'EPSG','7019','EPSG','8901','2017-05-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1168','Geocentric Datum of Australia 2020',NULL,'EPSG','7019','EPSG','8901','2017-05-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13220','geodetic_datum','EPSG','1168','EPSG','4177','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1173','St. Helena Tritan',NULL,'EPSG','7030','EPSG','8901','2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1173','St. Helena Tritan',NULL,'EPSG','7030','EPSG','8901','2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13225','geodetic_datum','EPSG','1173','EPSG','3183','EPSG','1146'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1174','St. Helena Geodetic Datum 2015',NULL,'EPSG','7019','EPSG','8901','2015-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1174','St. Helena Geodetic Datum 2015',NULL,'EPSG','7019','EPSG','8901','2015-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13226','geodetic_datum','EPSG','1174','EPSG','3183','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1178','European Terrestrial Reference Frame 1989',NULL,'EPSG','7019','EPSG','8901','1990-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1178','European Terrestrial Reference Frame 1989',NULL,'EPSG','7019','EPSG','8901','1990-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13230','geodetic_datum','EPSG','1178','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1179','European Terrestrial Reference Frame 1990',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1179','European Terrestrial Reference Frame 1990',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13231','geodetic_datum','EPSG','1179','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1180','European Terrestrial Reference Frame 1991',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1180','European Terrestrial Reference Frame 1991',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13232','geodetic_datum','EPSG','1180','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1181','European Terrestrial Reference Frame 1992',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1181','European Terrestrial Reference Frame 1992',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13233','geodetic_datum','EPSG','1181','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1182','European Terrestrial Reference Frame 1993',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1182','European Terrestrial Reference Frame 1993',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13234','geodetic_datum','EPSG','1182','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1183','European Terrestrial Reference Frame 1994',NULL,'EPSG','7019','EPSG','8901','1995-03-07',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1183','European Terrestrial Reference Frame 1994',NULL,'EPSG','7019','EPSG','8901','1995-03-07',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13235','geodetic_datum','EPSG','1183','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1184','European Terrestrial Reference Frame 1996',NULL,'EPSG','7019','EPSG','8901','1997-02-10',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1184','European Terrestrial Reference Frame 1996',NULL,'EPSG','7019','EPSG','8901','1997-02-10',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13236','geodetic_datum','EPSG','1184','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1185','European Terrestrial Reference Frame 1997',NULL,'EPSG','7019','EPSG','8901','1998-01-08',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1185','European Terrestrial Reference Frame 1997',NULL,'EPSG','7019','EPSG','8901','1998-01-08',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13237','geodetic_datum','EPSG','1185','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1186','European Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','2001-04-12',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1186','European Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','2001-04-12',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13238','geodetic_datum','EPSG','1186','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1187','Islands Net 2016',NULL,'EPSG','7019','EPSG','8901','2016-07-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1187','Islands Net 2016',NULL,'EPSG','7019','EPSG','8901','2016-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13239','geodetic_datum','EPSG','1187','EPSG','1120','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1188','Gusterberg (Ferro)',NULL,'EPSG','1026','EPSG','8909','1817-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1188','Gusterberg (Ferro)',NULL,'EPSG','1026','EPSG','8909','1817-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13240','geodetic_datum','EPSG','1188','EPSG','4455','EPSG','1028'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1189','St. Stephen (Ferro)',NULL,'EPSG','1026','EPSG','8909','1817-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1189','St. Stephen (Ferro)',NULL,'EPSG','1026','EPSG','8909','1817-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13241','geodetic_datum','EPSG','1189','EPSG','4456','EPSG','1028'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1191','IGS14',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1191','IGS14',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13243','geodetic_datum','EPSG','1191','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1192','North American Datum of 1983 (CSRS96)',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1192','North American Datum of 1983 (CSRS96)',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13244','geodetic_datum','EPSG','1192','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1193','North American Datum of 1983 (CSRS) version 2',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1193','North American Datum of 1983 (CSRS) version 2',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13245','geodetic_datum','EPSG','1193','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1194','North American Datum of 1983 (CSRS) version 3',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1194','North American Datum of 1983 (CSRS) version 3',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13246','geodetic_datum','EPSG','1194','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1195','North American Datum of 1983 (CSRS) version 4',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1195','North American Datum of 1983 (CSRS) version 4',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13247','geodetic_datum','EPSG','1195','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1196','North American Datum of 1983 (CSRS) version 5',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1196','North American Datum of 1983 (CSRS) version 5',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13248','geodetic_datum','EPSG','1196','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1197','North American Datum of 1983 (CSRS) version 6',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1197','North American Datum of 1983 (CSRS) version 6',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13249','geodetic_datum','EPSG','1197','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1198','North American Datum of 1983 (CSRS) version 7',NULL,'EPSG','7019','EPSG','8901','2017-05-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1198','North American Datum of 1983 (CSRS) version 7',NULL,'EPSG','7019','EPSG','8901','2017-05-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13250','geodetic_datum','EPSG','1198','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1201','System of the Unified Trigonometrical Cadastral Network [JTSK03]',NULL,'EPSG','7004','EPSG','8901','2003-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1201','System of the Unified Trigonometrical Cadastral Network [JTSK03]',NULL,'EPSG','7004','EPSG','8901','2003-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13253','geodetic_datum','EPSG','1201','EPSG','1211','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1204','European Terrestrial Reference Frame 2005',NULL,'EPSG','7019','EPSG','8901','2007-03-27',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1204','European Terrestrial Reference Frame 2005',NULL,'EPSG','7019','EPSG','8901','2007-03-27',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13256','geodetic_datum','EPSG','1204','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1206','European Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2018-06-28',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1206','European Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2018-06-28',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13258','geodetic_datum','EPSG','1206','EPSG','1298','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1207','Macao 1920',NULL,'EPSG','7022','EPSG','8901','1920-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1207','Macao 1920',NULL,'EPSG','7022','EPSG','8901','1920-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13259','geodetic_datum','EPSG','1207','EPSG','1147','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1208','Macao Geodetic Datum 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1208','Macao Geodetic Datum 2008',NULL,'EPSG','7019','EPSG','8901','2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13260','geodetic_datum','EPSG','1208','EPSG','1147','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1209','Hong Kong Geodetic',NULL,'EPSG','7019','EPSG','8901','1998-04-30',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1209','Hong Kong Geodetic',NULL,'EPSG','7019','EPSG','8901','1998-04-30',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13261','geodetic_datum','EPSG','1209','EPSG','1118','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1211','NAD83 (Federal Base Network)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1211','NAD83 (Federal Base Network)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13263','geodetic_datum','EPSG','1211','EPSG','4515','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1212','NAD83 (High Accuracy Reference Network - Corrected)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1212','NAD83 (High Accuracy Reference Network - Corrected)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13264','geodetic_datum','EPSG','1212','EPSG','3634','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1214','Serbian Spatial Reference System 2000',NULL,'EPSG','7019','EPSG','8901','2010-08-19',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1214','Serbian Spatial Reference System 2000',NULL,'EPSG','7019','EPSG','8901','2010-08-19',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13266','geodetic_datum','EPSG','1214','EPSG','4543','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1217','Camacupa 2015',NULL,'EPSG','7012','EPSG','8901','2015-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1217','Camacupa 2015',NULL,'EPSG','7012','EPSG','8901','2015-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13269','geodetic_datum','EPSG','1217','EPSG','1029','EPSG','1130'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1218','MOMRA Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1218','MOMRA Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13270','geodetic_datum','EPSG','1218','EPSG','1206','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1220','Reference System de Angola 2013',NULL,'EPSG','7019','EPSG','8901','2015-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1220','Reference System de Angola 2013',NULL,'EPSG','7019','EPSG','8901','2015-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13272','geodetic_datum','EPSG','1220','EPSG','1029','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1221','North American Datum of 1983 (MARP00)',NULL,'EPSG','7019','EPSG','8901','1993-08-15',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1221','North American Datum of 1983 (MARP00)',NULL,'EPSG','7019','EPSG','8901','1993-08-15',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13273','geodetic_datum','EPSG','1221','EPSG','4167','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1223','Reseau Geodesique de Wallis et Futuna 1996',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1223','Reseau Geodesique de Wallis et Futuna 1996',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13275','geodetic_datum','EPSG','1223','EPSG','1255','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1225','CR-SIRGAS',NULL,'EPSG','7019','EPSG','8901','2018-04-17',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1225','CR-SIRGAS',NULL,'EPSG','7019','EPSG','8901','2018-04-17',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13277','geodetic_datum','EPSG','1225','EPSG','1074','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1227','SIRGAS Continuously Operating Network DGF00P01',NULL,'EPSG','7019','EPSG','8901','2000-05-01',2000.4,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1227','SIRGAS Continuously Operating Network DGF00P01',NULL,'EPSG','7019','EPSG','8901','2000-05-01',2000.4,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13279','geodetic_datum','EPSG','1227','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1228','SIRGAS Continuously Operating Network DGF01P01',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1228','SIRGAS Continuously Operating Network DGF01P01',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13280','geodetic_datum','EPSG','1228','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1229','SIRGAS Continuously Operating Network DGF01P02',NULL,'EPSG','7019','EPSG','8901','1998-05-01',1998.4,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1229','SIRGAS Continuously Operating Network DGF01P02',NULL,'EPSG','7019','EPSG','8901','1998-05-01',1998.4,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13281','geodetic_datum','EPSG','1229','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1230','SIRGAS Continuously Operating Network DGF02P01',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1230','SIRGAS Continuously Operating Network DGF02P01',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13282','geodetic_datum','EPSG','1230','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1231','SIRGAS Continuously Operating Network DGF04P01',NULL,'EPSG','7019','EPSG','8901','2003-01-01',2003.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1231','SIRGAS Continuously Operating Network DGF04P01',NULL,'EPSG','7019','EPSG','8901','2003-01-01',2003.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13283','geodetic_datum','EPSG','1231','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1232','SIRGAS Continuously Operating Network DGF05P01',NULL,'EPSG','7019','EPSG','8901','2004-01-01',2004.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1232','SIRGAS Continuously Operating Network DGF05P01',NULL,'EPSG','7019','EPSG','8901','2004-01-01',2004.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13284','geodetic_datum','EPSG','1232','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1233','SIRGAS Continuously Operating Network DGF06P01',NULL,'EPSG','7019','EPSG','8901','2004-01-01',2004.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1233','SIRGAS Continuously Operating Network DGF06P01',NULL,'EPSG','7019','EPSG','8901','2004-01-01',2004.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13285','geodetic_datum','EPSG','1233','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1234','SIRGAS Continuously Operating Network DGF07P01',NULL,'EPSG','7019','EPSG','8901','2004-07-01',2004.5,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1234','SIRGAS Continuously Operating Network DGF07P01',NULL,'EPSG','7019','EPSG','8901','2004-07-01',2004.5,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13286','geodetic_datum','EPSG','1234','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1235','SIRGAS Continuously Operating Network DGF08P01',NULL,'EPSG','7019','EPSG','8901','2004-07-01',2004.5,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1235','SIRGAS Continuously Operating Network DGF08P01',NULL,'EPSG','7019','EPSG','8901','2004-07-01',2004.5,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13287','geodetic_datum','EPSG','1235','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1236','SIRGAS Continuously Operating Network SIR09P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1236','SIRGAS Continuously Operating Network SIR09P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13288','geodetic_datum','EPSG','1236','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1237','SIRGAS Continuously Operating Network SIR10P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1237','SIRGAS Continuously Operating Network SIR10P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13289','geodetic_datum','EPSG','1237','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1238','SIRGAS Continuously Operating Network SIR11P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1238','SIRGAS Continuously Operating Network SIR11P01',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13290','geodetic_datum','EPSG','1238','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1239','SIRGAS Continuously Operating Network SIR13P01',NULL,'EPSG','7019','EPSG','8901','2012-01-01',2012.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1239','SIRGAS Continuously Operating Network SIR13P01',NULL,'EPSG','7019','EPSG','8901','2012-01-01',2012.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13291','geodetic_datum','EPSG','1239','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1240','SIRGAS Continuously Operating Network SIR14P01',NULL,'EPSG','7019','EPSG','8901','2013-01-01',2013.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1240','SIRGAS Continuously Operating Network SIR14P01',NULL,'EPSG','7019','EPSG','8901','2013-01-01',2013.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13292','geodetic_datum','EPSG','1240','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1241','SIRGAS Continuously Operating Network SIR15P01',NULL,'EPSG','7019','EPSG','8901','2013-01-01',2013.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1241','SIRGAS Continuously Operating Network SIR15P01',NULL,'EPSG','7019','EPSG','8901','2013-01-01',2013.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13293','geodetic_datum','EPSG','1241','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1242','SIRGAS Continuously Operating Network SIR17P01',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1242','SIRGAS Continuously Operating Network SIR17P01',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13294','geodetic_datum','EPSG','1242','EPSG','4530','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1243','SIRGAS-Chile realization 2 epoch 2010',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1243','SIRGAS-Chile realization 2 epoch 2010',NULL,'EPSG','7019','EPSG','8901','2010-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13295','geodetic_datum','EPSG','1243','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1244','IGS97',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1244','IGS97',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13296','geodetic_datum','EPSG','1244','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1245','IGS00',NULL,'EPSG','7019','EPSG','8901','1998-01-01',1998.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1245','IGS00',NULL,'EPSG','7019','EPSG','8901','1998-01-01',1998.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13297','geodetic_datum','EPSG','1245','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1246','IGb00',NULL,'EPSG','7019','EPSG','8901','1998-01-01',1998.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1246','IGb00',NULL,'EPSG','7019','EPSG','8901','1998-01-01',1998.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13298','geodetic_datum','EPSG','1246','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1247','IGS05',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1247','IGS05',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13299','geodetic_datum','EPSG','1247','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1248','IGb08',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1248','IGb08',NULL,'EPSG','7019','EPSG','8901','2005-01-01',2005.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13300','geodetic_datum','EPSG','1248','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1249','North American Datum of 1983 (PACP00)',NULL,'EPSG','7019','EPSG','8901','1993-08-15',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1249','North American Datum of 1983 (PACP00)',NULL,'EPSG','7019','EPSG','8901','1993-08-15',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13301','geodetic_datum','EPSG','1249','EPSG','4162','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1251','Kosovo Reference System 2001',NULL,'EPSG','7019','EPSG','8901','2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1251','Kosovo Reference System 2001',NULL,'EPSG','7019','EPSG','8901','2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13303','geodetic_datum','EPSG','1251','EPSG','4542','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1252','SIRGAS-Chile realization 3 epoch 2013',NULL,'EPSG','7019','EPSG','8901','2013-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1252','SIRGAS-Chile realization 3 epoch 2013',NULL,'EPSG','7019','EPSG','8901','2013-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13304','geodetic_datum','EPSG','1252','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1253','SIRGAS-Chile realization 4 epoch 2016',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1253','SIRGAS-Chile realization 4 epoch 2016',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18458','geodetic_datum','EPSG','1253','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1254','SIRGAS-Chile',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','1254','SIRGAS-Chile',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13306','geodetic_datum','EPSG','1254','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1257','Tapi Aike',NULL,'EPSG','7022','EPSG','8901','1945-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1257','Tapi Aike',NULL,'EPSG','7022','EPSG','8901','1945-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13890','geodetic_datum','EPSG','1257','EPSG','4569','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1258','Ministerio de Marina Norte',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1258','Ministerio de Marina Norte',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13891','geodetic_datum','EPSG','1258','EPSG','2357','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1259','Ministerio de Marina Sur',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1259','Ministerio de Marina Sur',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13892','geodetic_datum','EPSG','1259','EPSG','2357','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1263','Oman National Geodetic Datum 2017',NULL,'EPSG','7019','EPSG','8901','2017-11-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1263','Oman National Geodetic Datum 2017',NULL,'EPSG','7019','EPSG','8901','2017-11-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13962','geodetic_datum','EPSG','1263','EPSG','1183','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1264','HS2 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1264','HS2 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14026','geodetic_datum','EPSG','1264','EPSG','4582','EPSG','1260'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1266','TPEN11 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1266','TPEN11 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13980','geodetic_datum','EPSG','1266','EPSG','4583','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1268','Kingdom of Saudi Arabia Geodetic Reference Frame 2017',NULL,'EPSG','7019','EPSG','8901','2019-07-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1268','Kingdom of Saudi Arabia Geodetic Reference Frame 2017',NULL,'EPSG','7019','EPSG','8901','2019-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13896','geodetic_datum','EPSG','1268','EPSG','1206','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1271','MML07 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1271','MML07 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13993','geodetic_datum','EPSG','1271','EPSG','4588','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1272','IGb14',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1272','IGb14',NULL,'EPSG','7019','EPSG','8901','2010-01-01',2010.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13994','geodetic_datum','EPSG','1272','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1273','AbInvA96_2020 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2020-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1273','AbInvA96_2020 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2020-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13876','geodetic_datum','EPSG','1273','EPSG','4589','EPSG','1196'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1286','Pico de las Nieves 1968',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1286','Pico de las Nieves 1968',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14025','geodetic_datum','EPSG','1286','EPSG','3873','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1289','GBK19 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1289','GBK19 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14127','geodetic_datum','EPSG','1289','EPSG','4607','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1291','Australian Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2020-01-01',2020.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1291','Australian Terrestrial Reference Frame 2014',NULL,'EPSG','7019','EPSG','8901','2020-01-01',2020.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14133','geodetic_datum','EPSG','1291','EPSG','4177','EPSG','1267'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1293','Sistem Referensi Geospasial Indonesia 2013',NULL,'EPSG','7030','EPSG','8901','2012-01-01',2012.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1293','Sistem Referensi Geospasial Indonesia 2013',NULL,'EPSG','7030','EPSG','8901','2012-01-01',2012.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14148','geodetic_datum','EPSG','1293','EPSG','1122','EPSG','1266'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1295','Lyon Turin Ferroviaire 2004',NULL,'EPSG','7019','EPSG','8901','2005-07-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1295','Lyon Turin Ferroviaire 2004',NULL,'EPSG','7019','EPSG','8901','2005-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14538','geodetic_datum','EPSG','1295','EPSG','4613','EPSG','1271'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1304','Red Geodesica Para Mineria en Chile',NULL,'EPSG','7019','EPSG','8901','2019-01-01',2019.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1304','Red Geodesica Para Mineria en Chile',NULL,'EPSG','7019','EPSG','8901','2019-01-01',2019.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15025','geodetic_datum','EPSG','1304','EPSG','1066','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1305','ETRF2000 Poland',NULL,'EPSG','7019','EPSG','8901','2012-11-15',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1305','ETRF2000 Poland',NULL,'EPSG','7019','EPSG','8901','2012-11-15',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15061','geodetic_datum','EPSG','1305','EPSG','1192','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1308','EOS21 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1308','EOS21 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15312','geodetic_datum','EPSG','1308','EPSG','4620','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1309','World Geodetic System 1984 (G2139)',NULL,'EPSG','7030','EPSG','8901','2016-01-01',2016.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1309','World Geodetic System 1984 (G2139)',NULL,'EPSG','7030','EPSG','8901','2016-01-01',2016.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16665','geodetic_datum','EPSG','1309','EPSG','1262','EPSG','1176'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1310','ECML14_NB Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1310','ECML14_NB Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16494','geodetic_datum','EPSG','1310','EPSG','4621','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1311','EWR2 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1311','EWR2 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16506','geodetic_datum','EPSG','1311','EPSG','4622','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1312','Reseau Geodesique Francais 1993 v2',NULL,'EPSG','7019','EPSG','8901','2010-06-18',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1312','Reseau Geodesique Francais 1993 v2',NULL,'EPSG','7019','EPSG','8901','2010-06-18',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16636','geodetic_datum','EPSG','1312','EPSG','1096','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1313','Reseau Geodesique Francais 1993 v2b',NULL,'EPSG','7019','EPSG','8901','2021-01-05',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1313','Reseau Geodesique Francais 1993 v2b',NULL,'EPSG','7019','EPSG','8901','2021-01-05',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16637','geodetic_datum','EPSG','1313','EPSG','1096','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1314','MRH21 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1314','MRH21 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16933','geodetic_datum','EPSG','1314','EPSG','4652','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1315','MOLDOR11 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1315','MOLDOR11 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','16950','geodetic_datum','EPSG','1315','EPSG','4655','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1317','HULLEE13 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1317','HULLEE13 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17416','geodetic_datum','EPSG','1317','EPSG','4663','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1319','EBBWV14 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1319','EBBWV14 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17343','geodetic_datum','EPSG','1319','EPSG','4661','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1320','SCM22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1320','SCM22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17437','geodetic_datum','EPSG','1320','EPSG','4665','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1321','FNL22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1321','FNL22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17450','geodetic_datum','EPSG','1321','EPSG','4664','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1322','International Terrestrial Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1322','International Terrestrial Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17903','geodetic_datum','EPSG','1322','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1324','MWC18 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1324','MWC18 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18330','geodetic_datum','EPSG','1324','EPSG','4666','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1327','SIRGAS-Chile realization 5 epoch 2021',NULL,'EPSG','7019','EPSG','8901','2021-08-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1327','SIRGAS-Chile realization 5 epoch 2021',NULL,'EPSG','7019','EPSG','8901','2021-08-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18453','geodetic_datum','EPSG','1327','EPSG','1066','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1329','Marco Geocentrico Nacional de Referencia 2018',NULL,'EPSG','7019','EPSG','8901','2018-06-08',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1329','Marco Geocentrico Nacional de Referencia 2018',NULL,'EPSG','7019','EPSG','8901','2018-06-08',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18473','geodetic_datum','EPSG','1329','EPSG','1070','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1332','System 34 Jylland Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1332','System 34 Jylland Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19781','geodetic_datum','EPSG','1332','EPSG','2531','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1333','IGS20',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1333','IGS20',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18632','geodetic_datum','EPSG','1333','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1334','DoPw22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1334','DoPw22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18851','geodetic_datum','EPSG','1334','EPSG','4686','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1335','ShAb07 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1335','ShAb07 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18853','geodetic_datum','EPSG','1335','EPSG','4687','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1336','CNH22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1336','CNH22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2021-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18690','geodetic_datum','EPSG','1336','EPSG','4677','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1337','System 34 Sjaelland Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1337','System 34 Sjaelland Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19782','geodetic_datum','EPSG','1337','EPSG','2532','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1338','CWS13 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1338','CWS13 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18702','geodetic_datum','EPSG','1338','EPSG','4678','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1339','DIBA15 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1339','DIBA15 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18768','geodetic_datum','EPSG','1339','EPSG','4681','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1340','GWPBS22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1340','GWPBS22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18715','geodetic_datum','EPSG','1340','EPSG','4685','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1341','GWWAB22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1341','GWWAB22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18725','geodetic_datum','EPSG','1341','EPSG','4684','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1342','GWWWA22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1342','GWWWA22 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18732','geodetic_datum','EPSG','1342','EPSG','4683','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1343','MALS09 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1343','MALS09 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18740','geodetic_datum','EPSG','1343','EPSG','4682','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1344','OxWo08 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1344','OxWo08 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18783','geodetic_datum','EPSG','1344','EPSG','4680','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1345','SYC20 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1345','SYC20 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18756','geodetic_datum','EPSG','1345','EPSG','4679','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1346','System 45 Bornholm Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1346','System 45 Bornholm Intermediate Datum',NULL,'EPSG','7022','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19715','geodetic_datum','EPSG','1346','EPSG','2533','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1347','Generalstabens System Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1347','Generalstabens System Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19716','geodetic_datum','EPSG','1347','EPSG','4575','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1348','Generalstabens System Bornholm Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1348','Generalstabens System Bornholm Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19717','geodetic_datum','EPSG','1348','EPSG','2533','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1349','Copenhagen Commune Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1349','Copenhagen Commune Intermediate Datum',NULL,'EPSG','7051','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19718','geodetic_datum','EPSG','1349','EPSG','4693','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1350','Ostenfeld Intermediate Datum',NULL,'EPSG','7004','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1350','Ostenfeld Intermediate Datum',NULL,'EPSG','7004','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19719','geodetic_datum','EPSG','1350','EPSG','4694','EPSG','1203'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1351','SMITB20 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1351','SMITB20 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19174','geodetic_datum','EPSG','1351','EPSG','4688','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1352','RBEPP12 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1352','RBEPP12 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2022-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19180','geodetic_datum','EPSG','1352','EPSG','4689','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1353','ETRS89/DREF91 Realization 2016',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1353','ETRS89/DREF91 Realization 2016',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19242','geodetic_datum','EPSG','1353','EPSG','1103','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1355','Sonatrach Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2012-11-15',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1355','Sonatrach Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2012-11-15',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19535','geodetic_datum','EPSG','1355','EPSG','1026','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1356','Latvian coordinate system 2020',NULL,'EPSG','7019','EPSG','8901','2023-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1356','Latvian coordinate system 2020',NULL,'EPSG','7019','EPSG','8901','2023-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19558','geodetic_datum','EPSG','1356','EPSG','1139','EPSG','1026'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1357','Reseau Geodesique de Nouvelle Caledonie 2015',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1357','Reseau Geodesique de Nouvelle Caledonie 2015',NULL,'EPSG','7019','EPSG','8901','2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19600','geodetic_datum','EPSG','1357','EPSG','1174','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1358','BH_ETRS89',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1358','BH_ETRS89',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19740','geodetic_datum','EPSG','1358','EPSG','1050','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1359','Hughes 1980',NULL,'EPSG','7058','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1359','Hughes 1980',NULL,'EPSG','7058','EPSG','8901','1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19883','geodetic_datum','EPSG','1359','EPSG','1262','EPSG','1110'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1360','NSIDC International 1924 Authalic Sphere',NULL,'EPSG','7057','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1360','NSIDC International 1924 Authalic Sphere',NULL,'EPSG','7057','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19879','geodetic_datum','EPSG','1360','EPSG','1262','EPSG','1195'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1365','North American Datum of 1983 (CSRS) version 8',NULL,'EPSG','7019','EPSG','8901','2022-11-27',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1365','North American Datum of 1983 (CSRS) version 8',NULL,'EPSG','7019','EPSG','8901','2022-11-27',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20140','geodetic_datum','EPSG','1365','EPSG','1061','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1366','COV23 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2023-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1366','COV23 Intermediate Reference Frame',NULL,'EPSG','7019','EPSG','8901','2023-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20309','geodetic_datum','EPSG','1366','EPSG','4743','EPSG','1141'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1367','Brenner Base Tunnel 2000',NULL,'EPSG','7030','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1367','Brenner Base Tunnel 2000',NULL,'EPSG','7030','EPSG','8901','2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20337','geodetic_datum','EPSG','1367','EPSG','4744','EPSG','1285'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13422','geodetic_datum','EPSG','6001','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13423','geodetic_datum','EPSG','6002','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6003','Not specified (based on Australian National Spheroid)',NULL,'EPSG','7003','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6003','Not specified (based on Australian National Spheroid)',NULL,'EPSG','7003','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13424','geodetic_datum','EPSG','6003','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6004','Not specified (based on Bessel 1841 ellipsoid)',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6004','Not specified (based on Bessel 1841 ellipsoid)',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13425','geodetic_datum','EPSG','6004','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6005','Not specified (based on Bessel Modified ellipsoid)',NULL,'EPSG','7005','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6005','Not specified (based on Bessel Modified ellipsoid)',NULL,'EPSG','7005','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13426','geodetic_datum','EPSG','6005','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6006','Not specified (based on Bessel Namibia ellipsoid)',NULL,'EPSG','7046','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6006','Not specified (based on Bessel Namibia ellipsoid)',NULL,'EPSG','7046','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13427','geodetic_datum','EPSG','6006','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6007','Not specified (based on Clarke 1858 ellipsoid)',NULL,'EPSG','7007','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6007','Not specified (based on Clarke 1858 ellipsoid)',NULL,'EPSG','7007','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13428','geodetic_datum','EPSG','6007','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6008','Not specified (based on Clarke 1866 ellipsoid)',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6008','Not specified (based on Clarke 1866 ellipsoid)',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13429','geodetic_datum','EPSG','6008','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6009','Not specified (based on Clarke 1866 Michigan ellipsoid)',NULL,'EPSG','7009','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6009','Not specified (based on Clarke 1866 Michigan ellipsoid)',NULL,'EPSG','7009','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13430','geodetic_datum','EPSG','6009','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6010','Not specified (based on Clarke 1880 (Benoit) ellipsoid)',NULL,'EPSG','7010','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6010','Not specified (based on Clarke 1880 (Benoit) ellipsoid)',NULL,'EPSG','7010','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13431','geodetic_datum','EPSG','6010','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6011','Not specified (based on Clarke 1880 (IGN) ellipsoid)',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6011','Not specified (based on Clarke 1880 (IGN) ellipsoid)',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13432','geodetic_datum','EPSG','6011','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6012','Not specified (based on Clarke 1880 (RGS) ellipsoid)',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6012','Not specified (based on Clarke 1880 (RGS) ellipsoid)',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13433','geodetic_datum','EPSG','6012','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6013','Not specified (based on Clarke 1880 (Arc) ellipsoid)',NULL,'EPSG','7013','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6013','Not specified (based on Clarke 1880 (Arc) ellipsoid)',NULL,'EPSG','7013','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13434','geodetic_datum','EPSG','6013','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6014','Not specified (based on Clarke 1880 (SGA 1922) ellipsoid)',NULL,'EPSG','7014','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6014','Not specified (based on Clarke 1880 (SGA 1922) ellipsoid)',NULL,'EPSG','7014','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13435','geodetic_datum','EPSG','6014','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6015','Not specified (based on Everest 1830 (1937 Adjustment) ellipsoid)',NULL,'EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6015','Not specified (based on Everest 1830 (1937 Adjustment) ellipsoid)',NULL,'EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13436','geodetic_datum','EPSG','6015','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6016','Not specified (based on Everest 1830 (1967 Definition) ellipsoid)',NULL,'EPSG','7016','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6016','Not specified (based on Everest 1830 (1967 Definition) ellipsoid)',NULL,'EPSG','7016','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13437','geodetic_datum','EPSG','6016','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6018','Not specified (based on Everest 1830 Modified ellipsoid)',NULL,'EPSG','7018','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6018','Not specified (based on Everest 1830 Modified ellipsoid)',NULL,'EPSG','7018','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13438','geodetic_datum','EPSG','6018','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6019','Not specified (based on GRS 1980 ellipsoid)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6019','Not specified (based on GRS 1980 ellipsoid)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13439','geodetic_datum','EPSG','6019','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6020','Not specified (based on Helmert 1906 ellipsoid)',NULL,'EPSG','7020','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6020','Not specified (based on Helmert 1906 ellipsoid)',NULL,'EPSG','7020','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13440','geodetic_datum','EPSG','6020','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6021','Not specified (based on Indonesian National Spheroid)',NULL,'EPSG','7021','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6021','Not specified (based on Indonesian National Spheroid)',NULL,'EPSG','7021','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13441','geodetic_datum','EPSG','6021','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6022','Not specified (based on International 1924 ellipsoid)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6022','Not specified (based on International 1924 ellipsoid)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13442','geodetic_datum','EPSG','6022','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6024','Not specified (based on Krassowsky 1940 ellipsoid)',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6024','Not specified (based on Krassowsky 1940 ellipsoid)',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13443','geodetic_datum','EPSG','6024','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6025','Not specified (based on NWL 9D ellipsoid)',NULL,'EPSG','7025','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6025','Not specified (based on NWL 9D ellipsoid)',NULL,'EPSG','7025','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13444','geodetic_datum','EPSG','6025','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6027','Not specified (based on Plessis 1817 ellipsoid)',NULL,'EPSG','7027','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6027','Not specified (based on Plessis 1817 ellipsoid)',NULL,'EPSG','7027','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13445','geodetic_datum','EPSG','6027','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6028','Not specified (based on Struve 1860 ellipsoid)',NULL,'EPSG','7028','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6028','Not specified (based on Struve 1860 ellipsoid)',NULL,'EPSG','7028','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13446','geodetic_datum','EPSG','6028','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6029','Not specified (based on War Office ellipsoid)',NULL,'EPSG','7029','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6029','Not specified (based on War Office ellipsoid)',NULL,'EPSG','7029','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13447','geodetic_datum','EPSG','6029','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6030','Not specified (based on WGS 84 ellipsoid)',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6030','Not specified (based on WGS 84 ellipsoid)',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13448','geodetic_datum','EPSG','6030','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6031','Not specified (based on GEM 10C ellipsoid)',NULL,'EPSG','7031','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6031','Not specified (based on GEM 10C ellipsoid)',NULL,'EPSG','7031','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13449','geodetic_datum','EPSG','6031','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6032','Not specified (based on OSU86F ellipsoid)',NULL,'EPSG','7032','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6032','Not specified (based on OSU86F ellipsoid)',NULL,'EPSG','7032','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13450','geodetic_datum','EPSG','6032','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6033','Not specified (based on OSU91A ellipsoid)',NULL,'EPSG','7033','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6033','Not specified (based on OSU91A ellipsoid)',NULL,'EPSG','7033','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13451','geodetic_datum','EPSG','6033','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6034','Not specified (based on Clarke 1880 ellipsoid)',NULL,'EPSG','7034','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6034','Not specified (based on Clarke 1880 ellipsoid)',NULL,'EPSG','7034','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13452','geodetic_datum','EPSG','6034','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6035','Not specified (based on Authalic Sphere)',NULL,'EPSG','7035','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6035','Not specified (based on Authalic Sphere)',NULL,'EPSG','7035','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13453','geodetic_datum','EPSG','6035','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6036','Not specified (based on GRS 1967 ellipsoid)',NULL,'EPSG','7036','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6036','Not specified (based on GRS 1967 ellipsoid)',NULL,'EPSG','7036','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13454','geodetic_datum','EPSG','6036','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6041','Not specified (based on Average Terrestrial System 1977 ellipsoid)',NULL,'EPSG','7041','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6041','Not specified (based on Average Terrestrial System 1977 ellipsoid)',NULL,'EPSG','7041','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13455','geodetic_datum','EPSG','6041','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6042','Not specified (based on Everest (1830 Definition) ellipsoid)',NULL,'EPSG','7042','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6042','Not specified (based on Everest (1830 Definition) ellipsoid)',NULL,'EPSG','7042','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13456','geodetic_datum','EPSG','6042','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6043','Not specified (based on WGS 72 ellipsoid)',NULL,'EPSG','7043','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6043','Not specified (based on WGS 72 ellipsoid)',NULL,'EPSG','7043','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13457','geodetic_datum','EPSG','6043','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6044','Not specified (based on Everest 1830 (1962 Definition) ellipsoid)',NULL,'EPSG','7044','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6044','Not specified (based on Everest 1830 (1962 Definition) ellipsoid)',NULL,'EPSG','7044','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13458','geodetic_datum','EPSG','6044','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6045','Not specified (based on Everest 1830 (1975 Definition) ellipsoid)',NULL,'EPSG','7045','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6045','Not specified (based on Everest 1830 (1975 Definition) ellipsoid)',NULL,'EPSG','7045','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13459','geodetic_datum','EPSG','6045','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6047','Not specified (based on GRS 1980 Authalic Sphere)',NULL,'EPSG','7048','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6047','Not specified (based on GRS 1980 Authalic Sphere)',NULL,'EPSG','7048','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13460','geodetic_datum','EPSG','6047','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6052','Not specified (based on Clarke 1866 Authalic Sphere)',NULL,'EPSG','7052','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6052','Not specified (based on Clarke 1866 Authalic Sphere)',NULL,'EPSG','7052','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13461','geodetic_datum','EPSG','6052','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6053','Not specified (based on International 1924 Authalic Sphere)',NULL,'EPSG','7057','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6053','Not specified (based on International 1924 Authalic Sphere)',NULL,'EPSG','7057','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13462','geodetic_datum','EPSG','6053','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6054','Not specified (based on Hughes 1980 ellipsoid)',NULL,'EPSG','7058','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6054','Not specified (based on Hughes 1980 ellipsoid)',NULL,'EPSG','7058','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13463','geodetic_datum','EPSG','6054','EPSG','1263','EPSG','1213'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6055','Popular Visualisation Datum',NULL,'EPSG','7059','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6055','Popular Visualisation Datum',NULL,'EPSG','7059','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13464','geodetic_datum','EPSG','6055','EPSG','1262','EPSG','1098'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6120','Greek',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6120','Greek',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13465','geodetic_datum','EPSG','6120','EPSG','3254','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6121','Greek Geodetic Reference System 1987',NULL,'EPSG','7019','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6121','Greek Geodetic Reference System 1987',NULL,'EPSG','7019','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13466','geodetic_datum','EPSG','6121','EPSG','3254','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6122','Average Terrestrial System 1977',NULL,'EPSG','7041','EPSG','8901','1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6122','Average Terrestrial System 1977',NULL,'EPSG','7041','EPSG','8901','1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13467','geodetic_datum','EPSG','6122','EPSG','1283','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6123','Kartastokoordinaattijarjestelma (1966)',NULL,'EPSG','7022','EPSG','8901','1966-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6123','Kartastokoordinaattijarjestelma (1966)',NULL,'EPSG','7022','EPSG','8901','1966-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13468','geodetic_datum','EPSG','6123','EPSG','3333','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6124','Rikets koordinatsystem 1990',NULL,'EPSG','7004','EPSG','8901','1990-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6124','Rikets koordinatsystem 1990',NULL,'EPSG','7004','EPSG','8901','1990-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13469','geodetic_datum','EPSG','6124','EPSG','1225','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6125','Samboja',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6125','Samboja',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13470','geodetic_datum','EPSG','6125','EPSG','1328','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6126','Lithuania 1994 (ETRS89)',NULL,'EPSG','7019','EPSG','8901','1992-10-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6126','Lithuania 1994 (ETRS89)',NULL,'EPSG','7019','EPSG','8901','1992-10-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13471','geodetic_datum','EPSG','6126','EPSG','1145','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6127','Tete',NULL,'EPSG','7008','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6127','Tete',NULL,'EPSG','7008','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13472','geodetic_datum','EPSG','6127','EPSG','3281','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6128','Madzansua',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6128','Madzansua',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13473','geodetic_datum','EPSG','6128','EPSG','1315','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6129','Observatario',NULL,'EPSG','7008','EPSG','8901','1907-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6129','Observatario',NULL,'EPSG','7008','EPSG','8901','1907-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13474','geodetic_datum','EPSG','6129','EPSG','1329','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6130','Moznet (ITRF94)',NULL,'EPSG','7030','EPSG','8901','1996-11-24',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6130','Moznet (ITRF94)',NULL,'EPSG','7030','EPSG','8901','1996-11-24',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13475','geodetic_datum','EPSG','6130','EPSG','1167','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6131','Indian 1960',NULL,'EPSG','7015','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6131','Indian 1960',NULL,'EPSG','7015','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13476','geodetic_datum','EPSG','6131','EPSG','4007','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6132','Final Datum 1958',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6132','Final Datum 1958',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13477','geodetic_datum','EPSG','6132','EPSG','1300','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6133','Estonia 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6133','Estonia 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13478','geodetic_datum','EPSG','6133','EPSG','3246','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6134','PDO Survey Datum 1993',NULL,'EPSG','7012','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6134','PDO Survey Datum 1993',NULL,'EPSG','7012','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13479','geodetic_datum','EPSG','6134','EPSG','3288','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6135','Old Hawaiian',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6135','Old Hawaiian',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13480','geodetic_datum','EPSG','6135','EPSG','1334','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6136','St. Lawrence Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6136','St. Lawrence Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13481','geodetic_datum','EPSG','6136','EPSG','1332','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6137','St. Paul Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6137','St. Paul Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13482','geodetic_datum','EPSG','6137','EPSG','1333','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6138','St. George Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6138','St. George Island',NULL,'EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13483','geodetic_datum','EPSG','6138','EPSG','1331','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6139','Puerto Rico',NULL,'EPSG','7008','EPSG','8901','1901-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6139','Puerto Rico',NULL,'EPSG','7008','EPSG','8901','1901-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13484','geodetic_datum','EPSG','6139','EPSG','1335','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6140','NAD83 Canadian Spatial Reference System',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6140','NAD83 Canadian Spatial Reference System',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13485','geodetic_datum','EPSG','6140','EPSG','1061','EPSG','1189'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6141','Israel 1993',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6141','Israel 1993',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13486','geodetic_datum','EPSG','6141','EPSG','2603','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6142','Locodjo 1965',NULL,'EPSG','7012','EPSG','8901','1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6142','Locodjo 1965',NULL,'EPSG','7012','EPSG','8901','1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13487','geodetic_datum','EPSG','6142','EPSG','1075','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6143','Abidjan 1987',NULL,'EPSG','7012','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6143','Abidjan 1987',NULL,'EPSG','7012','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13488','geodetic_datum','EPSG','6143','EPSG','1075','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6144','Kalianpur 1937',NULL,'EPSG','7015','EPSG','8901','1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6144','Kalianpur 1937',NULL,'EPSG','7015','EPSG','8901','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13489','geodetic_datum','EPSG','6144','EPSG','1308','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6145','Kalianpur 1962',NULL,'EPSG','7044','EPSG','8901','1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6145','Kalianpur 1962',NULL,'EPSG','7044','EPSG','8901','1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13490','geodetic_datum','EPSG','6145','EPSG','1184','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6146','Kalianpur 1975',NULL,'EPSG','7045','EPSG','8901','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6146','Kalianpur 1975',NULL,'EPSG','7045','EPSG','8901','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13491','geodetic_datum','EPSG','6146','EPSG','3341','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6147','Hanoi 1972',NULL,'EPSG','7024','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6147','Hanoi 1972',NULL,'EPSG','7024','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13492','geodetic_datum','EPSG','6147','EPSG','3328','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6148','Hartebeesthoek94',NULL,'EPSG','7030','EPSG','8901','1994-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6148','Hartebeesthoek94',NULL,'EPSG','7030','EPSG','8901','1994-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13493','geodetic_datum','EPSG','6148','EPSG','4540','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6149','CH1903',NULL,'EPSG','7004','EPSG','8901','1903-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6149','CH1903',NULL,'EPSG','7004','EPSG','8901','1903-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13494','geodetic_datum','EPSG','6149','EPSG','1286','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6150','CH1903+',NULL,'EPSG','7004','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6150','CH1903+',NULL,'EPSG','7004','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13495','geodetic_datum','EPSG','6150','EPSG','1286','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6151','Swiss Terrestrial Reference System 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6151','Swiss Terrestrial Reference System 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13496','geodetic_datum','EPSG','6151','EPSG','1286','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6152','NAD83 (High Accuracy Reference Network)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6152','NAD83 (High Accuracy Reference Network)',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13497','geodetic_datum','EPSG','6152','EPSG','1337','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6153','Rassadiran',NULL,'EPSG','7022','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6153','Rassadiran',NULL,'EPSG','7022','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13498','geodetic_datum','EPSG','6153','EPSG','1338','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6154','European Datum 1950(1977)',NULL,'EPSG','7022','EPSG','8901','1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6154','European Datum 1950(1977)',NULL,'EPSG','7022','EPSG','8901','1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13499','geodetic_datum','EPSG','6154','EPSG','1123','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6155','Dabola 1981',NULL,'EPSG','7011','EPSG','8901','1981-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6155','Dabola 1981',NULL,'EPSG','7011','EPSG','8901','1981-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13500','geodetic_datum','EPSG','6155','EPSG','3257','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6156','System of the Unified Trigonometrical Cadastral Network',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6156','System of the Unified Trigonometrical Cadastral Network',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13501','geodetic_datum','EPSG','6156','EPSG','1306','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6157','Mount Dillon',NULL,'EPSG','7007','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6157','Mount Dillon',NULL,'EPSG','7007','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13502','geodetic_datum','EPSG','6157','EPSG','1322','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6158','Naparima 1955',NULL,'EPSG','7022','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6158','Naparima 1955',NULL,'EPSG','7022','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13503','geodetic_datum','EPSG','6158','EPSG','3143','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6159','European Libyan Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6159','European Libyan Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13504','geodetic_datum','EPSG','6159','EPSG','1143','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6160','Chos Malal 1914',NULL,'EPSG','7022','EPSG','8901','1914-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6160','Chos Malal 1914',NULL,'EPSG','7022','EPSG','8901','1914-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13505','geodetic_datum','EPSG','6160','EPSG','4562','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6161','Pampa del Castillo',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6161','Pampa del Castillo',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13506','geodetic_datum','EPSG','6161','EPSG','4563','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6162','Korean Datum 1985',NULL,'EPSG','7004','EPSG','8901','1985-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6162','Korean Datum 1985',NULL,'EPSG','7004','EPSG','8901','1985-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13507','geodetic_datum','EPSG','6162','EPSG','3266','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6163','Yemen National Geodetic Network 1996',NULL,'EPSG','7030','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6163','Yemen National Geodetic Network 1996',NULL,'EPSG','7030','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13508','geodetic_datum','EPSG','6163','EPSG','1257','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6164','South Yemen',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6164','South Yemen',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13509','geodetic_datum','EPSG','6164','EPSG','1340','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6165','Bissau',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6165','Bissau',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13510','geodetic_datum','EPSG','6165','EPSG','3258','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6166','Korean Datum 1995',NULL,'EPSG','7030','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6166','Korean Datum 1995',NULL,'EPSG','7030','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13511','geodetic_datum','EPSG','6166','EPSG','3266','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6167','New Zealand Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2007-11-16',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6167','New Zealand Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2007-11-16',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13512','geodetic_datum','EPSG','6167','EPSG','1175','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6168','Accra',NULL,'EPSG','7029','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6168','Accra',NULL,'EPSG','7029','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13513','geodetic_datum','EPSG','6168','EPSG','1104','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6169','American Samoa 1962',NULL,'EPSG','7008','EPSG','8901','1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6169','American Samoa 1962',NULL,'EPSG','7008','EPSG','8901','1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13514','geodetic_datum','EPSG','6169','EPSG','3109','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6170','Sistema de Referencia Geocentrico para America del Sur 1995',NULL,'EPSG','7019','EPSG','8901','1995-05-26',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6170','Sistema de Referencia Geocentrico para America del Sur 1995',NULL,'EPSG','7019','EPSG','8901','1995-05-26',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13515','geodetic_datum','EPSG','6170','EPSG','3448','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6171','Reseau Geodesique Francais 1993 v1',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6171','Reseau Geodesique Francais 1993 v1',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13516','geodetic_datum','EPSG','6171','EPSG','1096','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6172','Posiciones Geodesicas Argentinas',NULL,'EPSG','7019','EPSG','8901','1994-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6172','Posiciones Geodesicas Argentinas',NULL,'EPSG','7019','EPSG','8901','1994-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13517','geodetic_datum','EPSG','6172','EPSG','1033','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6173','IRENET95',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6173','IRENET95',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13518','geodetic_datum','EPSG','6173','EPSG','1305','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6174','Sierra Leone Colony 1924',NULL,'EPSG','7029','EPSG','8901','1924-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6174','Sierra Leone Colony 1924',NULL,'EPSG','7029','EPSG','8901','1924-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13519','geodetic_datum','EPSG','6174','EPSG','1342','EPSG','1142'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6175','Sierra Leone 1968',NULL,'EPSG','7012','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6175','Sierra Leone 1968',NULL,'EPSG','7012','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13520','geodetic_datum','EPSG','6175','EPSG','3306','EPSG','1142'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6176','Australian Antarctic Datum 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6176','Australian Antarctic Datum 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13521','geodetic_datum','EPSG','6176','EPSG','1278','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6178','Pulkovo 1942(83)',NULL,'EPSG','7024','EPSG','8901','1983-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6178','Pulkovo 1942(83)',NULL,'EPSG','7024','EPSG','8901','1983-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13522','geodetic_datum','EPSG','6178','EPSG','3900','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6179','Pulkovo 1942(58)',NULL,'EPSG','7024','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6179','Pulkovo 1942(58)',NULL,'EPSG','7024','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13523','geodetic_datum','EPSG','6179','EPSG','3574','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6180','Estonia 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6180','Estonia 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13524','geodetic_datum','EPSG','6180','EPSG','1090','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6181','Luxembourg Reference Frame',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6181','Luxembourg Reference Frame',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13525','geodetic_datum','EPSG','6181','EPSG','1146','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6182','Azores Occidental Islands 1939',NULL,'EPSG','7022','EPSG','8901','1939-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6182','Azores Occidental Islands 1939',NULL,'EPSG','7022','EPSG','8901','1939-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13526','geodetic_datum','EPSG','6182','EPSG','1344','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6183','Azores Central Islands 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6183','Azores Central Islands 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13527','geodetic_datum','EPSG','6183','EPSG','1301','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6184','Azores Oriental Islands 1940',NULL,'EPSG','7022','EPSG','8901','1940-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6184','Azores Oriental Islands 1940',NULL,'EPSG','7022','EPSG','8901','1940-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13528','geodetic_datum','EPSG','6184','EPSG','1345','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6185','Madeira 1936',NULL,'EPSG','7022','EPSG','8901','1936-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6185','Madeira 1936',NULL,'EPSG','7022','EPSG','8901','1936-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13529','geodetic_datum','EPSG','6185','EPSG','1314','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6188','OSNI 1952',NULL,'EPSG','7001','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6188','OSNI 1952',NULL,'EPSG','7001','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13530','geodetic_datum','EPSG','6188','EPSG','2530','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6189','Red Geodesica Venezolana',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6189','Red Geodesica Venezolana',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13531','geodetic_datum','EPSG','6189','EPSG','1251','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6190','Posiciones Geodesicas Argentinas 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6190','Posiciones Geodesicas Argentinas 1998',NULL,'EPSG','7019','EPSG','8901','1998-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13532','geodetic_datum','EPSG','6190','EPSG','1033','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6191','Albanian 1987',NULL,'EPSG','7024','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6191','Albanian 1987',NULL,'EPSG','7024','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13533','geodetic_datum','EPSG','6191','EPSG','3212','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6192','Douala 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6192','Douala 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13534','geodetic_datum','EPSG','6192','EPSG','2555','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6193','Manoca 1962',NULL,'EPSG','7011','EPSG','8901','1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6193','Manoca 1962',NULL,'EPSG','7011','EPSG','8901','1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13535','geodetic_datum','EPSG','6193','EPSG','2555','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6194','Qornoq 1927',NULL,'EPSG','7022','EPSG','8901','1927-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6194','Qornoq 1927',NULL,'EPSG','7022','EPSG','8901','1927-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13536','geodetic_datum','EPSG','6194','EPSG','3362','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6195','Scoresbysund 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6195','Scoresbysund 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13537','geodetic_datum','EPSG','6195','EPSG','2570','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6196','Ammassalik 1958',NULL,'EPSG','7022','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6196','Ammassalik 1958',NULL,'EPSG','7022','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13538','geodetic_datum','EPSG','6196','EPSG','2571','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6197','Garoua',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6197','Garoua',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13539','geodetic_datum','EPSG','6197','EPSG','2590','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6198','Kousseri',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6198','Kousseri',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13540','geodetic_datum','EPSG','6198','EPSG','2591','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6199','Egypt 1930',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6199','Egypt 1930',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13541','geodetic_datum','EPSG','6199','EPSG','3242','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6200','Pulkovo 1995',NULL,'EPSG','7024','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6200','Pulkovo 1995',NULL,'EPSG','7024','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13542','geodetic_datum','EPSG','6200','EPSG','1198','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6201','Adindan',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6201','Adindan',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13543','geodetic_datum','EPSG','6201','EPSG','1271','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6202','Australian Geodetic Datum 1966',NULL,'EPSG','7003','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6202','Australian Geodetic Datum 1966',NULL,'EPSG','7003','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13544','geodetic_datum','EPSG','6202','EPSG','1279','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6203','Australian Geodetic Datum 1984',NULL,'EPSG','7003','EPSG','8901','1985-12-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6203','Australian Geodetic Datum 1984',NULL,'EPSG','7003','EPSG','8901','1985-12-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13545','geodetic_datum','EPSG','6203','EPSG','2576','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6204','Ain el Abd 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6204','Ain el Abd 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13546','geodetic_datum','EPSG','6204','EPSG','1272','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6205','Afgooye',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6205','Afgooye',NULL,'EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13547','geodetic_datum','EPSG','6205','EPSG','3308','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6206','Agadez',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6206','Agadez',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13548','geodetic_datum','EPSG','6206','EPSG','1177','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6207','Lisbon 1937',NULL,'EPSG','7022','EPSG','8901','1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6207','Lisbon 1937',NULL,'EPSG','7022','EPSG','8901','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13549','geodetic_datum','EPSG','6207','EPSG','1294','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6208','Aratu',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6208','Aratu',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13550','geodetic_datum','EPSG','6208','EPSG','1274','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6209','Arc 1950',NULL,'EPSG','7013','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6209','Arc 1950',NULL,'EPSG','7013','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13551','geodetic_datum','EPSG','6209','EPSG','1276','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6210','Arc 1960',NULL,'EPSG','7012','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6210','Arc 1960',NULL,'EPSG','7012','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13552','geodetic_datum','EPSG','6210','EPSG','1277','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6211','Batavia',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6211','Batavia',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13553','geodetic_datum','EPSG','6211','EPSG','3666','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6212','Barbados 1938',NULL,'EPSG','7012','EPSG','8901','1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6212','Barbados 1938',NULL,'EPSG','7012','EPSG','8901','1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13554','geodetic_datum','EPSG','6212','EPSG','3218','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6213','Beduaram',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6213','Beduaram',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13555','geodetic_datum','EPSG','6213','EPSG','2771','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6214','Beijing 1954',NULL,'EPSG','7024','EPSG','8901','1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6214','Beijing 1954',NULL,'EPSG','7024','EPSG','8901','1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13556','geodetic_datum','EPSG','6214','EPSG','1067','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6215','Reseau National Belge 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6215','Reseau National Belge 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13557','geodetic_datum','EPSG','6215','EPSG','1347','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6216','Bermuda 1957',NULL,'EPSG','7008','EPSG','8901','1957-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6216','Bermuda 1957',NULL,'EPSG','7008','EPSG','8901','1957-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13558','geodetic_datum','EPSG','6216','EPSG','3221','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6218','Bogota 1975',NULL,'EPSG','7022','EPSG','8901','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6218','Bogota 1975',NULL,'EPSG','7022','EPSG','8901','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13559','geodetic_datum','EPSG','6218','EPSG','3686','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6219','Bukit Rimpah',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6219','Bukit Rimpah',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13560','geodetic_datum','EPSG','6219','EPSG','1287','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6220','Camacupa 1948',NULL,'EPSG','7012','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6220','Camacupa 1948',NULL,'EPSG','7012','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13561','geodetic_datum','EPSG','6220','EPSG','1288','EPSG','1104'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6221','Campo Inchauspe',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6221','Campo Inchauspe',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13562','geodetic_datum','EPSG','6221','EPSG','3843','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6222','Cape',NULL,'EPSG','7013','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6222','Cape',NULL,'EPSG','7013','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13563','geodetic_datum','EPSG','6222','EPSG','1290','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6223','Carthage',NULL,'EPSG','7011','EPSG','8901','1925-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6223','Carthage',NULL,'EPSG','7011','EPSG','8901','1925-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13564','geodetic_datum','EPSG','6223','EPSG','1236','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6224','Chua',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6224','Chua',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13565','geodetic_datum','EPSG','6224','EPSG','3356','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6225','Corrego Alegre 1970-72',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6225','Corrego Alegre 1970-72',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13566','geodetic_datum','EPSG','6225','EPSG','1293','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6226','Cote d''Ivoire',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6226','Cote d''Ivoire',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13567','geodetic_datum','EPSG','6226','EPSG','1075','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6227','Deir ez Zor',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6227','Deir ez Zor',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13568','geodetic_datum','EPSG','6227','EPSG','1623','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6228','Douala',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6228','Douala',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13569','geodetic_datum','EPSG','6228','EPSG','1060','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6229','Egypt 1907',NULL,'EPSG','7020','EPSG','8901','1907-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6229','Egypt 1907',NULL,'EPSG','7020','EPSG','8901','1907-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13570','geodetic_datum','EPSG','6229','EPSG','1086','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6230','European Datum 1950',NULL,'EPSG','7022','EPSG','8901','1950-06-30',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6230','European Datum 1950',NULL,'EPSG','7022','EPSG','8901','1950-06-30',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13571','geodetic_datum','EPSG','6230','EPSG','1296','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6231','European Datum 1987',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6231','European Datum 1987',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13572','geodetic_datum','EPSG','6231','EPSG','1297','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6232','Fahud',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6232','Fahud',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13573','geodetic_datum','EPSG','6232','EPSG','4009','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6233','Gandajika 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6233','Gandajika 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13574','geodetic_datum','EPSG','6233','EPSG','1152','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6234','Garoua',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6234','Garoua',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13575','geodetic_datum','EPSG','6234','EPSG','1060','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6235','Guyane Francaise',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6235','Guyane Francaise',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13576','geodetic_datum','EPSG','6235','EPSG','1097','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6236','Hu Tzu Shan 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6236','Hu Tzu Shan 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13577','geodetic_datum','EPSG','6236','EPSG','3315','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6237','Hungarian Datum 1972',NULL,'EPSG','7036','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6237','Hungarian Datum 1972',NULL,'EPSG','7036','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13578','geodetic_datum','EPSG','6237','EPSG','1119','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6238','Indonesian Datum 1974',NULL,'EPSG','7021','EPSG','8901','1974-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6238','Indonesian Datum 1974',NULL,'EPSG','7021','EPSG','8901','1974-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13579','geodetic_datum','EPSG','6238','EPSG','4020','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6239','Indian 1954',NULL,'EPSG','7015','EPSG','8901','1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6239','Indian 1954',NULL,'EPSG','7015','EPSG','8901','1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13580','geodetic_datum','EPSG','6239','EPSG','1304','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6240','Indian 1975',NULL,'EPSG','7015','EPSG','8901','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6240','Indian 1975',NULL,'EPSG','7015','EPSG','8901','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13581','geodetic_datum','EPSG','6240','EPSG','3741','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6241','Jamaica 1875',NULL,'EPSG','7034','EPSG','8901','1875-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6241','Jamaica 1875',NULL,'EPSG','7034','EPSG','8901','1875-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13582','geodetic_datum','EPSG','6241','EPSG','3342','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6242','Jamaica 1969',NULL,'EPSG','7008','EPSG','8901','1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6242','Jamaica 1969',NULL,'EPSG','7008','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13583','geodetic_datum','EPSG','6242','EPSG','3342','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6243','Kalianpur 1880',NULL,'EPSG','7042','EPSG','8901','1880-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6243','Kalianpur 1880',NULL,'EPSG','7042','EPSG','8901','1880-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13584','geodetic_datum','EPSG','6243','EPSG','1307','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6244','Kandawala',NULL,'EPSG','7015','EPSG','8901','1930-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6244','Kandawala',NULL,'EPSG','7015','EPSG','8901','1930-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13585','geodetic_datum','EPSG','6244','EPSG','3310','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6245','Kertau 1968',NULL,'EPSG','7018','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6245','Kertau 1968',NULL,'EPSG','7018','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13586','geodetic_datum','EPSG','6245','EPSG','4223','EPSG','1185'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6246','Kuwait Oil Company',NULL,'EPSG','7012','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6246','Kuwait Oil Company',NULL,'EPSG','7012','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13587','geodetic_datum','EPSG','6246','EPSG','3267','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6247','La Canoa',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6247','La Canoa',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13588','geodetic_datum','EPSG','6247','EPSG','3327','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6248','Provisional South American Datum 1956',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6248','Provisional South American Datum 1956',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13589','geodetic_datum','EPSG','6248','EPSG','1348','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6249','Lake',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6249','Lake',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13590','geodetic_datum','EPSG','6249','EPSG','1312','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6250','Leigon',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6250','Leigon',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13591','geodetic_datum','EPSG','6250','EPSG','1104','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6251','Liberia 1964',NULL,'EPSG','7012','EPSG','8901','1964-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6251','Liberia 1964',NULL,'EPSG','7012','EPSG','8901','1964-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13592','geodetic_datum','EPSG','6251','EPSG','3270','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6252','Lome',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6252','Lome',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13593','geodetic_datum','EPSG','6252','EPSG','1232','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6253','Luzon 1911',NULL,'EPSG','7008','EPSG','8901','1911-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6253','Luzon 1911',NULL,'EPSG','7008','EPSG','8901','1911-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13594','geodetic_datum','EPSG','6253','EPSG','3969','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6254','Hito XVIII 1963',NULL,'EPSG','7022','EPSG','8901','1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6254','Hito XVIII 1963',NULL,'EPSG','7022','EPSG','8901','1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13595','geodetic_datum','EPSG','6254','EPSG','1303','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6255','Herat North',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6255','Herat North',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13596','geodetic_datum','EPSG','6255','EPSG','1024','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6256','Mahe 1971',NULL,'EPSG','7012','EPSG','8901','1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6256','Mahe 1971',NULL,'EPSG','7012','EPSG','8901','1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13597','geodetic_datum','EPSG','6256','EPSG','2369','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6257','Makassar',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6257','Makassar',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13598','geodetic_datum','EPSG','6257','EPSG','1316','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6259','Malongo 1987',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6259','Malongo 1987',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13600','geodetic_datum','EPSG','6259','EPSG','3180','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6260','Manoca',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6260','Manoca',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13601','geodetic_datum','EPSG','6260','EPSG','1060','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6261','Merchich',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6261','Merchich',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13602','geodetic_datum','EPSG','6261','EPSG','4581','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6262','Massawa',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6262','Massawa',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13603','geodetic_datum','EPSG','6262','EPSG','1089','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6263','Minna',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6263','Minna',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13604','geodetic_datum','EPSG','6263','EPSG','1178','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6264','Mhast',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6264','Mhast',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13605','geodetic_datum','EPSG','6264','EPSG','1318','EPSG','1103'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6265','Monte Mario',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6265','Monte Mario',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13606','geodetic_datum','EPSG','6265','EPSG','3343','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6266','M''poraloko',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6266','M''poraloko',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13607','geodetic_datum','EPSG','6266','EPSG','1100','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6267','North American Datum 1927',NULL,'EPSG','7008','EPSG','8901','1927-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6267','North American Datum 1927',NULL,'EPSG','7008','EPSG','8901','1927-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13608','geodetic_datum','EPSG','6267','EPSG','1349','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6268','NAD27 Michigan',NULL,'EPSG','7009','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6268','NAD27 Michigan',NULL,'EPSG','7009','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13609','geodetic_datum','EPSG','6268','EPSG','1391','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6269','North American Datum 1983',NULL,'EPSG','7019','EPSG','8901','1986-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6269','North American Datum 1983',NULL,'EPSG','7019','EPSG','8901','1986-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13610','geodetic_datum','EPSG','6269','EPSG','1350','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6270','Nahrwan 1967',NULL,'EPSG','7012','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6270','Nahrwan 1967',NULL,'EPSG','7012','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13611','geodetic_datum','EPSG','6270','EPSG','1351','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6271','Naparima 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6271','Naparima 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13612','geodetic_datum','EPSG','6271','EPSG','1322','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6272','New Zealand Geodetic Datum 1949',NULL,'EPSG','7022','EPSG','8901','1949-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6272','New Zealand Geodetic Datum 1949',NULL,'EPSG','7022','EPSG','8901','1949-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13613','geodetic_datum','EPSG','6272','EPSG','3285','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6273','NGO 1948',NULL,'EPSG','7005','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6273','NGO 1948',NULL,'EPSG','7005','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13614','geodetic_datum','EPSG','6273','EPSG','1352','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6274','Datum 73',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6274','Datum 73',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13615','geodetic_datum','EPSG','6274','EPSG','1294','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6275','Nouvelle Triangulation Francaise',NULL,'EPSG','7011','EPSG','8901','1895-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6275','Nouvelle Triangulation Francaise',NULL,'EPSG','7011','EPSG','8901','1895-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13616','geodetic_datum','EPSG','6275','EPSG','3694','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6276','NSWC 9Z-2',NULL,'EPSG','7025','EPSG','8901','1976-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6276','NSWC 9Z-2',NULL,'EPSG','7025','EPSG','8901','1976-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13617','geodetic_datum','EPSG','6276','EPSG','1262','EPSG','1245'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6277','Ordnance Survey of Great Britain 1936',NULL,'EPSG','7001','EPSG','8901','1936-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6277','Ordnance Survey of Great Britain 1936',NULL,'EPSG','7001','EPSG','8901','1936-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13618','geodetic_datum','EPSG','6277','EPSG','4390','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6278','OSGB 1970 (SN)',NULL,'EPSG','7001','EPSG','8901','1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6278','OSGB 1970 (SN)',NULL,'EPSG','7001','EPSG','8901','1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13619','geodetic_datum','EPSG','6278','EPSG','1264','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6279','OS (SN) 1980',NULL,'EPSG','7001','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6279','OS (SN) 1980',NULL,'EPSG','7001','EPSG','8901','1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13620','geodetic_datum','EPSG','6279','EPSG','1354','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6280','Padang 1884',NULL,'EPSG','7004','EPSG','8901','1884-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6280','Padang 1884',NULL,'EPSG','7004','EPSG','8901','1884-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13621','geodetic_datum','EPSG','6280','EPSG','1355','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6281','Palestine 1923',NULL,'EPSG','7010','EPSG','8901','1923-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6281','Palestine 1923',NULL,'EPSG','7010','EPSG','8901','1923-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13622','geodetic_datum','EPSG','6281','EPSG','1356','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6282','Congo 1960 Pointe Noire',NULL,'EPSG','7011','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6282','Congo 1960 Pointe Noire',NULL,'EPSG','7011','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13623','geodetic_datum','EPSG','6282','EPSG','1072','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6283','Geocentric Datum of Australia 1994',NULL,'EPSG','7019','EPSG','8901','1994-01-14',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6283','Geocentric Datum of Australia 1994',NULL,'EPSG','7019','EPSG','8901','1994-01-14',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13624','geodetic_datum','EPSG','6283','EPSG','4177','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6284','Pulkovo 1942',NULL,'EPSG','7024','EPSG','8901','1942-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6284','Pulkovo 1942',NULL,'EPSG','7024','EPSG','8901','1942-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13625','geodetic_datum','EPSG','6284','EPSG','2423','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6285','Qatar 1974',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6285','Qatar 1974',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13626','geodetic_datum','EPSG','6285','EPSG','1195','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6286','Qatar 1948',NULL,'EPSG','7020','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6286','Qatar 1948',NULL,'EPSG','7020','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13627','geodetic_datum','EPSG','6286','EPSG','1346','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6287','Qornoq',NULL,'EPSG','7022','EPSG','8901','1927-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6287','Qornoq',NULL,'EPSG','7022','EPSG','8901','1927-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13628','geodetic_datum','EPSG','6287','EPSG','1107','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6288','Loma Quintana',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6288','Loma Quintana',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13629','geodetic_datum','EPSG','6288','EPSG','1313','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6289','Amersfoort',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6289','Amersfoort',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13630','geodetic_datum','EPSG','6289','EPSG','1275','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6291','South American Datum 1969',NULL,'EPSG','7036','EPSG','8901','1969-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6291','South American Datum 1969',NULL,'EPSG','7036','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13631','geodetic_datum','EPSG','6291','EPSG','1358','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6292','Sapper Hill 1943',NULL,'EPSG','7022','EPSG','8901','1943-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6292','Sapper Hill 1943',NULL,'EPSG','7022','EPSG','8901','1943-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13632','geodetic_datum','EPSG','6292','EPSG','3247','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6293','Schwarzeck',NULL,'EPSG','7046','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6293','Schwarzeck',NULL,'EPSG','7046','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13633','geodetic_datum','EPSG','6293','EPSG','1169','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6294','Segora',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6294','Segora',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13634','geodetic_datum','EPSG','6294','EPSG','1359','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6295','Serindung',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6295','Serindung',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13635','geodetic_datum','EPSG','6295','EPSG','4005','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6296','Sudan',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6296','Sudan',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13636','geodetic_datum','EPSG','6296','EPSG','1361','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6297','Tananarive 1925',NULL,'EPSG','7022','EPSG','8901','1925-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6297','Tananarive 1925',NULL,'EPSG','7022','EPSG','8901','1925-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13637','geodetic_datum','EPSG','6297','EPSG','1149','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6298','Timbalai 1948',NULL,'EPSG','7016','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6298','Timbalai 1948',NULL,'EPSG','7016','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13638','geodetic_datum','EPSG','6298','EPSG','1362','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6299','TM65',NULL,'EPSG','7002','EPSG','8901','1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6299','TM65',NULL,'EPSG','7002','EPSG','8901','1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13639','geodetic_datum','EPSG','6299','EPSG','1305','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6300','Geodetic Datum of 1965',NULL,'EPSG','7002','EPSG','8901','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6300','Geodetic Datum of 1965',NULL,'EPSG','7002','EPSG','8901','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13640','geodetic_datum','EPSG','6300','EPSG','1305','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6301','Tokyo',NULL,'EPSG','7004','EPSG','8901','1918-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6301','Tokyo',NULL,'EPSG','7004','EPSG','8901','1918-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13641','geodetic_datum','EPSG','6301','EPSG','1364','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6302','Trinidad 1903',NULL,'EPSG','7007','EPSG','8901','1903-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6302','Trinidad 1903',NULL,'EPSG','7007','EPSG','8901','1903-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13642','geodetic_datum','EPSG','6302','EPSG','1339','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6303','Trucial Coast 1948',NULL,'EPSG','7020','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6303','Trucial Coast 1948',NULL,'EPSG','7020','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13643','geodetic_datum','EPSG','6303','EPSG','1363','EPSG','1216'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6304','Voirol 1875',NULL,'EPSG','7011','EPSG','8901','1875-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6304','Voirol 1875',NULL,'EPSG','7011','EPSG','8901','1875-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13644','geodetic_datum','EPSG','6304','EPSG','1365','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6306','Bern 1938',NULL,'EPSG','7004','EPSG','8901','1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6306','Bern 1938',NULL,'EPSG','7004','EPSG','8901','1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13645','geodetic_datum','EPSG','6306','EPSG','1286','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6307','Nord Sahara 1959',NULL,'EPSG','7012','EPSG','8901','1959-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6307','Nord Sahara 1959',NULL,'EPSG','7012','EPSG','8901','1959-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13646','geodetic_datum','EPSG','6307','EPSG','1026','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6308','Stockholm 1938',NULL,'EPSG','7004','EPSG','8901','1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6308','Stockholm 1938',NULL,'EPSG','7004','EPSG','8901','1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13647','geodetic_datum','EPSG','6308','EPSG','3313','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6309','Yacare',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6309','Yacare',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13648','geodetic_datum','EPSG','6309','EPSG','3326','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6310','Yoff',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6310','Yoff',NULL,'EPSG','7011','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13649','geodetic_datum','EPSG','6310','EPSG','1207','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6311','Zanderij',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6311','Zanderij',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13650','geodetic_datum','EPSG','6311','EPSG','1222','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6312','Militar-Geographische Institut',NULL,'EPSG','7004','EPSG','8901','1901-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6312','Militar-Geographische Institut',NULL,'EPSG','7004','EPSG','8901','1901-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13651','geodetic_datum','EPSG','6312','EPSG','1037','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6313','Reseau National Belge 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6313','Reseau National Belge 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13652','geodetic_datum','EPSG','6313','EPSG','1347','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6314','Deutsches Hauptdreiecksnetz',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6314','Deutsches Hauptdreiecksnetz',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13653','geodetic_datum','EPSG','6314','EPSG','2326','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6315','Conakry 1905',NULL,'EPSG','7011','EPSG','8901','1905-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6315','Conakry 1905',NULL,'EPSG','7011','EPSG','8901','1905-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13654','geodetic_datum','EPSG','6315','EPSG','3257','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6316','Dealul Piscului 1930',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6316','Dealul Piscului 1930',NULL,'EPSG','7022','EPSG','8901','1930-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13655','geodetic_datum','EPSG','6316','EPSG','3295','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6317','Dealul Piscului 1970',NULL,'EPSG','7024','EPSG','8901','1970-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6317','Dealul Piscului 1970',NULL,'EPSG','7024','EPSG','8901','1970-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13656','geodetic_datum','EPSG','6317','EPSG','1197','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6318','National Geodetic Network',NULL,'EPSG','7030','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6318','National Geodetic Network',NULL,'EPSG','7030','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13657','geodetic_datum','EPSG','6318','EPSG','3267','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6319','Kuwait Utility',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6319','Kuwait Utility',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13658','geodetic_datum','EPSG','6319','EPSG','1310','EPSG','1054'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6322','World Geodetic System 1972',NULL,'EPSG','7043','EPSG','8901','1972-01-01',1972.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6322','World Geodetic System 1972',NULL,'EPSG','7043','EPSG','8901','1972-01-01',1972.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13659','geodetic_datum','EPSG','6322','EPSG','1262','EPSG','1245'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6324','WGS 72 Transit Broadcast Ephemeris',NULL,'EPSG','7043','EPSG','8901','1972-01-01',1972.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6324','WGS 72 Transit Broadcast Ephemeris',NULL,'EPSG','7043','EPSG','8901','1972-01-01',1972.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13660','geodetic_datum','EPSG','6324','EPSG','1262','EPSG','1245'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6600','Anguilla 1957',NULL,'EPSG','7012','EPSG','8901','1957-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6600','Anguilla 1957',NULL,'EPSG','7012','EPSG','8901','1957-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13662','geodetic_datum','EPSG','6600','EPSG','3214','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6601','Antigua 1943',NULL,'EPSG','7012','EPSG','8901','1943-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6601','Antigua 1943',NULL,'EPSG','7012','EPSG','8901','1943-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13663','geodetic_datum','EPSG','6601','EPSG','1273','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6602','Dominica 1945',NULL,'EPSG','7012','EPSG','8901','1945-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6602','Dominica 1945',NULL,'EPSG','7012','EPSG','8901','1945-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13664','geodetic_datum','EPSG','6602','EPSG','3239','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6603','Grenada 1953',NULL,'EPSG','7012','EPSG','8901','1953-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6603','Grenada 1953',NULL,'EPSG','7012','EPSG','8901','1953-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13665','geodetic_datum','EPSG','6603','EPSG','1551','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6604','Montserrat 1958',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6604','Montserrat 1958',NULL,'EPSG','7012','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13666','geodetic_datum','EPSG','6604','EPSG','3279','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6605','St. Kitts 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6605','St. Kitts 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13667','geodetic_datum','EPSG','6605','EPSG','3297','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6606','St. Lucia 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6606','St. Lucia 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13668','geodetic_datum','EPSG','6606','EPSG','3298','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6607','St. Vincent 1945',NULL,'EPSG','7012','EPSG','8901','1945-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6607','St. Vincent 1945',NULL,'EPSG','7012','EPSG','8901','1945-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13669','geodetic_datum','EPSG','6607','EPSG','3300','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6608','North American Datum 1927 (1976)',NULL,'EPSG','7008','EPSG','8901','1975-05-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6608','North American Datum 1927 (1976)',NULL,'EPSG','7008','EPSG','8901','1975-05-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13670','geodetic_datum','EPSG','6608','EPSG','1367','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6609','North American Datum 1927 (CGQ77)',NULL,'EPSG','7008','EPSG','8901','1977-05-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6609','North American Datum 1927 (CGQ77)',NULL,'EPSG','7008','EPSG','8901','1977-05-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13671','geodetic_datum','EPSG','6609','EPSG','1368','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6610','Xian 1980',NULL,'EPSG','7049','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6610','Xian 1980',NULL,'EPSG','7049','EPSG','8901','1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13672','geodetic_datum','EPSG','6610','EPSG','3228','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6611','Hong Kong 1980',NULL,'EPSG','7022','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6611','Hong Kong 1980',NULL,'EPSG','7022','EPSG','8901','1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13673','geodetic_datum','EPSG','6611','EPSG','1118','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6612','Japanese Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2002-04-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6612','Japanese Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2002-04-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13674','geodetic_datum','EPSG','6612','EPSG','1129','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6613','Gunung Segara',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6613','Gunung Segara',NULL,'EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13675','geodetic_datum','EPSG','6613','EPSG','1360','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6614','Qatar National Datum 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6614','Qatar National Datum 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13676','geodetic_datum','EPSG','6614','EPSG','1346','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6615','Porto Santo 1936',NULL,'EPSG','7022','EPSG','8901','1936-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6615','Porto Santo 1936',NULL,'EPSG','7022','EPSG','8901','1936-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13677','geodetic_datum','EPSG','6615','EPSG','1314','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6616','Selvagem Grande',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6616','Selvagem Grande',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13678','geodetic_datum','EPSG','6616','EPSG','2779','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6618','South American Datum 1969',NULL,'EPSG','7050','EPSG','8901','1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6618','South American Datum 1969',NULL,'EPSG','7050','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13679','geodetic_datum','EPSG','6618','EPSG','1358','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6619','SWEREF99',NULL,'EPSG','7019','EPSG','8901','1999-06-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6619','SWEREF99',NULL,'EPSG','7019','EPSG','8901','1999-06-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13680','geodetic_datum','EPSG','6619','EPSG','1225','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6620','Point 58',NULL,'EPSG','7012','EPSG','8901','1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6620','Point 58',NULL,'EPSG','7012','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13681','geodetic_datum','EPSG','6620','EPSG','2790','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6621','Fort Marigot',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6621','Fort Marigot',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13682','geodetic_datum','EPSG','6621','EPSG','2828','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6622','Guadeloupe 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6622','Guadeloupe 1948',NULL,'EPSG','7022','EPSG','8901','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13683','geodetic_datum','EPSG','6622','EPSG','2829','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6623','Centre Spatial Guyanais 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6623','Centre Spatial Guyanais 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13684','geodetic_datum','EPSG','6623','EPSG','3105','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6624','Reseau Geodesique Francais Guyane 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6624','Reseau Geodesique Francais Guyane 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13685','geodetic_datum','EPSG','6624','EPSG','1097','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6625','Martinique 1938',NULL,'EPSG','7022','EPSG','8901','1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6625','Martinique 1938',NULL,'EPSG','7022','EPSG','8901','1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13686','geodetic_datum','EPSG','6625','EPSG','3276','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6626','Reunion 1947',NULL,'EPSG','7022','EPSG','8901','1947-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6626','Reunion 1947',NULL,'EPSG','7022','EPSG','8901','1947-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13687','geodetic_datum','EPSG','6626','EPSG','3337','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6627','Reseau Geodesique de la Reunion 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6627','Reseau Geodesique de la Reunion 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13688','geodetic_datum','EPSG','6627','EPSG','3902','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6628','Tahiti 52',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6628','Tahiti 52',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13689','geodetic_datum','EPSG','6628','EPSG','2811','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6629','Tahaa 54',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6629','Tahaa 54',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13690','geodetic_datum','EPSG','6629','EPSG','2812','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6630','IGN72 Nuku Hiva',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6630','IGN72 Nuku Hiva',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13691','geodetic_datum','EPSG','6630','EPSG','3129','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6631','K0 1949',NULL,'EPSG','7022','EPSG','8901','1949-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6631','K0 1949',NULL,'EPSG','7022','EPSG','8901','1949-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13692','geodetic_datum','EPSG','6631','EPSG','2816','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6632','Combani 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6632','Combani 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13693','geodetic_datum','EPSG','6632','EPSG','3340','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6633','IGN56 Lifou',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6633','IGN56 Lifou',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13694','geodetic_datum','EPSG','6633','EPSG','2814','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6634','IGN72 Grande Terre',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6634','IGN72 Grande Terre',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13695','geodetic_datum','EPSG','6634','EPSG','2822','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6635','ST87 Ouvea',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6635','ST87 Ouvea',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13696','geodetic_datum','EPSG','6635','EPSG','2813','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6636','Petrels 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6636','Petrels 1972',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13697','geodetic_datum','EPSG','6636','EPSG','2817','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6637','Pointe Geologie Perroud 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6637','Pointe Geologie Perroud 1950',NULL,'EPSG','7022','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13698','geodetic_datum','EPSG','6637','EPSG','2818','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6638','Saint Pierre et Miquelon 1950',NULL,'EPSG','7008','EPSG','8901','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6638','Saint Pierre et Miquelon 1950',NULL,'EPSG','7008','EPSG','8901','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13699','geodetic_datum','EPSG','6638','EPSG','3299','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6639','MOP78',NULL,'EPSG','7022','EPSG','8901','1978-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6639','MOP78',NULL,'EPSG','7022','EPSG','8901','1978-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13700','geodetic_datum','EPSG','6639','EPSG','2815','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6640','Reseau de Reference des Antilles Francaises 1991',NULL,'EPSG','7030','EPSG','8901','1991-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6640','Reseau de Reference des Antilles Francaises 1991',NULL,'EPSG','7030','EPSG','8901','1991-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13701','geodetic_datum','EPSG','6640','EPSG','2824','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6641','IGN53 Mare',NULL,'EPSG','7022','EPSG','8901','1953-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6641','IGN53 Mare',NULL,'EPSG','7022','EPSG','8901','1953-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13702','geodetic_datum','EPSG','6641','EPSG','2819','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6642','ST84 Ile des Pins',NULL,'EPSG','7022','EPSG','8901','1984-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6642','ST84 Ile des Pins',NULL,'EPSG','7022','EPSG','8901','1984-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13703','geodetic_datum','EPSG','6642','EPSG','2820','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6643','ST71 Belep',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6643','ST71 Belep',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13704','geodetic_datum','EPSG','6643','EPSG','2821','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6644','NEA74 Noumea',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6644','NEA74 Noumea',NULL,'EPSG','7022','EPSG','8901','1974-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13705','geodetic_datum','EPSG','6644','EPSG','2823','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6645','Reseau Geodesique Nouvelle Caledonie 1991',NULL,'EPSG','7022','EPSG','8901','1991-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6645','Reseau Geodesique Nouvelle Caledonie 1991',NULL,'EPSG','7022','EPSG','8901','1991-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13706','geodetic_datum','EPSG','6645','EPSG','1174','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6646','Grand Comoros',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6646','Grand Comoros',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13707','geodetic_datum','EPSG','6646','EPSG','2807','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6647','International Terrestrial Reference Frame 1988',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6647','International Terrestrial Reference Frame 1988',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13708','geodetic_datum','EPSG','6647','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6648','International Terrestrial Reference Frame 1989',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6648','International Terrestrial Reference Frame 1989',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13709','geodetic_datum','EPSG','6648','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6649','International Terrestrial Reference Frame 1990',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6649','International Terrestrial Reference Frame 1990',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13710','geodetic_datum','EPSG','6649','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6650','International Terrestrial Reference Frame 1991',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6650','International Terrestrial Reference Frame 1991',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13711','geodetic_datum','EPSG','6650','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6651','International Terrestrial Reference Frame 1992',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6651','International Terrestrial Reference Frame 1992',NULL,'EPSG','7019','EPSG','8901','1988-01-01',1988.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13712','geodetic_datum','EPSG','6651','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6652','International Terrestrial Reference Frame 1993',NULL,'EPSG','7019','EPSG','8901','1993-01-01',1993.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6652','International Terrestrial Reference Frame 1993',NULL,'EPSG','7019','EPSG','8901','1993-01-01',1993.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13713','geodetic_datum','EPSG','6652','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6653','International Terrestrial Reference Frame 1994',NULL,'EPSG','7019','EPSG','8901','1993-01-01',1993.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6653','International Terrestrial Reference Frame 1994',NULL,'EPSG','7019','EPSG','8901','1993-01-01',1993.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13714','geodetic_datum','EPSG','6653','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6654','International Terrestrial Reference Frame 1996',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6654','International Terrestrial Reference Frame 1996',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13715','geodetic_datum','EPSG','6654','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6655','International Terrestrial Reference Frame 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6655','International Terrestrial Reference Frame 1997',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13716','geodetic_datum','EPSG','6655','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6656','International Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6656','International Terrestrial Reference Frame 2000',NULL,'EPSG','7019','EPSG','8901','1997-01-01',1997.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13717','geodetic_datum','EPSG','6656','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6657','Reykjavik 1900',NULL,'EPSG','7051','EPSG','8901','1900-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6657','Reykjavik 1900',NULL,'EPSG','7051','EPSG','8901','1900-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13718','geodetic_datum','EPSG','6657','EPSG','3262','EPSG','1211'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6658','Hjorsey 1955',NULL,'EPSG','7022','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6658','Hjorsey 1955',NULL,'EPSG','7022','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13719','geodetic_datum','EPSG','6658','EPSG','3262','EPSG','1062'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6659','Islands Net 1993',NULL,'EPSG','7019','EPSG','8901','1993-08-07',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6659','Islands Net 1993',NULL,'EPSG','7019','EPSG','8901','1993-08-07',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13720','geodetic_datum','EPSG','6659','EPSG','1120','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6660','Helle 1954',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6660','Helle 1954',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13721','geodetic_datum','EPSG','6660','EPSG','2869','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6661','Latvian geodetic coordinate system 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6661','Latvian geodetic coordinate system 1992',NULL,'EPSG','7019','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13722','geodetic_datum','EPSG','6661','EPSG','1139','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6663','Porto Santo 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6663','Porto Santo 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13723','geodetic_datum','EPSG','6663','EPSG','1314','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6664','Azores Oriental Islands 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6664','Azores Oriental Islands 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13724','geodetic_datum','EPSG','6664','EPSG','1345','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6665','Azores Central Islands 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6665','Azores Central Islands 1995',NULL,'EPSG','7022','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13725','geodetic_datum','EPSG','6665','EPSG','1301','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6666','Lisbon 1890',NULL,'EPSG','7004','EPSG','8901','1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6666','Lisbon 1890',NULL,'EPSG','7004','EPSG','8901','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13726','geodetic_datum','EPSG','6666','EPSG','1294','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6667','Iraq-Kuwait Boundary Datum 1992',NULL,'EPSG','7030','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6667','Iraq-Kuwait Boundary Datum 1992',NULL,'EPSG','7030','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13727','geodetic_datum','EPSG','6667','EPSG','2876','EPSG','1053'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6668','European Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6668','European Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13728','geodetic_datum','EPSG','6668','EPSG','1297','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6670','Istituto Geografico Militaire 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6670','Istituto Geografico Militaire 1995',NULL,'EPSG','7019','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14401','geodetic_datum','EPSG','6670','EPSG','3343','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6671','Voirol 1879',NULL,'EPSG','7011','EPSG','8901','1879-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6671','Voirol 1879',NULL,'EPSG','7011','EPSG','8901','1879-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13730','geodetic_datum','EPSG','6671','EPSG','1365','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6672','Chatham Islands Datum 1971',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6672','Chatham Islands Datum 1971',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13731','geodetic_datum','EPSG','6672','EPSG','2889','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6673','Chatham Islands Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6673','Chatham Islands Datum 1979',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13732','geodetic_datum','EPSG','6673','EPSG','2889','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6674','Sistema de Referencia Geocentrico para las AmericaS 2000',NULL,'EPSG','7019','EPSG','8901','2000-05-26',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6674','Sistema de Referencia Geocentrico para las AmericaS 2000',NULL,'EPSG','7019','EPSG','8901','2000-05-26',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13733','geodetic_datum','EPSG','6674','EPSG','3418','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6675','Guam 1963',NULL,'EPSG','7008','EPSG','8901','1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6675','Guam 1963',NULL,'EPSG','7008','EPSG','8901','1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13734','geodetic_datum','EPSG','6675','EPSG','4525','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6676','Vientiane 1982',NULL,'EPSG','7024','EPSG','8901','1982-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6676','Vientiane 1982',NULL,'EPSG','7024','EPSG','8901','1982-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13735','geodetic_datum','EPSG','6676','EPSG','1138','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6677','Lao 1993',NULL,'EPSG','7024','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6677','Lao 1993',NULL,'EPSG','7024','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13736','geodetic_datum','EPSG','6677','EPSG','1138','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6678','Lao National Datum 1997',NULL,'EPSG','7024','EPSG','8901','1997-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6678','Lao National Datum 1997',NULL,'EPSG','7024','EPSG','8901','1997-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13737','geodetic_datum','EPSG','6678','EPSG','1138','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6679','Jouik 1961',NULL,'EPSG','7012','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6679','Jouik 1961',NULL,'EPSG','7012','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13738','geodetic_datum','EPSG','6679','EPSG','2967','EPSG','1198'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6680','Nouakchott 1965',NULL,'EPSG','7012','EPSG','8901','1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6680','Nouakchott 1965',NULL,'EPSG','7012','EPSG','8901','1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13739','geodetic_datum','EPSG','6680','EPSG','2968','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6681','Mauritania 1999',NULL,'EPSG','7012','EPSG','8901','1999-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6681','Mauritania 1999',NULL,'EPSG','7012','EPSG','8901','1999-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13740','geodetic_datum','EPSG','6681','EPSG','1157','EPSG','1249'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6682','Gulshan 303',NULL,'EPSG','7015','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6682','Gulshan 303',NULL,'EPSG','7015','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13741','geodetic_datum','EPSG','6682','EPSG','1041','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6683','Philippine Reference System 1992',NULL,'EPSG','7008','EPSG','8901','1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6683','Philippine Reference System 1992',NULL,'EPSG','7008','EPSG','8901','1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13742','geodetic_datum','EPSG','6683','EPSG','1190','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6684','Gan 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6684','Gan 1970',NULL,'EPSG','7022','EPSG','8901','1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13743','geodetic_datum','EPSG','6684','EPSG','3274','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6685','Gandajika',NULL,'EPSG','7022','EPSG','8901','1953-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6685','Gandajika',NULL,'EPSG','7022','EPSG','8901','1953-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13744','geodetic_datum','EPSG','6685','EPSG','1259','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6686','Marco Geocentrico Nacional de Referencia',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6686','Marco Geocentrico Nacional de Referencia',NULL,'EPSG','7019','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13745','geodetic_datum','EPSG','6686','EPSG','1070','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6687','Reseau Geodesique de la Polynesie Francaise',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6687','Reseau Geodesique de la Polynesie Francaise',NULL,'EPSG','7019','EPSG','8901','1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13746','geodetic_datum','EPSG','6687','EPSG','1098','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6688','Fatu Iva 72',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6688','Fatu Iva 72',NULL,'EPSG','7022','EPSG','8901','1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13747','geodetic_datum','EPSG','6688','EPSG','3133','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6689','IGN63 Hiva Oa',NULL,'EPSG','7022','EPSG','8901','1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6689','IGN63 Hiva Oa',NULL,'EPSG','7022','EPSG','8901','1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13748','geodetic_datum','EPSG','6689','EPSG','3130','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6690','Tahiti 79',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6690','Tahiti 79',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13749','geodetic_datum','EPSG','6690','EPSG','3124','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6691','Moorea 87',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6691','Moorea 87',NULL,'EPSG','7022','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13750','geodetic_datum','EPSG','6691','EPSG','3125','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6692','Maupiti 83',NULL,'EPSG','7022','EPSG','8901','1983-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6692','Maupiti 83',NULL,'EPSG','7022','EPSG','8901','1983-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13751','geodetic_datum','EPSG','6692','EPSG','3126','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6693','Nakhl-e Ghanem',NULL,'EPSG','7030','EPSG','8901','2005-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6693','Nakhl-e Ghanem',NULL,'EPSG','7030','EPSG','8901','2005-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13752','geodetic_datum','EPSG','6693','EPSG','2362','EPSG','1140'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6694','Posiciones Geodesicas Argentinas 1994',NULL,'EPSG','7030','EPSG','8901','1994-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6694','Posiciones Geodesicas Argentinas 1994',NULL,'EPSG','7030','EPSG','8901','1994-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18565','geodetic_datum','EPSG','6694','EPSG','1033','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6695','Katanga 1955',NULL,'EPSG','7008','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6695','Katanga 1955',NULL,'EPSG','7008','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13754','geodetic_datum','EPSG','6695','EPSG','3147','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6696','Kasai 1953',NULL,'EPSG','7012','EPSG','8901','1953-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6696','Kasai 1953',NULL,'EPSG','7012','EPSG','8901','1953-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13755','geodetic_datum','EPSG','6696','EPSG','3148','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6697','IGC 1962 Arc of the 6th Parallel South',NULL,'EPSG','7012','EPSG','8901','1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6697','IGC 1962 Arc of the 6th Parallel South',NULL,'EPSG','7012','EPSG','8901','1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13756','geodetic_datum','EPSG','6697','EPSG','3149','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6698','IGN 1962 Kerguelen',NULL,'EPSG','7022','EPSG','8901','1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6698','IGN 1962 Kerguelen',NULL,'EPSG','7022','EPSG','8901','1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13757','geodetic_datum','EPSG','6698','EPSG','2816','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6699','Le Pouce 1934',NULL,'EPSG','7012','EPSG','8901','1934-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6699','Le Pouce 1934',NULL,'EPSG','7012','EPSG','8901','1934-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13758','geodetic_datum','EPSG','6699','EPSG','3209','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6700','IGN Astro 1960',NULL,'EPSG','7012','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6700','IGN Astro 1960',NULL,'EPSG','7012','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13759','geodetic_datum','EPSG','6700','EPSG','3277','EPSG','1241'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6701','Institut Geographique du Congo Belge 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6701','Institut Geographique du Congo Belge 1955',NULL,'EPSG','7012','EPSG','8901','1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13760','geodetic_datum','EPSG','6701','EPSG','3171','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6702','Mauritania 1999',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6702','Mauritania 1999',NULL,'EPSG','7019','EPSG','8901','1999-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13761','geodetic_datum','EPSG','6702','EPSG','1157','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6703','Missao Hidrografico Angola y Sao Tome 1951',NULL,'EPSG','7012','EPSG','8901','1951-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6703','Missao Hidrografico Angola y Sao Tome 1951',NULL,'EPSG','7012','EPSG','8901','1951-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13762','geodetic_datum','EPSG','6703','EPSG','1318','EPSG','1103'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6704','Mhast (onshore)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6704','Mhast (onshore)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13763','geodetic_datum','EPSG','6704','EPSG','3179','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6705','Mhast (offshore)',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6705','Mhast (offshore)',NULL,'EPSG','7022','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13764','geodetic_datum','EPSG','6705','EPSG','3180','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6706','Egypt Gulf of Suez S-650 TL',NULL,'EPSG','7020','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6706','Egypt Gulf of Suez S-650 TL',NULL,'EPSG','7020','EPSG','8901','1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13765','geodetic_datum','EPSG','6706','EPSG','2341','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6707','Tern Island 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6707','Tern Island 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13766','geodetic_datum','EPSG','6707','EPSG','3181','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6708','Cocos Islands 1965',NULL,'EPSG','7003','EPSG','8901','1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6708','Cocos Islands 1965',NULL,'EPSG','7003','EPSG','8901','1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13767','geodetic_datum','EPSG','6708','EPSG','1069','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6709','Iwo Jima 1945',NULL,'EPSG','7022','EPSG','8901','1945-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6709','Iwo Jima 1945',NULL,'EPSG','7022','EPSG','8901','1945-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13768','geodetic_datum','EPSG','6709','EPSG','3200','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6710','Astro DOS 71',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6710','Astro DOS 71',NULL,'EPSG','7022','EPSG','8901','1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13769','geodetic_datum','EPSG','6710','EPSG','3183','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6711','Marcus Island 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6711','Marcus Island 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13770','geodetic_datum','EPSG','6711','EPSG','1872','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6712','Ascension Island 1958',NULL,'EPSG','7022','EPSG','8901','1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6712','Ascension Island 1958',NULL,'EPSG','7022','EPSG','8901','1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13771','geodetic_datum','EPSG','6712','EPSG','3182','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6713','Ayabelle Lighthouse',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6713','Ayabelle Lighthouse',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13772','geodetic_datum','EPSG','6713','EPSG','1081','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6714','Bellevue',NULL,'EPSG','7022','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6714','Bellevue',NULL,'EPSG','7022','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13773','geodetic_datum','EPSG','6714','EPSG','3193','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6715','Camp Area Astro',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6715','Camp Area Astro',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13774','geodetic_datum','EPSG','6715','EPSG','3205','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6716','Phoenix Islands 1966',NULL,'EPSG','7022','EPSG','8901','1966-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6716','Phoenix Islands 1966',NULL,'EPSG','7022','EPSG','8901','1966-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13775','geodetic_datum','EPSG','6716','EPSG','3196','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6717','Cape Canaveral',NULL,'EPSG','7008','EPSG','8901','1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6717','Cape Canaveral',NULL,'EPSG','7008','EPSG','8901','1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13776','geodetic_datum','EPSG','6717','EPSG','3206','EPSG','1233'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6718','Solomon 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6718','Solomon 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13777','geodetic_datum','EPSG','6718','EPSG','1213','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6719','Easter Island 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6719','Easter Island 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13778','geodetic_datum','EPSG','6719','EPSG','3188','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6720','Fiji Geodetic Datum 1986',NULL,'EPSG','7043','EPSG','8901','1986-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6720','Fiji Geodetic Datum 1986',NULL,'EPSG','7043','EPSG','8901','1986-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13779','geodetic_datum','EPSG','6720','EPSG','1094','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6721','Fiji 1956',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6721','Fiji 1956',NULL,'EPSG','7022','EPSG','8901','1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13780','geodetic_datum','EPSG','6721','EPSG','3398','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6722','South Georgia 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6722','South Georgia 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13781','geodetic_datum','EPSG','6722','EPSG','3529','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6723','Grand Cayman Geodetic Datum 1959',NULL,'EPSG','7008','EPSG','8901','1959-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6723','Grand Cayman Geodetic Datum 1959',NULL,'EPSG','7008','EPSG','8901','1959-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13782','geodetic_datum','EPSG','6723','EPSG','3185','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6724','Diego Garcia 1969',NULL,'EPSG','7022','EPSG','8901','1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6724','Diego Garcia 1969',NULL,'EPSG','7022','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13783','geodetic_datum','EPSG','6724','EPSG','3189','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6725','Johnston Island 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6725','Johnston Island 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13784','geodetic_datum','EPSG','6725','EPSG','3201','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6726','Sister Islands Geodetic Datum 1961',NULL,'EPSG','7008','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6726','Sister Islands Geodetic Datum 1961',NULL,'EPSG','7008','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13785','geodetic_datum','EPSG','6726','EPSG','3186','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6727','Midway 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6727','Midway 1961',NULL,'EPSG','7022','EPSG','8901','1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13786','geodetic_datum','EPSG','6727','EPSG','3202','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6728','Pico de las Nieves 1984',NULL,'EPSG','7022','EPSG','8901','1984-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6728','Pico de las Nieves 1984',NULL,'EPSG','7022','EPSG','8901','1984-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13787','geodetic_datum','EPSG','6728','EPSG','4598','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6729','Pitcairn 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6729','Pitcairn 1967',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13788','geodetic_datum','EPSG','6729','EPSG','3208','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6730','Santo 1965',NULL,'EPSG','7022','EPSG','8901','1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6730','Santo 1965',NULL,'EPSG','7022','EPSG','8901','1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13789','geodetic_datum','EPSG','6730','EPSG','3194','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6731','Viti Levu 1916',NULL,'EPSG','7012','EPSG','8901','1916-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6731','Viti Levu 1916',NULL,'EPSG','7012','EPSG','8901','1916-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13790','geodetic_datum','EPSG','6731','EPSG','3195','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6732','Marshall Islands 1960',NULL,'EPSG','7053','EPSG','8901','1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6732','Marshall Islands 1960',NULL,'EPSG','7053','EPSG','8901','1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13791','geodetic_datum','EPSG','6732','EPSG','3191','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6733','Wake Island 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6733','Wake Island 1952',NULL,'EPSG','7022','EPSG','8901','1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13792','geodetic_datum','EPSG','6733','EPSG','3190','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6734','Tristan 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6734','Tristan 1968',NULL,'EPSG','7022','EPSG','8901','1968-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13793','geodetic_datum','EPSG','6734','EPSG','3184','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6735','Kusaie 1951',NULL,'EPSG','7022','EPSG','8901','1951-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6735','Kusaie 1951',NULL,'EPSG','7022','EPSG','8901','1951-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13794','geodetic_datum','EPSG','6735','EPSG','3192','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6736','Deception Island',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6736','Deception Island',NULL,'EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13795','geodetic_datum','EPSG','6736','EPSG','3204','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6737','Korean Geodetic Datum 2002',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6737','Korean Geodetic Datum 2002',NULL,'EPSG','7019','EPSG','8901','2002-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13796','geodetic_datum','EPSG','6737','EPSG','1135','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6738','Hong Kong 1963',NULL,'EPSG','7007','EPSG','8901','1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6738','Hong Kong 1963',NULL,'EPSG','7007','EPSG','8901','1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13797','geodetic_datum','EPSG','6738','EPSG','1118','EPSG','1201'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6739','Hong Kong 1963(67)',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6739','Hong Kong 1963(67)',NULL,'EPSG','7022','EPSG','8901','1967-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13798','geodetic_datum','EPSG','6739','EPSG','1118','EPSG','1160'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6740','Parametry Zemli 1990',NULL,'EPSG','7054','EPSG','8901','1990-01-01',1990.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6740','Parametry Zemli 1990',NULL,'EPSG','7054','EPSG','8901','1990-01-01',1990.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13799','geodetic_datum','EPSG','6740','EPSG','1262','EPSG','1177'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6741','Faroe Datum 1954',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6741','Faroe Datum 1954',NULL,'EPSG','7022','EPSG','8901','1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13800','geodetic_datum','EPSG','6741','EPSG','3248','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6742','Geodetic Datum of Malaysia 2000',NULL,'EPSG','7019','EPSG','8901','2003-08-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6742','Geodetic Datum of Malaysia 2000',NULL,'EPSG','7019','EPSG','8901','2003-08-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13801','geodetic_datum','EPSG','6742','EPSG','1151','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6743','Karbala 1979',NULL,'EPSG','7012','EPSG','8901','1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6743','Karbala 1979',NULL,'EPSG','7012','EPSG','8901','1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13802','geodetic_datum','EPSG','6743','EPSG','3625','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6744','Nahrwan 1934',NULL,'EPSG','7012','EPSG','8901','1934-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6744','Nahrwan 1934',NULL,'EPSG','7012','EPSG','8901','1934-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13803','geodetic_datum','EPSG','6744','EPSG','4238','EPSG','1136'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6745','Rauenberg Datum/83',NULL,'EPSG','7004','EPSG','8901','1983-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6745','Rauenberg Datum/83',NULL,'EPSG','7004','EPSG','8901','1983-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13804','geodetic_datum','EPSG','6745','EPSG','2545','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6746','Potsdam Datum/83',NULL,'EPSG','7004','EPSG','8901','1983-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6746','Potsdam Datum/83',NULL,'EPSG','7004','EPSG','8901','1983-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13805','geodetic_datum','EPSG','6746','EPSG','2544','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6747','Greenland 1996',NULL,'EPSG','7019','EPSG','8901','1996-08-14',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6747','Greenland 1996',NULL,'EPSG','7019','EPSG','8901','1996-08-14',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13806','geodetic_datum','EPSG','6747','EPSG','1107','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6748','Vanua Levu 1915',NULL,'EPSG','7055','EPSG','8901','1915-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6748','Vanua Levu 1915',NULL,'EPSG','7055','EPSG','8901','1915-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13807','geodetic_datum','EPSG','6748','EPSG','3401','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6749','Reseau Geodesique de Nouvelle Caledonie 91-93',NULL,'EPSG','7019','EPSG','8901','1989-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6749','Reseau Geodesique de Nouvelle Caledonie 91-93',NULL,'EPSG','7019','EPSG','8901','1989-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13808','geodetic_datum','EPSG','6749','EPSG','1174','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6750','ST87 Ouvea',NULL,'EPSG','7030','EPSG','8901','1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6750','ST87 Ouvea',NULL,'EPSG','7030','EPSG','8901','1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13809','geodetic_datum','EPSG','6750','EPSG','2813','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6751','Kertau (RSO)',NULL,'EPSG','7056','EPSG','8901','1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6751','Kertau (RSO)',NULL,'EPSG','7056','EPSG','8901','1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13810','geodetic_datum','EPSG','6751','EPSG','1309','EPSG','1250'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6752','Viti Levu 1912',NULL,'EPSG','7055','EPSG','8901','1912-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6752','Viti Levu 1912',NULL,'EPSG','7055','EPSG','8901','1912-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13811','geodetic_datum','EPSG','6752','EPSG','3195','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6753','fk89',NULL,'EPSG','7022','EPSG','8901','1989-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6753','fk89',NULL,'EPSG','7022','EPSG','8901','1989-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13812','geodetic_datum','EPSG','6753','EPSG','3248','EPSG','1028'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6754','Libyan Geodetic Datum 2006',NULL,'EPSG','7022','EPSG','8901','2006-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6754','Libyan Geodetic Datum 2006',NULL,'EPSG','7022','EPSG','8901','2006-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13813','geodetic_datum','EPSG','6754','EPSG','1143','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6755','Datum Geodesi Nasional 1995',NULL,'EPSG','7030','EPSG','8901','1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6755','Datum Geodesi Nasional 1995',NULL,'EPSG','7030','EPSG','8901','1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13814','geodetic_datum','EPSG','6755','EPSG','1122','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6756','Vietnam 2000',NULL,'EPSG','7030','EPSG','8901','2000-07-12',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6756','Vietnam 2000',NULL,'EPSG','7030','EPSG','8901','2000-07-12',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13815','geodetic_datum','EPSG','6756','EPSG','3328','EPSG','1178'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6757','SVY21',NULL,'EPSG','7030','EPSG','8901','2004-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6757','SVY21',NULL,'EPSG','7030','EPSG','8901','2004-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13816','geodetic_datum','EPSG','6757','EPSG','1210','EPSG','1028'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6758','Jamaica 2001',NULL,'EPSG','7030','EPSG','8901','2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6758','Jamaica 2001',NULL,'EPSG','7030','EPSG','8901','2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13817','geodetic_datum','EPSG','6758','EPSG','1128','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6759','NAD83 (National Spatial Reference System 2007)',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6759','NAD83 (National Spatial Reference System 2007)',NULL,'EPSG','7019','EPSG','8901','2007-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13818','geodetic_datum','EPSG','6759','EPSG','1511','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6760','World Geodetic System 1966',NULL,'EPSG','7025','EPSG','8901','1966-01-01',1966.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6760','World Geodetic System 1966',NULL,'EPSG','7025','EPSG','8901','1966-01-01',1966.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13819','geodetic_datum','EPSG','6760','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6761','Croatian Terrestrial Reference System',NULL,'EPSG','7019','EPSG','8901','1995-07-20',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6761','Croatian Terrestrial Reference System',NULL,'EPSG','7019','EPSG','8901','1995-07-20',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13820','geodetic_datum','EPSG','6761','EPSG','1076','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6762','Bermuda 2000',NULL,'EPSG','7030','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6762','Bermuda 2000',NULL,'EPSG','7030','EPSG','8901','2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13821','geodetic_datum','EPSG','6762','EPSG','1047','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6763','Pitcairn 2006',NULL,'EPSG','7030','EPSG','8901','2006-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6763','Pitcairn 2006',NULL,'EPSG','7030','EPSG','8901','2006-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13822','geodetic_datum','EPSG','6763','EPSG','3208','EPSG','1056'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6764','Ross Sea Region Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6764','Ross Sea Region Geodetic Datum 2000',NULL,'EPSG','7019','EPSG','8901','2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13823','geodetic_datum','EPSG','6764','EPSG','3558','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6765','Slovenia Geodetic Datum 1996',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6765','Slovenia Geodetic Datum 1996',NULL,'EPSG','7019','EPSG','8901','1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13824','geodetic_datum','EPSG','6765','EPSG','1212','EPSG','1180'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6801','CH1903 (Bern)',NULL,'EPSG','7004','EPSG','8907','1903-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6801','CH1903 (Bern)',NULL,'EPSG','7004','EPSG','8907','1903-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13825','geodetic_datum','EPSG','6801','EPSG','1286','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6802','Bogota 1975 (Bogota)',NULL,'EPSG','7022','EPSG','8904','1975-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6802','Bogota 1975 (Bogota)',NULL,'EPSG','7022','EPSG','8904','1975-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13826','geodetic_datum','EPSG','6802','EPSG','3229','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6803','Lisbon 1937 (Lisbon)',NULL,'EPSG','7022','EPSG','8902','1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6803','Lisbon 1937 (Lisbon)',NULL,'EPSG','7022','EPSG','8902','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13827','geodetic_datum','EPSG','6803','EPSG','1294','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6804','Makassar (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6804','Makassar (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13828','geodetic_datum','EPSG','6804','EPSG','1316','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6805','Militar-Geographische Institut (Ferro)',NULL,'EPSG','7004','EPSG','8909','1901-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6805','Militar-Geographische Institut (Ferro)',NULL,'EPSG','7004','EPSG','8909','1901-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13829','geodetic_datum','EPSG','6805','EPSG','1321','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6806','Monte Mario (Rome)',NULL,'EPSG','7022','EPSG','8906',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6806','Monte Mario (Rome)',NULL,'EPSG','7022','EPSG','8906',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13830','geodetic_datum','EPSG','6806','EPSG','3343','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6807','Nouvelle Triangulation Francaise (Paris)',NULL,'EPSG','7011','EPSG','8903','1895-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6807','Nouvelle Triangulation Francaise (Paris)',NULL,'EPSG','7011','EPSG','8903','1895-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13831','geodetic_datum','EPSG','6807','EPSG','3694','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6808','Padang 1884 (Jakarta)',NULL,'EPSG','7004','EPSG','8908','1884-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6808','Padang 1884 (Jakarta)',NULL,'EPSG','7004','EPSG','8908','1884-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13832','geodetic_datum','EPSG','6808','EPSG','1355','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6809','Reseau National Belge 1950 (Brussels)',NULL,'EPSG','7022','EPSG','8910','1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6809','Reseau National Belge 1950 (Brussels)',NULL,'EPSG','7022','EPSG','8910','1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13833','geodetic_datum','EPSG','6809','EPSG','1347','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6810','Tananarive 1925 (Paris)',NULL,'EPSG','7022','EPSG','8903','1925-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6810','Tananarive 1925 (Paris)',NULL,'EPSG','7022','EPSG','8903','1925-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13834','geodetic_datum','EPSG','6810','EPSG','3273','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6811','Voirol 1875 (Paris)',NULL,'EPSG','7011','EPSG','8903','1875-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6811','Voirol 1875 (Paris)',NULL,'EPSG','7011','EPSG','8903','1875-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13835','geodetic_datum','EPSG','6811','EPSG','1365','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6813','Batavia (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6813','Batavia (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13836','geodetic_datum','EPSG','6813','EPSG','1285','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6814','Stockholm 1938 (Stockholm)',NULL,'EPSG','7004','EPSG','8911','1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6814','Stockholm 1938 (Stockholm)',NULL,'EPSG','7004','EPSG','8911','1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13837','geodetic_datum','EPSG','6814','EPSG','3313','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6815','Greek (Athens)',NULL,'EPSG','7004','EPSG','8912',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6815','Greek (Athens)',NULL,'EPSG','7004','EPSG','8912',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13838','geodetic_datum','EPSG','6815','EPSG','3254','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6816','Carthage (Paris)',NULL,'EPSG','7011','EPSG','8903','1925-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6816','Carthage (Paris)',NULL,'EPSG','7011','EPSG','8903','1925-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13839','geodetic_datum','EPSG','6816','EPSG','1618','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6817','NGO 1948 (Oslo)',NULL,'EPSG','7005','EPSG','8913','1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6817','NGO 1948 (Oslo)',NULL,'EPSG','7005','EPSG','8913','1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13840','geodetic_datum','EPSG','6817','EPSG','1352','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6818','System of the Unified Trigonometrical Cadastral Network (Ferro)',NULL,'EPSG','7004','EPSG','8909','1920-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6818','System of the Unified Trigonometrical Cadastral Network (Ferro)',NULL,'EPSG','7004','EPSG','8909','1920-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13841','geodetic_datum','EPSG','6818','EPSG','1306','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6819','Nord Sahara 1959 (Paris)',NULL,'EPSG','7012','EPSG','8903','1959-01-01',NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6819','Nord Sahara 1959 (Paris)',NULL,'EPSG','7012','EPSG','8903','1959-01-01',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13842','geodetic_datum','EPSG','6819','EPSG','1366','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6820','Gunung Segara (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6820','Gunung Segara (Jakarta)',NULL,'EPSG','7004','EPSG','8908',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13843','geodetic_datum','EPSG','6820','EPSG','1360','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6821','Voirol 1879 (Paris)',NULL,'EPSG','7011','EPSG','8903','1879-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6821','Voirol 1879 (Paris)',NULL,'EPSG','7011','EPSG','8903','1879-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13844','geodetic_datum','EPSG','6821','EPSG','1365','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6896','International Terrestrial Reference Frame 2005',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6896','International Terrestrial Reference Frame 2005',NULL,'EPSG','7019','EPSG','8901','2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13845','geodetic_datum','EPSG','6896','EPSG','1262','EPSG','1027'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6901','Ancienne Triangulation Francaise (Paris)',NULL,'EPSG','7027','EPSG','8914',NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6901','Ancienne Triangulation Francaise (Paris)',NULL,'EPSG','7027','EPSG','8914',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13846','geodetic_datum','EPSG','6901','EPSG','1326','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6902','Nord de Guerre (Paris)',NULL,'EPSG','7027','EPSG','8903',NULL,NULL,NULL,NULL,1); +INSERT INTO "geodetic_datum" VALUES('EPSG','6902','Nord de Guerre (Paris)',NULL,'EPSG','7027','EPSG','8903',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13847','geodetic_datum','EPSG','6902','EPSG','1369','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6903','Madrid 1870 (Madrid)',NULL,'EPSG','7028','EPSG','8905','1870-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6903','Madrid 1870 (Madrid)',NULL,'EPSG','7028','EPSG','8905','1870-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13848','geodetic_datum','EPSG','6903','EPSG','2366','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6904','Lisbon 1890 (Lisbon)',NULL,'EPSG','7004','EPSG','8902','1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6904','Lisbon 1890 (Lisbon)',NULL,'EPSG','7004','EPSG','8902','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13849','geodetic_datum','EPSG','6904','EPSG','1294','EPSG','1153'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6258','European Terrestrial Reference System 1989 ensemble',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,0.1,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6258','European Terrestrial Reference System 1989 ensemble',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,0.1,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14235','geodetic_datum','EPSG','6258','EPSG','1298','EPSG','1026'); -INSERT INTO "geodetic_datum" VALUES('EPSG','6326','World Geodetic System 1984 ensemble',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,2.0,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','6326','World Geodetic System 1984 ensemble',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,2.0,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14343','geodetic_datum','EPSG','6326','EPSG','1262','EPSG','1245'); diff --git a/data/sql/iau.sql b/data/sql/iau.sql index 5d982d3db9..fed10cb104 100644 --- a/data/sql/iau.sql +++ b/data/sql/iau.sql @@ -46,7 +46,7 @@ INSERT INTO usage VALUES('IAU_2015','CONV_90','conversion','IAU_2015',90,'PROJ', INSERT INTO celestial_body VALUES('IAU_2015', 10, 'Sun', 695700000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 1000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',1000,'Sun (2015) - Sphere',NULL,'IAU_2015',10,695700000.000000,'EPSG','9001',NULL,695700000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',1000,'Sun (2015) - Sphere','','IAU_2015',1000,'IAU_2015',1000,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',1000,'Sun (2015) - Sphere','','IAU_2015',1000,'IAU_2015',1000,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_1000','geodetic_datum','IAU_2015',1000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',1000,'Sun (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',1000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_1000','geodetic_crs','IAU_2015',1000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -87,7 +87,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_1090','projected_crs','IAU_2015',1090, INSERT INTO celestial_body VALUES('IAU_2015', 199, 'Mercury', 2440530.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 19900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',19900,'Mercury (2015) - Sphere',NULL,'IAU_2015',199,2440530.000000,'EPSG','9001',NULL,2440530.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',19900,'Mercury (2015) - Sphere','','IAU_2015',19900,'IAU_2015',19900,NULL,NULL,NULL,'Hun Kal: 20 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',19900,'Mercury (2015) - Sphere','','IAU_2015',19900,'IAU_2015',19900,NULL,NULL,NULL,'Hun Kal: 20 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_19900','geodetic_datum','IAU_2015',19900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',19900,'Mercury (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',19900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_19900','geodetic_crs','IAU_2015',19900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -126,7 +126,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_19985','projected_crs','IAU_2015',1998 INSERT INTO projected_crs VALUES('IAU_2015',19990,'Mercury (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',19900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_19990','projected_crs','IAU_2015',19990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',19901,'Mercury (2015)',NULL,'IAU_2015',199,2440530.000000,'EPSG','9001',NULL,2438260.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',19901,'Mercury (2015)','','IAU_2015',19901,'IAU_2015',19900,NULL,NULL,NULL,'Hun Kal: 20 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',19901,'Mercury (2015)','','IAU_2015',19901,'IAU_2015',19900,NULL,NULL,NULL,'Hun Kal: 20 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_19901','geodetic_datum','IAU_2015',19901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',19901,'Mercury (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',19901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_19901','geodetic_crs','IAU_2015',19901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -203,7 +203,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_19992','projected_crs','IAU_2015',1999 INSERT INTO celestial_body VALUES('IAU_2015', 299, 'Venus', 6051800.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 29900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',29900,'Venus (2015) - Sphere',NULL,'IAU_2015',299,6051800.000000,'EPSG','9001',NULL,6051800.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',29900,'Venus (2015) - Sphere','','IAU_2015',29900,'IAU_2015',29900,NULL,NULL,NULL,'Ariadne: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',29900,'Venus (2015) - Sphere','','IAU_2015',29900,'IAU_2015',29900,NULL,NULL,NULL,'Ariadne: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_29900','geodetic_datum','IAU_2015',29900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',29900,'Venus (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',29900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_29900','geodetic_crs','IAU_2015',29900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -244,7 +244,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_29990','projected_crs','IAU_2015',2999 INSERT INTO celestial_body VALUES('IAU_2015', 399, 'Earth', 6378136.600000); INSERT INTO prime_meridian VALUES('IAU_2015', 39900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',39900,'Earth (2015) - Sphere',NULL,'IAU_2015',399,6378136.600000,'EPSG','9001',NULL,6378136.600000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',39900,'Earth (2015) - Sphere','','IAU_2015',39900,'IAU_2015',39900,NULL,NULL,NULL,'Greenwich: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',39900,'Earth (2015) - Sphere','','IAU_2015',39900,'IAU_2015',39900,NULL,NULL,NULL,'Greenwich: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_39900','geodetic_datum','IAU_2015',39900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',39900,'Earth (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',39900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_39900','geodetic_crs','IAU_2015',39900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -283,7 +283,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_39985','projected_crs','IAU_2015',3998 INSERT INTO projected_crs VALUES('IAU_2015',39990,'Earth (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',39900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_39990','projected_crs','IAU_2015',39990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',39901,'Earth (2015)',NULL,'IAU_2015',399,6378136.600000,'EPSG','9001',NULL,6356751.900000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',39901,'Earth (2015)','','IAU_2015',39901,'IAU_2015',39900,NULL,NULL,NULL,'Greenwich: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',39901,'Earth (2015)','','IAU_2015',39901,'IAU_2015',39900,NULL,NULL,NULL,'Greenwich: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_39901','geodetic_datum','IAU_2015',39901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',39901,'Earth (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',39901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_39901','geodetic_crs','IAU_2015',39901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -326,7 +326,7 @@ INSERT INTO usage VALUES('IAU_2015','GCRS_39902','geodetic_crs','IAU_2015',39902 INSERT INTO celestial_body VALUES('IAU_2015', 301, 'Moon', 1737400.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 30100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',30100,'Moon (2015) - Sphere',NULL,'IAU_2015',301,1737400.000000,'EPSG','9001',NULL,1737400.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',30100,'Moon (2015) - Sphere','','IAU_2015',30100,'IAU_2015',30100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',30100,'Moon (2015) - Sphere','','IAU_2015',30100,'IAU_2015',30100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_30100','geodetic_datum','IAU_2015',30100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',30100,'Moon (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',30100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_30100','geodetic_crs','IAU_2015',30100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -367,7 +367,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_30190','projected_crs','IAU_2015',3019 INSERT INTO celestial_body VALUES('IAU_2015', 499, 'Mars', 3396190.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 49900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',49900,'Mars (2015) - Sphere',NULL,'IAU_2015',499,3396190.000000,'EPSG','9001',NULL,3396190.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',49900,'Mars (2015) - Sphere','','IAU_2015',49900,'IAU_2015',49900,NULL,NULL,NULL,'Viking 1 lander: 47.95137 W',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',49900,'Mars (2015) - Sphere','','IAU_2015',49900,'IAU_2015',49900,NULL,NULL,NULL,'Viking 1 lander: 47.95137 W',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_49900','geodetic_datum','IAU_2015',49900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',49900,'Mars (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',49900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_49900','geodetic_crs','IAU_2015',49900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -406,7 +406,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_49985','projected_crs','IAU_2015',4998 INSERT INTO projected_crs VALUES('IAU_2015',49990,'Mars (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',49900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_49990','projected_crs','IAU_2015',49990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',49901,'Mars (2015)',NULL,'IAU_2015',499,3396190.000000,'EPSG','9001',NULL,3376200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',49901,'Mars (2015)','','IAU_2015',49901,'IAU_2015',49900,NULL,NULL,NULL,'Viking 1 lander: 47.95137 W',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',49901,'Mars (2015)','','IAU_2015',49901,'IAU_2015',49900,NULL,NULL,NULL,'Viking 1 lander: 47.95137 W',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_49901','geodetic_datum','IAU_2015',49901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',49901,'Mars (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',49901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_49901','geodetic_crs','IAU_2015',49901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -483,7 +483,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_49992','projected_crs','IAU_2015',4999 INSERT INTO celestial_body VALUES('IAU_2015', 401, 'Phobos', 11080.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 40100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',40100,'Phobos (2015) - Sphere',NULL,'IAU_2015',401,11080.000000,'EPSG','9001',NULL,11080.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',40100,'Phobos (2015) - Sphere','','IAU_2015',40100,'IAU_2015',40100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',40100,'Phobos (2015) - Sphere','','IAU_2015',40100,'IAU_2015',40100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_40100','geodetic_datum','IAU_2015',40100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',40100,'Phobos (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',40100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_40100','geodetic_crs','IAU_2015',40100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -524,7 +524,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_40190','projected_crs','IAU_2015',4019 INSERT INTO celestial_body VALUES('IAU_2015', 402, 'Deimos', 6200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 40200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',40200,'Deimos (2015) - Sphere',NULL,'IAU_2015',402,6200.000000,'EPSG','9001',NULL,6200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',40200,'Deimos (2015) - Sphere','','IAU_2015',40200,'IAU_2015',40200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',40200,'Deimos (2015) - Sphere','','IAU_2015',40200,'IAU_2015',40200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_40200','geodetic_datum','IAU_2015',40200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',40200,'Deimos (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',40200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_40200','geodetic_crs','IAU_2015',40200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -565,7 +565,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_40290','projected_crs','IAU_2015',4029 INSERT INTO celestial_body VALUES('IAU_2015', 599, 'Jupiter', 71492000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 59900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',59900,'Jupiter (2015) - Sphere',NULL,'IAU_2015',599,71492000.000000,'EPSG','9001',NULL,71492000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',59900,'Jupiter (2015) - Sphere','','IAU_2015',59900,'IAU_2015',59900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',59900,'Jupiter (2015) - Sphere','','IAU_2015',59900,'IAU_2015',59900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_59900','geodetic_datum','IAU_2015',59900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',59900,'Jupiter (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',59900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_59900','geodetic_crs','IAU_2015',59900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -604,7 +604,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_59985','projected_crs','IAU_2015',5998 INSERT INTO projected_crs VALUES('IAU_2015',59990,'Jupiter (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',59900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_59990','projected_crs','IAU_2015',59990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',59901,'Jupiter (2015)',NULL,'IAU_2015',599,71492000.000000,'EPSG','9001',NULL,66854000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',59901,'Jupiter (2015)','','IAU_2015',59901,'IAU_2015',59900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',59901,'Jupiter (2015)','','IAU_2015',59901,'IAU_2015',59900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_59901','geodetic_datum','IAU_2015',59901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',59901,'Jupiter (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',59901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_59901','geodetic_crs','IAU_2015',59901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -681,7 +681,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_59992','projected_crs','IAU_2015',5999 INSERT INTO celestial_body VALUES('IAU_2015', 501, 'Io', 1821490.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50100,'Io (2015) - Sphere',NULL,'IAU_2015',501,1821490.000000,'EPSG','9001',NULL,1821490.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50100,'Io (2015) - Sphere','','IAU_2015',50100,'IAU_2015',50100,NULL,NULL,NULL,'The mean sub-Jovian direction: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50100,'Io (2015) - Sphere','','IAU_2015',50100,'IAU_2015',50100,NULL,NULL,NULL,'The mean sub-Jovian direction: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50100','geodetic_datum','IAU_2015',50100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50100,'Io (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50100','geodetic_crs','IAU_2015',50100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -722,7 +722,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50190','projected_crs','IAU_2015',5019 INSERT INTO celestial_body VALUES('IAU_2015', 502, 'Europa', 1560800.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50200,'Europa (2015) - Sphere',NULL,'IAU_2015',502,1560800.000000,'EPSG','9001',NULL,1560800.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50200,'Europa (2015) - Sphere','','IAU_2015',50200,'IAU_2015',50200,NULL,NULL,NULL,'Cilix: 182 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50200,'Europa (2015) - Sphere','','IAU_2015',50200,'IAU_2015',50200,NULL,NULL,NULL,'Cilix: 182 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50200','geodetic_datum','IAU_2015',50200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50200,'Europa (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50200','geodetic_crs','IAU_2015',50200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -763,7 +763,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50290','projected_crs','IAU_2015',5029 INSERT INTO celestial_body VALUES('IAU_2015', 503, 'Ganymede', 2631200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50300,'Ganymede (2015) - Sphere',NULL,'IAU_2015',503,2631200.000000,'EPSG','9001',NULL,2631200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50300,'Ganymede (2015) - Sphere','','IAU_2015',50300,'IAU_2015',50300,NULL,NULL,NULL,'Anat: 128 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50300,'Ganymede (2015) - Sphere','','IAU_2015',50300,'IAU_2015',50300,NULL,NULL,NULL,'Anat: 128 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50300','geodetic_datum','IAU_2015',50300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50300,'Ganymede (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50300','geodetic_crs','IAU_2015',50300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -802,7 +802,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50385','projected_crs','IAU_2015',5038 INSERT INTO projected_crs VALUES('IAU_2015',50390,'Ganymede (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',50300,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_50390','projected_crs','IAU_2015',50390,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',50301,'Ganymede (2015)',NULL,'IAU_2015',503,2631200.000000,'EPSG','9001',NULL,2631200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50301,'Ganymede (2015)','','IAU_2015',50301,'IAU_2015',50300,NULL,NULL,NULL,'Anat: 128 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50301,'Ganymede (2015)','','IAU_2015',50301,'IAU_2015',50300,NULL,NULL,NULL,'Anat: 128 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50301','geodetic_datum','IAU_2015',50301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50301,'Ganymede (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',50301,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50301','geodetic_crs','IAU_2015',50301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -843,7 +843,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50391','projected_crs','IAU_2015',5039 INSERT INTO celestial_body VALUES('IAU_2015', 504, 'Callisto', 2410300.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50400,'Callisto (2015) - Sphere',NULL,'IAU_2015',504,2410300.000000,'EPSG','9001',NULL,2410300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50400,'Callisto (2015) - Sphere','','IAU_2015',50400,'IAU_2015',50400,NULL,NULL,NULL,'Saga: 326 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50400,'Callisto (2015) - Sphere','','IAU_2015',50400,'IAU_2015',50400,NULL,NULL,NULL,'Saga: 326 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50400','geodetic_datum','IAU_2015',50400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50400,'Callisto (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50400','geodetic_crs','IAU_2015',50400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -882,7 +882,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50485','projected_crs','IAU_2015',5048 INSERT INTO projected_crs VALUES('IAU_2015',50490,'Callisto (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',50400,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_50490','projected_crs','IAU_2015',50490,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',50401,'Callisto (2015)',NULL,'IAU_2015',504,2410300.000000,'EPSG','9001',NULL,2410300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50401,'Callisto (2015)','','IAU_2015',50401,'IAU_2015',50400,NULL,NULL,NULL,'Saga: 326 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50401,'Callisto (2015)','','IAU_2015',50401,'IAU_2015',50400,NULL,NULL,NULL,'Saga: 326 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50401','geodetic_datum','IAU_2015',50401,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50401,'Callisto (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',50401,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50401','geodetic_crs','IAU_2015',50401,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -923,7 +923,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50491','projected_crs','IAU_2015',5049 INSERT INTO celestial_body VALUES('IAU_2015', 505, 'Amalthea', 83500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50500,'Amalthea (2015) - Sphere',NULL,'IAU_2015',505,83500.000000,'EPSG','9001',NULL,83500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50500,'Amalthea (2015) - Sphere','','IAU_2015',50500,'IAU_2015',50500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50500,'Amalthea (2015) - Sphere','','IAU_2015',50500,'IAU_2015',50500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50500','geodetic_datum','IAU_2015',50500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50500,'Amalthea (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50500','geodetic_crs','IAU_2015',50500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -964,7 +964,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50590','projected_crs','IAU_2015',5059 INSERT INTO celestial_body VALUES('IAU_2015', 506, 'Himalia', 85000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50600,'Himalia (2015) - Sphere',NULL,'IAU_2015',506,85000.000000,'EPSG','9001',NULL,85000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50600,'Himalia (2015) - Sphere','','IAU_2015',50600,'IAU_2015',50600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50600,'Himalia (2015) - Sphere','','IAU_2015',50600,'IAU_2015',50600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50600','geodetic_datum','IAU_2015',50600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50600,'Himalia (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50600','geodetic_crs','IAU_2015',50600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1005,7 +1005,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50690','projected_crs','IAU_2015',5069 INSERT INTO celestial_body VALUES('IAU_2015', 507, 'Elara', 40000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50700,'Elara (2015) - Sphere',NULL,'IAU_2015',507,40000.000000,'EPSG','9001',NULL,40000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50700,'Elara (2015) - Sphere','','IAU_2015',50700,'IAU_2015',50700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50700,'Elara (2015) - Sphere','','IAU_2015',50700,'IAU_2015',50700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50700','geodetic_datum','IAU_2015',50700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50700,'Elara (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50700','geodetic_crs','IAU_2015',50700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1046,7 +1046,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50790','projected_crs','IAU_2015',5079 INSERT INTO celestial_body VALUES('IAU_2015', 508, 'Pasiphae', 18000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50800, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50800,'Pasiphae (2015) - Sphere',NULL,'IAU_2015',508,18000.000000,'EPSG','9001',NULL,18000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50800,'Pasiphae (2015) - Sphere','','IAU_2015',50800,'IAU_2015',50800,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50800,'Pasiphae (2015) - Sphere','','IAU_2015',50800,'IAU_2015',50800,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50800','geodetic_datum','IAU_2015',50800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50800,'Pasiphae (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50800,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50800','geodetic_crs','IAU_2015',50800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1087,7 +1087,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50890','projected_crs','IAU_2015',5089 INSERT INTO celestial_body VALUES('IAU_2015', 509, 'Sinope', 14000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 50900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',50900,'Sinope (2015) - Sphere',NULL,'IAU_2015',509,14000.000000,'EPSG','9001',NULL,14000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',50900,'Sinope (2015) - Sphere','','IAU_2015',50900,'IAU_2015',50900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',50900,'Sinope (2015) - Sphere','','IAU_2015',50900,'IAU_2015',50900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_50900','geodetic_datum','IAU_2015',50900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',50900,'Sinope (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',50900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_50900','geodetic_crs','IAU_2015',50900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1128,7 +1128,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_50990','projected_crs','IAU_2015',5099 INSERT INTO celestial_body VALUES('IAU_2015', 510, 'Lysithea', 12000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51000,'Lysithea (2015) - Sphere',NULL,'IAU_2015',510,12000.000000,'EPSG','9001',NULL,12000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51000,'Lysithea (2015) - Sphere','','IAU_2015',51000,'IAU_2015',51000,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51000,'Lysithea (2015) - Sphere','','IAU_2015',51000,'IAU_2015',51000,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51000','geodetic_datum','IAU_2015',51000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51000,'Lysithea (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51000','geodetic_crs','IAU_2015',51000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1169,7 +1169,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51090','projected_crs','IAU_2015',5109 INSERT INTO celestial_body VALUES('IAU_2015', 511, 'Carme', 15000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51100,'Carme (2015) - Sphere',NULL,'IAU_2015',511,15000.000000,'EPSG','9001',NULL,15000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51100,'Carme (2015) - Sphere','','IAU_2015',51100,'IAU_2015',51100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51100,'Carme (2015) - Sphere','','IAU_2015',51100,'IAU_2015',51100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51100','geodetic_datum','IAU_2015',51100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51100,'Carme (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51100','geodetic_crs','IAU_2015',51100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1210,7 +1210,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51190','projected_crs','IAU_2015',5119 INSERT INTO celestial_body VALUES('IAU_2015', 512, 'Ananke', 10000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51200,'Ananke (2015) - Sphere',NULL,'IAU_2015',512,10000.000000,'EPSG','9001',NULL,10000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51200,'Ananke (2015) - Sphere','','IAU_2015',51200,'IAU_2015',51200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51200,'Ananke (2015) - Sphere','','IAU_2015',51200,'IAU_2015',51200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51200','geodetic_datum','IAU_2015',51200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51200,'Ananke (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51200','geodetic_crs','IAU_2015',51200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1251,7 +1251,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51290','projected_crs','IAU_2015',5129 INSERT INTO celestial_body VALUES('IAU_2015', 513, 'Leda', 5000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51300,'Leda (2015) - Sphere',NULL,'IAU_2015',513,5000.000000,'EPSG','9001',NULL,5000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51300,'Leda (2015) - Sphere','','IAU_2015',51300,'IAU_2015',51300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51300,'Leda (2015) - Sphere','','IAU_2015',51300,'IAU_2015',51300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51300','geodetic_datum','IAU_2015',51300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51300,'Leda (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51300','geodetic_crs','IAU_2015',51300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1292,7 +1292,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51390','projected_crs','IAU_2015',5139 INSERT INTO celestial_body VALUES('IAU_2015', 514, 'Thebe', 49300.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51400,'Thebe (2015) - Sphere',NULL,'IAU_2015',514,49300.000000,'EPSG','9001',NULL,49300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51400,'Thebe (2015) - Sphere','','IAU_2015',51400,'IAU_2015',51400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51400,'Thebe (2015) - Sphere','','IAU_2015',51400,'IAU_2015',51400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51400','geodetic_datum','IAU_2015',51400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51400,'Thebe (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51400','geodetic_crs','IAU_2015',51400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1333,7 +1333,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51490','projected_crs','IAU_2015',5149 INSERT INTO celestial_body VALUES('IAU_2015', 515, 'Adrastea', 8200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51500,'Adrastea (2015) - Sphere',NULL,'IAU_2015',515,8200.000000,'EPSG','9001',NULL,8200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51500,'Adrastea (2015) - Sphere','','IAU_2015',51500,'IAU_2015',51500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51500,'Adrastea (2015) - Sphere','','IAU_2015',51500,'IAU_2015',51500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51500','geodetic_datum','IAU_2015',51500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51500,'Adrastea (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51500','geodetic_crs','IAU_2015',51500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1374,7 +1374,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51590','projected_crs','IAU_2015',5159 INSERT INTO celestial_body VALUES('IAU_2015', 516, 'Metis', 21500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 51600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',51600,'Metis (2015) - Sphere',NULL,'IAU_2015',516,21500.000000,'EPSG','9001',NULL,21500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',51600,'Metis (2015) - Sphere','','IAU_2015',51600,'IAU_2015',51600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',51600,'Metis (2015) - Sphere','','IAU_2015',51600,'IAU_2015',51600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_51600','geodetic_datum','IAU_2015',51600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',51600,'Metis (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',51600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_51600','geodetic_crs','IAU_2015',51600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1449,7 +1449,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_51690','projected_crs','IAU_2015',5169 INSERT INTO celestial_body VALUES('IAU_2015', 699, 'Saturn', 60268000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 69900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',69900,'Saturn (2015) - Sphere',NULL,'IAU_2015',699,60268000.000000,'EPSG','9001',NULL,60268000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',69900,'Saturn (2015) - Sphere','','IAU_2015',69900,'IAU_2015',69900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',69900,'Saturn (2015) - Sphere','','IAU_2015',69900,'IAU_2015',69900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_69900','geodetic_datum','IAU_2015',69900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',69900,'Saturn (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',69900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_69900','geodetic_crs','IAU_2015',69900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1488,7 +1488,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_69985','projected_crs','IAU_2015',6998 INSERT INTO projected_crs VALUES('IAU_2015',69990,'Saturn (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',69900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_69990','projected_crs','IAU_2015',69990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',69901,'Saturn (2015)',NULL,'IAU_2015',699,60268000.000000,'EPSG','9001',NULL,54364000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',69901,'Saturn (2015)','','IAU_2015',69901,'IAU_2015',69900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',69901,'Saturn (2015)','','IAU_2015',69901,'IAU_2015',69900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_69901','geodetic_datum','IAU_2015',69901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',69901,'Saturn (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',69901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_69901','geodetic_crs','IAU_2015',69901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1565,7 +1565,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_69992','projected_crs','IAU_2015',6999 INSERT INTO celestial_body VALUES('IAU_2015', 601, 'Mimas', 198200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60100,'Mimas (2015) - Sphere',NULL,'IAU_2015',601,198200.000000,'EPSG','9001',NULL,198200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60100,'Mimas (2015) - Sphere','','IAU_2015',60100,'IAU_2015',60100,NULL,NULL,NULL,'Palomides: 162 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60100,'Mimas (2015) - Sphere','','IAU_2015',60100,'IAU_2015',60100,NULL,NULL,NULL,'Palomides: 162 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60100','geodetic_datum','IAU_2015',60100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60100,'Mimas (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60100','geodetic_crs','IAU_2015',60100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1606,7 +1606,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60190','projected_crs','IAU_2015',6019 INSERT INTO celestial_body VALUES('IAU_2015', 602, 'Enceladus', 252100.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60200,'Enceladus (2015) - Sphere',NULL,'IAU_2015',602,252100.000000,'EPSG','9001',NULL,252100.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60200,'Enceladus (2015) - Sphere','','IAU_2015',60200,'IAU_2015',60200,NULL,NULL,NULL,'Salih: 5 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60200,'Enceladus (2015) - Sphere','','IAU_2015',60200,'IAU_2015',60200,NULL,NULL,NULL,'Salih: 5 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60200','geodetic_datum','IAU_2015',60200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60200,'Enceladus (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60200','geodetic_crs','IAU_2015',60200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1647,7 +1647,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60290','projected_crs','IAU_2015',6029 INSERT INTO celestial_body VALUES('IAU_2015', 603, 'Tethys', 531000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60300,'Tethys (2015) - Sphere',NULL,'IAU_2015',603,531000.000000,'EPSG','9001',NULL,531000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60300,'Tethys (2015) - Sphere','','IAU_2015',60300,'IAU_2015',60300,NULL,NULL,NULL,'Arete: 299 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60300,'Tethys (2015) - Sphere','','IAU_2015',60300,'IAU_2015',60300,NULL,NULL,NULL,'Arete: 299 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60300','geodetic_datum','IAU_2015',60300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60300,'Tethys (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60300','geodetic_crs','IAU_2015',60300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1688,7 +1688,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60390','projected_crs','IAU_2015',6039 INSERT INTO celestial_body VALUES('IAU_2015', 604, 'Dione', 561400.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60400,'Dione (2015) - Sphere',NULL,'IAU_2015',604,561400.000000,'EPSG','9001',NULL,561400.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60400,'Dione (2015) - Sphere','','IAU_2015',60400,'IAU_2015',60400,NULL,NULL,NULL,'Palinurus: 63 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60400,'Dione (2015) - Sphere','','IAU_2015',60400,'IAU_2015',60400,NULL,NULL,NULL,'Palinurus: 63 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60400','geodetic_datum','IAU_2015',60400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60400,'Dione (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60400','geodetic_crs','IAU_2015',60400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1729,7 +1729,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60490','projected_crs','IAU_2015',6049 INSERT INTO celestial_body VALUES('IAU_2015', 605, 'Rhea', 763500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60500,'Rhea (2015) - Sphere',NULL,'IAU_2015',605,763500.000000,'EPSG','9001',NULL,763500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60500,'Rhea (2015) - Sphere','','IAU_2015',60500,'IAU_2015',60500,NULL,NULL,NULL,'Tore: 340 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60500,'Rhea (2015) - Sphere','','IAU_2015',60500,'IAU_2015',60500,NULL,NULL,NULL,'Tore: 340 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60500','geodetic_datum','IAU_2015',60500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60500,'Rhea (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60500','geodetic_crs','IAU_2015',60500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1770,7 +1770,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60590','projected_crs','IAU_2015',6059 INSERT INTO celestial_body VALUES('IAU_2015', 606, 'Titan', 2575000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60600,'Titan (2015) - Sphere',NULL,'IAU_2015',606,2575000.000000,'EPSG','9001',NULL,2575000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60600,'Titan (2015) - Sphere','','IAU_2015',60600,'IAU_2015',60600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60600,'Titan (2015) - Sphere','','IAU_2015',60600,'IAU_2015',60600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60600','geodetic_datum','IAU_2015',60600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60600,'Titan (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60600','geodetic_crs','IAU_2015',60600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1811,7 +1811,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60690','projected_crs','IAU_2015',6069 INSERT INTO celestial_body VALUES('IAU_2015', 607, 'Hyperion', 135000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60700,'Hyperion (2015) - Sphere',NULL,'IAU_2015',607,135000.000000,'EPSG','9001',NULL,135000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60700,'Hyperion (2015) - Sphere','','IAU_2015',60700,'IAU_2015',60700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60700,'Hyperion (2015) - Sphere','','IAU_2015',60700,'IAU_2015',60700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60700','geodetic_datum','IAU_2015',60700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60700,'Hyperion (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60700','geodetic_crs','IAU_2015',60700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1852,7 +1852,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60790','projected_crs','IAU_2015',6079 INSERT INTO celestial_body VALUES('IAU_2015', 608, 'Iapetus', 745700.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60800, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60800,'Iapetus (2015) - Sphere',NULL,'IAU_2015',608,745700.000000,'EPSG','9001',NULL,745700.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60800,'Iapetus (2015) - Sphere','','IAU_2015',60800,'IAU_2015',60800,NULL,NULL,NULL,'Almeric: 276 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60800,'Iapetus (2015) - Sphere','','IAU_2015',60800,'IAU_2015',60800,NULL,NULL,NULL,'Almeric: 276 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60800','geodetic_datum','IAU_2015',60800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60800,'Iapetus (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60800,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60800','geodetic_crs','IAU_2015',60800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1891,7 +1891,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60885','projected_crs','IAU_2015',6088 INSERT INTO projected_crs VALUES('IAU_2015',60890,'Iapetus (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',60800,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_60890','projected_crs','IAU_2015',60890,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',60801,'Iapetus (2015)',NULL,'IAU_2015',608,745700.000000,'EPSG','9001',NULL,712100.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60801,'Iapetus (2015)','','IAU_2015',60801,'IAU_2015',60800,NULL,NULL,NULL,'Almeric: 276 W.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60801,'Iapetus (2015)','','IAU_2015',60801,'IAU_2015',60800,NULL,NULL,NULL,'Almeric: 276 W.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60801','geodetic_datum','IAU_2015',60801,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60801,'Iapetus (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',60801,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60801','geodetic_crs','IAU_2015',60801,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -1968,7 +1968,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60892','projected_crs','IAU_2015',6089 INSERT INTO celestial_body VALUES('IAU_2015', 609, 'Phoebe', 106500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 60900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',60900,'Phoebe (2015) - Sphere',NULL,'IAU_2015',609,106500.000000,'EPSG','9001',NULL,106500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',60900,'Phoebe (2015) - Sphere','','IAU_2015',60900,'IAU_2015',60900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',60900,'Phoebe (2015) - Sphere','','IAU_2015',60900,'IAU_2015',60900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_60900','geodetic_datum','IAU_2015',60900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',60900,'Phoebe (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',60900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_60900','geodetic_crs','IAU_2015',60900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2009,7 +2009,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_60990','projected_crs','IAU_2015',6099 INSERT INTO celestial_body VALUES('IAU_2015', 610, 'Janus', 89200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61000,'Janus (2015) - Sphere',NULL,'IAU_2015',610,89200.000000,'EPSG','9001',NULL,89200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61000,'Janus (2015) - Sphere','','IAU_2015',61000,'IAU_2015',61000,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61000,'Janus (2015) - Sphere','','IAU_2015',61000,'IAU_2015',61000,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61000','geodetic_datum','IAU_2015',61000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61000,'Janus (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61000','geodetic_crs','IAU_2015',61000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2050,7 +2050,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61090','projected_crs','IAU_2015',6109 INSERT INTO celestial_body VALUES('IAU_2015', 611, 'Epimetheus', 58200.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61100,'Epimetheus (2015) - Sphere',NULL,'IAU_2015',611,58200.000000,'EPSG','9001',NULL,58200.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61100,'Epimetheus (2015) - Sphere','','IAU_2015',61100,'IAU_2015',61100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61100,'Epimetheus (2015) - Sphere','','IAU_2015',61100,'IAU_2015',61100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61100','geodetic_datum','IAU_2015',61100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61100,'Epimetheus (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61100','geodetic_crs','IAU_2015',61100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2091,7 +2091,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61190','projected_crs','IAU_2015',6119 INSERT INTO celestial_body VALUES('IAU_2015', 612, 'Helene', 18000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61200,'Helene (2015) - Sphere',NULL,'IAU_2015',612,18000.000000,'EPSG','9001',NULL,18000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61200,'Helene (2015) - Sphere','','IAU_2015',61200,'IAU_2015',61200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61200,'Helene (2015) - Sphere','','IAU_2015',61200,'IAU_2015',61200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61200','geodetic_datum','IAU_2015',61200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61200,'Helene (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61200','geodetic_crs','IAU_2015',61200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2132,7 +2132,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61290','projected_crs','IAU_2015',6129 INSERT INTO celestial_body VALUES('IAU_2015', 613, 'Telesto', 12400.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61300,'Telesto (2015) - Sphere',NULL,'IAU_2015',613,12400.000000,'EPSG','9001',NULL,12400.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61300,'Telesto (2015) - Sphere','','IAU_2015',61300,'IAU_2015',61300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61300,'Telesto (2015) - Sphere','','IAU_2015',61300,'IAU_2015',61300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61300','geodetic_datum','IAU_2015',61300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61300,'Telesto (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61300','geodetic_crs','IAU_2015',61300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2173,7 +2173,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61390','projected_crs','IAU_2015',6139 INSERT INTO celestial_body VALUES('IAU_2015', 614, 'Calypso', 9600.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61400,'Calypso (2015) - Sphere',NULL,'IAU_2015',614,9600.000000,'EPSG','9001',NULL,9600.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61400,'Calypso (2015) - Sphere','','IAU_2015',61400,'IAU_2015',61400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61400,'Calypso (2015) - Sphere','','IAU_2015',61400,'IAU_2015',61400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61400','geodetic_datum','IAU_2015',61400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61400,'Calypso (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61400','geodetic_crs','IAU_2015',61400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2214,7 +2214,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61490','projected_crs','IAU_2015',6149 INSERT INTO celestial_body VALUES('IAU_2015', 615, 'Atlas', 15100.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61500,'Atlas (2015) - Sphere',NULL,'IAU_2015',615,15100.000000,'EPSG','9001',NULL,15100.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61500,'Atlas (2015) - Sphere','','IAU_2015',61500,'IAU_2015',61500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61500,'Atlas (2015) - Sphere','','IAU_2015',61500,'IAU_2015',61500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61500','geodetic_datum','IAU_2015',61500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61500,'Atlas (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61500','geodetic_crs','IAU_2015',61500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2255,7 +2255,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61590','projected_crs','IAU_2015',6159 INSERT INTO celestial_body VALUES('IAU_2015', 616, 'Prometheus', 43100.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61600,'Prometheus (2015) - Sphere',NULL,'IAU_2015',616,43100.000000,'EPSG','9001',NULL,43100.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61600,'Prometheus (2015) - Sphere','','IAU_2015',61600,'IAU_2015',61600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61600,'Prometheus (2015) - Sphere','','IAU_2015',61600,'IAU_2015',61600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61600','geodetic_datum','IAU_2015',61600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61600,'Prometheus (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61600','geodetic_crs','IAU_2015',61600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2296,7 +2296,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61690','projected_crs','IAU_2015',6169 INSERT INTO celestial_body VALUES('IAU_2015', 617, 'Pandora', 40600.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61700,'Pandora (2015) - Sphere',NULL,'IAU_2015',617,40600.000000,'EPSG','9001',NULL,40600.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61700,'Pandora (2015) - Sphere','','IAU_2015',61700,'IAU_2015',61700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61700,'Pandora (2015) - Sphere','','IAU_2015',61700,'IAU_2015',61700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61700','geodetic_datum','IAU_2015',61700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61700,'Pandora (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61700','geodetic_crs','IAU_2015',61700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2337,7 +2337,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61790','projected_crs','IAU_2015',6179 INSERT INTO celestial_body VALUES('IAU_2015', 618, 'Pan', 14000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 61800, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',61800,'Pan (2015) - Sphere',NULL,'IAU_2015',618,14000.000000,'EPSG','9001',NULL,14000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',61800,'Pan (2015) - Sphere','','IAU_2015',61800,'IAU_2015',61800,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',61800,'Pan (2015) - Sphere','','IAU_2015',61800,'IAU_2015',61800,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_61800','geodetic_datum','IAU_2015',61800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',61800,'Pan (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',61800,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_61800','geodetic_crs','IAU_2015',61800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2391,7 +2391,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_61890','projected_crs','IAU_2015',6189 INSERT INTO celestial_body VALUES('IAU_2015', 632, 'Methone', 1450.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 63200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',63200,'Methone (2015) - Sphere',NULL,'IAU_2015',632,1450.000000,'EPSG','9001',NULL,1450.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',63200,'Methone (2015) - Sphere','','IAU_2015',63200,'IAU_2015',63200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',63200,'Methone (2015) - Sphere','','IAU_2015',63200,'IAU_2015',63200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_63200','geodetic_datum','IAU_2015',63200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',63200,'Methone (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',63200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_63200','geodetic_crs','IAU_2015',63200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2432,7 +2432,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_63290','projected_crs','IAU_2015',6329 INSERT INTO celestial_body VALUES('IAU_2015', 633, 'Pallene', 2230.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 63300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',63300,'Pallene (2015) - Sphere',NULL,'IAU_2015',633,2230.000000,'EPSG','9001',NULL,2230.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',63300,'Pallene (2015) - Sphere','','IAU_2015',63300,'IAU_2015',63300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',63300,'Pallene (2015) - Sphere','','IAU_2015',63300,'IAU_2015',63300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_63300','geodetic_datum','IAU_2015',63300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',63300,'Pallene (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',63300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_63300','geodetic_crs','IAU_2015',63300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2473,7 +2473,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_63390','projected_crs','IAU_2015',6339 INSERT INTO celestial_body VALUES('IAU_2015', 634, 'Polydeuces', 1300.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 63400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',63400,'Polydeuces (2015) - Sphere',NULL,'IAU_2015',634,1300.000000,'EPSG','9001',NULL,1300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',63400,'Polydeuces (2015) - Sphere','','IAU_2015',63400,'IAU_2015',63400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',63400,'Polydeuces (2015) - Sphere','','IAU_2015',63400,'IAU_2015',63400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_63400','geodetic_datum','IAU_2015',63400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',63400,'Polydeuces (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',63400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_63400','geodetic_crs','IAU_2015',63400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2514,7 +2514,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_63490','projected_crs','IAU_2015',6349 INSERT INTO celestial_body VALUES('IAU_2015', 635, 'Daphnis', 3800.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 63500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',63500,'Daphnis (2015) - Sphere',NULL,'IAU_2015',635,3800.000000,'EPSG','9001',NULL,3800.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',63500,'Daphnis (2015) - Sphere','','IAU_2015',63500,'IAU_2015',63500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',63500,'Daphnis (2015) - Sphere','','IAU_2015',63500,'IAU_2015',63500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_63500','geodetic_datum','IAU_2015',63500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',63500,'Daphnis (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',63500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_63500','geodetic_crs','IAU_2015',63500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2568,7 +2568,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_63590','projected_crs','IAU_2015',6359 INSERT INTO celestial_body VALUES('IAU_2015', 649, 'Anthe', 500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 64900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',64900,'Anthe (2015) - Sphere',NULL,'IAU_2015',649,500.000000,'EPSG','9001',NULL,500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',64900,'Anthe (2015) - Sphere','','IAU_2015',64900,'IAU_2015',64900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',64900,'Anthe (2015) - Sphere','','IAU_2015',64900,'IAU_2015',64900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_64900','geodetic_datum','IAU_2015',64900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',64900,'Anthe (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',64900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_64900','geodetic_crs','IAU_2015',64900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2612,7 +2612,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_64990','projected_crs','IAU_2015',6499 INSERT INTO celestial_body VALUES('IAU_2015', 653, 'Aegaeon', 330.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 65300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',65300,'Aegaeon (2015) - Sphere',NULL,'IAU_2015',653,330.000000,'EPSG','9001',NULL,330.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',65300,'Aegaeon (2015) - Sphere','','IAU_2015',65300,'IAU_2015',65300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',65300,'Aegaeon (2015) - Sphere','','IAU_2015',65300,'IAU_2015',65300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_65300','geodetic_datum','IAU_2015',65300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',65300,'Aegaeon (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',65300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_65300','geodetic_crs','IAU_2015',65300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2653,7 +2653,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_65390','projected_crs','IAU_2015',6539 INSERT INTO celestial_body VALUES('IAU_2015', 799, 'Uranus', 25559000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 79900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',79900,'Uranus (2015) - Sphere',NULL,'IAU_2015',799,25559000.000000,'EPSG','9001',NULL,25559000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',79900,'Uranus (2015) - Sphere','','IAU_2015',79900,'IAU_2015',79900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',79900,'Uranus (2015) - Sphere','','IAU_2015',79900,'IAU_2015',79900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_79900','geodetic_datum','IAU_2015',79900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',79900,'Uranus (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',79900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_79900','geodetic_crs','IAU_2015',79900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2692,7 +2692,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_79985','projected_crs','IAU_2015',7998 INSERT INTO projected_crs VALUES('IAU_2015',79990,'Uranus (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',79900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_79990','projected_crs','IAU_2015',79990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',79901,'Uranus (2015)',NULL,'IAU_2015',799,25559000.000000,'EPSG','9001',NULL,24973000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',79901,'Uranus (2015)','','IAU_2015',79901,'IAU_2015',79900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',79901,'Uranus (2015)','','IAU_2015',79901,'IAU_2015',79900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_79901','geodetic_datum','IAU_2015',79901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',79901,'Uranus (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',79901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_79901','geodetic_crs','IAU_2015',79901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2735,7 +2735,7 @@ INSERT INTO usage VALUES('IAU_2015','GCRS_79902','geodetic_crs','IAU_2015',79902 INSERT INTO celestial_body VALUES('IAU_2015', 701, 'Ariel', 578900.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70100,'Ariel (2015) - Sphere',NULL,'IAU_2015',701,578900.000000,'EPSG','9001',NULL,578900.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70100,'Ariel (2015) - Sphere','','IAU_2015',70100,'IAU_2015',70100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70100,'Ariel (2015) - Sphere','','IAU_2015',70100,'IAU_2015',70100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70100','geodetic_datum','IAU_2015',70100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70100,'Ariel (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70100','geodetic_crs','IAU_2015',70100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2776,7 +2776,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70190','projected_crs','IAU_2015',7019 INSERT INTO celestial_body VALUES('IAU_2015', 702, 'Umbriel', 584700.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70200,'Umbriel (2015) - Sphere',NULL,'IAU_2015',702,584700.000000,'EPSG','9001',NULL,584700.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70200,'Umbriel (2015) - Sphere','','IAU_2015',70200,'IAU_2015',70200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70200,'Umbriel (2015) - Sphere','','IAU_2015',70200,'IAU_2015',70200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70200','geodetic_datum','IAU_2015',70200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70200,'Umbriel (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70200','geodetic_crs','IAU_2015',70200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2817,7 +2817,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70290','projected_crs','IAU_2015',7029 INSERT INTO celestial_body VALUES('IAU_2015', 703, 'Titania', 788900.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70300,'Titania (2015) - Sphere',NULL,'IAU_2015',703,788900.000000,'EPSG','9001',NULL,788900.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70300,'Titania (2015) - Sphere','','IAU_2015',70300,'IAU_2015',70300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70300,'Titania (2015) - Sphere','','IAU_2015',70300,'IAU_2015',70300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70300','geodetic_datum','IAU_2015',70300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70300,'Titania (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70300','geodetic_crs','IAU_2015',70300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2858,7 +2858,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70390','projected_crs','IAU_2015',7039 INSERT INTO celestial_body VALUES('IAU_2015', 704, 'Oberon', 761400.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70400,'Oberon (2015) - Sphere',NULL,'IAU_2015',704,761400.000000,'EPSG','9001',NULL,761400.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70400,'Oberon (2015) - Sphere','','IAU_2015',70400,'IAU_2015',70400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70400,'Oberon (2015) - Sphere','','IAU_2015',70400,'IAU_2015',70400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70400','geodetic_datum','IAU_2015',70400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70400,'Oberon (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70400','geodetic_crs','IAU_2015',70400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2899,7 +2899,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70490','projected_crs','IAU_2015',7049 INSERT INTO celestial_body VALUES('IAU_2015', 705, 'Miranda', 235800.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70500,'Miranda (2015) - Sphere',NULL,'IAU_2015',705,235800.000000,'EPSG','9001',NULL,235800.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70500,'Miranda (2015) - Sphere','','IAU_2015',70500,'IAU_2015',70500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70500,'Miranda (2015) - Sphere','','IAU_2015',70500,'IAU_2015',70500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70500','geodetic_datum','IAU_2015',70500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70500,'Miranda (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70500','geodetic_crs','IAU_2015',70500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2940,7 +2940,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70590','projected_crs','IAU_2015',7059 INSERT INTO celestial_body VALUES('IAU_2015', 706, 'Cordelia', 13000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70600,'Cordelia (2015) - Sphere',NULL,'IAU_2015',706,13000.000000,'EPSG','9001',NULL,13000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70600,'Cordelia (2015) - Sphere','','IAU_2015',70600,'IAU_2015',70600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70600,'Cordelia (2015) - Sphere','','IAU_2015',70600,'IAU_2015',70600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70600','geodetic_datum','IAU_2015',70600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70600,'Cordelia (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70600','geodetic_crs','IAU_2015',70600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -2981,7 +2981,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70690','projected_crs','IAU_2015',7069 INSERT INTO celestial_body VALUES('IAU_2015', 707, 'Ophelia', 15000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70700,'Ophelia (2015) - Sphere',NULL,'IAU_2015',707,15000.000000,'EPSG','9001',NULL,15000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70700,'Ophelia (2015) - Sphere','','IAU_2015',70700,'IAU_2015',70700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70700,'Ophelia (2015) - Sphere','','IAU_2015',70700,'IAU_2015',70700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70700','geodetic_datum','IAU_2015',70700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70700,'Ophelia (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70700','geodetic_crs','IAU_2015',70700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3022,7 +3022,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70790','projected_crs','IAU_2015',7079 INSERT INTO celestial_body VALUES('IAU_2015', 708, 'Bianca', 21000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70800, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70800,'Bianca (2015) - Sphere',NULL,'IAU_2015',708,21000.000000,'EPSG','9001',NULL,21000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70800,'Bianca (2015) - Sphere','','IAU_2015',70800,'IAU_2015',70800,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70800,'Bianca (2015) - Sphere','','IAU_2015',70800,'IAU_2015',70800,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70800','geodetic_datum','IAU_2015',70800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70800,'Bianca (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70800,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70800','geodetic_crs','IAU_2015',70800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3063,7 +3063,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70890','projected_crs','IAU_2015',7089 INSERT INTO celestial_body VALUES('IAU_2015', 709, 'Cressida', 31000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 70900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',70900,'Cressida (2015) - Sphere',NULL,'IAU_2015',709,31000.000000,'EPSG','9001',NULL,31000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',70900,'Cressida (2015) - Sphere','','IAU_2015',70900,'IAU_2015',70900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',70900,'Cressida (2015) - Sphere','','IAU_2015',70900,'IAU_2015',70900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_70900','geodetic_datum','IAU_2015',70900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',70900,'Cressida (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',70900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_70900','geodetic_crs','IAU_2015',70900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3104,7 +3104,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_70990','projected_crs','IAU_2015',7099 INSERT INTO celestial_body VALUES('IAU_2015', 710, 'Desdemona', 27000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71000,'Desdemona (2015) - Sphere',NULL,'IAU_2015',710,27000.000000,'EPSG','9001',NULL,27000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71000,'Desdemona (2015) - Sphere','','IAU_2015',71000,'IAU_2015',71000,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71000,'Desdemona (2015) - Sphere','','IAU_2015',71000,'IAU_2015',71000,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71000','geodetic_datum','IAU_2015',71000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71000,'Desdemona (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71000','geodetic_crs','IAU_2015',71000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3145,7 +3145,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71090','projected_crs','IAU_2015',7109 INSERT INTO celestial_body VALUES('IAU_2015', 711, 'Juliet', 42000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71100,'Juliet (2015) - Sphere',NULL,'IAU_2015',711,42000.000000,'EPSG','9001',NULL,42000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71100,'Juliet (2015) - Sphere','','IAU_2015',71100,'IAU_2015',71100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71100,'Juliet (2015) - Sphere','','IAU_2015',71100,'IAU_2015',71100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71100','geodetic_datum','IAU_2015',71100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71100,'Juliet (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71100','geodetic_crs','IAU_2015',71100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3186,7 +3186,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71190','projected_crs','IAU_2015',7119 INSERT INTO celestial_body VALUES('IAU_2015', 712, 'Portia', 54000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71200,'Portia (2015) - Sphere',NULL,'IAU_2015',712,54000.000000,'EPSG','9001',NULL,54000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71200,'Portia (2015) - Sphere','','IAU_2015',71200,'IAU_2015',71200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71200,'Portia (2015) - Sphere','','IAU_2015',71200,'IAU_2015',71200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71200','geodetic_datum','IAU_2015',71200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71200,'Portia (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71200','geodetic_crs','IAU_2015',71200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3227,7 +3227,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71290','projected_crs','IAU_2015',7129 INSERT INTO celestial_body VALUES('IAU_2015', 713, 'Rosalind', 27000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71300,'Rosalind (2015) - Sphere',NULL,'IAU_2015',713,27000.000000,'EPSG','9001',NULL,27000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71300,'Rosalind (2015) - Sphere','','IAU_2015',71300,'IAU_2015',71300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71300,'Rosalind (2015) - Sphere','','IAU_2015',71300,'IAU_2015',71300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71300','geodetic_datum','IAU_2015',71300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71300,'Rosalind (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71300','geodetic_crs','IAU_2015',71300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3268,7 +3268,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71390','projected_crs','IAU_2015',7139 INSERT INTO celestial_body VALUES('IAU_2015', 714, 'Belinda', 33000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71400,'Belinda (2015) - Sphere',NULL,'IAU_2015',714,33000.000000,'EPSG','9001',NULL,33000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71400,'Belinda (2015) - Sphere','','IAU_2015',71400,'IAU_2015',71400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71400,'Belinda (2015) - Sphere','','IAU_2015',71400,'IAU_2015',71400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71400','geodetic_datum','IAU_2015',71400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71400,'Belinda (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71400','geodetic_crs','IAU_2015',71400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3309,7 +3309,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71490','projected_crs','IAU_2015',7149 INSERT INTO celestial_body VALUES('IAU_2015', 715, 'Puck', 77000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 71500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',71500,'Puck (2015) - Sphere',NULL,'IAU_2015',715,77000.000000,'EPSG','9001',NULL,77000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',71500,'Puck (2015) - Sphere','','IAU_2015',71500,'IAU_2015',71500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',71500,'Puck (2015) - Sphere','','IAU_2015',71500,'IAU_2015',71500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_71500','geodetic_datum','IAU_2015',71500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',71500,'Puck (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',71500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_71500','geodetic_crs','IAU_2015',71500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3362,7 +3362,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_71590','projected_crs','IAU_2015',7159 INSERT INTO celestial_body VALUES('IAU_2015', 899, 'Neptune', 24764000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 89900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',89900,'Neptune (2015) - Sphere',NULL,'IAU_2015',899,24764000.000000,'EPSG','9001',NULL,24764000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',89900,'Neptune (2015) - Sphere','','IAU_2015',89900,'IAU_2015',89900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',89900,'Neptune (2015) - Sphere','','IAU_2015',89900,'IAU_2015',89900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_89900','geodetic_datum','IAU_2015',89900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',89900,'Neptune (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',89900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_89900','geodetic_crs','IAU_2015',89900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3401,7 +3401,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_89985','projected_crs','IAU_2015',8998 INSERT INTO projected_crs VALUES('IAU_2015',89990,'Neptune (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',89900,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_89990','projected_crs','IAU_2015',89990,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',89901,'Neptune (2015)',NULL,'IAU_2015',899,24764000.000000,'EPSG','9001',NULL,24341000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',89901,'Neptune (2015)','','IAU_2015',89901,'IAU_2015',89900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',89901,'Neptune (2015)','','IAU_2015',89901,'IAU_2015',89900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_89901','geodetic_datum','IAU_2015',89901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',89901,'Neptune (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',89901,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_89901','geodetic_crs','IAU_2015',89901,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3478,7 +3478,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_89992','projected_crs','IAU_2015',8999 INSERT INTO celestial_body VALUES('IAU_2015', 801, 'Triton', 1352600.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80100,'Triton (2015) - Sphere',NULL,'IAU_2015',801,1352600.000000,'EPSG','9001',NULL,1352600.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80100,'Triton (2015) - Sphere','','IAU_2015',80100,'IAU_2015',80100,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80100,'Triton (2015) - Sphere','','IAU_2015',80100,'IAU_2015',80100,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80100','geodetic_datum','IAU_2015',80100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80100,'Triton (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80100','geodetic_crs','IAU_2015',80100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3519,7 +3519,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80190','projected_crs','IAU_2015',8019 INSERT INTO celestial_body VALUES('IAU_2015', 802, 'Nereid', 170000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80200,'Nereid (2015) - Sphere',NULL,'IAU_2015',802,170000.000000,'EPSG','9001',NULL,170000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80200,'Nereid (2015) - Sphere','','IAU_2015',80200,'IAU_2015',80200,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80200,'Nereid (2015) - Sphere','','IAU_2015',80200,'IAU_2015',80200,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80200','geodetic_datum','IAU_2015',80200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80200,'Nereid (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80200','geodetic_crs','IAU_2015',80200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3560,7 +3560,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80290','projected_crs','IAU_2015',8029 INSERT INTO celestial_body VALUES('IAU_2015', 803, 'Naiad', 29000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80300,'Naiad (2015) - Sphere',NULL,'IAU_2015',803,29000.000000,'EPSG','9001',NULL,29000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80300,'Naiad (2015) - Sphere','','IAU_2015',80300,'IAU_2015',80300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80300,'Naiad (2015) - Sphere','','IAU_2015',80300,'IAU_2015',80300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80300','geodetic_datum','IAU_2015',80300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80300,'Naiad (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80300','geodetic_crs','IAU_2015',80300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3599,7 +3599,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80385','projected_crs','IAU_2015',8038 INSERT INTO projected_crs VALUES('IAU_2015',80390,'Naiad (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',80300,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_80390','projected_crs','IAU_2015',80390,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',80301,'Naiad (2015)',NULL,'IAU_2015',803,29000.000000,'EPSG','9001',NULL,29000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80301,'Naiad (2015)','','IAU_2015',80301,'IAU_2015',80300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80301,'Naiad (2015)','','IAU_2015',80301,'IAU_2015',80300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80301','geodetic_datum','IAU_2015',80301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80301,'Naiad (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',80301,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80301','geodetic_crs','IAU_2015',80301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3640,7 +3640,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80391','projected_crs','IAU_2015',8039 INSERT INTO celestial_body VALUES('IAU_2015', 804, 'Thalassa', 40000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80400,'Thalassa (2015) - Sphere',NULL,'IAU_2015',804,40000.000000,'EPSG','9001',NULL,40000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80400,'Thalassa (2015) - Sphere','','IAU_2015',80400,'IAU_2015',80400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80400,'Thalassa (2015) - Sphere','','IAU_2015',80400,'IAU_2015',80400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80400','geodetic_datum','IAU_2015',80400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80400,'Thalassa (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80400','geodetic_crs','IAU_2015',80400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3679,7 +3679,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80485','projected_crs','IAU_2015',8048 INSERT INTO projected_crs VALUES('IAU_2015',80490,'Thalassa (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',80400,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_80490','projected_crs','IAU_2015',80490,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',80401,'Thalassa (2015)',NULL,'IAU_2015',804,40000.000000,'EPSG','9001',NULL,40000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80401,'Thalassa (2015)','','IAU_2015',80401,'IAU_2015',80400,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80401,'Thalassa (2015)','','IAU_2015',80401,'IAU_2015',80400,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80401','geodetic_datum','IAU_2015',80401,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80401,'Thalassa (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',80401,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80401','geodetic_crs','IAU_2015',80401,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3720,7 +3720,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80491','projected_crs','IAU_2015',8049 INSERT INTO celestial_body VALUES('IAU_2015', 805, 'Despina', 74000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80500,'Despina (2015) - Sphere',NULL,'IAU_2015',805,74000.000000,'EPSG','9001',NULL,74000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80500,'Despina (2015) - Sphere','','IAU_2015',80500,'IAU_2015',80500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80500,'Despina (2015) - Sphere','','IAU_2015',80500,'IAU_2015',80500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80500','geodetic_datum','IAU_2015',80500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80500,'Despina (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80500','geodetic_crs','IAU_2015',80500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3759,7 +3759,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80585','projected_crs','IAU_2015',8058 INSERT INTO projected_crs VALUES('IAU_2015',80590,'Despina (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',80500,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_80590','projected_crs','IAU_2015',80590,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',80501,'Despina (2015)',NULL,'IAU_2015',805,74000.000000,'EPSG','9001',NULL,74000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80501,'Despina (2015)','','IAU_2015',80501,'IAU_2015',80500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80501,'Despina (2015)','','IAU_2015',80501,'IAU_2015',80500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80501','geodetic_datum','IAU_2015',80501,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80501,'Despina (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',80501,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80501','geodetic_crs','IAU_2015',80501,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3800,7 +3800,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80591','projected_crs','IAU_2015',8059 INSERT INTO celestial_body VALUES('IAU_2015', 806, 'Galatea', 79000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80600,'Galatea (2015) - Sphere',NULL,'IAU_2015',806,79000.000000,'EPSG','9001',NULL,79000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80600,'Galatea (2015) - Sphere','','IAU_2015',80600,'IAU_2015',80600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80600,'Galatea (2015) - Sphere','','IAU_2015',80600,'IAU_2015',80600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80600','geodetic_datum','IAU_2015',80600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80600,'Galatea (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80600','geodetic_crs','IAU_2015',80600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3839,7 +3839,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80685','projected_crs','IAU_2015',8068 INSERT INTO projected_crs VALUES('IAU_2015',80690,'Galatea (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',80600,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_80690','projected_crs','IAU_2015',80690,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',80601,'Galatea (2015)',NULL,'IAU_2015',806,79000.000000,'EPSG','9001',NULL,79000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80601,'Galatea (2015)','','IAU_2015',80601,'IAU_2015',80600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80601,'Galatea (2015)','','IAU_2015',80601,'IAU_2015',80600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80601','geodetic_datum','IAU_2015',80601,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80601,'Galatea (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',80601,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80601','geodetic_crs','IAU_2015',80601,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3880,7 +3880,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80691','projected_crs','IAU_2015',8069 INSERT INTO celestial_body VALUES('IAU_2015', 807, 'Larissa', 96000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80700,'Larissa (2015) - Sphere',NULL,'IAU_2015',807,96000.000000,'EPSG','9001',NULL,96000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80700,'Larissa (2015) - Sphere','','IAU_2015',80700,'IAU_2015',80700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80700,'Larissa (2015) - Sphere','','IAU_2015',80700,'IAU_2015',80700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80700','geodetic_datum','IAU_2015',80700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80700,'Larissa (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80700','geodetic_crs','IAU_2015',80700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3919,7 +3919,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80785','projected_crs','IAU_2015',8078 INSERT INTO projected_crs VALUES('IAU_2015',80790,'Larissa (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',80700,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_80790','projected_crs','IAU_2015',80790,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',80701,'Larissa (2015)',NULL,'IAU_2015',807,96000.000000,'EPSG','9001',NULL,89000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80701,'Larissa (2015)','','IAU_2015',80701,'IAU_2015',80700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80701,'Larissa (2015)','','IAU_2015',80701,'IAU_2015',80700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80701','geodetic_datum','IAU_2015',80701,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80701,'Larissa (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','PROJ','OGRAPHIC_NORTH_WEST','IAU_2015',80701,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80701','geodetic_crs','IAU_2015',80701,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -3996,7 +3996,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80792','projected_crs','IAU_2015',8079 INSERT INTO celestial_body VALUES('IAU_2015', 808, 'Proteus', 208000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 80800, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',80800,'Proteus (2015) - Sphere',NULL,'IAU_2015',808,208000.000000,'EPSG','9001',NULL,208000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',80800,'Proteus (2015) - Sphere','','IAU_2015',80800,'IAU_2015',80800,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',80800,'Proteus (2015) - Sphere','','IAU_2015',80800,'IAU_2015',80800,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_80800','geodetic_datum','IAU_2015',80800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',80800,'Proteus (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',80800,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_80800','geodetic_crs','IAU_2015',80800,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4042,7 +4042,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_80890','projected_crs','IAU_2015',8089 INSERT INTO celestial_body VALUES('IAU_2015', 999, 'Pluto', 1188300.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 99900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',99900,'Pluto (2015) - Sphere',NULL,'IAU_2015',999,1188300.000000,'EPSG','9001',NULL,1188300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',99900,'Pluto (2015) - Sphere','','IAU_2015',99900,'IAU_2015',99900,NULL,NULL,NULL,'Mean sub-Charon meridian: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',99900,'Pluto (2015) - Sphere','','IAU_2015',99900,'IAU_2015',99900,NULL,NULL,NULL,'Mean sub-Charon meridian: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_99900','geodetic_datum','IAU_2015',99900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',99900,'Pluto (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',99900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_99900','geodetic_crs','IAU_2015',99900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4083,7 +4083,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_99990','projected_crs','IAU_2015',9999 INSERT INTO celestial_body VALUES('IAU_2015', 901, 'Charon', 606000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 90100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',90100,'Charon (2015) - Sphere',NULL,'IAU_2015',901,606000.000000,'EPSG','9001',NULL,606000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',90100,'Charon (2015) - Sphere','','IAU_2015',90100,'IAU_2015',90100,NULL,NULL,NULL,'Mean sub-Pluto meridian: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',90100,'Charon (2015) - Sphere','','IAU_2015',90100,'IAU_2015',90100,NULL,NULL,NULL,'Mean sub-Pluto meridian: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_90100','geodetic_datum','IAU_2015',90100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',90100,'Charon (2015) - Sphere / Ocentric','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',90100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_90100','geodetic_crs','IAU_2015',90100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4125,7 +4125,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_90190','projected_crs','IAU_2015',9019 INSERT INTO celestial_body VALUES('IAU_2015', 1000005, 'Borrelly', 4220.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100000500, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100000500,'Borrelly (2015) - Sphere',NULL,'IAU_2015',1000005,4220.000000,'EPSG','9001',NULL,4220.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100000500,'Borrelly (2015) - Sphere','','IAU_2015',100000500,'IAU_2015',100000500,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100000500,'Borrelly (2015) - Sphere','','IAU_2015',100000500,'IAU_2015',100000500,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100000500','geodetic_datum','IAU_2015',100000500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100000500,'Borrelly (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100000500,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100000500','geodetic_crs','IAU_2015',100000500,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4166,7 +4166,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100000590','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 1000012, 'Churyumov-Gerasimenko', 1650.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100001200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100001200,'Churyumov-Gerasimenko (2015) - Sphere',NULL,'IAU_2015',1000012,1650.000000,'EPSG','9001',NULL,1650.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100001200,'Churyumov-Gerasimenko (2015) - Sphere','','IAU_2015',100001200,'IAU_2015',100001200,NULL,NULL,NULL,'a large boulder called Cheops: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100001200,'Churyumov-Gerasimenko (2015) - Sphere','','IAU_2015',100001200,'IAU_2015',100001200,NULL,NULL,NULL,'a large boulder called Cheops: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100001200','geodetic_datum','IAU_2015',100001200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100001200,'Churyumov-Gerasimenko (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100001200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100001200','geodetic_crs','IAU_2015',100001200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4207,7 +4207,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100001290','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 1000036, 'Halley', 8000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100003600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100003600,'Halley (2015) - Sphere',NULL,'IAU_2015',1000036,8000.000000,'EPSG','9001',NULL,8000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100003600,'Halley (2015) - Sphere','','IAU_2015',100003600,'IAU_2015',100003600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100003600,'Halley (2015) - Sphere','','IAU_2015',100003600,'IAU_2015',100003600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100003600','geodetic_datum','IAU_2015',100003600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100003600,'Halley (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100003600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100003600','geodetic_crs','IAU_2015',100003600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4246,7 +4246,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100003685','projected_crs','IAU_2015', INSERT INTO projected_crs VALUES('IAU_2015',100003690,'Halley (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',100003600,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_100003690','projected_crs','IAU_2015',100003690,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',100003601,'Halley (2015)',NULL,'IAU_2015',1000036,8000.000000,'EPSG','9001',NULL,4000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100003601,'Halley (2015)','','IAU_2015',100003601,'IAU_2015',100003600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100003601,'Halley (2015)','','IAU_2015',100003601,'IAU_2015',100003600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100003601','geodetic_datum','IAU_2015',100003601,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100003601,'Halley (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100003601,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100003601','geodetic_crs','IAU_2015',100003601,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4290,7 +4290,7 @@ INSERT INTO usage VALUES('IAU_2015','GCRS_100003602','geodetic_crs','IAU_2015',1 INSERT INTO celestial_body VALUES('IAU_2015', 1000041, 'Hartley 2', 580.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100004100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100004100,'Hartley 2 (2015) - Sphere',NULL,'IAU_2015',1000041,580.000000,'EPSG','9001',NULL,580.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100004100,'Hartley 2 (2015) - Sphere','','IAU_2015',100004100,'IAU_2015',100004100,NULL,NULL,NULL,'An isolated large mount on the waist near the large lobe: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100004100,'Hartley 2 (2015) - Sphere','','IAU_2015',100004100,'IAU_2015',100004100,NULL,NULL,NULL,'An isolated large mount on the waist near the large lobe: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100004100','geodetic_datum','IAU_2015',100004100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100004100,'Hartley 2 (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100004100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100004100','geodetic_crs','IAU_2015',100004100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4332,7 +4332,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100004190','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 1000093, 'Tempel 1', 3000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100009300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100009300,'Tempel 1 (2015) - Sphere',NULL,'IAU_2015',1000093,3000.000000,'EPSG','9001',NULL,3000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100009300,'Tempel 1 (2015) - Sphere','','IAU_2015',100009300,'IAU_2015',100009300,NULL,NULL,NULL,'A 350 m diameter unnamed circular feature near the Deep Impactor impact site: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100009300,'Tempel 1 (2015) - Sphere','','IAU_2015',100009300,'IAU_2015',100009300,NULL,NULL,NULL,'A 350 m diameter unnamed circular feature near the Deep Impactor impact site: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100009300','geodetic_datum','IAU_2015',100009300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100009300,'Tempel 1 (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100009300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100009300','geodetic_crs','IAU_2015',100009300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4373,7 +4373,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100009390','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 1000107, 'Wild 2', 1975.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 100010700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',100010700,'Wild 2 (2015) - Sphere',NULL,'IAU_2015',1000107,1975.000000,'EPSG','9001',NULL,1975.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',100010700,'Wild 2 (2015) - Sphere','','IAU_2015',100010700,'IAU_2015',100010700,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',100010700,'Wild 2 (2015) - Sphere','','IAU_2015',100010700,'IAU_2015',100010700,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_100010700','geodetic_datum','IAU_2015',100010700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',100010700,'Wild 2 (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',100010700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_100010700','geodetic_crs','IAU_2015',100010700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4414,7 +4414,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_100010790','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 9511010, 'Gaspra', 6100.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 951101000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',951101000,'Gaspra (2015) - Sphere',NULL,'IAU_2015',9511010,6100.000000,'EPSG','9001',NULL,6100.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',951101000,'Gaspra (2015) - Sphere','','IAU_2015',951101000,'IAU_2015',951101000,NULL,NULL,NULL,'Charax: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',951101000,'Gaspra (2015) - Sphere','','IAU_2015',951101000,'IAU_2015',951101000,NULL,NULL,NULL,'Charax: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_951101000','geodetic_datum','IAU_2015',951101000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',951101000,'Gaspra (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',951101000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_951101000','geodetic_crs','IAU_2015',951101000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4455,7 +4455,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_951101090','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2431010, 'Ida', 15650.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 243101000, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',243101000,'Ida (2015) - Sphere',NULL,'IAU_2015',2431010,15650.000000,'EPSG','9001',NULL,15650.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',243101000,'Ida (2015) - Sphere','','IAU_2015',243101000,'IAU_2015',243101000,NULL,NULL,NULL,'Afon: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',243101000,'Ida (2015) - Sphere','','IAU_2015',243101000,'IAU_2015',243101000,NULL,NULL,NULL,'Afon: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_243101000','geodetic_datum','IAU_2015',243101000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',243101000,'Ida (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',243101000,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_243101000','geodetic_crs','IAU_2015',243101000,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4497,7 +4497,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_243101090','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000001, 'Ceres', 487300.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200000100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200000100,'Ceres (2015) - Sphere',NULL,'IAU_2015',2000001,487300.000000,'EPSG','9001',NULL,487300.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200000100,'Ceres (2015) - Sphere','','IAU_2015',200000100,'IAU_2015',200000100,NULL,NULL,NULL,'Kait: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200000100,'Ceres (2015) - Sphere','','IAU_2015',200000100,'IAU_2015',200000100,NULL,NULL,NULL,'Kait: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200000100','geodetic_datum','IAU_2015',200000100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200000100,'Ceres (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200000100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200000100','geodetic_crs','IAU_2015',200000100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4536,7 +4536,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200000185','projected_crs','IAU_2015', INSERT INTO projected_crs VALUES('IAU_2015',200000190,'Ceres (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',200000100,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_200000190','projected_crs','IAU_2015',200000190,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',200000101,'Ceres (2015)',NULL,'IAU_2015',2000001,487300.000000,'EPSG','9001',NULL,446000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200000101,'Ceres (2015)','','IAU_2015',200000101,'IAU_2015',200000100,NULL,NULL,NULL,'Kait: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200000101,'Ceres (2015)','','IAU_2015',200000101,'IAU_2015',200000100,NULL,NULL,NULL,'Kait: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200000101','geodetic_datum','IAU_2015',200000101,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200000101,'Ceres (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200000101,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200000101','geodetic_crs','IAU_2015',200000101,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4580,7 +4580,7 @@ INSERT INTO usage VALUES('IAU_2015','GCRS_200000102','geodetic_crs','IAU_2015',2 INSERT INTO celestial_body VALUES('IAU_2015', 2000004, 'Vesta', 255000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200000400, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200000400,'Vesta (2015) - Sphere',NULL,'IAU_2015',2000004,255000.000000,'EPSG','9001',NULL,255000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200000400,'Vesta (2015) - Sphere','','IAU_2015',200000400,'IAU_2015',200000400,NULL,NULL,NULL,'Claudia: 146.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200000400,'Vesta (2015) - Sphere','','IAU_2015',200000400,'IAU_2015',200000400,NULL,NULL,NULL,'Claudia: 146.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200000400','geodetic_datum','IAU_2015',200000400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200000400,'Vesta (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200000400,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200000400','geodetic_crs','IAU_2015',200000400,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4621,7 +4621,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200000490','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000016, 'Psyche', 113000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200001600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200001600,'Psyche (2015) - Sphere',NULL,'IAU_2015',2000016,113000.000000,'EPSG','9001',NULL,113000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200001600,'Psyche (2015) - Sphere','','IAU_2015',200001600,'IAU_2015',200001600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200001600,'Psyche (2015) - Sphere','','IAU_2015',200001600,'IAU_2015',200001600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200001600','geodetic_datum','IAU_2015',200001600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200001600,'Psyche (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200001600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200001600','geodetic_crs','IAU_2015',200001600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4662,7 +4662,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200001690','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000021, 'Lutetia', 52500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200002100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200002100,'Lutetia (2015) - Sphere',NULL,'IAU_2015',2000021,52500.000000,'EPSG','9001',NULL,52500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200002100,'Lutetia (2015) - Sphere','','IAU_2015',200002100,'IAU_2015',200002100,NULL,NULL,NULL,'Arbitrarily defined based on light curve information: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200002100,'Lutetia (2015) - Sphere','','IAU_2015',200002100,'IAU_2015',200002100,NULL,NULL,NULL,'Arbitrarily defined based on light curve information: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200002100','geodetic_datum','IAU_2015',200002100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200002100,'Lutetia (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200002100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200002100','geodetic_crs','IAU_2015',200002100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4703,7 +4703,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200002190','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000052, '52 Europa', 157500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200005200, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200005200,'52 Europa (2015) - Sphere',NULL,'IAU_2015',2000052,157500.000000,'EPSG','9001',NULL,157500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200005200,'52 Europa (2015) - Sphere','','IAU_2015',200005200,'IAU_2015',200005200,NULL,NULL,NULL,'long axis that pointed toward the Earth on 2007 May28 8.3125 UT (light-time corrected): 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200005200,'52 Europa (2015) - Sphere','','IAU_2015',200005200,'IAU_2015',200005200,NULL,NULL,NULL,'long axis that pointed toward the Earth on 2007 May28 8.3125 UT (light-time corrected): 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200005200','geodetic_datum','IAU_2015',200005200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200005200,'52 Europa (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200005200,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200005200','geodetic_crs','IAU_2015',200005200,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4744,7 +4744,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200005290','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000216, 'Kleopatra', 65333.333333); INSERT INTO prime_meridian VALUES('IAU_2015', 200021600, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200021600,'Kleopatra (2015) - Sphere',NULL,'IAU_2015',2000216,65333.333333,'EPSG','9001',NULL,65333.333333,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200021600,'Kleopatra (2015) - Sphere','','IAU_2015',200021600,'IAU_2015',200021600,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200021600,'Kleopatra (2015) - Sphere','','IAU_2015',200021600,'IAU_2015',200021600,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200021600','geodetic_datum','IAU_2015',200021600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200021600,'Kleopatra (2015) - Sphere / Ocentric','Use R_m = (a+b+c)/3 as mean radius. Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200021600,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200021600','geodetic_crs','IAU_2015',200021600,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4785,7 +4785,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200021690','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000433, 'Eros', 17000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200043300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200043300,'Eros (2015) - Sphere',NULL,'IAU_2015',2000433,17000.000000,'EPSG','9001',NULL,17000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200043300,'Eros (2015) - Sphere','','IAU_2015',200043300,'IAU_2015',200043300,NULL,NULL,NULL,'unnamed crater: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200043300,'Eros (2015) - Sphere','','IAU_2015',200043300,'IAU_2015',200043300,NULL,NULL,NULL,'unnamed crater: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200043300','geodetic_datum','IAU_2015',200043300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200043300,'Eros (2015) - Sphere / Ocentric','Use semi-major radius as sphere for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200043300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200043300','geodetic_crs','IAU_2015',200043300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4824,7 +4824,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200043385','projected_crs','IAU_2015', INSERT INTO projected_crs VALUES('IAU_2015',200043390,'Eros (2015) - Sphere / Ocentric / Mercator',NULL,'EPSG','4400','IAU_2015',200043300,'IAU_2015',90,NULL,0); INSERT INTO usage VALUES('IAU_2015','PCRS_200043390','projected_crs','IAU_2015',200043390,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO ellipsoid VALUES('IAU_2015',200043301,'Eros (2015)',NULL,'IAU_2015',2000433,17000.000000,'EPSG','9001',NULL,5500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200043301,'Eros (2015)','','IAU_2015',200043301,'IAU_2015',200043300,NULL,NULL,NULL,'unnamed crater: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200043301,'Eros (2015)','','IAU_2015',200043301,'IAU_2015',200043300,NULL,NULL,NULL,'unnamed crater: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200043301','geodetic_datum','IAU_2015',200043301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200043301,'Eros (2015) / Ographic','Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200043301,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200043301','geodetic_crs','IAU_2015',200043301,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4867,7 +4867,7 @@ INSERT INTO usage VALUES('IAU_2015','GCRS_200043302','geodetic_crs','IAU_2015',2 INSERT INTO celestial_body VALUES('IAU_2015', 2000511, 'Davida', 150000.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200051100, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200051100,'Davida (2015) - Sphere',NULL,'IAU_2015',2000511,150000.000000,'EPSG','9001',NULL,150000.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200051100,'Davida (2015) - Sphere','','IAU_2015',200051100,'IAU_2015',200051100,NULL,NULL,NULL,'the long axis that points toward the Earth on 2002 December27 7.83 UT: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200051100,'Davida (2015) - Sphere','','IAU_2015',200051100,'IAU_2015',200051100,NULL,NULL,NULL,'the long axis that points toward the Earth on 2002 December27 7.83 UT: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200051100','geodetic_datum','IAU_2015',200051100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200051100,'Davida (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200051100,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200051100','geodetic_crs','IAU_2015',200051100,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4908,7 +4908,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200051190','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2000253, 'Mathilde', 26500.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200025300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200025300,'Mathilde (2015) - Sphere',NULL,'IAU_2015',2000253,26500.000000,'EPSG','9001',NULL,26500.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200025300,'Mathilde (2015) - Sphere','','IAU_2015',200025300,'IAU_2015',200025300,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200025300,'Mathilde (2015) - Sphere','','IAU_2015',200025300,'IAU_2015',200025300,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200025300','geodetic_datum','IAU_2015',200025300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200025300,'Mathilde (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200025300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200025300','geodetic_crs','IAU_2015',200025300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4949,7 +4949,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200025390','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2002867, 'Steins', 2700.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 200286700, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200286700,'Steins (2015) - Sphere',NULL,'IAU_2015',2002867,2700.000000,'EPSG','9001',NULL,2700.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200286700,'Steins (2015) - Sphere','','IAU_2015',200286700,'IAU_2015',200286700,NULL,NULL,NULL,'Topaz: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200286700,'Steins (2015) - Sphere','','IAU_2015',200286700,'IAU_2015',200286700,NULL,NULL,NULL,'Topaz: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200286700','geodetic_datum','IAU_2015',200286700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200286700,'Steins (2015) - Sphere / Ocentric','Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200286700,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200286700','geodetic_crs','IAU_2015',200286700,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -4993,7 +4993,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200286790','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2004179, 'Toutatis', 1331.666667); INSERT INTO prime_meridian VALUES('IAU_2015', 200417900, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',200417900,'Toutatis (2015) - Sphere',NULL,'IAU_2015',2004179,1331.666667,'EPSG','9001',NULL,1331.666667,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',200417900,'Toutatis (2015) - Sphere','','IAU_2015',200417900,'IAU_2015',200417900,NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('IAU_2015',200417900,'Toutatis (2015) - Sphere','','IAU_2015',200417900,'IAU_2015',200417900,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_200417900','geodetic_datum','IAU_2015',200417900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',200417900,'Toutatis (2015) - Sphere / Ocentric','Use R_m = (a+b+c)/3 as mean radius. Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',200417900,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_200417900','geodetic_crs','IAU_2015',200417900,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); @@ -5034,7 +5034,7 @@ INSERT INTO usage VALUES('IAU_2015','PCRS_200417990','projected_crs','IAU_2015', INSERT INTO celestial_body VALUES('IAU_2015', 2025143, 'Itokawa', 173.000000); INSERT INTO prime_meridian VALUES('IAU_2015', 202514300, 'Reference Meridian', 0.0, 'EPSG', 9102, 0); INSERT INTO ellipsoid VALUES('IAU_2015',202514300,'Itokawa (2015) - Sphere',NULL,'IAU_2015',2025143,173.000000,'EPSG','9001',NULL,173.000000,0); -INSERT INTO geodetic_datum VALUES('IAU_2015',202514300,'Itokawa (2015) - Sphere','','IAU_2015',202514300,'IAU_2015',202514300,NULL,NULL,NULL,'defined with W0=0: 0.0',0); +INSERT INTO geodetic_datum VALUES('IAU_2015',202514300,'Itokawa (2015) - Sphere','','IAU_2015',202514300,'IAU_2015',202514300,NULL,NULL,NULL,'defined with W0=0: 0.0',NULL,0); INSERT INTO usage VALUES('IAU_2015','GD_202514300','geodetic_datum','IAU_2015',202514300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('IAU_2015',202514300,'Itokawa (2015) - Sphere / Ocentric','Use R_m = (a+b+c)/3 as mean radius. Use mean radius as sphere radius for interoperability. Source of IAU Coordinate systems: https://doi.org/10.1007/s10569-017-9805-5','geographic 2D','EPSG','6422','IAU_2015',202514300,NULL,0); INSERT INTO usage VALUES('IAU_2015','GCRS_202514300','geodetic_crs','IAU_2015',202514300,'PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); diff --git a/data/sql/ignf.sql b/data/sql/ignf.sql index 192a95b133..126b1d52ce 100644 --- a/data/sql/ignf.sql +++ b/data/sql/ignf.sql @@ -4,119 +4,119 @@ INSERT INTO "metadata" VALUES('IGNF.SOURCE', 'https://raw.githubusercontent.com/ INSERT INTO "metadata" VALUES('IGNF.VERSION', '3.1.0'); INSERT INTO "metadata" VALUES('IGNF.DATE', '2019-05-24'); INSERT INTO "ellipsoid" VALUES('IGNF','ELG032','SPHERE PICARD',NULL,'PROJ', 'EARTH', 6371598,'EPSG','9001',0,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA052','BORA_SAU 2001',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5530001','CADASTRE 1953-1954 (ATOLL RAIVAVAE)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5680001','CADASTRE 1980 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG7010001','CADASTRE 1997',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0100001','CAP BIENVENUE - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0110001','CAP JULES - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5060001','CLIPPERTON (MARINE 1967)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0130001','CROZET-POSSESSION 1963',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG4070101','CSG 1967 (IGN 1995)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA018','DANGER 1950 (SAINT-PIERRE-ET-MIQUELON)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5050001','EFATE-IGN 1957',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA034','EPF 1952 (ILE DES PETRELS)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3790001','EUROPA (MHM 1954)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA122','EVRF2000 (UELN-95/98)(EUROPEAN VERTICAL REFERENCE FRAME)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA125','EVRF2007 (EUROPEAN VERTICAL REFERENCE FRAME 2007)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5690001','FG 1949 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3800001','GLORIEUSES (MHG 1977)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG4260001','GUADELOUPE - FORT MARIGOT',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA051','HUAHINE_SAU 2001',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA026','IGN 1962 (KERGUELEN)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5630001','IGN 1963 (HIVA OA - TAHUATA - MOHOTANI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA028','IGN 1966 (TAHITI)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5870001','IGN 1978 (ATOLL MURUROA) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA027','IGN 1984 (ILE UVEA OU WALLIS)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA014','IGN 1987 (MARTINIQUE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA006','IGN 1988 (GUADELOUPE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA008','IGN 1988 LS (GUADELOUPE / LES SAINTES)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA007','IGN 1988 MG (GUADELOUPE / MARIE-GALANTE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA012','IGN 1988 SB (GUADELOUPE / SAINT-BARTHELEMY)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA009','IGN 1988 SM (GUADELOUPE / SAINT-MARTIN)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA033','IGN 1989 (REUNION)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA037','IGN 1992 LD (GUADELOUPE / LA DESIRADE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA053','IGN 2008 LD (GUADELOUPE / LA DESIRADE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0300001','IGN53 (IGN RAIATEA-TAHAA) RAIATEA-TAHAA-BORA BORA-HUAHINE',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5970001','IGN72 (EIAO - HIVA OA - MOHOTANI) MARQUISES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0140001','ILE AMSTERDAM 1963',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0150001','ILE SAINT-PAUL 1969',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3810001','JUAN DE NOVA (MHM 1953)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0060001','KERGUELEN - K0 (IGN 1962)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5590001','MANGAREVA 1951',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA047','MAUPITI_SAU 2001',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5880001','MGT 1947 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5700001','MGT 1948 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5780001','MGT 1949 (ATOLL HAO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5730001','MGT 1950 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5850001','MGT 1951 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5570001','MGT 1955 (TUBUAI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5550001','MHEFO 1955 (ATOLL RAPA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5600001','MHEFO 1955 (FATU HUKU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5640001','MHEFO 1955 (MOHOTANI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5860001','MHOI 1962 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5800001','MHPF 1958 (ATOLL HAO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5840001','MHPF 1959 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5890001','MHPF 1959 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5920001','MHPF 1960 (ATOLL TIKEHAU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5610001','MHPF 1960 (HIVA OA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5660001','MHPF 1963 (ATOLL AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5740001','MHPF 1964 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5750001','MHPF 1965-1 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5760001','MHPF 1965-2 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5900001','MHPF 1966-1968 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5770001','MHPF 1966 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5540001','MHPF 1966 (ATOLL RAIVAVAE)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5790001','MHPF 1967 (ATOLLS HAO ET AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5620001','MHPF 1967 (HIVA OA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0270001','MHPF 1967 (MANGAREVA - AGAKAUITAI - AUKENA - MEKIRO) GAMBIER',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5910001','MHPF 1969 (ATOLLS TAKAROA ET TAKAPOTO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5580001','MHPF 1969 (TUBUAI) ILES AUSTRALES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0290001','MHPF70 (KAUEHI) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA029','MOOREA 1981 (MOOREA_SAU 2001)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0340001','MOP 1983 (MAUPITI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5720001','MOP84 (FANGATAUFA 1984)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5960001','MOP86 (APATAKI - RAPA - HAO) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0870001','MOP88 (TIKEHAU) TUAMOTU',NULL,'EPSG','7043','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0280001','MOP90 (TETIAROA) ILES DE LA SOCIETE',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5980001','MOP92 (ANAA) TUAMOTU',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA001','NGF-BOURDALOUE',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA003','NGF-IGN 1969',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA011','NGF-IGN 1978',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA002','NGF-LALLEMAND',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5650001','NGT 1949 (ATOLL AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA054','NGWF FUTUNA',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA041','NGWF WALLIS (MOP 1996)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA016','NIVELLEMENT GENERAL DE GUYANE (NGG) 1977',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA010','NIVELLEMENT GENERAL DE LA CORSE (NGC)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA036','NIVELLEMENT GENERAL DE LIFOU (IGN 1991 LF)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA035','NIVELLEMENT GENERAL DE MARE (IGN 1991 MR)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA019','NIVELLEMENT GENERAL DE NOUVELLE-CALEDONIE (NGNC)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA109','NORMAL NULL (NIVELLEMENT GENERAL DU LUXEMBOURG NG-L)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG7080001','NOUMEA 74 (TRIANGULATION DE NOUMEA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5040001','NOUVELLE CALEDONIE - GOMEN TERME NORD',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0120001','PORT-MARTIN - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA049','RAIATEA_SAU 2001',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3170201','REUNION - PITON DES NEIGES (IGN 1992)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3170301','REUNION - PITON DES NEIGES (IGN 2008)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0310001','SAT84 (RURUTU) ILES AUSTRALES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5560001','SEQ 1980 (ATOLL RAPA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5710001','SHM 1947-1950 (ATOLL FAKARAVA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5820001','SHM 1947-1950 (ATOLL HIKUERU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5830001','SHM 1947-1950 (ATOLL MAKEMO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5930001','SHM 1947-1950 (ATOLL TIKEHAU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5670001','SHM 1947 (ATOLL ANAA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5810001','SHM 1949 (ATOLL HARAIKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5940001','SHM 1969 (ATOLL TUREIA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA038','SHOM 1953 (MAYOTTE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA042','SHOM 1977 (ILES GLORIEUSES - CANAL DE MOZAMBIQUE)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA020','SHOM 1978 (ILE DES PINS)',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG7100001','ST 84 ILE DES PINS',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG7090001','ST 87 OUVEA',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "vertical_datum" VALUES('IGNF','REA050','TAHAA_SAU 2001',NULL,NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG5250001','TANNA BLOC SUD',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG3820001','TROMELIN (SGM 1956)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); -INSERT INTO "geodetic_datum" VALUES('IGNF','REG0160001','WALLIS-UVEA MOP1976',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA052','BORA_SAU 2001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5530001','CADASTRE 1953-1954 (ATOLL RAIVAVAE)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5680001','CADASTRE 1980 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG7010001','CADASTRE 1997',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0100001','CAP BIENVENUE - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0110001','CAP JULES - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5060001','CLIPPERTON (MARINE 1967)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0130001','CROZET-POSSESSION 1963',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG4070101','CSG 1967 (IGN 1995)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA018','DANGER 1950 (SAINT-PIERRE-ET-MIQUELON)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5050001','EFATE-IGN 1957',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA034','EPF 1952 (ILE DES PETRELS)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3790001','EUROPA (MHM 1954)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA122','EVRF2000 (UELN-95/98)(EUROPEAN VERTICAL REFERENCE FRAME)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA125','EVRF2007 (EUROPEAN VERTICAL REFERENCE FRAME 2007)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5690001','FG 1949 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3800001','GLORIEUSES (MHG 1977)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG4260001','GUADELOUPE - FORT MARIGOT',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA051','HUAHINE_SAU 2001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA026','IGN 1962 (KERGUELEN)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5630001','IGN 1963 (HIVA OA - TAHUATA - MOHOTANI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA028','IGN 1966 (TAHITI)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5870001','IGN 1978 (ATOLL MURUROA) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA027','IGN 1984 (ILE UVEA OU WALLIS)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA014','IGN 1987 (MARTINIQUE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA006','IGN 1988 (GUADELOUPE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA008','IGN 1988 LS (GUADELOUPE / LES SAINTES)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA007','IGN 1988 MG (GUADELOUPE / MARIE-GALANTE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA012','IGN 1988 SB (GUADELOUPE / SAINT-BARTHELEMY)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA009','IGN 1988 SM (GUADELOUPE / SAINT-MARTIN)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA033','IGN 1989 (REUNION)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA037','IGN 1992 LD (GUADELOUPE / LA DESIRADE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA053','IGN 2008 LD (GUADELOUPE / LA DESIRADE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0300001','IGN53 (IGN RAIATEA-TAHAA) RAIATEA-TAHAA-BORA BORA-HUAHINE',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5970001','IGN72 (EIAO - HIVA OA - MOHOTANI) MARQUISES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0140001','ILE AMSTERDAM 1963',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0150001','ILE SAINT-PAUL 1969',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3810001','JUAN DE NOVA (MHM 1953)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0060001','KERGUELEN - K0 (IGN 1962)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5590001','MANGAREVA 1951',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA047','MAUPITI_SAU 2001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5880001','MGT 1947 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5700001','MGT 1948 (ATOLL APATAKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5780001','MGT 1949 (ATOLL HAO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5730001','MGT 1950 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5850001','MGT 1951 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5570001','MGT 1955 (TUBUAI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5550001','MHEFO 1955 (ATOLL RAPA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5600001','MHEFO 1955 (FATU HUKU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5640001','MHEFO 1955 (MOHOTANI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5860001','MHOI 1962 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5800001','MHPF 1958 (ATOLL HAO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5840001','MHPF 1959 (ATOLL MURUROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5890001','MHPF 1959 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5920001','MHPF 1960 (ATOLL TIKEHAU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5610001','MHPF 1960 (HIVA OA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5660001','MHPF 1963 (ATOLL AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5740001','MHPF 1964 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5750001','MHPF 1965-1 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5760001','MHPF 1965-2 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5900001','MHPF 1966-1968 (ATOLL RANGIROA OU RAIROA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5770001','MHPF 1966 (ATOLL FANGATAUFA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5540001','MHPF 1966 (ATOLL RAIVAVAE)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5790001','MHPF 1967 (ATOLLS HAO ET AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5620001','MHPF 1967 (HIVA OA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0270001','MHPF 1967 (MANGAREVA - AGAKAUITAI - AUKENA - MEKIRO) GAMBIER',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5910001','MHPF 1969 (ATOLLS TAKAROA ET TAKAPOTO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5580001','MHPF 1969 (TUBUAI) ILES AUSTRALES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0290001','MHPF70 (KAUEHI) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA029','MOOREA 1981 (MOOREA_SAU 2001)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0340001','MOP 1983 (MAUPITI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5720001','MOP84 (FANGATAUFA 1984)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5960001','MOP86 (APATAKI - RAPA - HAO) TUAMOTU',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0870001','MOP88 (TIKEHAU) TUAMOTU',NULL,'EPSG','7043','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0280001','MOP90 (TETIAROA) ILES DE LA SOCIETE',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5980001','MOP92 (ANAA) TUAMOTU',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA001','NGF-BOURDALOUE',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA003','NGF-IGN 1969',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA011','NGF-IGN 1978',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA002','NGF-LALLEMAND',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5650001','NGT 1949 (ATOLL AMANU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA054','NGWF FUTUNA',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA041','NGWF WALLIS (MOP 1996)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA016','NIVELLEMENT GENERAL DE GUYANE (NGG) 1977',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA010','NIVELLEMENT GENERAL DE LA CORSE (NGC)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA036','NIVELLEMENT GENERAL DE LIFOU (IGN 1991 LF)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA035','NIVELLEMENT GENERAL DE MARE (IGN 1991 MR)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA019','NIVELLEMENT GENERAL DE NOUVELLE-CALEDONIE (NGNC)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA109','NORMAL NULL (NIVELLEMENT GENERAL DU LUXEMBOURG NG-L)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG7080001','NOUMEA 74 (TRIANGULATION DE NOUMEA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5040001','NOUVELLE CALEDONIE - GOMEN TERME NORD',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0120001','PORT-MARTIN - PERROUD 1955',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA049','RAIATEA_SAU 2001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3170201','REUNION - PITON DES NEIGES (IGN 1992)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3170301','REUNION - PITON DES NEIGES (IGN 2008)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0310001','SAT84 (RURUTU) ILES AUSTRALES',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5560001','SEQ 1980 (ATOLL RAPA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5710001','SHM 1947-1950 (ATOLL FAKARAVA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5820001','SHM 1947-1950 (ATOLL HIKUERU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5830001','SHM 1947-1950 (ATOLL MAKEMO)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5930001','SHM 1947-1950 (ATOLL TIKEHAU)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5670001','SHM 1947 (ATOLL ANAA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5810001','SHM 1949 (ATOLL HARAIKI)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5940001','SHM 1969 (ATOLL TUREIA)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA038','SHOM 1953 (MAYOTTE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA042','SHOM 1977 (ILES GLORIEUSES - CANAL DE MOZAMBIQUE)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA020','SHOM 1978 (ILE DES PINS)',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG7100001','ST 84 ILE DES PINS',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG7090001','ST 87 OUVEA',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('IGNF','REA050','TAHAA_SAU 2001',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG5250001','TANNA BLOC SUD',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG3820001','TROMELIN (SGM 1956)',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('IGNF','REG0160001','WALLIS-UVEA MOP1976',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "extent" VALUES('IGNF','1','AMANU (ARCHIPEL DES TUAMOTU)','AMANU (ARCHIPEL DES TUAMOTU)',-18,-17.58,-141,-140.58,0); INSERT INTO scope VALUES('IGNF','1','INTERMEDIAIRE POUR LE CALCUL',0); INSERT INTO "geodetic_crs" VALUES('IGNF','AMANU63','Amanu MHPF 1963 cartesiennes geocent.',NULL,'geocentric','EPSG','6500','IGNF','REG5660001',NULL,0); @@ -1881,7 +1881,7 @@ INSERT INTO "grid_transformation" VALUES('IGNF','TSG1164','RGF93 (ETRS89) vers N INSERT INTO "usage" VALUES('IGNF', 'TSG1164_USAGE','grid_transformation','IGNF','TSG1164','IGNF','142','IGNF','9'); INSERT INTO "grid_transformation" VALUES('IGNF','TSG1252','RGF93 (ETRS89) vers NGF-IGN 1969',NULL,'EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','IGNF','RGF93GEODD','IGNF','IGN69',NULL,'EPSG','8666','Geoid (height correction) model file','http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/anciennes/RAF18.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG1252_USAGE','grid_transformation','IGNF','TSG1252','IGNF','142','IGNF','6'); -INSERT INTO "grid_transformation" VALUES('IGNF','TSG1163','RGF93 (ETRS89) vers NGF-IGN 1978',NULL,'EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','IGNF','RGF93GEODD','IGNF','IGN78C',NULL,'EPSG','8666','Geoid (height correction) model file','http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAC09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'1.0.0',0); +INSERT INTO "grid_transformation" VALUES('IGNF','TSG1163','RGF93 (ETRS89) vers NGF-IGN 1978',NULL,'EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','IGNF','RGF93GEODD','IGNF','IGN78C',NULL,'EPSG','8666','Geoid (height correction) model file','https://geodesie.ign.fr/contenu/fichiers/documentation/grilles/anciennes/RAC09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG1163_USAGE','grid_transformation','IGNF','TSG1163','IGNF','86','IGNF','5'); INSERT INTO "grid_transformation" VALUES('IGNF','TSG1161','RGFG95 (RESEAU GEODESIQUE FRANCAIS DE GUYANE 1995) vers NIVELLEMENT GENERAL DE GUYANE (NGG) 1977',NULL,'EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','IGNF','RGFG95GEO','IGNF','GUYA77',NULL,'EPSG','8666','Geoid (height correction) model file','http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggguy15.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG1161_USAGE','grid_transformation','IGNF','TSG1161','IGNF','10','IGNF','5'); @@ -3970,22 +3970,6 @@ INSERT INTO grid_alternatives(original_grid_name, 0, NULL, 'https://cdn.proj.org/fr_ign_ggm00v2.tif', 1, 1, NULL); -INSERT INTO grid_alternatives(original_grid_name, - proj_grid_name, - old_proj_grid_name, - proj_grid_format, - proj_method, - inverse_direction, - package_name, - url, direct_download, open_license, directory) - VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAC09.mnt', -- as referenced by the IGNF registry - 'fr_ign_RAC09.tif', - 'RAC09.gtx', - 'GTiff', - 'geoid_like', - 0, - NULL, - 'https://cdn.proj.org/fr_ign_RAC09.tif', 1, 1, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, old_proj_grid_name, @@ -4322,6 +4306,22 @@ INSERT INTO grid_alternatives(original_grid_name, 0, NULL, 'https://cdn.proj.org/fr_ign_ggspm06v1.tif', 1, 1, NULL); +INSERT INTO grid_alternatives(original_grid_name, + proj_grid_name, + old_proj_grid_name, + proj_grid_format, + proj_method, + inverse_direction, + package_name, + url, direct_download, open_license, directory) + VALUES ('https://geodesie.ign.fr/contenu/fichiers/documentation/grilles/anciennes/RAC09.mnt', -- as referenced by the IGNF registry + 'fr_ign_RAC09.tif', + 'RAC09.gtx', + 'GTiff', + 'geoid_like', + 0, + NULL, + 'https://cdn.proj.org/fr_ign_RAC09.tif', 1, 1, NULL); --- Null transformations between RRAF and WGS84 adapted from EPSG diff --git a/data/sql/nkg.sql b/data/sql/nkg.sql index a632967c2a..bedda3f72b 100644 --- a/data/sql/nkg.sql +++ b/data/sql/nkg.sql @@ -48,6 +48,7 @@ INSERT INTO "geodetic_datum" VALUES ( 2000.0, -- frame reference epoch NULL, -- ensemble accuracy NULL, -- anchor + NULL, -- anchor_epoch 0 -- deprecated ); @@ -93,6 +94,7 @@ INSERT INTO "geodetic_datum" VALUES ( 2000.0, -- frame reference epoch NULL, -- ensemble accuracy NULL, -- anchor + NULL, -- anchor_epoch 0 -- deprecated ); diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index a057c1c465..8029a98e47 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -154,6 +154,7 @@ CREATE TABLE geodetic_datum ( frame_reference_epoch FLOAT, --- only set for dynamic datum, and should be set when it is a dynamic datum ensemble_accuracy FLOAT CHECK (ensemble_accuracy IS NULL OR ensemble_accuracy > 0), --- only for a datum ensemble. and should be set when it is a datum ensemble anchor TEXT, + anchor_epoch FLOAT, 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) ON DELETE CASCADE, @@ -191,6 +192,7 @@ CREATE TABLE vertical_datum ( frame_reference_epoch FLOAT, --- only set for dynamic datum, and should be set when it is a dynamic datum ensemble_accuracy FLOAT CHECK (ensemble_accuracy IS NULL OR ensemble_accuracy > 0), --- only for a datum ensemble. and should be set when it is a datum ensemble anchor TEXT, + anchor_epoch FLOAT, deprecated BOOLEAN NOT NULL CHECK (deprecated IN (0, 1)), CONSTRAINT pk_vertical_datum PRIMARY KEY (auth_name, code) ) WITHOUT ROWID; diff --git a/data/sql/vertical_datum.sql b/data/sql/vertical_datum.sql index 114521d031..bf1286d0d7 100644 --- a/data/sql/vertical_datum.sql +++ b/data/sql/vertical_datum.sql @@ -1,496 +1,496 @@ --- This file has been generated by scripts/build_db.py. DO NOT EDIT ! -INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1027','EGM2008 geoid',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13079','vertical_datum','EPSG','1027','EPSG','1262','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,'1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1028','Fao 1979',NULL,'1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13080','vertical_datum','EPSG','1028','EPSG','3625','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,'2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1030','N2000',NULL,'2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13082','vertical_datum','EPSG','1030','EPSG','3333','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,'2009-09-14',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1039','New Zealand Vertical Datum 2009',NULL,'2009-09-14',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13091','vertical_datum','EPSG','1039','EPSG','1175','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,'1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1040','Dunedin-Bluff 1960',NULL,'1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13092','vertical_datum','EPSG','1040','EPSG','3806','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1049','Korean Vertical Datum 1964',NULL,'1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1049','Korean Vertical Datum 1964',NULL,'1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13101','vertical_datum','EPSG','1049','EPSG','3266','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,'1875-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1050','Trieste',NULL,'1875-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13102','vertical_datum','EPSG','1050','EPSG','2370','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa 1942',NULL,'1942-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1051','Genoa 1942',NULL,'1942-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13103','vertical_datum','EPSG','1051','EPSG','3736','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,'1932-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1054','Sri Lanka Vertical Datum',NULL,'1932-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13106','vertical_datum','EPSG','1054','EPSG','3310','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,'2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1059','Faroe Islands Vertical Reference 2009',NULL,'2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13111','vertical_datum','EPSG','1059','EPSG','3248','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,'2010-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1079','Fehmarnbelt Vertical Reference 2010',NULL,'2010-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13131','vertical_datum','EPSG','1079','EPSG','3890','EPSG','1139'); -INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomical Tide',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1080','Lowest Astronomical Tide',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13132','vertical_datum','EPSG','1080','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomical Tide',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1082','Highest Astronomical Tide',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13134','vertical_datum','EPSG','1082','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1083','Lower Low Water Large Tide',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13135','vertical_datum','EPSG','1083','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1084','Higher High Water Large Tide',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13136','vertical_datum','EPSG','1084','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1085','Indian Spring Low Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13137','vertical_datum','EPSG','1085','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1086','Mean Lower Low Water Spring Tides',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13138','vertical_datum','EPSG','1086','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1087','Mean Low Water Spring Tides',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13139','vertical_datum','EPSG','1087','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1088','Mean High Water Spring Tides',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13140','vertical_datum','EPSG','1088','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1089','Mean Lower Low Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13141','vertical_datum','EPSG','1089','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1090','Mean Higher High Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13142','vertical_datum','EPSG','1090','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1091','Mean Low Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13143','vertical_datum','EPSG','1091','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1092','Mean High Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13144','vertical_datum','EPSG','1092','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1093','Low Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13145','vertical_datum','EPSG','1093','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1094','High Water',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13146','vertical_datum','EPSG','1094','EPSG','1262','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,'2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1096','Norway Normal Null 2000',NULL,'2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13148','vertical_datum','EPSG','1096','EPSG','1352','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,'1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1097','Grand Cayman Vertical Datum 1954',NULL,'1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13149','vertical_datum','EPSG','1097','EPSG','3185','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1098','Little Cayman Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13150','vertical_datum','EPSG','1098','EPSG','4121','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1099','Cayman Brac Vertical Datum 1961',NULL,'1961-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13151','vertical_datum','EPSG','1099','EPSG','3207','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha',NULL,'1913-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1101','Cais da Pontinha',NULL,'1913-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13153','vertical_datum','EPSG','1101','EPSG','4125','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila',NULL,'1936-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1102','Cais da Vila',NULL,'1936-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13154','vertical_datum','EPSG','1102','EPSG','3680','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,'1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1103','Cais das Velas',NULL,'1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13155','vertical_datum','EPSG','1103','EPSG','2875','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,'1935-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1104','Horta',NULL,'1935-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13156','vertical_datum','EPSG','1104','EPSG','2873','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,'1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1105','Cais da Madalena',NULL,'1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13157','vertical_datum','EPSG','1105','EPSG','2874','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,'1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1106','Santa Cruz da Graciosa',NULL,'1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13158','vertical_datum','EPSG','1106','EPSG','3681','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha',NULL,'1951-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1107','Cais da Figueirinha',NULL,'1951-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13159','vertical_datum','EPSG','1107','EPSG','2872','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,'1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1108','Santa Cruz das Flores',NULL,'1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13160','vertical_datum','EPSG','1108','EPSG','1344','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,'1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1109','Cais da Vila do Porto',NULL,'1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13161','vertical_datum','EPSG','1109','EPSG','4126','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,'1991-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1110','Ponta Delgada',NULL,'1991-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13162','vertical_datum','EPSG','1110','EPSG','2871','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,'2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1119','Northern Marianas Vertical Datum of 2003',NULL,'2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13171','vertical_datum','EPSG','1119','EPSG','4171','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,'1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1121','Tutuila Vertical Datum of 1962',NULL,'1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13173','vertical_datum','EPSG','1121','EPSG','2288','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,'1963-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1122','Guam Vertical Datum of 1963',NULL,'1963-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13174','vertical_datum','EPSG','1122','EPSG','3255','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,'2012-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1123','Puerto Rico Vertical Datum of 2002',NULL,'2012-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13175','vertical_datum','EPSG','1123','EPSG','3294','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,'2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1124','Virgin Islands Vertical Datum of 2009',NULL,'2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13176','vertical_datum','EPSG','1124','EPSG','3330','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,'2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1125','American Samoa Vertical Datum of 2002',NULL,'2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13177','vertical_datum','EPSG','1125','EPSG','2288','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,'2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1126','Guam Vertical Datum of 2004',NULL,'2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13178','vertical_datum','EPSG','1126','EPSG','3255','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013 (CGG2013)',NULL,'2013-11-28',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1127','Canadian Geodetic Vertical Datum of 2013 (CGG2013)',NULL,'2013-11-28',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18090','vertical_datum','EPSG','1127','EPSG','1061','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,'1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1129','Japanese Standard Levelling Datum 1972',NULL,'1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13181','vertical_datum','EPSG','1129','EPSG','4168','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,'2002-04-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1130','Japanese Geodetic Datum 2000 (vertical)',NULL,'2002-04-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13182','vertical_datum','EPSG','1130','EPSG','3263','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,'2011-10-21',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1131','Japanese Geodetic Datum 2011 (vertical)',NULL,'2011-10-21',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13183','vertical_datum','EPSG','1131','EPSG','3263','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,'2009-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1140','Singapore Height Datum',NULL,'2009-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13192','vertical_datum','EPSG','1140','EPSG','1210','EPSG','1144'); -INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,'1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1146','Ras Ghumays',NULL,'1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13198','vertical_datum','EPSG','1146','EPSG','4225','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,'1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1148','Famagusta 1960',NULL,'1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13200','vertical_datum','EPSG','1148','EPSG','3236','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,'2011-10-14',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1149','PNG08',NULL,'2011-10-14',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13201','vertical_datum','EPSG','1149','EPSG','4384','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,'2005-06-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1150','Kumul 34',NULL,'2005-06-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13202','vertical_datum','EPSG','1150','EPSG','4013','EPSG','1029'); -INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,'1990-10-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1151','Kiunga',NULL,'1990-10-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13203','vertical_datum','EPSG','1151','EPSG','4383','EPSG','1029'); -INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,'1912-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1161','Deutsches Haupthoehennetz 1912',NULL,'1912-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13213','vertical_datum','EPSG','1161','EPSG','3339','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,'2005-07-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1162','Latvian Height System 2000',NULL,'2005-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13214','vertical_datum','EPSG','1162','EPSG','3268','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,'2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1164','Ordnance Datum Newlyn (Offshore)',NULL,'2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13216','vertical_datum','EPSG','1164','EPSG','4391','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,'2016-06-27',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1169','New Zealand Vertical Datum 2016',NULL,'2016-06-27',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13221','vertical_datum','EPSG','1169','EPSG','1175','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,'2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1170','Deutsches Haupthoehennetz 2016',NULL,'2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13222','vertical_datum','EPSG','1170','EPSG','1103','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,'1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1171','Port Moresby 1996',NULL,'1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13223','vertical_datum','EPSG','1171','EPSG','4425','EPSG','1029'); -INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1172','Port Moresby 2008',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13224','vertical_datum','EPSG','1172','EPSG','4425','EPSG','1029'); -INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,'1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1175','Jamestown 1971',NULL,'1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13227','vertical_datum','EPSG','1175','EPSG','3183','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,'2011-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1176','St. Helena Tritan Vertical Datum 2011',NULL,'2011-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13228','vertical_datum','EPSG','1176','EPSG','3183','EPSG','1029'); -INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,'2015-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 2015',NULL,'2015-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13229','vertical_datum','EPSG','1177','EPSG','3183','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,'2004-08-07',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,'2004-08-07',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13242','vertical_datum','EPSG','1190','EPSG','4662','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13251','vertical_datum','EPSG','1199','EPSG','4461','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,'2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,'2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13252','vertical_datum','EPSG','1200','EPSG','4454','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,'1957-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1202','Baltic 1957',NULL,'1957-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13254','vertical_datum','EPSG','1202','EPSG','1306','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1205','EPSG example wellbore vertical datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13257','vertical_datum','EPSG','1205','EPSG','4393','EPSG','1226'); -INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,'1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1210','Macao Height Datum',NULL,'1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13262','vertical_datum','EPSG','1210','EPSG','1147','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,'1943-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1213','Helsinki 1943',NULL,'1943-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13265','vertical_datum','EPSG','1213','EPSG','4522','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,'2010-10-10',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1215','Slovenian Vertical System 2010',NULL,'2010-10-10',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13267','vertical_datum','EPSG','1215','EPSG','3307','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,'2012-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1216','Serbian Vertical Reference System 2012',NULL,'2012-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13268','vertical_datum','EPSG','1216','EPSG','4543','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,'1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1219','MOMRA Vertical Geodetic Control',NULL,'1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13271','vertical_datum','EPSG','1219','EPSG','3303','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1224','Taiwan Vertical Datum 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13276','vertical_datum','EPSG','1224','EPSG','3982','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,'1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1226','Datum Altimetrico de Costa Rica 1952',NULL,'1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13278','vertical_datum','EPSG','1226','EPSG','3232','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1250','IGN 2008 LD',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13302','vertical_datum','EPSG','1250','EPSG','2893','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1255','Nivellement General de Nouvelle Caledonie 2008',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1255','Nivellement General de Nouvelle Caledonie 2008',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13979','vertical_datum','EPSG','1255','EPSG','3430','EPSG','1026'); -INSERT INTO "vertical_datum" VALUES('EPSG','1256','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010',NULL,'2015-12-05',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1256','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010',NULL,'2015-12-05',NULL,NULL,NULL,2010.0,0); INSERT INTO "usage" VALUES('EPSG','13972','vertical_datum','EPSG','1256','EPSG','1061','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1260','Sistema de Referencia Vertical Nacional 2016',NULL,'2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1260','Sistema de Referencia Vertical Nacional 2016',NULL,'2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13893','vertical_datum','EPSG','1260','EPSG','4573','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1261','European Vertical Reference Frame 2000 Austria',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1261','European Vertical Reference Frame 2000 Austria',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13894','vertical_datum','EPSG','1261','EPSG','1037','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','1262','South Africa Land Levelling Datum',NULL,'2010-05-11',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1262','South Africa Land Levelling Datum',NULL,'2010-05-11',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13895','vertical_datum','EPSG','1262','EPSG','3309','EPSG','1181'); -INSERT INTO "vertical_datum" VALUES('EPSG','1265','HS2 Vertical Reference Frame',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1265','HS2 Vertical Reference Frame',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14027','vertical_datum','EPSG','1265','EPSG','4582','EPSG','1260'); -INSERT INTO "vertical_datum" VALUES('EPSG','1267','Wiener Null',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1267','Wiener Null',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13981','vertical_datum','EPSG','1267','EPSG','4585','EPSG','1248'); -INSERT INTO "vertical_datum" VALUES('EPSG','1269','Kingdom of Saudi Arabia Vertical Reference Frame Jeddah 2014',NULL,'2014-10-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1269','Kingdom of Saudi Arabia Vertical Reference Frame Jeddah 2014',NULL,'2014-10-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13897','vertical_datum','EPSG','1269','EPSG','3303','EPSG','1181'); -INSERT INTO "vertical_datum" VALUES('EPSG','1270','Mean Sea Level Netherlands',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1270','Mean Sea Level Netherlands',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14119','vertical_datum','EPSG','1270','EPSG','4742','EPSG','1265'); -INSERT INTO "vertical_datum" VALUES('EPSG','1274','European Vertical Reference Frame 2019',NULL,'2020-09-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1274','European Vertical Reference Frame 2019',NULL,'2020-09-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14738','vertical_datum','EPSG','1274','EPSG','4608','EPSG','1261'); -INSERT INTO "vertical_datum" VALUES('EPSG','1275','Mallorca',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1275','Mallorca',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14014','vertical_datum','EPSG','1275','EPSG','4602','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1276','Menorca',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1276','Menorca',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14015','vertical_datum','EPSG','1276','EPSG','4603','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1277','Ibiza',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1277','Ibiza',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14016','vertical_datum','EPSG','1277','EPSG','4604','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1278','Lanzarote',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1278','Lanzarote',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14017','vertical_datum','EPSG','1278','EPSG','4591','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1279','Fuerteventura',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1279','Fuerteventura',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14018','vertical_datum','EPSG','1279','EPSG','4592','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1280','Gran Canaria',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1280','Gran Canaria',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14019','vertical_datum','EPSG','1280','EPSG','4593','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1281','Tenerife',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1281','Tenerife',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14020','vertical_datum','EPSG','1281','EPSG','4594','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1282','La Gomera',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1282','La Gomera',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14021','vertical_datum','EPSG','1282','EPSG','4595','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1283','La Palma',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1283','La Palma',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14022','vertical_datum','EPSG','1283','EPSG','4596','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1284','El Hierro',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1284','El Hierro',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14023','vertical_datum','EPSG','1284','EPSG','4597','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1285','Ceuta 2',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1285','Ceuta 2',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14024','vertical_datum','EPSG','1285','EPSG','4590','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1287','European Vertical Reference Frame 2019 mean tide',NULL,'2020-09-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1287','European Vertical Reference Frame 2019 mean tide',NULL,'2020-09-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14739','vertical_datum','EPSG','1287','EPSG','4608','EPSG','1262'); -INSERT INTO "vertical_datum" VALUES('EPSG','1290','Lowest Astronomical Tide Netherlands',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1290','Lowest Astronomical Tide Netherlands',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14120','vertical_datum','EPSG','1290','EPSG','4742','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1292','Australian Vertical Working Surface',NULL,'2020-07-14',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1292','Australian Vertical Working Surface',NULL,'2020-07-14',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14134','vertical_datum','EPSG','1292','EPSG','4177','EPSG','1264'); -INSERT INTO "vertical_datum" VALUES('EPSG','1294','Indonesian Geoid 2020 version 1',NULL,'2020-06-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1294','Indonesian Geoid 2020 version 1',NULL,'2020-06-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14149','vertical_datum','EPSG','1294','EPSG','1122','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1296','Baltic 1986',NULL,'1986-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1296','Baltic 1986',NULL,'1986-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14975','vertical_datum','EPSG','1296','EPSG','3293','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1297','European Vertical Reference Frame 2007 Poland',NULL,'2019-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1297','European Vertical Reference Frame 2007 Poland',NULL,'2019-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15033','vertical_datum','EPSG','1297','EPSG','3293','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1298','Estonian Height System 2000',NULL,'2005-07-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1298','Estonian Height System 2000',NULL,'2005-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14743','vertical_datum','EPSG','1298','EPSG','3246','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1299','Lithuanian Height System 2007',NULL,'2005-07-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1299','Lithuanian Height System 2007',NULL,'2005-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14758','vertical_datum','EPSG','1299','EPSG','3272','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1300','Bulgarian Height System 2005',NULL,'2005-07-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1300','Bulgarian Height System 2005',NULL,'2005-07-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14768','vertical_datum','EPSG','1300','EPSG','3224','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1301','Norwegian Chart Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1301','Norwegian Chart Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14864','vertical_datum','EPSG','1301','EPSG','4615','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1302','Local Tidal Datum at Pago Pago 2020',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1302','Local Tidal Datum at Pago Pago 2020',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14795','vertical_datum','EPSG','1302','EPSG','2288','EPSG','1026'); -INSERT INTO "vertical_datum" VALUES('EPSG','1303','National Vertical Datum 1992',NULL,'1994-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1303','National Vertical Datum 1992',NULL,'1994-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14852','vertical_datum','EPSG','1303','EPSG','3217','EPSG','1181'); -INSERT INTO "vertical_datum" VALUES('EPSG','1306','Catania 1965',NULL,'1965-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1306','Catania 1965',NULL,'1965-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15330','vertical_datum','EPSG','1306','EPSG','2340','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1307','Cagliari 1956',NULL,'1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1307','Cagliari 1956',NULL,'1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','15331','vertical_datum','EPSG','1307','EPSG','2339','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1316','GNTRANS',NULL,'2003-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1316','GNTRANS',NULL,'2003-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17277','vertical_datum','EPSG','1316','EPSG','3339','EPSG','1141'); -INSERT INTO "vertical_datum" VALUES('EPSG','1318','GNTRANS2016',NULL,'2016-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1318','GNTRANS2016',NULL,'2016-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17278','vertical_datum','EPSG','1318','EPSG','3339','EPSG','1141'); -INSERT INTO "vertical_datum" VALUES('EPSG','1323','Svalbard vertical datum 2006',NULL,'2006-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1323','Svalbard vertical datum 2006',NULL,'2006-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','17963','vertical_datum','EPSG','1323','EPSG','4058','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1325','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002',NULL,'2019-02-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1325','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2002',NULL,'2019-02-01',NULL,NULL,NULL,2002.0,0); INSERT INTO "usage" VALUES('EPSG','18301','vertical_datum','EPSG','1325','EPSG','1061','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1326','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997',NULL,'2019-02-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1326','Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 1997',NULL,'2019-02-01',NULL,NULL,NULL,1997.0,0); INSERT INTO "usage" VALUES('EPSG','18302','vertical_datum','EPSG','1326','EPSG','1061','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','1328','Indonesian Geoid 2020 version 2',NULL,'2022-06-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1328','Indonesian Geoid 2020 version 2',NULL,'2022-06-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18439','vertical_datum','EPSG','1328','EPSG','1122','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1330','Mean Sea Level UK & Ireland VORF08',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1330','Mean Sea Level UK & Ireland VORF08',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18593','vertical_datum','EPSG','1330','EPSG','4668','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1331','Chart Datum UK & Ireland VORF08',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1331','Chart Datum UK & Ireland VORF08',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','18581','vertical_datum','EPSG','1331','EPSG','4668','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1354','Nivellement General de l''Algerie 2022',NULL,'2022-11-30',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1354','Nivellement General de l''Algerie 2022',NULL,'2022-11-30',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19359','vertical_datum','EPSG','1354','EPSG','3213','EPSG','1026'); -INSERT INTO "vertical_datum" VALUES('EPSG','1361','Chart Datum Portugal ',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1361','Chart Datum Portugal ',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20092','vertical_datum','EPSG','1361','EPSG','4738','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','1362','Formentera',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1362','Formentera',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19908','vertical_datum','EPSG','1362','EPSG','4739','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1363','Alboran',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1363','Alboran',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19909','vertical_datum','EPSG','1363','EPSG','4741','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1364','Melilla',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1364','Melilla',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19910','vertical_datum','EPSG','1364','EPSG','4740','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','1368','Dansk Vertikal Reference 1990 (2002)',NULL,'2002-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1368','Dansk Vertikal Reference 1990 (2002)',NULL,'2002-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20431','vertical_datum','EPSG','1368','EPSG','3237','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','1369','Dansk Vertikal Reference 1990 (2013)',NULL,'2013-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1369','Dansk Vertikal Reference 1990 (2013)',NULL,'2013-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20432','vertical_datum','EPSG','1369','EPSG','3237','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','1370','Dansk Vertikal Reference 1990 (2023)',NULL,'2023-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1370','Dansk Vertikal Reference 1990 (2023)',NULL,'2023-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20433','vertical_datum','EPSG','1370','EPSG','3237','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13307','vertical_datum','EPSG','5100','EPSG','1262','EPSG','1199'); -INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13308','vertical_datum','EPSG','5101','EPSG','2792','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,'1929-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5102','National Geodetic Vertical Datum 1929',NULL,'1929-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13309','vertical_datum','EPSG','5102','EPSG','1323','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,'1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5103','North American Vertical Datum 1988',NULL,'1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13310','vertical_datum','EPSG','5103','EPSG','4161','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,'1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5104','Yellow Sea 1956',NULL,'1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13311','vertical_datum','EPSG','5104','EPSG','3228','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,'1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5105','Baltic 1977',NULL,'1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13312','vertical_datum','EPSG','5105','EPSG','2423','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5106','Caspian Sea',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13313','vertical_datum','EPSG','5106','EPSG','1291','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,NULL,NULL,NULL,1); +INSERT INTO "vertical_datum" VALUES('EPSG','5107','Nivellement general de la France',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13314','vertical_datum','EPSG','5107','EPSG','1326','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5109','Normaal Amsterdams Peil',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13315','vertical_datum','EPSG','5109','EPSG','1172','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,'1981-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5110','Ostend',NULL,'1981-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13316','vertical_datum','EPSG','5110','EPSG','1347','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,'1971-05-05',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5111','Australian Height Datum',NULL,'1971-05-05',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13317','vertical_datum','EPSG','5111','EPSG','4493','EPSG','1263'); -INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,'1972-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5112','Australian Height Datum (Tasmania)',NULL,'1972-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13318','vertical_datum','EPSG','5112','EPSG','2947','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5113','Instantaneous Water Level',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13319','vertical_datum','EPSG','5113','EPSG','1262','EPSG','1200'); -INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,'1935-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5114','Canadian Geodetic Vertical Datum of 1928',NULL,'1935-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13320','vertical_datum','EPSG','5114','EPSG','1289','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,'1986-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5115','Piraeus Harbour 1986',NULL,'1986-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13321','vertical_datum','EPSG','5115','EPSG','3254','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,'1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5116','Helsinki 1960',NULL,'1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13322','vertical_datum','EPSG','5116','EPSG','3333','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,'1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5117','Rikets hojdsystem 1970',NULL,'1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13323','vertical_datum','EPSG','5117','EPSG','3313','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,'1897-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5118','Nivellement General de la France - Lallemand',NULL,'1897-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13324','vertical_datum','EPSG','5118','EPSG','1326','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,'1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5119','Nivellement General de la France - IGN69',NULL,'1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13325','vertical_datum','EPSG','5119','EPSG','1326','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,'1978-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5120','Nivellement General de la France - IGN78',NULL,'1978-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13326','vertical_datum','EPSG','5120','EPSG','1327','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5121','Maputo',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13327','vertical_datum','EPSG','5121','EPSG','3281','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,'1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5122','Japanese Standard Levelling Datum 1969',NULL,'1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13328','vertical_datum','EPSG','5122','EPSG','4166','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,'1993-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5123','PDO Height Datum 1993',NULL,'1993-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13329','vertical_datum','EPSG','5123','EPSG','3288','EPSG','1216'); -INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5124','Fahud Height Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13330','vertical_datum','EPSG','5124','EPSG','4009','EPSG','1216'); -INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,'1960-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5125','Ha Tien 1960',NULL,'1960-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13331','vertical_datum','EPSG','5125','EPSG','1302','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,'1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5126','Hon Dau 1992',NULL,'1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13332','vertical_datum','EPSG','5126','EPSG','4015','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,'1902-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5127','Landesnivellement 1902',NULL,'1902-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13333','vertical_datum','EPSG','5127','EPSG','1286','EPSG','1091'); -INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,'1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5128','Landeshohennetz 1995',NULL,'1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13334','vertical_datum','EPSG','5128','EPSG','1286','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,'2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5129','European Vertical Reference Frame 2000',NULL,'2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13335','vertical_datum','EPSG','5129','EPSG','1299','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,'1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5130','Malin Head',NULL,'1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13336','vertical_datum','EPSG','5130','EPSG','1305','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,'1957-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5131','Belfast Lough',NULL,'1957-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13337','vertical_datum','EPSG','5131','EPSG','2530','EPSG','1209'); -INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5132','Dansk Normal Nul',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13338','vertical_datum','EPSG','5132','EPSG','3237','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,'1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5133','AIOC 1995',NULL,'1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13339','vertical_datum','EPSG','5133','EPSG','2592','EPSG','1136'); -INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5134','Black Sea',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13340','vertical_datum','EPSG','5134','EPSG','1102','EPSG','1201'); -INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,'1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5135','Hong Kong Principal Datum',NULL,'1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13341','vertical_datum','EPSG','5135','EPSG','3334','EPSG','1184'); -INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5136','Hong Kong Chart Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13342','vertical_datum','EPSG','5136','EPSG','3335','EPSG','1198'); -INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,'1985-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5137','Yellow Sea 1985',NULL,'1985-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13343','vertical_datum','EPSG','5137','EPSG','3228','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,'1956-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5138','Ordnance Datum Newlyn (Orkney Isles)',NULL,'1956-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13344','vertical_datum','EPSG','5138','EPSG','2793','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5139','Fair Isle',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13345','vertical_datum','EPSG','5139','EPSG','2794','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,'1979-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5140','Lerwick',NULL,'1979-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13346','vertical_datum','EPSG','5140','EPSG','2795','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5141','Foula',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13347','vertical_datum','EPSG','5141','EPSG','2796','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5142','Sule Skerry',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13348','vertical_datum','EPSG','5142','EPSG','2797','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5143','North Rona',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13349','vertical_datum','EPSG','5143','EPSG','2798','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,'1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5144','Stornoway',NULL,'1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13350','vertical_datum','EPSG','5144','EPSG','2799','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5145','St. Kilda',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5145','St. Kilda',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13351','vertical_datum','EPSG','5145','EPSG','2800','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5146','Flannan Isles',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13352','vertical_datum','EPSG','5146','EPSG','2801','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5147','St. Marys',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5147','St. Marys',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13353','vertical_datum','EPSG','5147','EPSG','2802','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5148','Douglas',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13354','vertical_datum','EPSG','5148','EPSG','2803','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5149','Fao',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13355','vertical_datum','EPSG','5149','EPSG','3390','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5150','Bandar Abbas',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13356','vertical_datum','EPSG','5150','EPSG','3336','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,'1969-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5151','Nivellement General de Nouvelle Caledonie',NULL,'1969-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13357','vertical_datum','EPSG','5151','EPSG','2822','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,'1837-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5152','Poolbeg',NULL,'1837-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13358','vertical_datum','EPSG','5152','EPSG','1305','EPSG','1153'); -INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,'1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5153','Nivellement General Guyanais 1977',NULL,'1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13359','vertical_datum','EPSG','5153','EPSG','3146','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,'1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5154','Martinique 1987',NULL,'1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13360','vertical_datum','EPSG','5154','EPSG','3276','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,'1988-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5155','Guadeloupe 1988',NULL,'1988-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13361','vertical_datum','EPSG','5155','EPSG','2892','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,'1989-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5156','Reunion 1989',NULL,'1989-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13362','vertical_datum','EPSG','5156','EPSG','3337','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,'1945-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5157','Auckland 1946',NULL,'1945-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13363','vertical_datum','EPSG','5157','EPSG','3764','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,'1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5158','Bluff 1955',NULL,'1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13364','vertical_datum','EPSG','5158','EPSG','3801','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,'1958-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5159','Dunedin 1958',NULL,'1958-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13365','vertical_datum','EPSG','5159','EPSG','3803','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,'1926-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5160','Gisborne 1926',NULL,'1926-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13366','vertical_datum','EPSG','5160','EPSG','3771','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,'1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5161','Lyttelton 1937',NULL,'1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13367','vertical_datum','EPSG','5161','EPSG','3804','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,'1953-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5162','Moturiki 1953',NULL,'1953-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13368','vertical_datum','EPSG','5162','EPSG','3768','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,'1962-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5163','Napier 1962',NULL,'1962-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13369','vertical_datum','EPSG','5163','EPSG','3772','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,'1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5164','Nelson 1955',NULL,'1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13370','vertical_datum','EPSG','5164','EPSG','3802','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,'1964-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5165','One Tree Point 1964',NULL,'1964-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13371','vertical_datum','EPSG','5165','EPSG','3762','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,'1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5166','Tararu 1952',NULL,'1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13372','vertical_datum','EPSG','5166','EPSG','3818','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,'1970-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5167','Taranaki 1970',NULL,'1970-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13373','vertical_datum','EPSG','5167','EPSG','3769','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,'1953-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5168','Wellington 1953',NULL,'1953-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13374','vertical_datum','EPSG','5168','EPSG','3773','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,'1959-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5169','Waitangi (Chatham Island) 1959',NULL,'1959-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13375','vertical_datum','EPSG','5169','EPSG','3894','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,'1977-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5170','Stewart Island 1977',NULL,'1977-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13376','vertical_datum','EPSG','5170','EPSG','3338','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,'1996-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5171','EGM96 geoid',NULL,'1996-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13377','vertical_datum','EPSG','5171','EPSG','1262','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg 1995',NULL,'1995-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5172','Nivellement General du Luxembourg 1995',NULL,'1995-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13378','vertical_datum','EPSG','5172','EPSG','1146','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5173','Antalya',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13379','vertical_datum','EPSG','5173','EPSG','3322','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,'1954-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5174','Norway Normal Null 1954',NULL,'1954-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13380','vertical_datum','EPSG','5174','EPSG','1352','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5175','Durres',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13381','vertical_datum','EPSG','5175','EPSG','3212','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5176','Gebrauchshohen ADRIA',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13382','vertical_datum','EPSG','5176','EPSG','1037','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,'1999-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5177','Slovenian Vertical System 2000',NULL,'1999-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13383','vertical_datum','EPSG','5177','EPSG','3307','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,'1938-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5178','Cascais',NULL,'1938-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13384','vertical_datum','EPSG','5178','EPSG','1294','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5179','Constanta',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13385','vertical_datum','EPSG','5179','EPSG','3295','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5180','Alicante',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13386','vertical_datum','EPSG','5180','EPSG','4188','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,'1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5181','Deutsches Haupthoehennetz 1992',NULL,'1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13387','vertical_datum','EPSG','5181','EPSG','3339','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,'1985-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5182','Deutsches Haupthoehennetz 1985',NULL,'1985-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13388','vertical_datum','EPSG','5182','EPSG','2326','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,'1976-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5183','Staatlichen Nivellementnetzes 1976',NULL,'1976-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13389','vertical_datum','EPSG','5183','EPSG','1343','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,'1982-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5184','Baltic 1982',NULL,'1982-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13390','vertical_datum','EPSG','5184','EPSG','3224','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,'1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5185','Baltic 1980',NULL,'1980-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13391','vertical_datum','EPSG','5185','EPSG','1119','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5186','Kuwait PWD',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13392','vertical_datum','EPSG','5186','EPSG','3267','EPSG','1248'); -INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,'1937-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5187','KOC Well Datum',NULL,'1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13393','vertical_datum','EPSG','5187','EPSG','3267','EPSG','1205'); -INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,'1952-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5188','KOC Construction Datum',NULL,'1952-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13394','vertical_datum','EPSG','5188','EPSG','3267','EPSG','1206'); -INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,'1948-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5189','Nivellement General de la Corse 1948',NULL,'1948-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13395','vertical_datum','EPSG','5189','EPSG','1327','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,'1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5190','Danger 1950',NULL,'1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13396','vertical_datum','EPSG','5190','EPSG','3299','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,'1950-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5191','Mayotte 1950',NULL,'1950-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13397','vertical_datum','EPSG','5191','EPSG','3340','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,'1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5192','Martinique 1955',NULL,'1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13398','vertical_datum','EPSG','5192','EPSG','3276','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,'1951-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5193','Guadeloupe 1951',NULL,'1951-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13399','vertical_datum','EPSG','5193','EPSG','2892','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,'1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5194','Lagos 1955',NULL,'1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13400','vertical_datum','EPSG','5194','EPSG','3287','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5195','Nivellement General de Polynesie Francaise',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13401','vertical_datum','EPSG','5195','EPSG','3134','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,'1966-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5196','IGN 1966',NULL,'1966-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13402','vertical_datum','EPSG','5196','EPSG','3124','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,'1981-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5197','Moorea SAU 1981',NULL,'1981-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13403','vertical_datum','EPSG','5197','EPSG','3125','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5198','Raiatea SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13404','vertical_datum','EPSG','5198','EPSG','3136','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5199','Maupiti SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13405','vertical_datum','EPSG','5199','EPSG','3126','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5200','Huahine SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13406','vertical_datum','EPSG','5200','EPSG','3135','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5201','Tahaa SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13407','vertical_datum','EPSG','5201','EPSG','3138','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5202','Bora Bora SAU 2001',NULL,'2001-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13408','vertical_datum','EPSG','5202','EPSG','3137','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,'1987-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5203','EGM84 geoid',NULL,'1987-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13409','vertical_datum','EPSG','5203','EPSG','1262','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,'1955-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5204','International Great Lakes Datum 1955',NULL,'1955-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13410','vertical_datum','EPSG','5204','EPSG','3468','EPSG','1202'); -INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,'1985-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5205','International Great Lakes Datum 1985',NULL,'1985-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13411','vertical_datum','EPSG','5205','EPSG','3468','EPSG','1202'); -INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990 (2000)',NULL,'2000-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5206','Dansk Vertikal Reference 1990 (2000)',NULL,'2000-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13412','vertical_datum','EPSG','5206','EPSG','3237','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference Datum 1971',NULL,'1971-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5207','Croatian Vertical Reference Datum 1971',NULL,'1971-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13413','vertical_datum','EPSG','5207','EPSG','3234','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,'2000-01-01',2000.0,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5208','Rikets hojdsystem 2000',NULL,'2000-01-01',2000.0,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13414','vertical_datum','EPSG','5208','EPSG','3313','EPSG','1180'); -INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,'1900-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5209','Rikets hojdsystem 1900',NULL,'1900-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13415','vertical_datum','EPSG','5209','EPSG','3313','EPSG','1142'); -INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,'1988-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5210','IGN 1988 LS',NULL,'1988-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13416','vertical_datum','EPSG','5210','EPSG','2895','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,'1988-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5211','IGN 1988 MG',NULL,'1988-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13417','vertical_datum','EPSG','5211','EPSG','2894','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,'1992-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5212','IGN 1992 LD',NULL,'1992-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13418','vertical_datum','EPSG','5212','EPSG','2893','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,'1988-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5213','IGN 1988 SB',NULL,'1988-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13419','vertical_datum','EPSG','5213','EPSG','2891','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,'1988-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5214','IGN 1988 SM',NULL,'1988-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13420','vertical_datum','EPSG','5214','EPSG','2890','EPSG','1178'); -INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,'2008-01-01',NULL,NULL,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','5215','European Vertical Reference Frame 2007',NULL,'2008-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14655','vertical_datum','EPSG','5215','EPSG','3594','EPSG','1027'); -INSERT INTO "vertical_datum" VALUES('EPSG','1288','British Isles height ensemble',NULL,NULL,NULL,0.4,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1288','British Isles height ensemble',NULL,NULL,NULL,0.4,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14086','vertical_datum','EPSG','1288','EPSG','4606','EPSG','1026'); -INSERT INTO "vertical_datum" VALUES('EPSG','1371','Dansk Vertikal Reference 1990 ensemble',NULL,NULL,NULL,0.05,NULL,0); +INSERT INTO "vertical_datum" VALUES('EPSG','1371','Dansk Vertikal Reference 1990 ensemble',NULL,NULL,NULL,0.05,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','20365','vertical_datum','EPSG','1371','EPSG','3237','EPSG','1142'); diff --git a/scripts/build_db.py b/scripts/build_db.py index e22e33d7fe..9f7c9b5e10 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -196,22 +196,22 @@ def fill_geodetic_datum(proj_db_cursor): if res: raise Exception('Found unexpected datum_type in epsg_datum: %s' % str(res)) - proj_db_cursor.execute("SELECT datum_code, datum_name, ellipsoid_code, prime_meridian_code, publication_date, frame_reference_epoch, deprecated FROM epsg.epsg_datum WHERE datum_type IN ('geodetic', 'dynamic geodetic')") + proj_db_cursor.execute("SELECT datum_code, datum_name, ellipsoid_code, prime_meridian_code, publication_date, frame_reference_epoch, anchor_epoch, deprecated FROM epsg.epsg_datum WHERE datum_type IN ('geodetic', 'dynamic geodetic')") res = proj_db_cursor.fetchall() - for (datum_code, datum_name, ellipsoid_code, prime_meridian_code, publication_date, frame_reference_epoch, deprecated) in res: + for (datum_code, datum_name, ellipsoid_code, prime_meridian_code, publication_date, frame_reference_epoch, anchor_epoch, deprecated) in res: publication_date = compute_publication_date(datum_code, datum_name, frame_reference_epoch, publication_date) proj_db_cursor.execute( - "INSERT INTO geodetic_datum VALUES (?, ?, ?, NULL, ?, ?, ?, ?, ?, ?, NULL, NULL, ?)", (EPSG_AUTHORITY, datum_code, datum_name, EPSG_AUTHORITY, ellipsoid_code, EPSG_AUTHORITY, prime_meridian_code, publication_date, frame_reference_epoch, deprecated)) + "INSERT INTO geodetic_datum VALUES (?, ?, ?, NULL, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?)", (EPSG_AUTHORITY, datum_code, datum_name, EPSG_AUTHORITY, ellipsoid_code, EPSG_AUTHORITY, prime_meridian_code, publication_date, frame_reference_epoch, anchor_epoch, deprecated)) def fill_vertical_datum(proj_db_cursor): - proj_db_cursor.execute("SELECT datum_code, datum_name, publication_date, frame_reference_epoch, deprecated FROM epsg.epsg_datum WHERE datum_type IN ('vertical')") + proj_db_cursor.execute("SELECT datum_code, datum_name, publication_date, frame_reference_epoch, anchor_epoch, deprecated FROM epsg.epsg_datum WHERE datum_type IN ('vertical')") res = proj_db_cursor.fetchall() - for (datum_code, datum_name, publication_date, frame_reference_epoch, deprecated) in res: + for (datum_code, datum_name, publication_date, frame_reference_epoch, anchor_epoch, deprecated) in res: publication_date = compute_publication_date(datum_code, datum_name, frame_reference_epoch, publication_date) proj_db_cursor.execute( - "INSERT INTO vertical_datum VALUES (?, ?, ?, NULL, ?, ?, NULL, NULL, ?)", (EPSG_AUTHORITY, datum_code, datum_name, publication_date, frame_reference_epoch, deprecated)) + "INSERT INTO vertical_datum VALUES (?, ?, ?, NULL, ?, ?, NULL, NULL, ?, ?)", (EPSG_AUTHORITY, datum_code, datum_name, publication_date, frame_reference_epoch, anchor_epoch, deprecated)) def fill_datumensemble(proj_db_cursor): diff --git a/scripts/build_db_create_ignf_from_xml.py b/scripts/build_db_create_ignf_from_xml.py index b9df5dd769..0e113a1f33 100755 --- a/scripts/build_db_create_ignf_from_xml.py +++ b/scripts/build_db_create_ignf_from_xml.py @@ -144,7 +144,7 @@ def ingest_datums(root, all_sql, mapEllpsId, mapPmId): ellpsCode = extract_id_from_href(node.find('usesEllipsoid').attrib['href']) assert ellpsCode in mapEllpsId - sql = """INSERT INTO "geodetic_datum" VALUES('IGNF','%s','%s',NULL,'%s','%s','%s','%s',NULL,NULL,NULL,NULL,0);""" % (id, names[0], mapEllpsId[ellpsCode][0], mapEllpsId[ellpsCode][1], mapPmId[pmCode][0], mapPmId[pmCode][1]) + sql = """INSERT INTO "geodetic_datum" VALUES('IGNF','%s','%s',NULL,'%s','%s','%s','%s',NULL,NULL,NULL,NULL,NULL,0);""" % (id, names[0], mapEllpsId[ellpsCode][0], mapEllpsId[ellpsCode][1], mapPmId[pmCode][0], mapPmId[pmCode][1]) all_sql.append(sql) mapDatumId[id] = ('IGNF', id) @@ -154,7 +154,7 @@ def ingest_datums(root, all_sql, mapEllpsId, mapPmId): id = node.attrib['id'] names = [_name.text for _name in node.iter('name')] - sql = """INSERT INTO "vertical_datum" VALUES('IGNF','%s','%s',NULL,NULL,NULL,NULL,NULL,0);"""% (id, names[0]) + sql = """INSERT INTO "vertical_datum" VALUES('IGNF','%s','%s',NULL,NULL,NULL,NULL,NULL,NULL,0);"""% (id, names[0]) all_sql.append(sql) mapVerticalDatumId[id] = ('IGNF', id) @@ -401,7 +401,7 @@ def get_scope_auth_name_code(scope): # Corse 'http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/RAC09.mnt': - 'http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAC09.mnt', + 'https://geodesie.ign.fr/contenu/fichiers/documentation/grilles/anciennes/RAC09.mnt', diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index 1db5211031..bff118364d 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -675,7 +675,7 @@ def import_geogcs(): p = map_datum_esri_to_parameters[datum_code] - sql = """INSERT INTO "geodetic_datum" VALUES('ESRI','%s','%s','%s','%s','%s','%s','%s',NULL,NULL,NULL,NULL,%d);""" % ( + sql = """INSERT INTO "geodetic_datum" VALUES('ESRI','%s','%s','%s','%s','%s','%s','%s',NULL,NULL,NULL,NULL,NULL,%d);""" % ( datum_code, p['esri_name'], p['description'], p['ellps_auth_name'], p['ellps_code'], pm_auth_name, pm_code, p['deprecated']) all_sql.append(sql) sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','geodetic_datum','ESRI','%s','%s','%s','%s','%s');""" % (datum_code, datum_code, extent_auth_name, extent_code, 'EPSG', '1024') @@ -706,7 +706,7 @@ def import_geogcs(): 'deprecated': p['deprecated'] } - sql = """INSERT INTO "geodetic_datum" VALUES('ESRI','%s','%s','%s','%s','%s','%s','%s',NULL,NULL,NULL,NULL,%d);""" % ( + sql = """INSERT INTO "geodetic_datum" VALUES('ESRI','%s','%s','%s','%s','%s','%s','%s',NULL,NULL,NULL,NULL,NULL,%d);""" % ( datum_code, p['esri_name'], p['description'], p['ellps_auth_name'], p['ellps_code'], pm_auth_name, pm_code, p['deprecated']) all_sql.append(sql) sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','geodetic_datum','ESRI','%s','%s','%s','%s','%s');""" % (datum_code, datum_code, extent_auth_name, extent_code, 'EPSG', '1024') @@ -1765,7 +1765,7 @@ def import_vertcs(): datum_code = new_datum_code - sql = """INSERT INTO "vertical_datum" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,NULL,%d);""" % ( + sql = """INSERT INTO "vertical_datum" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % ( datum_code, p['esri_name'], p['deprecated']) all_sql.append(sql) sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','vertical_datum','ESRI','%s','%s','%s','%s','%s');""" % (datum_code, datum_code, extent_auth_name, extent_code, 'EPSG', '1024') @@ -1781,7 +1781,7 @@ def import_vertcs(): vdatum_written.add(datum_code) p = map_vdatum_esri_to_parameters[datum_code] - sql = """INSERT INTO "vertical_datum" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,NULL,%d);""" % ( + sql = """INSERT INTO "vertical_datum" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % ( datum_code, p['esri_name'], p['deprecated']) all_sql.append(sql) sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','vertical_datum','ESRI','%s','%s','%s','%s','%s');""" % (datum_code, datum_code, extent_auth_name, extent_code, 'EPSG', '1024') diff --git a/scripts/build_db_from_iau.py b/scripts/build_db_from_iau.py index 067b6b7c60..231716046d 100755 --- a/scripts/build_db_from_iau.py +++ b/scripts/build_db_from_iau.py @@ -250,7 +250,7 @@ def generate_projected_crs(geod_crs_code, geod_crs_name, is_west): spherical_datum_code = spherical_ellipsoid_code spherical_datum_name = spherical_ellipsoid_name - all_sql.append("INSERT INTO geodetic_datum VALUES('%s',%d,'%s','','%s',%d,'%s',%d,NULL,NULL,NULL,%s,0);" % (AUTH_IAU2015, spherical_datum_code, spherical_datum_name, AUTH_IAU2015, spherical_ellipsoid_code, AUTH_IAU2015, prime_meridian_code, anchor)) + all_sql.append("INSERT INTO geodetic_datum VALUES('%s',%d,'%s','','%s',%d,'%s',%d,NULL,NULL,NULL,%s,NULL,0);" % (AUTH_IAU2015, spherical_datum_code, spherical_datum_name, AUTH_IAU2015, spherical_ellipsoid_code, AUTH_IAU2015, prime_meridian_code, anchor)) add_usage('geodetic_datum', spherical_datum_code) spherical_crs_code = Naif_id * 100 @@ -292,7 +292,7 @@ def generate_projected_crs(geod_crs_code, geod_crs_name, is_west): ellipsoidal_datum_code = ellipsoidal_ellipsoid_code ellipsoidal_datum_name = ellipsoidal_ellipsoid_name - all_sql.append("INSERT INTO geodetic_datum VALUES('%s',%d,'%s','','%s',%d,'%s',%d,NULL,NULL,NULL,%s,0);" % (AUTH_IAU2015, ellipsoidal_datum_code, ellipsoidal_datum_name, AUTH_IAU2015, ellipsoidal_ellipsoid_code, AUTH_IAU2015, prime_meridian_code, anchor)) + all_sql.append("INSERT INTO geodetic_datum VALUES('%s',%d,'%s','','%s',%d,'%s',%d,NULL,NULL,NULL,%s,NULL,0);" % (AUTH_IAU2015, ellipsoidal_datum_code, ellipsoidal_datum_name, AUTH_IAU2015, ellipsoidal_ellipsoid_code, AUTH_IAU2015, prime_meridian_code, anchor)) add_usage('geodetic_datum', ellipsoidal_datum_code) if has_ographic: diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 91b5b8468d..ded1a7a75c 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -268,6 +268,16 @@ void Datum::setProperties( if (!publicationDateResult.empty()) { d->publicationDate = common::DateTime::create(publicationDateResult); } + std::string anchorEpoch; + properties.getStringValue("ANCHOR_EPOCH", anchorEpoch); + if (!anchorEpoch.empty()) { + bool success = false; + const double anchorEpochYear = c_locale_stod(anchorEpoch, success); + if (success) { + setAnchorEpoch(util::optional( + common::Measure(anchorEpochYear, common::UnitOfMeasure::YEAR))); + } + } ObjectUsage::setProperties(properties); } diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 5115030cce..08d539ceec 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -2131,6 +2131,15 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( // --------------------------------------------------------------------------- +static std::string anchorEpochToStr(double val) { + constexpr int BUF_SIZE = 16; + char szBuffer[BUF_SIZE]; + sqlite3_snprintf(BUF_SIZE, szBuffer, "%.3f", val); + return szBuffer; +} + +// --------------------------------------------------------------------------- + std::vector DatabaseContext::Private::getInsertStatementsFor( const datum::GeodeticReferenceFrameNNPtr &datum, const std::string &authName, const std::string &code, bool numericCode, @@ -2203,14 +2212,20 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( toString(dynamicDatum->frameReferenceEpoch().value()); } const std::string anchor = *(datum->anchorDefinition()); + const util::optional &anchorEpoch = datum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO geodetic_datum VALUES(" - "'%q','%q','%q','%q','%q','%q','%q','%q',%s,%s,NULL,%Q,0);", + "'%q','%q','%q','%q','%q','%q','%q','%q',%s,%s,NULL,%Q,%s,0);", authName.c_str(), code.c_str(), datum->nameStr().c_str(), "", // description ellipsoidAuthName.c_str(), ellipsoidCode.c_str(), pmAuthName.c_str(), pmCode.c_str(), publicationDate.c_str(), frameReferenceEpoch.c_str(), - anchor.empty() ? nullptr : anchor.c_str()); + anchor.empty() ? nullptr : anchor.c_str(), + anchorEpoch.has_value() + ? anchorEpochToStr( + anchorEpoch->convertToUnit(common::UnitOfMeasure::YEAR)) + .c_str() + : "NULL"); appendSql(sqlStatements, sql); identifyOrInsertUsages(datum, "geodetic_datum", authName, code, @@ -2292,27 +2307,40 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( const std::string &pmAuthName = *(pmIds.front()->codeSpace()); const std::string &pmCode = pmIds.front()->code(); const auto anchor = *(firstDatum->anchorDefinition()); + const util::optional &anchorEpoch = + firstDatum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO geodetic_datum VALUES(" - "'%q','%q','%q','%q','%q','%q','%q','%q',NULL,NULL,%f,%Q,0);", + "'%q','%q','%q','%q','%q','%q','%q','%q',NULL,NULL,%f,%Q,%s,0);", authName.c_str(), code.c_str(), ensemble->nameStr().c_str(), "", // description ellipsoidAuthName.c_str(), ellipsoidCode.c_str(), pmAuthName.c_str(), pmCode.c_str(), accuracy, - anchor.empty() ? nullptr : anchor.c_str()); + anchor.empty() ? nullptr : anchor.c_str(), + anchorEpoch.has_value() + ? anchorEpochToStr( + anchorEpoch->convertToUnit(common::UnitOfMeasure::YEAR)) + .c_str() + : "NULL"); appendSql(sqlStatements, sql); } else { const auto firstDatum = AuthorityFactory::create(self, membersId.front().first) ->createVerticalDatum(membersId.front().second); const auto anchor = *(firstDatum->anchorDefinition()); + const util::optional &anchorEpoch = + firstDatum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO vertical_datum VALUES(" - "'%q','%q','%q','%q',NULL,NULL,%f,%Q," - "0);", + "'%q','%q','%q','%q',NULL,NULL,%f,%Q,%s,0);", authName.c_str(), code.c_str(), ensemble->nameStr().c_str(), "", // description - accuracy, anchor.empty() ? nullptr : anchor.c_str()); + accuracy, anchor.empty() ? nullptr : anchor.c_str(), + anchorEpoch.has_value() + ? anchorEpochToStr( + anchorEpoch->convertToUnit(common::UnitOfMeasure::YEAR)) + .c_str() + : "NULL"); appendSql(sqlStatements, sql); } identifyOrInsertUsages(ensemble, @@ -2659,13 +2687,19 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( toString(dynamicDatum->frameReferenceEpoch().value()); } const auto anchor = *(datum->anchorDefinition()); + const util::optional &anchorEpoch = datum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO vertical_datum VALUES(" - "'%q','%q','%q','%q',%s,%s,NULL,%Q,0);", + "'%q','%q','%q','%q',%s,%s,NULL,%Q,%s,0);", authName.c_str(), code.c_str(), datum->nameStr().c_str(), "", // description publicationDate.c_str(), frameReferenceEpoch.c_str(), - anchor.empty() ? nullptr : anchor.c_str()); + anchor.empty() ? nullptr : anchor.c_str(), + anchorEpoch.has_value() + ? anchorEpochToStr( + anchorEpoch->convertToUnit(common::UnitOfMeasure::YEAR)) + .c_str() + : "NULL"); appendSql(sqlStatements, sql); identifyOrInsertUsages(datum, "vertical_datum", authName, code, @@ -4602,7 +4636,8 @@ void AuthorityFactory::createGeodeticDatumOrEnsemble( "SELECT name, ellipsoid_auth_name, ellipsoid_code, " "prime_meridian_auth_name, prime_meridian_code, " "publication_date, frame_reference_epoch, " - "ensemble_accuracy, anchor, deprecated FROM geodetic_datum " + "ensemble_accuracy, anchor, anchor_epoch, deprecated " + "FROM geodetic_datum " "WHERE " "auth_name = ? AND code = ?", code); @@ -4621,7 +4656,8 @@ void AuthorityFactory::createGeodeticDatumOrEnsemble( const auto &frame_reference_epoch = row[6]; const auto &ensemble_accuracy = row[7]; const auto &anchor = row[8]; - const bool deprecated = row[9] == "1"; + const auto &anchor_epoch = row[9]; + const bool deprecated = row[10] == "1"; std::string massagedName = name; if (turnEnsembleAsDatum) { @@ -4665,6 +4701,9 @@ void AuthorityFactory::createGeodeticDatumOrEnsemble( if (!publication_date.empty()) { props.set("PUBLICATION_DATE", publication_date); } + if (!anchor_epoch.empty()) { + props.set("ANCHOR_EPOCH", anchor_epoch); + } auto datum = frame_reference_epoch.empty() ? datum::GeodeticReferenceFrame::create( props, ellipsoid, anchorOpt, pm) @@ -4713,7 +4752,7 @@ void AuthorityFactory::createVerticalDatumOrEnsemble( auto res = d->runWithCodeParam("SELECT name, publication_date, " "frame_reference_epoch, ensemble_accuracy, anchor, " - "deprecated FROM " + "anchor_epoch, deprecated FROM " "vertical_datum WHERE auth_name = ? AND code = ?", code); if (res.empty()) { @@ -4727,7 +4766,8 @@ void AuthorityFactory::createVerticalDatumOrEnsemble( const auto &frame_reference_epoch = row[2]; const auto &ensemble_accuracy = row[3]; const auto &anchor = row[4]; - const bool deprecated = row[5] == "1"; + const auto &anchor_epoch = row[5]; + const bool deprecated = row[6] == "1"; auto props = d->createPropertiesSearchUsages("vertical_datum", code, name, deprecated); if (!turnEnsembleAsDatum && !ensemble_accuracy.empty()) { @@ -4751,6 +4791,9 @@ void AuthorityFactory::createVerticalDatumOrEnsemble( if (!publication_date.empty()) { props.set("PUBLICATION_DATE", publication_date); } + if (!anchor_epoch.empty()) { + props.set("ANCHOR_EPOCH", anchor_epoch); + } if (d->authority() == "ESRI" && starts_with(code, "from_geogdatum_")) { props.set("VERT_DATUM_TYPE", "2002"); diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index a22c9196e7..54bcc24102 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -272,7 +272,7 @@ INSERT INTO usage VALUES('HOBU','USAGE_PROJECTED_CRS_MY_CRS','projected_crs','HO Testing projinfo "+proj=merc +lat_ts=5 +datum=WGS84 +type=crs" --output-id HOBU:MY_CRS --authority HOBU -o SQL -q INSERT INTO ellipsoid VALUES('HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','WGS 84','','IAU_2015','399',6378137,'EPSG','9001',298.257223563,NULL,0); INSERT INTO prime_meridian VALUES('HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','Greenwich',0,'EPSG','9122',0); -INSERT INTO geodetic_datum VALUES('HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','World Geodetic System 1984','','HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,NULL,NULL,NULL,0); +INSERT INTO geodetic_datum VALUES('HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','World Geodetic System 1984','','HOBU','ELLPS_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','HOBU','PM_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','geodetic_datum','HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); INSERT INTO geodetic_crs VALUES('HOBU','GEODETIC_CRS_MY_CRS','unknown','','geographic 2D','EPSG','6424','HOBU','GEODETIC_DATUM_GEODETIC_CRS_MY_CRS',NULL,0); INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_CRS_MY_CRS','geodetic_crs','HOBU','GEODETIC_CRS_MY_CRS','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN'); diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 18fbd1feab..68d33d42b4 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -5971,7 +5971,7 @@ TEST_F(CApi, proj_get_insert_statements) { EXPECT_EQ(std::string(list[0]), "INSERT INTO geodetic_datum VALUES('HOBU'," "'GEODETIC_DATUM_XXXX','GDA2020','','EPSG','7019'," - "'EPSG','8901',NULL,NULL,NULL,NULL,0);"); + "'EPSG','8901',NULL,NULL,NULL,NULL,NULL,0);"); EXPECT_EQ(sizeOfStringList(list), 4); proj_string_list_destroy(list); } @@ -6019,7 +6019,7 @@ TEST_F(CApi, proj_get_insert_statements) { EXPECT_EQ(std::string(list[0]), "INSERT INTO geodetic_datum VALUES('HOBU'," "'GEODETIC_DATUM_XXXX','GDA2020','','EPSG','7019'," - "'EPSG','8901',NULL,NULL,NULL,NULL,0);"); + "'EPSG','8901',NULL,NULL,NULL,NULL,NULL,0);"); proj_string_list_destroy(list); } diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index ee575e3aa5..115d7e0ef8 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -305,6 +305,18 @@ TEST(factory, AuthorityFactory_createVerticalDatum) { EXPECT_TRUE(extent->isEquivalentTo(factory->createExtent("1262").get())); EXPECT_TRUE(vrf->publicationDate().has_value()); EXPECT_EQ(vrf->publicationDate()->toString(), "2008-01-01"); + EXPECT_TRUE(!vrf->anchorEpoch().has_value()); +} + +// --------------------------------------------------------------------------- + +TEST(factory, AuthorityFactory_createVerticalDatum_with_anchor_epoch) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + // "Canadian Geodetic Vertical Datum of 2013 (CGG2013a) epoch 2010" + auto vrf = factory->createVerticalDatum("1256"); + EXPECT_TRUE(vrf->anchorEpoch().has_value()); + EXPECT_NEAR(vrf->anchorEpoch()->convertToUnit(UnitOfMeasure::YEAR), 2010.0, + 1e-6); } // --------------------------------------------------------------------------- @@ -1765,7 +1777,7 @@ class FactoryWithTmpDatabase : public ::testing::Test { execute("INSERT INTO geodetic_datum " "VALUES('EPSG','6326','World Geodetic System 1984',''," "'EPSG','7030','EPSG','8901',NULL,NULL,NULL," - "'my anchor',0);")) + "'my anchor',NULL,0);")) << last_error(); ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG'," "'geodetic_datum_6326_usage','geodetic_datum'," @@ -1773,7 +1785,7 @@ class FactoryWithTmpDatabase : public ::testing::Test { << last_error(); ASSERT_TRUE( execute("INSERT INTO vertical_datum VALUES('EPSG','1027','EGM2008 " - "geoid',NULL,NULL,NULL,NULL,'my anchor',0);")) + "geoid',NULL,NULL,NULL,NULL,'my anchor',NULL,0);")) << last_error(); ASSERT_TRUE(execute("INSERT INTO usage VALUES('EPSG'," "'vertical_datum_1027_usage','vertical_datum'," @@ -1973,7 +1985,7 @@ class FactoryWithTmpDatabase : public ::testing::Test { val + "','" + val + "',''," "'EPSG','7030','EPSG','8901'," - "NULL,NULL,NULL,NULL,0);")) + "NULL,NULL,NULL,NULL,NULL,0);")) << last_error(); ASSERT_TRUE(execute("INSERT INTO usage VALUES('FOO'," "'geodetic_datum_" + @@ -4157,7 +4169,9 @@ TEST(factory, objectInsertion) { auto ctxt = DatabaseContext::create(); ctxt->startInsertStatementsSession(); const auto datum = GeodeticReferenceFrame::create( - PropertyMap().set(IdentifiedObject::NAME_KEY, "my datum"), + PropertyMap() + .set(IdentifiedObject::NAME_KEY, "my datum") + .set("ANCHOR_EPOCH", "2023"), Ellipsoid::WGS84, optional("my anchor"), PrimeMeridian::GREENWICH); const auto crs = GeographicCRS::create( @@ -4169,7 +4183,7 @@ TEST(factory, objectInsertion) { EXPECT_EQ(sql[0], "INSERT INTO geodetic_datum VALUES('HOBU','1','my " "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL," - "'my anchor',0);"); + "'my anchor',2023.000,0);"); const auto identified = crs->identify(AuthorityFactory::create(ctxt, std::string())); ASSERT_EQ(identified.size(), 1U); @@ -4205,7 +4219,7 @@ TEST(factory, objectInsertion) { "INSERT INTO geodetic_datum " "VALUES('HOBU','GEODETIC_DATUM_MY_EPSG_4326','my " "datum','','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL," - "0);"); + "NULL,0);"); const auto identified = crs->identify(AuthorityFactory::create(ctxt, std::string())); ASSERT_EQ(identified.size(), 1U); @@ -4470,7 +4484,7 @@ TEST(factory, objectInsertion) { ASSERT_EQ(sql.size(), 4U); EXPECT_EQ(sql[0], "INSERT INTO vertical_datum VALUES('HOBU'," "'VERTICAL_DATUM_XXXX','my datum','',NULL,NULL,NULL," - "'my anchor',0);"); + "'my anchor',NULL,0);"); const auto identified = crs->identify(AuthorityFactory::create(ctxt, std::string())); ASSERT_EQ(identified.size(), 1U); @@ -4485,6 +4499,40 @@ TEST(factory, objectInsertion) { ctxt->stopInsertStatementsSession(); } + // Same as above with ANCHOR_EPOCH + { + auto ctxt = DatabaseContext::create(); + ctxt->startInsertStatementsSession(); + PropertyMap propertiesVDatum; + propertiesVDatum.set(IdentifiedObject::NAME_KEY, "my datum"); + propertiesVDatum.set("ANCHOR_EPOCH", "2023"); + auto vdatum = VerticalReferenceFrame::create( + propertiesVDatum, optional("my anchor")); + PropertyMap propertiesCRS; + propertiesCRS.set(IdentifiedObject::NAME_KEY, "my height"); + const auto crs = VerticalCRS::create( + propertiesCRS, vdatum, + VerticalCS::createGravityRelatedHeight(UnitOfMeasure::METRE)); + const auto sql = + ctxt->getInsertStatementsFor(crs, "HOBU", "YYYY", false); + ASSERT_EQ(sql.size(), 4U); + EXPECT_EQ(sql[0], "INSERT INTO vertical_datum VALUES('HOBU'," + "'VERTICAL_DATUM_YYYY','my datum','',NULL,NULL,NULL," + "'my anchor',2023.000,0);"); + const auto identified = + crs->identify(AuthorityFactory::create(ctxt, std::string())); + ASSERT_EQ(identified.size(), 1U); + EXPECT_EQ( + *(identified.front().first->identifiers().front()->codeSpace()), + "HOBU"); + EXPECT_TRUE(identified.front().first->isEquivalentTo( + crs.get(), IComparable::Criterion::EQUIVALENT)); + EXPECT_EQ(identified.front().second, 100); + EXPECT_TRUE( + ctxt->getInsertStatementsFor(crs, "HOBU", "YYYY", false).empty()); + ctxt->stopInsertStatementsSession(); + } + // Compound CRS { auto ctxt = DatabaseContext::create(); From 172d785c29c6354c7a0a12f71364b88862c8cec2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 7 Jan 2024 16:45:50 +0100 Subject: [PATCH 119/199] verticalOffsetByVelocity transformation: use vertical datum anchor epoch --- src/iso19111/operation/singleoperation.cpp | 65 ++++++++++++---------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 197dbd0d9d..a0ff19c6cf 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -4154,47 +4154,54 @@ bool SingleOperation::exportToPROJStringGeneric( " only to a GeographicCRS interpolation CRS")); } - if (isMethodInverseOf) { - formatter->startInversion(); + const auto vertSrc = + dynamic_cast(sourceCRS().get()); + if (!vertSrc) { + throw io::FormattingException(concat( + "Can apply ", methodName, " only to a source VerticalCRS")); } - formatter->addStep("push"); - formatter->addParam("v_1"); - formatter->addParam("v_2"); - formatter->addStep("cart"); - interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); - - formatter->addStep("deformation"); - auto srcName = sourceCRS()->nameStr(); - auto dstName = targetCRS()->nameStr(); - const struct { - const char *name; - double epoch; - } realizationEpochs[] = { - {"CGVD2013a(1997) height", 1997.0}, - {"CGVD2013a(2002) height", 2002.0}, - {"CGVD2013a(2010) height", 2010.0}, - }; - double sourceYear = 0.0; - double targetYear = 0.0; - for (const auto &iter : realizationEpochs) { - if (iter.name == srcName) - sourceYear = iter.epoch; - if (iter.name == dstName) - targetYear = iter.epoch; - } - if (sourceYear == 0.0) { + const auto &srcEpoch = + vertSrc->datumNonNull(formatter->databaseContext())->anchorEpoch(); + if (!srcEpoch.has_value()) { throw io::FormattingException( "For" " " EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN ", missing epoch for source CRS"); } - if (targetYear == 0.0) { + + const auto vertDst = + dynamic_cast(targetCRS().get()); + if (!vertSrc) { + throw io::FormattingException(concat( + "Can apply ", methodName, " only to a target VerticalCRS")); + } + + const auto &dstEpoch = + vertDst->datumNonNull(formatter->databaseContext())->anchorEpoch(); + if (!dstEpoch.has_value()) { throw io::FormattingException( "For" " " EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN ", missing epoch for target CRS"); } + + const double sourceYear = + srcEpoch->convertToUnit(common::UnitOfMeasure::YEAR); + const double targetYear = + dstEpoch->convertToUnit(common::UnitOfMeasure::YEAR); + + if (isMethodInverseOf) { + formatter->startInversion(); + } + formatter->addStep("push"); + formatter->addParam("v_1"); + formatter->addParam("v_2"); + + formatter->addStep("cart"); + interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); + + formatter->addStep("deformation"); formatter->addParam("dt", targetYear - sourceYear); formatter->addParam("grids", verticalOffsetByVelocityGridFilename); interpCRSGeog->ellipsoid()->_exportToPROJString(formatter); From 9697f59a0edb3650ece889abf209bb1abc1f51a0 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 8 Jan 2024 17:34:41 +0100 Subject: [PATCH 120/199] createOperationsCompoundToGeog(): tune selection logic when --grid-check known_available is specified --- .../operation/coordinateoperationfactory.cpp | 9 ++++--- test/unit/test_operationfactory.cpp | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 3cda6aad9e..473e1e48a8 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -5886,7 +5886,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( } } } - if (!foundRegisteredTransformWithAllGridsAvailable && srcGeogCRS && + if (srcGeogCRS && !srcGeogCRS->_isEquivalentTo( geogDst, util::IComparable::Criterion::EQUIVALENT) && !srcGeogCRS->is2DPartOf3D(NN_NO_CHECK(geogDst), dbContext)) { @@ -5904,7 +5904,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( componentsSrc[1], util::optional(), geogCRSTmp, util::optional(), context); bool foundRegisteredTransform = false; - foundRegisteredTransformWithAllGridsAvailable = false; + bool foundRegisteredTransformWithAllGridsAvailable2 = false; for (const auto &op : verticalTransformsTmp) { if (hasIdentifiers(op) && dbContext) { bool missingGrid = false; @@ -5923,13 +5923,14 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( } foundRegisteredTransform = true; if (!missingGrid) { - foundRegisteredTransformWithAllGridsAvailable = + foundRegisteredTransformWithAllGridsAvailable2 = true; break; } } } - if (foundRegisteredTransformWithAllGridsAvailable) { + if (foundRegisteredTransformWithAllGridsAvailable2 && + !foundRegisteredTransformWithAllGridsAvailable) { verticalTransforms = std::move(verticalTransformsTmp); } else if (foundRegisteredTransform) { verticalTransforms.insert(verticalTransforms.end(), diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 76f8aba63d..0b52a87b34 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -6942,6 +6942,31 @@ TEST(operation, compoundCRS_of_projCRS_to_geogCRS_3D_context) { // --------------------------------------------------------------------------- +TEST(operation, compoundCRS_to_geogCRS_3D_KNOWN_AVAILABLE_context) { + auto authFactory = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + + auto ctxt = CoordinateOperationContext::create(authFactory, nullptr, 0.0); + ctxt->setGridAvailabilityUse( + CoordinateOperationContext::GridAvailabilityUse::KNOWN_AVAILABLE); + auto list = CoordinateOperationFactory::create()->createOperations( + authFactory->createCoordinateReferenceSystem( + "9537"), // RGAF09 + Martinique 1987 height + authFactory->createCoordinateReferenceSystem("4557"), // RRAF 1991 + ctxt); + ASSERT_GE(list.size(), 2U); + // Make sure that "RGAF09 to Martinique 1987 height (2)" (using RAMART2016) + // is listed first + EXPECT_EQ(list[0]->nameStr(), + "Inverse of RGAF09 to Martinique 1987 height (2) + " + "Inverse of RRAF 1991 to RGAF09 (1)"); + EXPECT_EQ(list[1]->nameStr(), + "Inverse of RRAF 1991 to RGAF09 (1) + " + "Inverse of RRAF 1991 to Martinique 1987 height (1)"); +} + +// --------------------------------------------------------------------------- + TEST(operation, compoundCRS_from_wkt_without_id_to_geogCRS) { auto authFactory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); From 8b1a5bde1c269a4984dc457ab24e26fd2dba0ba8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 01:22:32 +0100 Subject: [PATCH 121/199] projjson.rst: point to spatialreference.org --- docs/source/specifications/projjson.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/source/specifications/projjson.rst b/docs/source/specifications/projjson.rst index 523f6250ac..9c205b03b6 100644 --- a/docs/source/specifications/projjson.rst +++ b/docs/source/specifications/projjson.rst @@ -1105,3 +1105,9 @@ Reference implementation ------------------------ PROJJSON is available as input and output of the `PROJ `_ software since PROJ 6.2. + +Online CRS definitions as PROJJSON +---------------------------------- + +The https://spatialreference.org/ website features CRS definitions for various authorities under a +number of formats, including PROJJSON. For example: https://spatialreference.org/ref/epsg/4326/projjson.json From 41ee7cf6dc7184a5b907e0d9664fa100367c8a01 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Tue, 9 Jan 2024 15:49:50 +0100 Subject: [PATCH 122/199] [doc]: remove unneeded or broken links in resource_files.rst --- docs/source/resource_files.rst | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/source/resource_files.rst b/docs/source/resource_files.rst index d84d6c366f..07596ddbfe 100644 --- a/docs/source/resource_files.rst +++ b/docs/source/resource_files.rst @@ -254,16 +254,6 @@ Portugal `Portuguese grids `__ for ED50, Lisbon 1890, Lisbon 1937 and Datum 73 -South Africa -................................................................................ - -`South African grid `__ (Cape to Hartebeesthoek94 or WGS84) - -Spain -................................................................................ - -`Spanish grids `__ for ED50. - HTDP +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From e69770bf68975aa47d324ffb933789cc6129a05a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 10 Jan 2024 12:28:56 +0100 Subject: [PATCH 123/199] test/fuzzers/build.sh: fix curl build --- test/fuzzers/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fuzzers/build.sh b/test/fuzzers/build.sh index 25c43fa23b..05c3c20e31 100755 --- a/test/fuzzers/build.sh +++ b/test/fuzzers/build.sh @@ -24,8 +24,8 @@ if [ "$LIB_FUZZING_ENGINE" = "" ]; then export LIB_FUZZING_ENGINE=-lFuzzingEngine fi -I386_PACKAGES="zlib1g-dev:i386 libssl-dev:i386 libsqlite3-dev:i386" -X64_PACKAGES="zlib1g-dev libssl-dev libsqlite3-dev" +I386_PACKAGES="zlib1g-dev:i386 libssl-dev:i386 libpsl-dev:i386 libsqlite3-dev:i386" +X64_PACKAGES="zlib1g-dev libssl-dev libpsl-dev libsqlite3-dev" if [ "$ARCHITECTURE" = "i386" ]; then apt-get install -y $I386_PACKAGES From 5f2288eb1ef801c3ae31015e63ceb19d60b45119 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 10 Jan 2024 12:33:20 +0100 Subject: [PATCH 124/199] test/fuzzers/build.sh: add missing -lpsl --- test/fuzzers/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fuzzers/build.sh b/test/fuzzers/build.sh index 05c3c20e31..b6f1c015d3 100755 --- a/test/fuzzers/build.sh +++ b/test/fuzzers/build.sh @@ -65,7 +65,7 @@ make -j$(nproc) -s make install cd .. -EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lssl -lcrypto -lz -Wl,-Bdynamic" +EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lpsl -lssl -lcrypto -lz -Wl,-Bdynamic" build_fuzzer() { From d9ca25cd7594b69c443d1dd4cfac16d02155b3e7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 10 Jan 2024 12:39:21 +0100 Subject: [PATCH 125/199] test/fuzzers/build.sh: add missing -lunistring -lidn2 --- test/fuzzers/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fuzzers/build.sh b/test/fuzzers/build.sh index b6f1c015d3..04b3bc41e3 100755 --- a/test/fuzzers/build.sh +++ b/test/fuzzers/build.sh @@ -65,7 +65,7 @@ make -j$(nproc) -s make install cd .. -EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lpsl -lssl -lcrypto -lz -Wl,-Bdynamic" +EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lpsl -lunistring -lidn2 -lssl -lcrypto -lz -Wl,-Bdynamic" build_fuzzer() { From 53b8bd4bae2c72a4f280bd6d5c604a8fb5483af6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 10 Jan 2024 12:51:18 +0100 Subject: [PATCH 126/199] test/fuzzers/build.sh: actually build curl without libpsl --- test/fuzzers/build.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/fuzzers/build.sh b/test/fuzzers/build.sh index 04b3bc41e3..306094e0cb 100755 --- a/test/fuzzers/build.sh +++ b/test/fuzzers/build.sh @@ -24,8 +24,8 @@ if [ "$LIB_FUZZING_ENGINE" = "" ]; then export LIB_FUZZING_ENGINE=-lFuzzingEngine fi -I386_PACKAGES="zlib1g-dev:i386 libssl-dev:i386 libpsl-dev:i386 libsqlite3-dev:i386" -X64_PACKAGES="zlib1g-dev libssl-dev libpsl-dev libsqlite3-dev" +I386_PACKAGES="zlib1g-dev:i386 libssl-dev:i386 libsqlite3-dev:i386" +X64_PACKAGES="zlib1g-dev libssl-dev libsqlite3-dev" if [ "$ARCHITECTURE" = "i386" ]; then apt-get install -y $I386_PACKAGES @@ -36,7 +36,7 @@ fi # build libcurl.a (builing against Ubuntu libcurl.a doesn't work easily) cd curl autoreconf -i -./configure --disable-shared --with-openssl --prefix=$SRC/install +./configure --disable-shared --with-openssl --without-libpsl --prefix=$SRC/install make clean -s make -j$(nproc) -s make install @@ -65,7 +65,7 @@ make -j$(nproc) -s make install cd .. -EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lpsl -lunistring -lidn2 -lssl -lcrypto -lz -Wl,-Bdynamic" +EXTRA_LIBS="-lpthread -Wl,-Bstatic -lsqlite3 -L$SRC/install/lib -ltiff -lcurl -lssl -lcrypto -lz -Wl,-Bdynamic" build_fuzzer() { From dfdb4f486e8b9960184151ae4abc5f048ba28f3e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 16:35:40 +0100 Subject: [PATCH 127/199] Add .github/workflows/codeql.yml --- .github/workflows/codeql.yml | 103 +++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000000..14c8bb01fa --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,103 @@ +name: "CodeQL" + +on: + push: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'c-cpp' ] + # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] + # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both + # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + config: | + query-filters: + - exclude: + id: cpp/non-https-url + - name: Install dependencies + run: | + sudo apt-get install -y ccache cmake g++ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev + # cache the .ccache directory + # key it on the runner os, build type, deps, and arch + # It's especially important to include arch in the key because we + # may get runtime errors with -mavx2 from objects built on a + # different architecture. + - name: Restore build cache + if: matrix.language == 'c-cpp' + id: restore-cache + uses: actions/cache/restore@v3 + with: + path: ${{ github.workspace }}/.ccache + key: ${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}-${{ github.ref_name }}-${{ github.run_id }} + restore-keys: | + ${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}-${{ github.ref_name }} + ${{ matrix.id }}-${{ steps.get-arch.outputs.arch }} + - name: Configure ccache + if: matrix.language == 'c-cpp' + run: | + echo CCACHE_BASEDIR=${{ github.workspace }} >> ${GITHUB_ENV} + echo CCACHE_DIR=${{ github.workspace }}/.ccache >> ${GITHUB_ENV} + echo CCACHE_MAXSIZE=250M >> ${GITHUB_ENV} + ccache -z + - name: Build + if: matrix.language == 'c-cpp' + run: | + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_CCACHE=YES + make -j$(nproc) + - name: Summarize ccache + if: matrix.language == 'c-cpp' + run: | + ccache -s + - name: Save build cache + if: matrix.language == 'c-cpp' + uses: actions/cache/save@v3 + with: + path: ${{ github.workspace }}/.ccache + key: ${{ steps.restore-cache.outputs.cache-primary-key }} + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" From e3887e020d3fb5fa17ed083be883f50f4b9d4865 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 21:45:17 +0100 Subject: [PATCH 128/199] cs2cs: fix potential use of invalid formatting string being passed to fprintf() on an invalid input file --- src/apps/cs2cs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index 1e817704cc..a03f994bd3 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -994,7 +994,7 @@ int main(int argc, char **argv) { } else { if ((fid = fopen(*eargv, "rt")) == nullptr) { - emess(-2, *eargv, "input file"); + emess(-2, "input file: %s", *eargv); continue; } emess_dat.File_name = *eargv; From 82ff0fe04584cf2e6aad60e29a8df05e21dfe974 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 21:50:31 +0100 Subject: [PATCH 129/199] geod: fix potential use of invalid formatting string being passed to fprintf() on an invalid input file --- src/apps/geod.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/geod.cpp b/src/apps/geod.cpp index f5fd960f0a..ae8ecf51e9 100644 --- a/src/apps/geod.cpp +++ b/src/apps/geod.cpp @@ -266,7 +266,7 @@ int main(int argc, char **argv) { emess_dat.File_name = const_cast(""); } else { if ((fid = fopen(*eargv, "r")) == nullptr) { - emess(-2, *eargv, "input file"); + emess(-2, "input file: %s", *eargv); continue; } emess_dat.File_name = *eargv; From 91471929c4dcb9ccec45de6e7caa756ed82e2bc3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 18:06:06 +0100 Subject: [PATCH 130/199] Avoid CodeQL cpp/tainted-format-string warnings --- src/apps/bin_geod.cmake | 1 + src/apps/cs2cs.cpp | 10 +-- src/apps/geod.cpp | 32 ++++++---- src/apps/proj.cpp | 18 +++--- src/apps/utils.cpp | 137 +++++++++++++++++++++++++++++++++++++++- src/apps/utils.h | 4 ++ 6 files changed, 177 insertions(+), 25 deletions(-) diff --git a/src/apps/bin_geod.cmake b/src/apps/bin_geod.cmake index 8466898dff..e626fc202a 100644 --- a/src/apps/bin_geod.cmake +++ b/src/apps/bin_geod.cmake @@ -3,6 +3,7 @@ set(GEOD_SRC geod_set.cpp geod_interface.cpp emess.cpp + utils.cpp ) set(GEOD_INCLUDE geod_interface.h) diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index a03f994bd3..e9baa726e1 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -229,19 +229,19 @@ static void process(FILE *fid) data.u *= destToRadians * RAD_TO_DEG; } if (reverseout) { - printf(oform, data.v); + limited_fprintf_for_number(stdout, oform, data.v); putchar('\t'); - printf(oform, data.u); + limited_fprintf_for_number(stdout, oform, data.u); } else { - printf(oform, data.u); + limited_fprintf_for_number(stdout, oform, data.u); putchar('\t'); - printf(oform, data.v); + limited_fprintf_for_number(stdout, oform, data.v); } } putchar(' '); if (oform != nullptr) - printf(oform, z); + limited_fprintf_for_number(stdout, oform, z); else printf("%.3f", z); if (s) diff --git a/src/apps/geod.cpp b/src/apps/geod.cpp index ae8ecf51e9..4cabdcf369 100644 --- a/src/apps/geod.cpp +++ b/src/apps/geod.cpp @@ -4,6 +4,7 @@ #include "geod_interface.h" #include "proj.h" #include "proj_internal.h" +#include "utils.h" #include #include #include @@ -25,9 +26,9 @@ static const char *usage = static void printLL(double p, double l) { if (oform) { - (void)printf(oform, p * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, p * RAD_TO_DEG); TAB; - (void)printf(oform, l * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, l * RAD_TO_DEG); } else { (void)fputs(rtodms(pline, sizeof(pline), p, 'N', 'S'), stdout); TAB; @@ -108,37 +109,46 @@ process(FILE *fid) { printLL(phi2, lam2); TAB; if (oform) { - (void)printf(oform, al12 * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, + al12 * RAD_TO_DEG); TAB; - (void)printf(oform, al21 * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, + al21 * RAD_TO_DEG); TAB; - (void)printf(osform, geod_S * fr_meter); + (void)limited_fprintf_for_number(stdout, osform, + geod_S * fr_meter); } else { (void)fputs(rtodms(pline, sizeof(pline), al12, 0, 0), stdout); TAB; (void)fputs(rtodms(pline, sizeof(pline), al21, 0, 0), stdout); TAB; - (void)printf(osform, geod_S * fr_meter); + (void)limited_fprintf_for_number(stdout, osform, + geod_S * fr_meter); } } else if (inverse) if (oform) { - (void)printf(oform, al12 * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, + al12 * RAD_TO_DEG); TAB; - (void)printf(oform, al21 * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, + al21 * RAD_TO_DEG); TAB; - (void)printf(osform, geod_S * fr_meter); + (void)limited_fprintf_for_number(stdout, osform, + geod_S * fr_meter); } else { (void)fputs(rtodms(pline, sizeof(pline), al12, 0, 0), stdout); TAB; (void)fputs(rtodms(pline, sizeof(pline), al21, 0, 0), stdout); TAB; - (void)printf(osform, geod_S * fr_meter); + (void)limited_fprintf_for_number(stdout, osform, + geod_S * fr_meter); } else { printLL(phi2, lam2); TAB; if (oform) - (void)printf(oform, al21 * RAD_TO_DEG); + (void)limited_fprintf_for_number(stdout, oform, + al21 * RAD_TO_DEG); else (void)fputs(rtodms(pline, sizeof(pline), al21, 0, 0), stdout); } diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index eeaaaceb8f..c3e5b1c57d 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -172,13 +172,13 @@ static void process(FILE *fid) { } if (reverseout) { - (void)printf(oform, data.uv.v); + limited_fprintf_for_number(stdout, oform, data.uv.v); putchar('\t'); - (void)printf(oform, data.uv.u); + limited_fprintf_for_number(stdout, oform, data.uv.u); } else { - (void)printf(oform, data.uv.u); + limited_fprintf_for_number(stdout, oform, data.uv.u); putchar('\t'); - (void)printf(oform, data.uv.v); + limited_fprintf_for_number(stdout, oform, data.uv.v); } } @@ -305,11 +305,11 @@ static void vprocess(FILE *fid) { (void)printf(" [ %.11g ]\n", dat_ll.phi * RAD_TO_DEG); (void)fputs(swapAxisCrs ? "Northing (y): " : "Easting (x): ", stdout); - (void)printf(oform, dat_xy.x); + limited_fprintf_for_number(stdout, oform, dat_xy.x); putchar('\n'); (void)fputs(swapAxisCrs ? "Easting (x): " : "Northing (y): ", stdout); - (void)printf(oform, dat_xy.y); + limited_fprintf_for_number(stdout, oform, dat_xy.y); putchar('\n'); (void)printf("Meridian scale (h) : %.8f ( %.4g %% error )\n", facs.meridional_scale, @@ -670,13 +670,15 @@ int main(int argc, char **argv) { (void)printf("#Final Earth figure: "); if (Proj->es != 0.0) { (void)printf("ellipsoid\n# Major axis (a): "); - (void)printf(oform ? oform : "%.3f", Proj->a); + limited_fprintf_for_number(stdout, oform ? oform : "%.3f", + Proj->a); (void)printf("\n# 1/flattening: %.6f\n", 1. / (1. - sqrt(1. - Proj->es))); (void)printf("# squared eccentricity: %.12f\n", Proj->es); } else { (void)printf("sphere\n# Radius: "); - (void)printf(oform ? oform : "%.3f", Proj->a); + limited_fprintf_for_number(stdout, oform ? oform : "%.3f", + Proj->a); (void)putchar('\n'); } } diff --git a/src/apps/utils.cpp b/src/apps/utils.cpp index 6d29a8c6b3..364c2df8fd 100644 --- a/src/apps/utils.cpp +++ b/src/apps/utils.cpp @@ -28,6 +28,7 @@ #include "utils.h" +#include #include bool validate_form_string_for_numbers(const char *formatString) { @@ -36,7 +37,7 @@ bool validate_form_string_for_numbers(const char *formatString) { if (formatString[0] != '%') valid = false; else { - auto oformLen = strlen(formatString); + const auto oformLen = strlen(formatString); for (int i = 1; i < static_cast(oformLen) - 1; i++) { if (!(formatString[i] == '.' || formatString[i] == '+' || (formatString[i] >= '0' && formatString[i] <= '9'))) { @@ -55,3 +56,137 @@ bool validate_form_string_for_numbers(const char *formatString) { } return valid; } + +// Some older versions of mingw_w64 do not support the F formatter +// GCC 7 might not be the exact version... +#if defined(__MINGW32__) && __GNUC__ <= 7 +#define MY_FPRINTF0(fmt0, fmt, ...) \ + do { \ + if (*ptr == 'e') \ + fprintf(f, "%" fmt0 fmt "e", __VA_ARGS__); \ + else if (*ptr == 'E') \ + fprintf(f, "%" fmt0 fmt "E", __VA_ARGS__); \ + else if (*ptr == 'f') \ + fprintf(f, "%" fmt0 fmt "f", __VA_ARGS__); \ + else if (*ptr == 'g') \ + fprintf(f, "%" fmt0 fmt "g", __VA_ARGS__); \ + else if (*ptr == 'G') \ + fprintf(f, "%" fmt0 fmt "G", __VA_ARGS__); \ + else { \ + fprintf(stderr, "Wrong formatString '%s'\n", formatString); \ + return; \ + } \ + ++ptr; \ + } while (0) +#else +#define MY_FPRINTF0(fmt0, fmt, ...) \ + do { \ + if (*ptr == 'e') \ + fprintf(f, "%" fmt0 fmt "e", __VA_ARGS__); \ + else if (*ptr == 'E') \ + fprintf(f, "%" fmt0 fmt "E", __VA_ARGS__); \ + else if (*ptr == 'f') \ + fprintf(f, "%" fmt0 fmt "f", __VA_ARGS__); \ + else if (*ptr == 'F') \ + fprintf(f, "%" fmt0 fmt "F", __VA_ARGS__); \ + else if (*ptr == 'g') \ + fprintf(f, "%" fmt0 fmt "g", __VA_ARGS__); \ + else if (*ptr == 'G') \ + fprintf(f, "%" fmt0 fmt "G", __VA_ARGS__); \ + else { \ + fprintf(stderr, "Wrong formatString '%s'\n", formatString); \ + return; \ + } \ + ++ptr; \ + } while (0) +#endif + +#define MY_FPRINTF(fmt, ...) \ + do { \ + if (withPlus) \ + MY_FPRINTF0("+", fmt, __VA_ARGS__); \ + else \ + MY_FPRINTF0("", fmt, __VA_ARGS__); \ + } while (0) + +static int parseInt(const char *&ptr) { + int val = 0; + while (*ptr >= '0' && *ptr <= '9') { + val = val * 10 + (*ptr - '0'); + if (val > 1000) { + return -1; + } + ++ptr; + } + return val; +} + +// This function is a limited version of fprintf(f, formatString, val) where +// formatString is a subset of formatting strings accepted by +// validate_form_string_for_numbers(). +// This methods makes CodeQL cpp/tainted-format-string check happy. +void limited_fprintf_for_number(FILE *f, const char *formatString, double val) { + const char *ptr = formatString; + if (*ptr != '%') { + fprintf(stderr, "Wrong formatString '%s'\n", formatString); + return; + } + ++ptr; + const bool withPlus = (*ptr == '+'); + if (withPlus) { + ++ptr; + } + if (*ptr >= '0' && *ptr <= '9') { + const bool isLeadingZero = *ptr == '0'; + const int w = parseInt(ptr); + if (w < 0 || *ptr == 0) { + fprintf(stderr, "Wrong formatString '%s'\n", formatString); + return; + } + if (*ptr == '.') { + ++ptr; + if (*ptr >= '0' && *ptr <= '9') { + const int p = parseInt(ptr); + if (p < 0 || *ptr == 0) { + fprintf(stderr, "Wrong formatString '%s'\n", formatString); + return; + } + if (isLeadingZero) { + MY_FPRINTF("0*.*", w, p, val); + } else { + MY_FPRINTF("*.*", w, p, val); + } + } else { + if (isLeadingZero) { + MY_FPRINTF("0*.", w, val); + } else { + MY_FPRINTF("*.", w, val); + } + } + } else { + if (isLeadingZero) { + MY_FPRINTF("0*", w, val); + } else { + MY_FPRINTF("*", w, val); + } + } + } else if (*ptr == '.') { + ++ptr; + if (*ptr >= '0' && *ptr <= '9') { + const int p = parseInt(ptr); + if (p < 0 || *ptr == 0) { + fprintf(stderr, "Wrong formatString '%s'\n", formatString); + return; + } + MY_FPRINTF(".*", p, val); + } else { + MY_FPRINTF(".", val); + } + } else { + MY_FPRINTF("", val); + } + if (*ptr != 0) { + fprintf(stderr, "Wrong formatString '%s'\n", formatString); + return; + } +} diff --git a/src/apps/utils.h b/src/apps/utils.h index 8cb99a860f..81d635681a 100644 --- a/src/apps/utils.h +++ b/src/apps/utils.h @@ -26,4 +26,8 @@ * DEALINGS IN THE SOFTWARE. ****************************************************************************/ +#include + bool validate_form_string_for_numbers(const char *formatString); + +void limited_fprintf_for_number(FILE *f, const char *formatString, double val); From ffc9f62c30ab4ca15b6e35840917e95273da14a5 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 21:52:13 +0100 Subject: [PATCH 131/199] io.cpp: avoid CodeQL cpp/integer-multiplication-cast-to-long false positives --- src/iso19111/io.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 8c74b6b06c..d85b16f601 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -426,7 +426,8 @@ void WKTFormatter::Private::addNewLine() { result_ += '\n'; } // --------------------------------------------------------------------------- void WKTFormatter::Private::addIndentation() { - result_ += std::string(indentLevel_ * params_.indentWidth_, ' '); + result_ += std::string( + static_cast(indentLevel_) * params_.indentWidth_, ' '); } // --------------------------------------------------------------------------- @@ -9626,7 +9627,9 @@ const std::string &PROJStringFormatter::toString() const { std::string curLine; if (!d->result_.empty()) { if (d->multiLine_) { - curLine = std::string(d->indentLevel_ * d->indentWidth_, ' '); + curLine = std::string(static_cast(d->indentLevel_) * + d->indentWidth_, + ' '); curLine += "+step"; } else { curLine = " +step"; @@ -9655,8 +9658,10 @@ const std::string &PROJStringFormatter::toString() const { if (!d->result_.empty()) d->result_ += '\n'; d->result_ += curLine; - curLine = std::string( - d->indentLevel_ * d->indentWidth_ + strlen("+step "), ' '); + curLine = std::string(static_cast(d->indentLevel_) * + d->indentWidth_ + + strlen("+step "), + ' '); } else { if (!curLine.empty()) curLine += ' '; From aae23e41191bd9e0b66a0554af2d4aa82419114e Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 21:58:44 +0100 Subject: [PATCH 132/199] DatabaseContext::Private::attachExtraDatabases(): fix false-positive CodeQL cpp/sql-injection --- src/iso19111/factory.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 6baa8daeb1..95c21b788f 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -1282,18 +1282,15 @@ void DatabaseContext::Private::attachExtraDatabases( sqlite_handle, true, nLayoutVersionMajor, nLayoutVersionMinor); l_handle = sqlite_handle_; - run("ATTACH DATABASE '" + replaceAll(databasePath_, "'", "''") + - "' AS db_0"); + run("ATTACH DATABASE ? AS db_0", {databasePath_}); detach_ = true; int count = 1; for (const auto &otherDbPath : auxiliaryDatabasePaths) { const auto attachedDbName("db_" + toString(static_cast(count))); - std::string sql = "ATTACH DATABASE '"; - sql += replaceAll(otherDbPath, "'", "''"); - sql += "' AS "; + std::string sql = "ATTACH DATABASE ? AS "; sql += attachedDbName; count++; - run(sql); + run(sql, {otherDbPath}); l_handle->checkDatabaseLayout(databasePath_, otherDbPath, attachedDbName + '.'); From 812f2339e059acb30861efaf87c719034b678e77 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 9 Jan 2024 22:19:27 +0100 Subject: [PATCH 133/199] emess(): avoid potential unsafe uses --- src/apps/cs2cs.cpp | 4 ++-- src/apps/emess.h | 9 ++++++++- src/apps/proj.cpp | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index e9baa726e1..b6a1ed123b 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -899,7 +899,7 @@ int main(int argc, char **argv) { sourceEpochDbl = c_locale_stod(sourceEpoch); } catch (const std::exception &e) { sourceEpochDbl = 0; - emess(3, e.what()); + emess(3, "%s", e.what()); } srcMetadata = proj_coordinate_metadata_create(nullptr, src, sourceEpochDbl); @@ -917,7 +917,7 @@ int main(int argc, char **argv) { targetEpochDbl = c_locale_stod(targetEpoch); } catch (const std::exception &e) { targetEpochDbl = 0; - emess(3, e.what()); + emess(3, "%s", e.what()); } dstMetadata = proj_coordinate_metadata_create(nullptr, dst, targetEpochDbl); diff --git a/src/apps/emess.h b/src/apps/emess.h index b09262e5f3..68a50fd472 100644 --- a/src/apps/emess.h +++ b/src/apps/emess.h @@ -19,6 +19,13 @@ extern struct EMESS emess_dat; #endif /* use type */ -void emess(int, const char *, ...); +#if defined(__GNUC__) +#define EMESS_PRINT_FUNC_FORMAT(format_idx, arg_idx) \ + __attribute__((__format__(__printf__, format_idx, arg_idx))) +#else +#define EMESS_PRINT_FUNC_FORMAT(format_idx, arg_idx) +#endif + +void emess(int, const char *, ...) EMESS_PRINT_FUNC_FORMAT(2, 3); #endif /* end EMESS_H */ diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index c3e5b1c57d..3fa94e75b9 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -279,7 +279,7 @@ static void vprocess(FILE *fid) { } if (proj_context_errno(nullptr)) { - emess(-1, proj_errno_string(proj_context_errno(nullptr))); + emess(-1, "%s", proj_errno_string(proj_context_errno(nullptr))); continue; } From 60a1a2366db72994046f616945bfd890195e2a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Thu, 11 Jan 2024 10:58:48 +0800 Subject: [PATCH 134/199] Update eqc.rst Grammar. --- docs/source/operations/projections/eqc.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/operations/projections/eqc.rst b/docs/source/operations/projections/eqc.rst index d019ed9cb1..47184752fe 100644 --- a/docs/source/operations/projections/eqc.rst +++ b/docs/source/operations/projections/eqc.rst @@ -94,7 +94,7 @@ Mathematical definition The formulas describing the Equidistant Cylindrical projection are all taken from :cite:`Snyder1987`. -:math:`\phi_{ts}` is the latitude of true scale, that mean the standard parallels where the scale of the projection is true. It can be set with ``+lat_ts``. +:math:`\phi_{ts}` is the latitude of true scale, i.e., the standard parallel where the scale of the projection is true. It can be set with ``+lat_ts``. :math:`\phi_0` is the latitude of origin that match the center of the map. It can be set with ``+lat_0``. From 95db9aa0ec5dd715f2e975dd13041bfbd032f007 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Mon, 15 Jan 2024 01:11:35 +1300 Subject: [PATCH 135/199] Increase CMake minimum version from 3.9 to 3.16 (#3997) --- .github/workflows/linux_gcc_5_4.yml | 39 -------------------- .github/workflows/linux_gcc_5_4/start.sh | 42 --------------------- .github/workflows/mingw_w64.yml | 2 +- .github/workflows/mingw_w64/start.sh | 5 ++- .travis.yml | 4 +- CMakeLists.txt | 12 +----- cmake/Ccache.cmake | 2 - cmake/ProjUtilities.cmake | 7 ++-- docs/source/install.rst | 10 +++-- src/lib_proj.cmake | 47 +++++++++--------------- test/unit/CMakeLists.txt | 13 +------ travis/linux_generic/before_install.sh | 2 +- 12 files changed, 38 insertions(+), 147 deletions(-) delete mode 100644 .github/workflows/linux_gcc_5_4.yml delete mode 100755 .github/workflows/linux_gcc_5_4/start.sh diff --git a/.github/workflows/linux_gcc_5_4.yml b/.github/workflows/linux_gcc_5_4.yml deleted file mode 100644 index 3d49794bc5..0000000000 --- a/.github/workflows/linux_gcc_5_4.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Linux GCC 5.4 - -on: - push: - paths-ignore: - - 'docs/**' - pull_request: - paths-ignore: - - 'docs/**' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true - -jobs: - - linux_gcc_5_4: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Cache - uses: actions/cache@v3 - id: cache - with: - path: | - ${{ github.workspace }}/ccache.tar.gz - key: ${{ runner.os }}-cache-gcc-5-4-${{ github.run_id }} - restore-keys: ${{ runner.os }}-cache-gcc-5-4- - - - name: Run - run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:16.04 $PWD/.github/workflows/linux_gcc_5_4/start.sh - - - name: Coveralls - uses: coverallsapp/github-action@v1.1.2 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/linux_gcc_5_4/start.sh b/.github/workflows/linux_gcc_5_4/start.sh deleted file mode 100755 index 98a3c31839..0000000000 --- a/.github/workflows/linux_gcc_5_4/start.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -set -e - -export TRAVIS_OS_NAME=linux -export BUILD_NAME=linux_gcc -export TRAVIS_BUILD_DIR="$WORK_DIR" - -apt-get update -y - -DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip \ - g++ jq lcov python3-setuptools \ - libsqlite3-dev \ - libtiff-dev \ - libcurl4-openssl-dev libidn11-dev librtmp-dev libssl-dev libkrb5-dev comerr-dev libldap2-dev - -python3 -m pip install --user --upgrade "pip < 21.0" -echo `python3 -m pip --version` -python3 -m pip config --user set global.progress_bar off -python3 -m pip install --user jsonschema -python3 -m pip install --user cmake==3.9.6 - -export PATH=$HOME/.local/bin:$PATH - -cd "$WORK_DIR" - -if test -f "$WORK_DIR/ccache.tar.gz"; then - echo "Restoring ccache..." - (cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz") -fi - -ccache -M 500M - -CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh - -echo "Saving ccache..." -rm -f "$WORK_DIR/ccache.tar.gz" -(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache) - -mkdir -p coverage -lcov --no-external --capture --directory src --output-file coverage/lcov.info diff --git a/.github/workflows/mingw_w64.yml b/.github/workflows/mingw_w64.yml index 2773a47cfd..f98671f094 100644 --- a/.github/workflows/mingw_w64.yml +++ b/.github/workflows/mingw_w64.yml @@ -31,4 +31,4 @@ jobs: restore-keys: ${{ runner.os }}-cache-mingw_w64- - name: Build - run: docker run -e CI -e TRAVIS_OS_NAME=linux -e BUILD_NAME=mingw_w64 -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:18.04 $PWD/.github/workflows/mingw_w64/start.sh + run: docker run -e CI -e TRAVIS_OS_NAME=linux -e BUILD_NAME=mingw_w64 -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:22.04 $PWD/.github/workflows/mingw_w64/start.sh diff --git a/.github/workflows/mingw_w64/start.sh b/.github/workflows/mingw_w64/start.sh index 7b91066f82..1116400a51 100755 --- a/.github/workflows/mingw_w64/start.sh +++ b/.github/workflows/mingw_w64/start.sh @@ -47,7 +47,7 @@ ccache -M 500M ccache -s MINGW_ARCH=x86_64-w64-mingw32 -MINGW_PREFIX=/usr/lib/gcc/$MINGW_ARCH/7.3-posix +MINGW_PREFIX=/usr/lib/gcc/$MINGW_ARCH/10-posix export CC="$MINGW_ARCH-gcc" export CXX="$MINGW_ARCH-g++" @@ -64,7 +64,7 @@ WINE_SYSDIR=$WINE_PREFIX/drive_c/windows wine64 cmd /c dir ln -s $MINGW_PREFIX/libstdc++-6.dll $WINE_SYSDIR ln -s $MINGW_PREFIX/libgcc_s_seh-1.dll $WINE_SYSDIR -ln -s $MINGW_PREFIX/libgcc_s_sjlj-1.dll $WINE_SYSDIR +# ln -s $MINGW_PREFIX/libgcc_s_sjlj-1.dll $WINE_SYSDIR ln -s /usr/$MINGW_ARCH/lib/libwinpthread-1.dll $WINE_SYSDIR # build zlib @@ -93,6 +93,7 @@ CFLAGS="-DSQLITE_DQS=0" ./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH ln -s /usr/$MINGW_ARCH/bin/libsqlite3-0.dll $WINE_SYSDIR # build proj +rm -rf build mkdir build cd build cmake -G "Unix Makefiles" \ diff --git a/.travis.yml b/.travis.yml index e51510aad6..55591a6d55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ matrix: include: - os: linux - dist: bionic + dist: jammy compiler: gcc arch: s390x env: @@ -23,7 +23,7 @@ matrix: - DETAILS="linux, s390x" - os: linux - dist: bionic + dist: jammy compiler: gcc arch: arm64 env: diff --git a/CMakeLists.txt b/CMakeLists.txt index 862570c12e..45bd855bd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ ################################################################################ # General settings ################################################################################ -cmake_minimum_required(VERSION 3.9 FATAL_ERROR) +cmake_minimum_required(VERSION 3.16) project(PROJ DESCRIPTION "PROJ coordinate transformation software library" @@ -219,16 +219,6 @@ if(ENABLE_CURL) if(CURL_FOUND) set(CURL_ENABLED TRUE) - # Target CURL::libcurl only defined since CMake 3.12 - # TODO: remove this when CMake >= 3.12 required - if(NOT TARGET CURL::libcurl) - add_library(CURL::libcurl INTERFACE IMPORTED) - set_target_properties(CURL::libcurl PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${CURL_LIBRARIES}" - ) - endif() - # Curl SSL options are described in # https://curl.se/libcurl/c/CURLOPT_SSL_OPTIONS.html #set(CURLSSLOPT_NO_REVOKE 2) diff --git a/cmake/Ccache.cmake b/cmake/Ccache.cmake index 380513394e..9f56a9ca9c 100644 --- a/cmake/Ccache.cmake +++ b/cmake/Ccache.cmake @@ -7,8 +7,6 @@ # Add "include(Ccache)" to CMakeLists.txt and enable # using the option -D USE_CCACHE=ON -cmake_minimum_required(VERSION 3.9) - option(USE_CCACHE "Use ccache (or clcache for MSVC) to compile C/C++ objects" OFF) diff --git a/cmake/ProjUtilities.cmake b/cmake/ProjUtilities.cmake index 2103d3d3d5..295e3c64e5 100644 --- a/cmake/ProjUtilities.cmake +++ b/cmake/ProjUtilities.cmake @@ -116,9 +116,10 @@ function(configure_proj_pc) if(HAVE_LIBDL) list(APPEND EXTRA_LIBS -ldl) endif() - # Join list with a space; list(JOIN) added CMake 3.12 - string(REPLACE ";" " " EXTRA_LIBS "${EXTRA_LIBS}") - string(REPLACE ";" " " EXTRA_REQUIRES "${EXTRA_REQUIRES}") + + # Join lists with a space + list(JOIN EXTRA_LIBS " " EXTRA_LIBS) + list(JOIN EXTRA_REQUIRES " " EXTRA_REQUIRES) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/proj.pc.in diff --git a/docs/source/install.rst b/docs/source/install.rst index c3f2150541..9613705ade 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -144,7 +144,7 @@ Build requirements - C99 compiler - C++11 compiler -- CMake >= 3.9 +- CMake >= 3.16 - SQLite3 >= 3.11: headers and library for target architecture, and sqlite3 executable for build architecture. - libtiff >= 4.0 (optional but recommended) - curl >= 7.29.0 (optional but recommended) @@ -263,7 +263,7 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. Build PROJ library shared. Default is ON. See also the CMake documentation for `BUILD_SHARED_LIBS - `_. + `_. .. versionchanged:: 7.0 Renamed from ``BUILD_LIBPROJ_SHARED`` @@ -283,7 +283,7 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. Choose the type of build, options are: None (default), Debug, Release, RelWithDebInfo, or MinSizeRel. See also the CMake documentation for `CMAKE_BUILD_TYPE - `_. + `_. .. note:: A default build is not optimized without specifying @@ -320,7 +320,9 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. .. versionadded:: 9.4 Default is OFF. This can be set to ON to build PROJ using the - https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html feature. + `CMAKE_UNITY_BUILD + `_. + feature. This helps speeding PROJ build times. This feature is still considered experimental for now, and could hide subtle bugs (we are not aware of any at writing time though). We don't recommend it for mission critical diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 79fb73f7d6..e9280ecae3 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -258,19 +258,22 @@ set(SRC_LIBPROJ_CORE ${CMAKE_CURRENT_BINARY_DIR}/proj_config.h ) -if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16) - set_property(SOURCE list.cpp # because if sets DO_NOT_DEFINE_PROJ_HEAD - transformations/defmodel.cpp # Evaluator class conflict - transformations/tinshift.cpp # Evaluator class conflict - wkt1_parser.cpp - wkt2_parser.cpp - wkt1_generated_parser.c - wkt2_generated_parser.c - PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - if(WIN32) - set_property(SOURCE networkfilemanager.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - endif() -endif () +# Skip Unity build for specific files +set(SKIP_UNITY_BUILD_FILES + list.cpp # because if sets DO_NOT_DEFINE_PROJ_HEAD + transformations/defmodel.cpp # Evaluator class conflict + transformations/tinshift.cpp # Evaluator class conflict + wkt1_parser.cpp + wkt2_parser.cpp + wkt1_generated_parser.c + wkt2_generated_parser.c +) +if(WIN32) + list(APPEND SKIP_UNITY_BUILD_FILES + networkfilemanager.cpp + ) +endif() +set_property(SOURCE ${SKIP_UNITY_BUILD_FILES} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) set(HEADERS_LIBPROJ proj.h @@ -470,26 +473,12 @@ endif() if(TIFF_ENABLED) target_compile_definitions(proj PRIVATE -DTIFF_ENABLED) - if( CMAKE_VERSION VERSION_LESS 3.11 AND CMAKE_CROSSCOMPILING ) - # Hack needed for ubuntu:18.04 mingw64 cross compiling to avoid - # -isystem to be emitted (similar to https://discourse.cmake.org/t/use-of-isystem/1574) - target_include_directories(proj PRIVATE ${TIFF_INCLUDE_DIRS}) - target_link_libraries(proj PRIVATE ${TIFF_LIBRARIES}) - else() - target_link_libraries(proj PRIVATE TIFF::TIFF) - endif() + target_link_libraries(proj PRIVATE TIFF::TIFF) endif() if(CURL_ENABLED) target_compile_definitions(proj PRIVATE -DCURL_ENABLED) - if( CMAKE_VERSION VERSION_LESS 3.11 AND CMAKE_CROSSCOMPILING ) - # Hack needed for ubuntu:18.04 mingw64 cross compiling to avoid - # -isystem to be emitted (similar to https://discourse.cmake.org/t/use-of-isystem/1574) - target_include_directories(proj PRIVATE ${CURL_INCLUDE_DIRS}) - target_link_libraries(proj PRIVATE ${CURL_LIBRARIES}) - else() - target_link_libraries(proj PRIVATE CURL::libcurl) - endif() + target_link_libraries(proj PRIVATE CURL::libcurl) target_link_libraries(proj PRIVATE $<$:ws2_32> diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 1d2b197704..4d993045ff 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -148,9 +148,7 @@ set(PROJ_TEST_CPP_API_SOURCES test_c_api.cpp test_grids.cpp) add_executable(proj_test_cpp_api ${PROJ_TEST_CPP_API_SOURCES}) -if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16) - set_property(SOURCE ${PROJ_TEST_CPP_API_SOURCES} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -endif () +set_property(SOURCE ${PROJ_TEST_CPP_API_SOURCES} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) target_link_libraries(proj_test_cpp_api PRIVATE GTest::gtest @@ -182,14 +180,7 @@ add_executable(test_network test_network.cpp) if(CURL_ENABLED) target_compile_definitions(test_network PRIVATE -DCURL_ENABLED) - if( CMAKE_VERSION VERSION_LESS 3.11 AND CMAKE_CROSSCOMPILING ) - # Hack needed for ubuntu:18.04 mingw64 cross compiling to avoid - # -isystem to be emitted (similar to https://discourse.cmake.org/t/use-of-isystem/1574) - target_include_directories(test_network PRIVATE ${CURL_INCLUDE_DIRS}) - target_link_libraries(test_network PRIVATE ${CURL_LIBRARIES}) - else() - target_link_libraries(test_network PRIVATE CURL::libcurl) - endif() + target_link_libraries(test_network PRIVATE CURL::libcurl) endif() target_link_libraries(test_network PRIVATE GTest::gtest diff --git a/travis/linux_generic/before_install.sh b/travis/linux_generic/before_install.sh index 07d5c97971..f3e595c3e9 100755 --- a/travis/linux_generic/before_install.sh +++ b/travis/linux_generic/before_install.sh @@ -8,6 +8,6 @@ set -e sudo apt-get install -qq \ sqlite3 zip \ libsqlite3-dev \ - libtiff-dev \ + libtiff-dev libwebp-dev \ libcurl4-openssl-dev libnghttp2-dev libidn2-dev librtmp-dev libssh-dev \ libpsl-dev libssl-dev libkrb5-dev comerr-dev libldap2-dev libbrotli-dev From 1a4e78e6aa1fafc9561d15807611e3b5ea1d9ce6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 14 Jan 2024 19:25:48 +0100 Subject: [PATCH 136/199] proj_create_crs_to_crs_from_pj(): simplify code --- src/4D_api.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 0b47902178..861a77c99e 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -2347,18 +2347,15 @@ PJ *proj_create_crs_to_crs_from_pj(PJ_CONTEXT *ctx, const PJ *source_crs, // PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID // returned 0. if (op_count == 1 && - (errorIfBestTransformationNotAvailable || - warnIfBestTransformationNotAvailable)) { + errorIfBestTransformationNotAvailable) { if (singleOpIsInstanciable < 0) { singleOpIsInstanciable = proj_coordoperation_is_instantiable(ctx, P); } if (!singleOpIsInstanciable) { - if (errorIfBestTransformationNotAvailable) { - proj_destroy(P); - proj_context_errno_set(ctx, backup_errno); - return nullptr; - } + proj_destroy(P); + proj_context_errno_set(ctx, backup_errno); + return nullptr; } } } From 0bf4edea44d1349d1e2fae031ae76e7b53f16e37 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 14 Jan 2024 19:36:16 +0100 Subject: [PATCH 137/199] Fix Coverity performance inefficiencies warnings --- src/iso19111/c_api.cpp | 2 +- src/iso19111/crs.cpp | 14 +++++++++----- src/iso19111/datum.cpp | 2 +- src/iso19111/factory.cpp | 8 ++++---- src/iso19111/io.cpp | 16 ++++++++-------- src/iso19111/operation/singleoperation.cpp | 2 +- src/iso19111/operation/transformation.cpp | 2 +- 7 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index cc73b8f92d..ad0f59b0c3 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -380,7 +380,7 @@ const char *proj_context_get_database_path(PJ_CONTEXT *ctx) { try { // temporary variable must be used as getDBcontext() might create // ctx->cpp_context - const auto osPath(getDBcontext(ctx)->getPath()); + const std::string osPath(getDBcontext(ctx)->getPath()); ctx->get_cpp_context()->lastDbPath_ = osPath; return ctx->cpp_context->lastDbPath_.c_str(); } catch (const std::exception &e) { diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index f391c86fe6..a380404b72 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -1356,7 +1356,8 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, std::string(), dbContext, verticalAxisIfNotAlreadyPresent)); return util::nn_static_pointer_cast( DerivedGeographicCRS::create( - createProperties(), NN_CHECK_THROW(baseGeog3DCRS), + createProperties(), + NN_CHECK_THROW(std::move(baseGeog3DCRS)), derivedGeogCRS->derivingConversion(), std::move(cs))); } } @@ -1373,7 +1374,8 @@ CRSNNPtr CRS::promoteTo3D(const std::string &newName, std::string(), dbContext, verticalAxisIfNotAlreadyPresent)); return util::nn_static_pointer_cast( DerivedProjectedCRS::create( - createProperties(), NN_CHECK_THROW(baseProj3DCRS), + createProperties(), + NN_CHECK_THROW(std::move(baseProj3DCRS)), derivedProjCRS->derivingConversion(), std::move(cs))); } } @@ -2747,7 +2749,7 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const { &geodetic_crs_type, l_implicitCS, &dbContext]() { const auto &thisEllipsoid = thisDatum->ellipsoid(); - const auto ellipsoids( + const std::list ellipsoids( thisEllipsoid->identifiers().empty() ? authorityFactory->createEllipsoidFromExisting( thisEllipsoid) @@ -6572,7 +6574,8 @@ DerivedGeographicCRSNNPtr DerivedGeographicCRS::demoteTo2D( return DerivedGeographicCRS::create( util::PropertyMap().set(common::IdentifiedObject::NAME_KEY, !newName.empty() ? newName : nameStr()), - NN_CHECK_THROW(baseGeog2DCRS), derivingConversion(), std::move(cs)); + NN_CHECK_THROW(std::move(baseGeog2DCRS)), derivingConversion(), + std::move(cs)); } return NN_NO_CHECK(std::dynamic_pointer_cast( @@ -6687,7 +6690,8 @@ DerivedProjectedCRS::demoteTo2D(const std::string &newName, return DerivedProjectedCRS::create( util::PropertyMap().set(common::IdentifiedObject::NAME_KEY, !newName.empty() ? newName : nameStr()), - NN_CHECK_THROW(baseProj2DCRS), derivingConversion(), std::move(cs)); + NN_CHECK_THROW(std::move(baseProj2DCRS)), derivingConversion(), + std::move(cs)); } return NN_NO_CHECK(std::dynamic_pointer_cast( diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 982eca1644..7a1fb612fb 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -1360,7 +1360,7 @@ void GeodeticReferenceFrame::_exportToWKT( l_name, "geodetic_datum", "ESRI"); size_t pos; if (!l_alias.empty()) { - l_name = l_alias; + l_name = std::move(l_alias); aliasFound = true; } else if ((pos = l_name.find(" (")) != std::string::npos) { l_alias = dbContext->getAliasFromOfficialName( diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 95c21b788f..0d2f96fbf5 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -2208,7 +2208,7 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( frameReferenceEpoch = toString(dynamicDatum->frameReferenceEpoch().value()); } - const std::string anchor = *(datum->anchorDefinition()); + const std::string anchor(*(datum->anchorDefinition())); const util::optional &anchorEpoch = datum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO geodetic_datum VALUES(" @@ -2303,7 +2303,7 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( assert(!pmIds.empty()); const std::string &pmAuthName = *(pmIds.front()->codeSpace()); const std::string &pmCode = pmIds.front()->code(); - const auto anchor = *(firstDatum->anchorDefinition()); + const std::string anchor(*(firstDatum->anchorDefinition())); const util::optional &anchorEpoch = firstDatum->anchorEpoch(); const auto sql = formatStatement( @@ -2324,7 +2324,7 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( const auto firstDatum = AuthorityFactory::create(self, membersId.front().first) ->createVerticalDatum(membersId.front().second); - const auto anchor = *(firstDatum->anchorDefinition()); + const std::string anchor(*(firstDatum->anchorDefinition())); const util::optional &anchorEpoch = firstDatum->anchorEpoch(); const auto sql = formatStatement( @@ -2683,7 +2683,7 @@ std::vector DatabaseContext::Private::getInsertStatementsFor( frameReferenceEpoch = toString(dynamicDatum->frameReferenceEpoch().value()); } - const auto anchor = *(datum->anchorDefinition()); + const std::string anchor(*(datum->anchorDefinition())); const util::optional &anchorEpoch = datum->anchorEpoch(); const auto sql = formatStatement( "INSERT INTO vertical_datum VALUES(" diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index d85b16f601..3d4ed0b7e1 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -4207,7 +4207,7 @@ ConversionNNPtr WKTParser::Private::buildProjectionStandard( } } - std::string projectionName(wkt1ProjectionName); + std::string projectionName(std::move(wkt1ProjectionName)); const MethodMapping *mapping = tryToIdentifyWKT1Method ? getMappingFromWKT1(projectionName) : nullptr; @@ -9770,11 +9770,11 @@ PROJStringSyntaxParser(const std::string &projString, std::vector &steps, steps.back().name.empty()) { assert(hasProj); auto stepName = word.substr(strlen("proj=")); - steps.back().name = stepName; + steps.back().name = std::move(stepName); } else if (starts_with(word, "init=")) { assert(hasInit); auto initName = word.substr(strlen("init=")); - steps.back().name = initName; + steps.back().name = std::move(initName); steps.back().isInit = true; } else if (word == "inv") { if (!steps.empty()) { @@ -9833,13 +9833,13 @@ PROJStringSyntaxParser(const std::string &projString, std::vector &steps, } else { const auto pos = word.find('='); auto key = word.substr(0, pos); - auto pair = (pos != std::string::npos) - ? Step::KeyValue(key, word.substr(pos + 1)) - : Step::KeyValue(key); + Step::KeyValue pair((pos != std::string::npos) + ? Step::KeyValue(key, word.substr(pos + 1)) + : Step::KeyValue(key)); if (steps.empty()) { - globalParamValues.push_back(pair); + globalParamValues.emplace_back(std::move(pair)); } else { - steps.back().paramValues.push_back(pair); + steps.back().paramValues.emplace_back(std::move(pair)); } } } diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 24b1b3a80b..4dbd5b2195 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2562,7 +2562,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { - auto filename = fileParameter->valueFile(); + const auto &filename = fileParameter->valueFile(); if (databaseContext->lookForGridAlternative( filename, projFilename, projGridFormat, inverseDirection)) { diff --git a/src/iso19111/operation/transformation.cpp b/src/iso19111/operation/transformation.cpp index 52898d8192..f6ce84f27d 100644 --- a/src/iso19111/operation/transformation.cpp +++ b/src/iso19111/operation/transformation.cpp @@ -1628,7 +1628,7 @@ TransformationNNPtr Transformation::inverseAsTransformation() const { } if (methodEPSGCode == EPSG_CODE_METHOD_GEOGRAPHIC2D_WITH_HEIGHT_OFFSETS) { - auto offsetLat = + const auto &offsetLat = parameterValueMeasure(EPSG_CODE_PARAMETER_LATITUDE_OFFSET); const common::Angle newOffsetLat(negate(offsetLat.value()), offsetLat.unit()); From 8cfeba743e1f9b48459f297260c7f2b28f1363dd Mon Sep 17 00:00:00 2001 From: Erixen Cruz <45504062+ErixenCruz@users.noreply.github.com> Date: Mon, 15 Jan 2024 13:32:35 -0500 Subject: [PATCH 138/199] CMake: link to explicit SQLite3 target (#3987) --- cmake/FindSqlite3.cmake | 8 ++++++++ cmake/project-config.cmake.in | 2 ++ src/lib_proj.cmake | 3 +-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cmake/FindSqlite3.cmake b/cmake/FindSqlite3.cmake index 06cba0fbd7..31d1ca3cc1 100644 --- a/cmake/FindSqlite3.cmake +++ b/cmake/FindSqlite3.cmake @@ -66,6 +66,14 @@ endif() if(SQLITE3_FOUND) + + if(NOT TARGET SQLite::SQLite3) + add_library(SQLite::SQLite3 UNKNOWN IMPORTED) + set_target_properties(SQLite::SQLite3 PROPERTIES + IMPORTED_LOCATION "${SQLITE3_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}") + endif() + if(NOT SQLITE3_FIND_QUIETLY) message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARY}") message(STATUS "Sqlite3 version: ${SQLITE3_VERSION}") diff --git a/cmake/project-config.cmake.in b/cmake/project-config.cmake.in index a9997c43ce..6693b67019 100644 --- a/cmake/project-config.cmake.in +++ b/cmake/project-config.cmake.in @@ -27,6 +27,8 @@ if("@CURL_ENABLED@") endif() cmake_policy(POP) +find_package(SQLite3 REQUIRED) + if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP) find_dependency(TIFF) endif() diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index e9280ecae3..8e3b88a619 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -462,8 +462,7 @@ if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) target_link_libraries(proj PRIVATE ${CMAKE_THREAD_LIBS_INIT}) endif() -target_include_directories(proj PRIVATE ${SQLITE3_INCLUDE_DIR}) -target_link_libraries(proj PRIVATE ${SQLITE3_LIBRARY}) +target_link_libraries(proj PRIVATE SQLite::SQLite3) if(NLOHMANN_JSON STREQUAL "external") target_compile_definitions(proj PRIVATE EXTERNAL_NLOHMANN_JSON) From ce816acdb44deb8493d8e2f45d4106c5efd22efd Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 15 Jan 2024 20:36:23 +0100 Subject: [PATCH 139/199] Database: update to EPSG v11.003 --- data/sql/customizations.sql | 233 ++++++++++++++++++++- data/sql/extent.sql | 2 +- data/sql/grid_transformation.sql | 18 +- data/sql/metadata.sql | 4 +- scripts/build_db.py | 7 +- src/iso19111/operation/parammappings.cpp | 1 + src/iso19111/operation/singleoperation.cpp | 30 ++- src/proj_constants.h | 12 +- 8 files changed, 280 insertions(+), 27 deletions(-) diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql index 77426a1ca3..858a4b774c 100644 --- a/data/sql/customizations.sql +++ b/data/sql/customizations.sql @@ -188,17 +188,234 @@ INSERT INTO usage SELECT scope_code FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '9123'; --- Duplicate EPSG:10115, 10116, 10117 with NAD83(CSRS)v7 as interpolation CRS -INSERT INTO "grid_transformation" VALUES -('PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8255','NR-Can HT2 2010',0); +-- Canadian transformations: duplicate EPSG:10518, 10519, 10520, 10116, 10117, 10118 with NAD83(CSRS)v7 as interpolation CRS +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10518_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10518'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_1058_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10518_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10518'; + +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10519_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10519'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_10519_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10519_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10519'; + +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10520_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10520'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_10520_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10520_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10520'; -INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10115_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1133'); +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10116'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10116'; -INSERT INTO "grid_transformation" VALUES('PROJ','EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','CGVD2013a(2010) height to CGVD2013a(2002) height (1)',' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS. Equivalent to CGVD28 to CGVD2013a(2002) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10114 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20034',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can',0); -INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10116_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1026'); +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10117'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10117'; -INSERT INTO "grid_transformation" VALUES('PROJ','EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','CGVD2013a(2010) height to CGVD2013a(1997) height (1)','Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS. Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10113 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan byn)','EPSG','9245','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8255','EPSG-Can',0); -INSERT INTO "usage" VALUES('PROJ','USAGE_EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','grid_transformation','PROJ','EPSG_10117_WITH_NAD83CSRSV7_INTERPOLATION','EPSG','1061','EPSG','1026'); +INSERT INTO grid_transformation SELECT + 'PROJ' AS auth_name, + 'EPSG_10118_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + name, + description || ' Specifies NAD83(CSRS)v7 (code 8255) as interpolation CRS.' AS description, + method_auth_name, + method_code, + method_name, + source_crs_auth_name, + source_crs_code, + target_crs_auth_name, + target_crs_code, + accuracy, + grid_param_auth_name, + grid_param_code, + grid_param_name, + grid_name, + grid2_param_auth_name, + grid2_param_code, + grid2_param_name, + grid2_name, + 'EPSG' AS interpolation_crs_auth_name, + 8255 AS interpolation_crs_code, + operation_version, + 0 AS deprecated + FROM grid_transformation WHERE auth_name = 'EPSG' AND code = '10118'; +INSERT INTO usage SELECT + 'PROJ' AS auth_name, + 'USAGE_PROJ_EPSG_10118_WITH_NAD83CSRSV7_INTERPOLATION' AS code, + object_table_name, + 'PROJ' AS object_auth_name, + 'EPSG_10118_WITH_NAD83CSRSV7_INTERPOLATION' AS object_code, + extent_auth_name, + extent_code, + scope_auth_name, + scope_code + FROM usage WHERE object_table_name = 'grid_transformation' AND object_auth_name = 'EPSG' AND object_code = '10118'; -- Define the allowed authorities, and their precedence, when researching a diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 7e9a081b3d..834bf8c25a 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -610,7 +610,7 @@ INSERT INTO "extent" VALUES('EPSG','1630','Netherlands - offshore','Netherlands INSERT INTO "extent" VALUES('EPSG','1631','Europe - 18°W to 12°W and ED50 by country','Europe - between 18°W and 12°W - Ireland offshore.',48.43,56.57,-16.1,-12.0,0); INSERT INTO "extent" 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 "extent" 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.49,-6.0,0.01,0); -INSERT INTO "extent" 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.45,0.0,6.01,0); +INSERT INTO "extent" VALUES('EPSG','1634','Europe - 0°E to 6°E and ED50 by country','Europe - between 0°E and 6°E - Andorra; Denmark (North Sea); France - offshore; Germany - offshore; Netherlands - offshore; Norway including Svalbard - onshore and offshore; Spain - onshore (mainland and Balearic Islands); United Kingdom - offshore UKCS.',38.56,82.45,0.0,6.01,0); INSERT INTO "extent" 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,84.33,5.99,12.01,0); INSERT INTO "extent" 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.42,12.0,18.01,0); INSERT INTO "extent" 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.54,17.99,24.01,0); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 678e9c2768..27ba20f800 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1434,12 +1434,18 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10111','NAD83(CSRS)v3 to CGVD20 INSERT INTO "usage" VALUES('EPSG','18281','grid_transformation','EPSG','10111','EPSG','1061','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10112','NAD83(CSRS)v2 to CGVD2013a(1997) height (1)','Applies same geoid model as NAD83(CSRS)v3 to CGVD2013a(1997) height (1), code 10111.','EPSG','1060','Geographic3D to GravityRelatedHeight (NRCan byn)','EPSG','8235','EPSG','20035',0.05,'EPSG','8666','Geoid (height correction) model file','CGG2013an83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NR-Can CGG2013a',0); INSERT INTO "usage" VALUES('EPSG','18318','grid_transformation','EPSG','10112','EPSG','1061','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','10113','CGVD28 height to CGVD2013a(1997) height (1)','Equivalent to HT2_1997 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9983 minus CT 10111 = CT 9984 minus CT 10112). Specifies NAD83(CSRS)v3 as interpolation CRS, but NAD83(CSRS)v2 (code 8237) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','20035',0.05,'EPSG','8732','Vertical offset file','HT2_1997_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can HT2 1997',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10113','CGVD28 height to CGVD2013a(1997) height (1)','Equivalent to HT2_1997 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9983 minus CT 10111 = CT 9984 minus CT 10112). Specifies NAD83(CSRS)v3 as interpolation CRS, but NAD83(CSRS)v2 (code 8237) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','20035',0.05,'EPSG','8732','Vertical offset file','HT2_1997_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can HT2 1997',1); INSERT INTO "usage" VALUES('EPSG','18324','grid_transformation','EPSG','10113','EPSG','1061','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','10114','CGVD28 height to CGVD2013a(2002) height (1)','Equivalent to HT2_2002v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9985 minus CT 10110).','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','20034',0.05,'EPSG','8732','Vertical offset file','HT2_2002v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8246','NR-Can HT2 2002',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10114','CGVD28 height to CGVD2013a(2002) height (1)','Equivalent to HT2_2002v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9985 minus CT 10110).','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','20034',0.05,'EPSG','8732','Vertical offset file','HT2_2002v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8246','NR-Can HT2 2002',1); INSERT INTO "usage" VALUES('EPSG','18322','grid_transformation','EPSG','10114','EPSG','1061','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','10115','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v6 as interpolation CRS, but NAD83(CSRS)v7 (code 8255) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10115','CGVD28 height to CGVD2013a(2010) height (1)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 minus CT 9247 = CT 9987 minus CT 10109). Specifies NAD83(CSRS)v6 as interpolation CRS, but NAD83(CSRS)v7 (code 8255) may equally be used.','EPSG','1112','Vertical Offset by Grid Interpolation (NRCan byn)','EPSG','5713','EPSG','9245',0.05,'EPSG','8732','Vertical offset file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',1); INSERT INTO "usage" VALUES('EPSG','18323','grid_transformation','EPSG','10115','EPSG','1061','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10116','CGVD2013a(2010) height to CGVD2013a(2002) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(2002) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10114 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan NTv2_Vel)','EPSG','9245','EPSG','20034',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18325','grid_transformation','EPSG','10116','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10117','CGVD2013a(2010) height to CGVD2013a(1997) height (1)','Interpolation CRS = NAD83(CSRS) 2010, i.e. may be any one of NAD83(CSRS)v6, v7 or v8 (CRS codes 8252, 8255 or 10414). Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2010) (i.e. CT code 10113 minus CT 10115).','EPSG','1113','Vertical Offset by velocity grid (NRCan NTv2_Vel)','EPSG','9245','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8252','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18352','grid_transformation','EPSG','10117','EPSG','1061','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10118','CGVD2013a(2002) height to CGVD2013a(1997) height (1)','Equivalent to CGVD28 to CGVD2013a(1997) minus CGVD28 to CGVD2013a(2002) (i.e. CT code 10113 minus CT 10114).','EPSG','1113','Vertical Offset by velocity grid (NRCan NTv2_Vel)','EPSG','20034','EPSG','20035',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can',0); +INSERT INTO "usage" VALUES('EPSG','18328','grid_transformation','EPSG','10118','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10119','NAD83(CSRS)v4 to NAD83(CSRS)v2 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8235',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); INSERT INTO "usage" VALUES('EPSG','18201','grid_transformation','EPSG','10119','EPSG','1061','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10120','NAD83(CSRS)v4 to NAD83(CSRS)v3 (1)','','EPSG','1114','Geographic3D Offset by velocity grid (NRCan byn)','EPSG','8244','EPSG','8239',0.05,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','EPSG-Can cvg70',0); @@ -1594,6 +1600,12 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10509','ETRS89 to CD Norway dep INSERT INTO "usage" VALUES('EPSG','20537','grid_transformation','EPSG','10509','EPSG','4656','EPSG','1277'); INSERT INTO "grid_transformation" VALUES('EPSG','10510','ETRS89 to ETRS89 + CD Norway depth (4)','Reversible alternative to ETRS89 to CD Norway depth (4) (code 10509). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. Replaces ETRS89 to ETRS89 + CD Norway depth (3) (code 10133).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023b',0); INSERT INTO "usage" VALUES('EPSG','20541','grid_transformation','EPSG','10510','EPSG','4656','EPSG','1272'); +INSERT INTO "grid_transformation" VALUES('EPSG','10518','CGVD28 height to CGVD2013a(1997) height (2)','Equivalent to HT2_1997 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9983 minus CT 10111). NAD83(CSRS)v3 is specified as the interpolation CRS, but for grid interpolation NAD83(CSRS)v2 or any later realization may be used without error.','EPSG','1126','Vertical change by geoid grid difference (NRCan)','EPSG','5713','EPSG','20035',0.05,'EPSG','1063','Geoid model difference file','HT2_1997_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can HT2 1997',0); +INSERT INTO "usage" VALUES('EPSG','20892','grid_transformation','EPSG','10518','EPSG','1289','EPSG','1059'); +INSERT INTO "grid_transformation" VALUES('EPSG','10519','CGVD28 height to CGVD2013a(2002) height (2)','Equivalent to HT2_2002v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9985 minus CT 10110). NAD83(CSRS)v4 is specified as the interpolation CRS, but for grid interpolation NAD83(CSRS)v2 or any later realization may be used without error.','EPSG','1126','Vertical change by geoid grid difference (NRCan)','EPSG','5713','EPSG','20034',0.05,'EPSG','1063','Geoid model difference file','HT2_2002v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8246','NR-Can HT2 2002',0); +INSERT INTO "usage" VALUES('EPSG','20893','grid_transformation','EPSG','10519','EPSG','1289','EPSG','1059'); +INSERT INTO "grid_transformation" VALUES('EPSG','10520','CGVD28 height to CGVD2013a(2010) height (2)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 - CT 9247). NAD83(CSRS)v6 is specified as the interpolation CRS, but for grid interpolation NAD83(CSRS)v2 or any later realization may be used without error.','EPSG','1126','Vertical change by geoid grid difference (NRCan)','EPSG','5713','EPSG','9245',0.05,'EPSG','1063','Geoid model difference file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); +INSERT INTO "usage" VALUES('EPSG','20894','grid_transformation','EPSG','10520','EPSG','1289','EPSG','1059'); INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0); INSERT INTO "usage" VALUES('EPSG','11497','grid_transformation','EPSG','15486','EPSG','1286','EPSG','1085'); INSERT INTO "grid_transformation" VALUES('EPSG','15488','RRAF 1991 to IGN 1988 MG height (1)','May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5617',0.2,'EPSG','8666','Geoid (height correction) model file','ggg00_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 9febb6353e..b117b023a7 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.002'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-01-07'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.003'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-01-15'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/scripts/build_db.py b/scripts/build_db.py index 9f7c9b5e10..c337db985f 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -692,7 +692,7 @@ def fill_helmert_transformation(proj_db_cursor): '?,?,?, ?, ?,?,?, ?,?, ?,?, ?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?, ?,?,?, ?,?,?,?,?, ?,?)', arg) def fill_grid_transformation(proj_db_cursor): - proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical Offset by Grid Interpolation%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)', 'Geographic3D Offset by velocity grid (NRCan byn)', 'Vertical Offset by velocity grid (NRCan byn)'))") + proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type IN ('transformation', 'point motion operation') AND (coord_op_method_name LIKE 'Geographic3D to%' OR coord_op_method_name LIKE 'Geog3D to%' OR coord_op_method_name LIKE 'Point motion by grid%' OR coord_op_method_name LIKE 'Vertical % by %grid%' OR coord_op_method_name IN ('NADCON', 'NADCON5 (2D)', 'NADCON5 (3D)', 'NTv1', 'NTv2', 'VERTCON', 'Geocentric translation by Grid Interpolation (IGN)', 'Geographic3D Offset by velocity grid (NRCan byn)'))") for (code, name, method_code, method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, deprecated, remarks) in proj_db_cursor.fetchall(): expected_order = 1 max_n_params = 3 if method_name == 'Geocentric translation by Grid Interpolation (IGN)' else 2 @@ -731,7 +731,7 @@ def fill_grid_transformation(proj_db_cursor): expected_order += 1 n_params = expected_order - 1 - assert param_code[0] in (1048, 1050, 8656, 8657, 8666, 8732, 8727), (code, param_code[0]) + assert param_code[0] in (1048, 1050, 1063, 8656, 8657, 8666, 8732, 8727), (code, param_code[0]) grid2_param_auth_name = None grid2_param_code = None @@ -781,9 +781,10 @@ def fill_grid_transformation(proj_db_cursor): # 1118: Geog3D to Geog2D+GravityRelatedHeight (ISG) # 1122: Geog3D to Geog2D+Depth (gtx) # 1124: Geog3D to Geog2D+GravityRelatedHeight (gtg) + # 1126: Vertical change by geoid grid difference (NRCan) # WARNING: update Transformation::isGeographic3DToGravityRelatedHeight() # in src/iso19111/operation/singleoperation.cpp if adding new methods - elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1113, 1114, 1115, 1118, 1122, 1124) and n_params == 2: + elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1103, 1105, 1110, 1112, 1113, 1114, 1115, 1118, 1122, 1124, 1126) and n_params == 2: assert param_code[1] == 1048, (code, method_code, param_code[1]) interpolation_crs_auth_name = EPSG_AUTHORITY interpolation_crs_code = str(int(param_value[1])) # needed to avoid codes like XXXX.0 diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 233ea6cf00..6f5274cfda 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -1061,6 +1061,7 @@ const struct ParamNameCode paramNameCodes[] = { PARAM_NAME_CODE(LATITUDE_LONGITUDE_DIFFERENCE_FILE), PARAM_NAME_CODE(GEOID_CORRECTION_FILENAME), PARAM_NAME_CODE(VERTICAL_OFFSET_FILE), + PARAM_NAME_CODE(GEOID_MODEL_DIFFERENCE_FILE), PARAM_NAME_CODE(LATITUDE_DIFFERENCE_FILE), PARAM_NAME_CODE(LONGITUDE_DIFFERENCE_FILE), PARAM_NAME_CODE(UNIT_CONVERSION_SCALAR), diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 4dbd5b2195..723dee31b6 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2080,6 +2080,7 @@ bool Transformation::isGeographic3DToGravityRelatedHeight( "1118", // Geog3D to Geog2D+GravityRelatedHeight (ISG) "1122", // Geog3D to Geog2D+Depth (gtx) "1124", // Geog3D to Geog2D+GravityRelatedHeight (gtg) + "1126", // Vertical change by geoid grid difference (NRCan) "9661", // Geographic3D to GravityRelatedHeight (EGM) "9662", // Geographic3D to GravityRelatedHeight (Ausgeoid98) "9663", // Geographic3D to GravityRelatedHeight (OSGM-GB) @@ -2218,7 +2219,9 @@ createSimilarPropertiesMethod(common::IdentifiedObjectNNPtr obj) { static bool isRegularVerticalGridMethod(int methodEPSGCode, bool &reverseOffsetSign) { - if (methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NRCAN_BYN) { + if (methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NRCAN_BYN || + methodEPSGCode == + EPSG_CODE_METHOD_VERTICALCHANGE_BY_GEOID_GRID_DIFFERENCE_NRCAN) { // NRCAN vertical shift grids use a reverse convention from other // grids: the value in the grid is the value to subtract from the // source vertical CRS to get the target value. @@ -2556,9 +2559,14 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( bool reverseOffsetSign = false; if (methodEPSGCode == EPSG_CODE_METHOD_VERTCON || isRegularVerticalGridMethod(methodEPSGCode, reverseOffsetSign)) { - auto fileParameter = - parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, - EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE); + int parameterCode = EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE; + auto fileParameter = parameterValue( + EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, parameterCode); + if (!fileParameter) { + parameterCode = EPSG_CODE_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE; + fileParameter = parameterValue( + EPSG_NAME_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE, parameterCode); + } if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { @@ -2588,8 +2596,7 @@ TransformationNNPtr SingleOperation::substitutePROJAlternativeGridNames( auto l_sourceCRS = NN_NO_CHECK(l_sourceCRSNull); auto l_targetCRS = NN_NO_CHECK(l_targetCRSNull); auto parameters = std::vector{ - createOpParamNameEPSGCode( - EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE)}; + createOpParamNameEPSGCode(parameterCode)}; if (inverseDirection) { return Transformation::create( createPropertiesForInverse( @@ -4350,9 +4357,14 @@ bool SingleOperation::exportToPROJStringGeneric( bool reverseOffsetSign = false; if (isRegularVerticalGridMethod(methodEPSGCode, reverseOffsetSign)) { - auto fileParameter = - parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, - EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE); + int parameterCode = EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE; + auto fileParameter = parameterValue( + EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, parameterCode); + if (!fileParameter) { + parameterCode = EPSG_CODE_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE; + fileParameter = parameterValue( + EPSG_NAME_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE, parameterCode); + } if (fileParameter && fileParameter->type() == ParameterValue::Type::FILENAME) { formatter->addStep("vgridshift"); diff --git a/src/proj_constants.h b/src/proj_constants.h index 824932c011..97102d54cc 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -600,7 +600,7 @@ /* ------------------------------------------------------------------------ */ #define EPSG_NAME_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN \ - "Vertical Offset by velocity grid (NRCan byn)" + "Vertical Offset by velocity grid (NRCan NTv2_Vel)" #define EPSG_CODE_METHOD_VERTICAL_OFFSET_BY_VELOCITY_GRID_NRCAN 1113 /* ------------------------------------------------------------------------ */ @@ -640,6 +640,8 @@ #define EPSG_NAME_METHOD_VERTICALGRID_PL_TXT \ "Vertical Offset by Grid Interpolation (PL txt)" +/* has been deprecated by + * EPSG_CODE_METHOD_VERTICALCHANGE_BY_GEOID_GRID_DIFFERENCE_NRCAN */ #define EPSG_CODE_METHOD_VERTICALGRID_NRCAN_BYN 1112 #define EPSG_NAME_METHOD_VERTICALGRID_NRCAN_BYN \ "Vertical Offset by Grid Interpolation (NRCan byn)" @@ -647,6 +649,14 @@ #define EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE "Vertical offset file" #define EPSG_CODE_PARAMETER_VERTICAL_OFFSET_FILE 8732 +#define EPSG_CODE_METHOD_VERTICALCHANGE_BY_GEOID_GRID_DIFFERENCE_NRCAN 1126 +#define EPSG_NAME_METHOD_VERTICALCHANGE_BY_GEOID_GRID_DIFFERENCE_NRCAN \ + "Vertical change by geoid grid difference (NRCan)" + +#define EPSG_NAME_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE \ + "Geoid model difference file" +#define EPSG_CODE_PARAMETER_GEOID_MODEL_DIFFERENCE_FILE 1063 + /* ------------------------------------------------------------------------ */ #define EPSG_CODE_METHOD_NADCON 9613 From efc6c95b6927c138cbb9696db1ed57ca04f512c6 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Tue, 16 Jan 2024 06:11:28 +0100 Subject: [PATCH 140/199] Use find_dependency(SQLite3) Amends #3987. --- cmake/project-config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/project-config.cmake.in b/cmake/project-config.cmake.in index 6693b67019..0ca48aaae1 100644 --- a/cmake/project-config.cmake.in +++ b/cmake/project-config.cmake.in @@ -27,7 +27,7 @@ if("@CURL_ENABLED@") endif() cmake_policy(POP) -find_package(SQLite3 REQUIRED) +find_dependency(SQLite3) if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP) find_dependency(TIFF) From e8af2479a47efb0d577b58746ec57c864fc0c664 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 17 Jan 2024 00:37:11 +0100 Subject: [PATCH 141/199] SingleOperation::exportToPROJStringGeneric(): fix wrong test/copy-error (master only) --- src/iso19111/operation/singleoperation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 723dee31b6..ca34fd7255 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -4179,7 +4179,7 @@ bool SingleOperation::exportToPROJStringGeneric( const auto vertDst = dynamic_cast(targetCRS().get()); - if (!vertSrc) { + if (!vertDst) { throw io::FormattingException(concat( "Can apply ", methodName, " only to a target VerticalCRS")); } From a18091862a682ca45696e75201a0266d0f7609e5 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 17 Jan 2024 00:47:08 +0100 Subject: [PATCH 142/199] Add 'explicit' keyword for constructor --- src/iso19111/operation/coordinateoperationfactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 473e1e48a8..9d37b60506 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -2410,7 +2410,7 @@ struct MyPROJStringExportableHorizNullVertical final : public io::IPROJStringExportable { CoordinateOperationPtr horizTransform{}; - MyPROJStringExportableHorizNullVertical( + explicit MyPROJStringExportableHorizNullVertical( const CoordinateOperationPtr &horizTransformIn) : horizTransform(horizTransformIn) {} From d55ee2aea065aab4abafe9c1a7e6be13ee0ba6ad Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 17 Jan 2024 00:47:39 +0100 Subject: [PATCH 143/199] Remove unused private members --- src/iso19111/io.cpp | 22 ---------------------- src/networkfilemanager.cpp | 1 - 2 files changed, 23 deletions(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 3d4ed0b7e1..f7af8282e1 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -176,7 +176,6 @@ struct WKTFormatter::Private { std::string hDatumExtension_{}; std::string vDatumExtension_{}; crs::GeographicCRSPtr geogCRSOfCompoundCRS_{}; - std::vector inversionStack_{false}; std::string result_{}; // cppcheck-suppress functionStatic @@ -889,25 +888,6 @@ void WKTFormatter::ingestWKTNode(const WKTNodeNNPtr &node) { endNode(); } -#ifdef unused -// --------------------------------------------------------------------------- - -void WKTFormatter::startInversion() { - d->inversionStack_.push_back(!d->inversionStack_.back()); -} - -// --------------------------------------------------------------------------- - -void WKTFormatter::stopInversion() { - assert(!d->inversionStack_.empty()); - d->inversionStack_.pop_back(); -} - -// --------------------------------------------------------------------------- - -bool WKTFormatter::isInverted() const { return d->inversionStack_.back(); } -#endif - //! @endcond // --------------------------------------------------------------------------- @@ -12465,8 +12445,6 @@ struct JSONFormatter::Private { bool abridgedTransformationWriteSourceCRS_ = false; std::string schema_ = PROJJSON_DEFAULT_VERSION; - std::string result_{}; - // cppcheck-suppress functionStatic void pushOutputId(bool outputIdIn) { outputIdStack_.push_back(outputIdIn); } diff --git a/src/networkfilemanager.cpp b/src/networkfilemanager.cpp index 35358e6782..bec611f674 100644 --- a/src/networkfilemanager.cpp +++ b/src/networkfilemanager.cpp @@ -179,7 +179,6 @@ class DiskChunkCache { PJ_CONTEXT *ctx_ = nullptr; std::string path_{}; sqlite3 *hDB_ = nullptr; - std::string thisNamePtr_{}; std::unique_ptr vfs_{}; explicit DiskChunkCache(PJ_CONTEXT *ctx, const std::string &path); From 078eaa4db26d9e50fd47180a5c8ad1b347b88feb Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 17 Jan 2024 00:47:49 +0100 Subject: [PATCH 144/199] scripts/cppcheck.sh: tune for latest cppcheck --- scripts/cppcheck.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/cppcheck.sh b/scripts/cppcheck.sh index d4c01aab43..f93ffe1ac2 100755 --- a/scripts/cppcheck.sh +++ b/scripts/cppcheck.sh @@ -58,6 +58,7 @@ grep -v "unmatchedSuppression" ${LOG_FILE} \ | grep -v -e "helmert.*unreadVariable,Variable 'point.*' is assigned a value that is never used" \ | grep -v -e "molodensky.*unreadVariable,Variable 'point.*' is assigned a value that is never used" \ | grep -v -e "vgridshift.*unreadVariable,Variable 'point.*' is assigned a value that is never used" \ + | grep -v -e "defines member function with name.*also defined in its parent" \ > ${LOG_FILE}.tmp mv ${LOG_FILE}.tmp ${LOG_FILE} From 7160e0a052e1dfdb916c9c5ff9e069f8806dcea6 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 17 Jan 2024 22:48:32 +1300 Subject: [PATCH 145/199] CMake: use FetchContent to get googletest-1.12.1 --- .gitignore | 1 - test/googletest/CMakeLists.txt.in | 18 ------- test/unit/CMakeLists.txt | 90 ++++++++++++++----------------- 3 files changed, 39 insertions(+), 70 deletions(-) delete mode 100644 test/googletest/CMakeLists.txt.in diff --git a/.gitignore b/.gitignore index d24fb4a836..3d744c402c 100644 --- a/.gitignore +++ b/.gitignore @@ -54,7 +54,6 @@ CTestTestfile.cmake cmake_install.cmake cmake/project-config*.cmake install_manifest.txt -/googletest* # / (base) /*.manifest diff --git a/test/googletest/CMakeLists.txt.in b/test/googletest/CMakeLists.txt.in deleted file mode 100644 index 63413c0aea..0000000000 --- a/test/googletest/CMakeLists.txt.in +++ /dev/null @@ -1,18 +0,0 @@ -# Source https://github.com/google/googletest/blob/master/googletest/README.md -cmake_minimum_required(VERSION 2.8.12) - -project(googletest-download NONE) - -include(ExternalProject) -ExternalProject_Add(googletest - URL https://github.com/google/googletest/archive/release-1.11.0.zip - URL_HASH SHA1=9ffb7b5923f4a8fcdabf2f42c6540cce299f44c0 - DOWNLOAD_NO_PROGRESS ON - SOURCE_DIR "${PROJ_BINARY_DIR}/googletest-src" - BINARY_DIR "${PROJ_BINARY_DIR}/googletest-build" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - TEST_COMMAND "" - # Disable install step - INSTALL_COMMAND "" -) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 4d993045ff..c07be1b76e 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -1,4 +1,5 @@ # CMake configuration for PROJ unit tests +# External GTest provided by (e.g.) libgtest-dev find_package(GTest 1.8.1) if(GTest_FOUND) @@ -9,65 +10,52 @@ endif() if(USE_EXTERNAL_GTEST) -if(NOT GTest_FOUND) + if(NOT GTest_FOUND) message(FATAL_ERROR "External GTest >= 1.8.1 not found") -endif() -message(STATUS "Using external GTest") + endif() + message(STATUS "Using external GTest") -# CMake < 3.20.0 uses GTest::GTest -# CMake >= 3.20 uses GTest::gtest, and deprecates GTest::GTest -# so for older CMake, create an alias from GTest::GTest to GTest::gtest -if(NOT TARGET GTest::gtest) + # CMake < 3.20.0 uses GTest::GTest + # CMake >= 3.20 uses GTest::gtest, and deprecates GTest::GTest + # so for older CMake, create an alias from GTest::GTest to GTest::gtest + if(NOT TARGET GTest::gtest) add_library(GTest::gtest INTERFACE IMPORTED) set_target_properties(GTest::gtest PROPERTIES INTERFACE_LINK_LIBRARIES "GTest::GTest") -endif() + endif() else() -message(STATUS "Using internal GTest") - -# -# Build Google Test -# -# Source https://github.com/google/googletest/blob/master/googletest/README.md -# Download and unpack googletest at configure time -configure_file( - ${PROJ_SOURCE_DIR}/test/googletest/CMakeLists.txt.in - ${PROJ_BINARY_DIR}/googletest-download/CMakeLists.txt) - -if(CYGWIN) -# needed at least with gcc 11.3.0 Cygwin, otherwise build errors in -# in googletest-src/googletest/include/gtest/internal/gtest-port.h related to -# fileno() and other functions, when building gtest or including it -add_definitions(-D_GNU_SOURCE) -endif() - -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${PROJ_BINARY_DIR}/googletest-download) -if(result) - message(FATAL_ERROR "CMake step for googletest failed: ${result}") -endif() -execute_process(COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${PROJ_BINARY_DIR}/googletest-download) -if(result) - message(FATAL_ERROR "Build step for googletest failed: ${result}") -endif() -# Prevent overriding the parent project's compiler/linker -# settings on Windows -set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) -# Add googletest directly to our build. This defines -# the gtest and gtest_main targets. -option(INSTALL_GTEST "Enable installation of googletest" OFF) -add_subdirectory( - ${PROJ_BINARY_DIR}/googletest-src - ${PROJ_BINARY_DIR}/googletest-build - EXCLUDE_FROM_ALL) - -# Provide the same target name as find_package(GTest) -add_library(GTest::gtest ALIAS gtest) + message(STATUS "Fetching GTest") + + # Add Google Test + # + # See https://github.com/google/googletest/blob/main/googletest/README.md + + if(POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) # for DOWNLOAD_EXTRACT_TIMESTAMP option + endif() + + include(FetchContent) + FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/refs/tags/release-1.12.1.zip + EXCLUDE_FROM_ALL # ignored before CMake 3.28 + ) + + # For Windows: Prevent overriding the parent project's compiler/linker settings + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.28.0") + FetchContent_MakeAvailable(googletest) + else() + # Pre CMake 3.28 workaround to prevent installing files + FetchContent_GetProperties(googletest) + if(NOT googletest_POPULATED) + FetchContent_Populate(googletest) + add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + endif() endif() # USE_EXTERNAL_GTEST From 8e3dd24cac3b02ed648253edd47a2d8df276e501 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 17 Jan 2024 20:54:34 +1300 Subject: [PATCH 146/199] CMake: Replace custom FindSqlite3 with FindSQLite3 built-in --- CMakeLists.txt | 17 +++++--- cmake/FindSqlite3.cmake | 88 ---------------------------------------- docs/source/install.rst | 26 ++++++------ test/unit/CMakeLists.txt | 10 ++--- 4 files changed, 29 insertions(+), 112 deletions(-) delete mode 100644 cmake/FindSqlite3.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 45bd855bd8..d18d8dc5ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,15 +176,22 @@ if(NOT EXE_SQLITE3) message(SEND_ERROR "sqlite3 binary not found!") endif() -find_package(Sqlite3 REQUIRED) -if(NOT SQLITE3_FOUND) - message(SEND_ERROR "sqlite3 dependency not found!") +# Deprecated variables since PROJ 9.4.0 +if(DEFINED SQLITE3_INCLUDE_DIR) + message(DEPRECATION "Use SQLite3_INCLUDE_DIR instead of SQLITE3_INCLUDE_DIR") + set(SQLite3_INCLUDE_DIR ${SQLITE3_INCLUDE_DIR}) endif() +if(DEFINED SQLITE3_LIBRARY) + message(DEPRECATION "Use SQLite3_LIBRARY instead of SQLITE3_LIBRARY") + set(SQLite3_LIBRARY ${SQLITE3_LIBRARY}) +endif() + +find_package(SQLite3 REQUIRED) # 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!") +if(SQLite3_VERSION VERSION_LESS "3.11") + message(SEND_ERROR "SQLite3 >= 3.11 required!") endif() ################################################################################ diff --git a/cmake/FindSqlite3.cmake b/cmake/FindSqlite3.cmake deleted file mode 100644 index 31d1ca3cc1..0000000000 --- a/cmake/FindSqlite3.cmake +++ /dev/null @@ -1,88 +0,0 @@ -# Find Sqlite3 -# ~~~~~~~~~~~~ -# Copyright (c) 2007, Martin Dobias -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# -# CMake module to search for Sqlite3 library -# -# If it's found it sets SQLITE3_FOUND to TRUE -# and following variables are set: -# SQLITE3_INCLUDE_DIR -# SQLITE3_LIBRARY -# SQLITE3_VERSION - - -# find_path and find_library normally search standard locations -# before the specified paths. To search non-standard paths first, -# FIND_* is invoked first with specified paths and NO_DEFAULT_PATH -# and then again with no specified paths to search the default -# locations. When an earlier FIND_* succeeds, subsequent FIND_*s -# searching for the same item do nothing. - -# try to use framework on mac -# want clean framework path, not unix compatibility path -if(APPLE) - if(CMAKE_FIND_FRAMEWORK MATCHES "FIRST" - OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY" - OR NOT CMAKE_FIND_FRAMEWORK) - set(CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE) - set(CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE) - #find_path(SQLITE3_INCLUDE_DIR SQLite3/sqlite3.h) - find_library(SQLITE3_LIBRARY SQLite3) - if(SQLITE3_LIBRARY) - # find_path doesn't add "Headers" for a framework - set(SQLITE3_INCLUDE_DIR ${SQLITE3_LIBRARY}/Headers - CACHE PATH "Path to a file.") - endif() - set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE) - endif() -endif() - -find_path(SQLITE3_INCLUDE_DIR sqlite3.h - "$ENV{LIB_DIR}/include" - "$ENV{LIB_DIR}/include/sqlite" - "$ENV{INCLUDE}" -) - -find_library(SQLITE3_LIBRARY NAMES sqlite3_i sqlite3 PATHS - "$ENV{LIB_DIR}/lib" - "$ENV{LIB}/lib" -) - -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 TARGET SQLite::SQLite3) - add_library(SQLite::SQLite3 UNKNOWN IMPORTED) - set_target_properties(SQLite::SQLite3 PROPERTIES - IMPORTED_LOCATION "${SQLITE3_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}") - endif() - - if(NOT SQLITE3_FIND_QUIETLY) - message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARY}") - message(STATUS "Sqlite3 version: ${SQLITE3_VERSION}") - endif() - -else() - - if(SQLITE3_FIND_REQUIRED) - message(FATAL_ERROR "Could not find Sqlite3") - endif() - -endif() diff --git a/docs/source/install.rst b/docs/source/install.rst index 9613705ade..3eec8a8903 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -173,12 +173,8 @@ 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 .. - -Alternatively, the custom prefix for SQLite3 can be specified:: +If the SQLite3 dependency is installed in a custom location, specify +:option:`CMAKE_PREFIX_PATH`:: cmake -DCMAKE_PREFIX_PATH=/opt/SQLite .. @@ -315,6 +311,12 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. :envvar:`OSGEO4W_ROOT` (if set), otherwise is ``c:/OSGeo4W``. Default for Unix-like is ``/usr/local/``. +.. option:: CMAKE_PREFIX_PATH + + `CMake variable + `_ + used to specify installation prefixes for SQLite3 and other dependencies. + .. option:: CMAKE_UNITY_BUILD=OFF .. versionadded:: 9.4 @@ -341,14 +343,10 @@ All cached entries can be viewed using ``cmake -LAH`` from a build directory. Path to an ``sqlite3`` or ``sqlite3.exe`` executable. -.. option:: SQLITE3_INCLUDE_DIR - - Path to an include directory with the ``sqlite3.h`` header file. - -.. option:: SQLITE3_LIBRARY - - Path to a shared or static library file, such as ``sqlite3.dll``, - ``libsqlite3.so``, ``sqlite3.lib`` or other name. +.. deprecated:: 9.4.0 + ``SQLITE3_INCLUDE_DIR`` and ``SQLITE3_LIBRARY`` should be replaced with + ``SQLite3_INCLUDE_DIR`` and ``SQLite3_LIBRARY``, respectively. + Users may also consider :option:`CMAKE_PREFIX_PATH` instead. .. option:: ENABLE_CURL=ON diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index c07be1b76e..17a6b79daf 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -64,7 +64,7 @@ endif() # USE_EXTERNAL_GTEST # include_directories(${PROJ_SOURCE_DIR}/include) -include_directories(${SQLITE3_INCLUDE_DIR}) + # Add the directory containing proj_config.h include_directories(${PROJ_BINARY_DIR}/src) @@ -140,8 +140,8 @@ set_property(SOURCE ${PROJ_TEST_CPP_API_SOURCES} PROPERTY SKIP_UNITY_BUILD_INCLU target_link_libraries(proj_test_cpp_api PRIVATE GTest::gtest - PRIVATE ${PROJ_LIBRARIES} - PRIVATE ${SQLITE3_LIBRARY}) + PRIVATE SQLite::SQLite3 + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME proj_test_cpp_api COMMAND proj_test_cpp_api) set_property(TEST proj_test_cpp_api PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -172,8 +172,8 @@ if(CURL_ENABLED) endif() target_link_libraries(test_network PRIVATE GTest::gtest - PRIVATE ${PROJ_LIBRARIES} - PRIVATE ${SQLITE3_LIBRARY}) + PRIVATE SQLite::SQLite3 + PRIVATE ${PROJ_LIBRARIES}) if(TIFF_ENABLED) add_test(NAME test_network COMMAND test_network) set_property(TEST test_network From 7cc20dd627daf936399e8cd4146d72830cc1b3d2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 19 Jan 2024 19:29:08 +0100 Subject: [PATCH 147/199] tpeqd: use numerically stable formula for computing the central angle from (phi_1, lam_1) to (phi_2, lam_2) (fixes #4008) --- src/projections/tpeqd.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/projections/tpeqd.cpp b/src/projections/tpeqd.cpp index b62a95d595..f6f6ca584c 100644 --- a/src/projections/tpeqd.cpp +++ b/src/projections/tpeqd.cpp @@ -90,7 +90,15 @@ PJ *PJ_PROJECTION(tpeqd) { Q->cs = Q->cp1 * Q->sp2; Q->sc = Q->sp1 * Q->cp2; Q->ccs = Q->cp1 * Q->cp2 * sin(Q->dlam2); - Q->z02 = aacos(P->ctx, Q->sp1 * Q->sp2 + Q->cp1 * Q->cp2 * cos(Q->dlam2)); + + const auto SQ = [](double x) { return x * x; }; + // Numerically stable formula for computing the central angle from + // (phi_1, lam_1) to (phi_2, lam_2). + // Special case of Vincenty formula on the sphere. + // https://en.wikipedia.org/wiki/Great-circle_distance#Computational_formulae + const double cs_minus_sc_cos_dlam = Q->cs - Q->sc * cos(Q->dlam2); + Q->z02 = atan2(sqrt(SQ(Q->cp2 * sin(Q->dlam2)) + SQ(cs_minus_sc_cos_dlam)), + Q->sp1 * Q->sp2 + Q->cp1 * Q->cp2 * cos(Q->dlam2)); if (Q->z02 == 0.0) { // Actually happens when both lat_1 = lat_2 and |lat_1| = 90 proj_log_error(P, _("Invalid value for lat_1 and lat_2: their absolute " @@ -98,8 +106,7 @@ PJ *PJ_PROJECTION(tpeqd) { return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } Q->hz0 = .5 * Q->z02; - A12 = atan2(Q->cp2 * sin(Q->dlam2), - Q->cp1 * Q->sp2 - Q->sp1 * Q->cp2 * cos(Q->dlam2)); + A12 = atan2(Q->cp2 * sin(Q->dlam2), cs_minus_sc_cos_dlam); const double pp = aasin(P->ctx, Q->cp1 * sin(A12)); Q->ca = cos(pp); Q->sa = sin(pp); From 5c7bf5332ea446ee0ebee498912af6caf1c55e04 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 24 Jan 2024 01:02:20 +0100 Subject: [PATCH 148/199] projections.rst: specify that +a and +b are always in metres --- docs/source/usage/projections.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/usage/projections.rst b/docs/source/usage/projections.rst index ccc3733fcf..c571dc5bd4 100644 --- a/docs/source/usage/projections.rst +++ b/docs/source/usage/projections.rst @@ -17,9 +17,9 @@ documenting the individual :doc:`projections<../operations/projections/index>`. ========== ================================================================ Parameter Description ========== ================================================================ - +a Semimajor radius of the ellipsoid axis + +a Semimajor radius of the ellipsoid axis (always in meters) +axis Axis orientation - +b Semiminor radius of the ellipsoid axis + +b Semiminor radius of the ellipsoid axis (always in meters) +ellps Ellipsoid name (see ``proj -le``) +k Scaling factor (deprecated) +k_0 Scaling factor @@ -51,8 +51,8 @@ specified with the ``+to_meter`` keyword (i.e. 0.304800609601219 for US feet). symbolic unit names. The default unit for projected coordinates is the meter. A few special projections deviate from this behavior, most notably the latlong pseudo-projection that returns degrees. -Note that this does *not* affect the units of linear parameters such as ``+x_0`` -or ``+y_0`` which should always be specified in meters. +Note that this does *not* affect the units of linear parameters such as ``+x_0``, +``+y_0``, ``+a`` or ``+b`` which should always be specified in meters. Vertical (Z) units can be specified using the ``+vunits`` keyword with a symbolic name for a unit (i.e. ``us-ft``). Alternatively the translation to From 47f84dc78af0c42eac71f48c2236a9cd6d6bed9c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 25 Jan 2024 20:05:43 +0100 Subject: [PATCH 149/199] proj_get_area_of_use_ex(): remove non relevant sentence from documentation --- src/iso19111/c_api.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index ad0f59b0c3..17df96ee2c 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -1939,8 +1939,6 @@ int proj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj, // --------------------------------------------------------------------------- /** \brief Return the area of use of an object. - * - * In case of multiple usages, this will be the one of first usage. * * @param ctx PROJ context, or NULL for default context * @param obj Object (must not be NULL) From 8aa3f4bdf0e52dc7bc5cc357d21e57378f3e6ef2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 27 Jan 2024 15:58:38 +0100 Subject: [PATCH 150/199] Pipeline instanciation: better error message when an inverse operation is needed in forward path and not available and fix a copy-paste error where fwd4d was tested instead of inv4d Before: ``` $ echo 0 0 | bin/cs2cs +proj=isea +to +proj=longlat pipeline: Pipeline: A forward operation couldn't be constructed ``` Now: ``` $ echo 0 0 | bin/cs2cs +proj=isea +to +proj=longlat pipeline: Pipeline: Inverse operation for isea is not available ``` Slightly related to https://github.com/OSGeo/gdal/issues/9149 --- src/pipeline.cpp | 18 +++++++++++++++--- test/gie/more_builtins.gie | 13 +++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/pipeline.cpp b/src/pipeline.cpp index 7cc2ea62ff..1fa6dd0c96 100644 --- a/src/pipeline.cpp +++ b/src/pipeline.cpp @@ -533,12 +533,24 @@ PJ *OPERATION(pipeline, 0) { /* Require a forward path through the pipeline */ for (auto &step : pipeline->steps) { PJ *Q = step.pj; - if ((Q->inverted && (Q->inv || Q->inv3d || Q->fwd4d)) || - (!Q->inverted && (Q->fwd || Q->fwd3d || Q->fwd4d))) { + if (step.omit_fwd) { continue; + } + if (Q->inverted) { + if (Q->inv || Q->inv3d || Q->inv4d) { + continue; + } + proj_log_error( + P, _("Pipeline: Inverse operation for %s is not available"), + Q->short_name); + return destructor(P, PROJ_ERR_OTHER_NO_INVERSE_OP); } else { + if (Q->fwd || Q->fwd3d || Q->fwd4d) { + continue; + } proj_log_error( - P, _("Pipeline: A forward operation couldn't be constructed")); + P, _("Pipeline: Forward operation for %s is not available"), + Q->short_name); return destructor(P, PROJ_ERR_INVALID_OP_WRONG_SYNTAX); } } diff --git a/test/gie/more_builtins.gie b/test/gie/more_builtins.gie index 0b0f0706e3..69d01c18ed 100644 --- a/test/gie/more_builtins.gie +++ b/test/gie/more_builtins.gie @@ -920,10 +920,10 @@ expect 5.875 55.375 0 # | | invertible step | non-invertible step | # | flags | forward path | inverse path | forward path | inverse path | # | -------------- | ------------ | ------------ | ------------ | ------------ | -# | +omit_fwd | omit | inv | omit | undefined | +# | +omit_fwd | omit | inv | omit | runtime err | # | +omit_fwd +inv | omit | fwd | omit | fwd | # | +omit_inv | fwd | omit | fwd | omit | -# | +omit_inv +inv | inv | omit | undefined | omit | +# | +omit_inv +inv | inv | omit | pipeline creation error | # # From the table we can see that invertible steps should work pretty much all # the time. Non-invertible steps on the other hand make either the forward path @@ -1033,20 +1033,13 @@ direction inverse accept 1 2 3 expect 1 2 3 -# Test that the forward path is not defined and inverse path does nothing. +# Test that the forward path is not defined # # When going through the forward path, inv specifies that we should execute the # step in reverse. Because the affine transformation does not have an inverse, # this means that the forward path does not exist. operation proj=pipeline step proj=affine s11=1 s12=1 s13=1 s22=0 s33=0 omit_inv inv - -direction forward -accept 1 2 3 expect failure errno no_inverse_op -direction inverse -accept 1 2 3 -expect 1 2 3 - From ac439d5e025bc77b499fd9cf9db4367e2ec0f5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Sun, 28 Jan 2024 22:47:49 +0800 Subject: [PATCH 151/199] proj: add a hint in error message about using cct when relevant (#4016) Fixes #4013. --- src/apps/proj.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 3fa94e75b9..5decf1b696 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -640,7 +640,7 @@ int main(int argc, char **argv) { if (!proj_angular_input(Proj, PJ_FWD)) { emess(3, "can't initialize operations that take non-angular input " - "coordinates"); + "coordinates. Try cct."); exit(0); } From 03a4ee47bffcc120815051ca6b332ac6626d821a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Sun, 28 Jan 2024 23:16:42 +0800 Subject: [PATCH 152/199] pipeline.rst: add example for +inv --- docs/source/operations/pipeline.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/operations/pipeline.rst b/docs/source/operations/pipeline.rst index 97b58e3e03..f086755a86 100644 --- a/docs/source/operations/pipeline.rst +++ b/docs/source/operations/pipeline.rst @@ -129,6 +129,10 @@ Optional Invert a step in a pipeline. + :: + + echo -88 42 0 0|cct +zone=16 +proj=pipeline +step +proj=utm +step +proj=utm +inv + .. option:: +omit_fwd .. versionadded:: 6.3.0 From 48ca5797247c21c477093dafdb9802e95f263d3f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 29 Jan 2024 14:21:19 +0100 Subject: [PATCH 153/199] Database (ESRI): use the deprecation table instead of the supersession table for deprecated ESRI CRS (as done with EPSG objects) --- data/sql/esri.sql | 1988 ++++++++++++++++--------------- data/sql/proj_db_table_defs.sql | 2 - scripts/build_db_from_esri.py | 43 +- 3 files changed, 1034 insertions(+), 999 deletions(-) diff --git a/data/sql/esri.sql b/data/sql/esri.sql index 7846cad8f6..93e531f57b 100644 --- a/data/sql/esri.sql +++ b/data/sql/esri.sql @@ -1848,7 +1848,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106001','D_WGS_1966','WGS 1966','EPS INSERT INTO "usage" VALUES('ESRI', '106001_USAGE','geodetic_datum','ESRI','106001','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37001','GCS_WGS_1966',NULL,'geographic 2D','EPSG','6422','ESRI','106001',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37001_USAGE','geodetic_crs','ESRI','37001','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37001','geodetic_crs','EPSG','4760','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37001','EPSG','4760','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106002','D_Fischer_1960','Fischer 1960','ESRI','107002','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106002_USAGE','geodetic_datum','ESRI','106002','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37002','GCS_Fischer_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106002',NULL,0); @@ -1881,7 +1881,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106201','D_European_1979','European INSERT INTO "usage" VALUES('ESRI', '106201_USAGE','geodetic_datum','ESRI','106201','EPSG','1297','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37201','GCS_European_1979',NULL,'geographic 2D','EPSG','6422','ESRI','106201',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37201_USAGE','geodetic_crs','ESRI','37201','EPSG','1297','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37201','geodetic_crs','EPSG','4668','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37201','EPSG','4668','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106202','D_Everest_Bangladesh','Everest - Bangladesh','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106202_USAGE','geodetic_datum','ESRI','106202','EPSG','1041','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37202','GCS_Everest_Bangladesh',NULL,'geographic 2D','EPSG','6422','ESRI','106202',NULL,0); @@ -1894,12 +1894,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106204','D_Hjorsey_1955','Hjorsey 19 INSERT INTO "usage" VALUES('ESRI', '106204_USAGE','geodetic_datum','ESRI','106204','EPSG','3262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37204','GCS_Hjorsey_1955',NULL,'geographic 2D','EPSG','6422','ESRI','106204',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37204_USAGE','geodetic_crs','ESRI','37204','EPSG','3262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37204','geodetic_crs','EPSG','4658','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37204','EPSG','4658','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106205','D_Hong_Kong_1963_67','Hong Kong 1963(67)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106205_USAGE','geodetic_datum','ESRI','106205','EPSG','1118','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37205','GCS_Hong_Kong_1963_67',NULL,'geographic 2D','EPSG','6422','ESRI','106205',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37205_USAGE','geodetic_crs','ESRI','37205','EPSG','1118','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37205','geodetic_crs','EPSG','4739','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37205','EPSG','4739','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106206','D_Oman','Oman','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106206_USAGE','geodetic_datum','ESRI','106206','EPSG','1183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37206','GCS_Oman',NULL,'geographic 2D','EPSG','6422','ESRI','106206',NULL,0); @@ -1912,42 +1912,42 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106208','D_Ayabelle','Ayabelle Light INSERT INTO "usage" VALUES('ESRI', '106208_USAGE','geodetic_datum','ESRI','106208','EPSG','1081','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37208','GCS_Ayabelle',NULL,'geographic 2D','EPSG','6422','ESRI','106208',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37208_USAGE','geodetic_crs','ESRI','37208','EPSG','1081','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37208','geodetic_crs','EPSG','4713','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37208','EPSG','4713','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106211','D_Point_58','Point 58','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106211_USAGE','geodetic_datum','ESRI','106211','EPSG','2790','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37211','GCS_Point_58',NULL,'geographic 2D','EPSG','6422','ESRI','106211',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37211_USAGE','geodetic_crs','ESRI','37211','EPSG','2790','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37211','geodetic_crs','EPSG','4620','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37211','EPSG','4620','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106212','D_Beacon_E_1945','Astro Beacon E 1945 (Iwo Jima 1945)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106212_USAGE','geodetic_datum','ESRI','106212','EPSG','3200','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37212','GCS_Beacon_E_1945',NULL,'geographic 2D','EPSG','6422','ESRI','106212',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37212_USAGE','geodetic_crs','ESRI','37212','EPSG','3200','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37212','geodetic_crs','EPSG','4709','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37212','EPSG','4709','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106213','D_Tern_Island_1961','Tern Island Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106213_USAGE','geodetic_datum','ESRI','106213','EPSG','3181','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37213','GCS_Tern_Island_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106213',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37213_USAGE','geodetic_crs','ESRI','37213','EPSG','3181','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37213','geodetic_crs','EPSG','4707','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37213','EPSG','4707','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106214','D_Astro_1952','Astronomical Station 1952 (Marcus Island 1952 )','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106214_USAGE','geodetic_datum','ESRI','106214','EPSG','1872','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37214','GCS_Astro_1952',NULL,'geographic 2D','EPSG','6422','ESRI','106214',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37214_USAGE','geodetic_crs','ESRI','37214','EPSG','1872','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37214','geodetic_crs','EPSG','4711','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37214','EPSG','4711','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106215','D_Bellevue_IGN','Bellevue IGN','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106215_USAGE','geodetic_datum','ESRI','106215','EPSG','3193','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37215','GCS_Bellevue_IGN',NULL,'geographic 2D','EPSG','6422','ESRI','106215',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37215_USAGE','geodetic_crs','ESRI','37215','EPSG','3193','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37215','geodetic_crs','EPSG','4714','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37215','EPSG','4714','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106216','D_Canton_1966','Canton Astro 1966 (Phoenix Islands 1966)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106216_USAGE','geodetic_datum','ESRI','106216','EPSG','3196','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37216','GCS_Canton_1966',NULL,'geographic 2D','EPSG','6422','ESRI','106216',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37216_USAGE','geodetic_crs','ESRI','37216','EPSG','3196','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37216','geodetic_crs','EPSG','4716','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37216','EPSG','4716','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106217','D_Chatham_Island_1971','Chatham Island Astro 1971','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106217_USAGE','geodetic_datum','ESRI','106217','EPSG','2889','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37217','GCS_Chatham_Island_1971',NULL,'geographic 2D','EPSG','6422','ESRI','106217',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37217_USAGE','geodetic_crs','ESRI','37217','EPSG','2889','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37217','geodetic_crs','EPSG','4672','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37217','EPSG','4672','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106218','D_DOS_1968','DOS 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106218_USAGE','geodetic_datum','ESRI','106218','EPSG','3198','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37218','GCS_DOS_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106218',NULL,0); @@ -1956,12 +1956,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106219','D_Easter_Island_1967','East INSERT INTO "usage" VALUES('ESRI', '106219_USAGE','geodetic_datum','ESRI','106219','EPSG','3188','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37219','GCS_Easter_Island_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106219',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37219_USAGE','geodetic_crs','ESRI','37219','EPSG','3188','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37219','geodetic_crs','EPSG','4719','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37219','EPSG','4719','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106220','D_Guam_1963','Guam 1963','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106220_USAGE','geodetic_datum','ESRI','106220','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37220','GCS_Guam_1963',NULL,'geographic 2D','EPSG','6422','ESRI','106220',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37220_USAGE','geodetic_crs','ESRI','37220','EPSG','4167','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37220','geodetic_crs','EPSG','4675','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37220','EPSG','4675','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106221','D_GUX_1','GUX 1 Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106221_USAGE','geodetic_datum','ESRI','106221','EPSG','3197','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37221','GCS_GUX_1',NULL,'geographic 2D','EPSG','6422','ESRI','106221',NULL,0); @@ -1970,82 +1970,82 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106222','D_Johnston_Island_1961','Jo INSERT INTO "usage" VALUES('ESRI', '106222_USAGE','geodetic_datum','ESRI','106222','EPSG','3201','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37222','GCS_Johnston_Island_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106222',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37222_USAGE','geodetic_crs','ESRI','37222','EPSG','3201','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37222','geodetic_crs','EPSG','4725','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37222','EPSG','4725','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','37223','GCS_Carthage',NULL,'geographic 2D','EPSG','6422','EPSG','6223',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37223_USAGE','geodetic_crs','ESRI','37223','EPSG','1236','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37223','geodetic_crs','EPSG','4223','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37223','EPSG','4223','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106224','D_Midway_1961','Midway Astro 1961','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106224_USAGE','geodetic_datum','ESRI','106224','EPSG','3202','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37224','GCS_Midway_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106224',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37224_USAGE','geodetic_crs','ESRI','37224','EPSG','3202','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37224','geodetic_crs','EPSG','4727','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37224','EPSG','4727','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','37225','GCS_Carthage_Grad',NULL,'geographic 2D','EPSG','6403','EPSG','6223',NULL,0); INSERT INTO "usage" VALUES('ESRI', '37225_USAGE','geodetic_crs','ESRI','37225','EPSG','1236','EPSG','1024'); INSERT INTO "geodetic_datum" VALUES('ESRI','106226','D_Pitcairn_1967','Pitcairn Astro 1967','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106226_USAGE','geodetic_datum','ESRI','106226','EPSG','3208','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37226','GCS_Pitcairn_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106226',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37226_USAGE','geodetic_crs','ESRI','37226','EPSG','3208','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37226','geodetic_crs','EPSG','4729','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37226','EPSG','4729','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106227','D_Santo_DOS_1965','Santo DOS 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106227_USAGE','geodetic_datum','ESRI','106227','EPSG','3194','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37227','GCS_Santo_DOS_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106227',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37227_USAGE','geodetic_crs','ESRI','37227','EPSG','3194','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37227','geodetic_crs','EPSG','4730','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37227','EPSG','4730','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106228','D_Viti_Levu_1916','Viti Levu 1916','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106228_USAGE','geodetic_datum','ESRI','106228','EPSG','3195','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37228','GCS_Viti_Levu_1916',NULL,'geographic 2D','EPSG','6422','ESRI','106228',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37228_USAGE','geodetic_crs','ESRI','37228','EPSG','3195','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37228','geodetic_crs','EPSG','4731','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37228','EPSG','4731','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106229','D_Wake_Eniwetok_1960','Wake-Eniwetok 1960 (Marshall Islands 1960)','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106229_USAGE','geodetic_datum','ESRI','106229','EPSG','3191','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37229','GCS_Wake_Eniwetok_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106229',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37229_USAGE','geodetic_crs','ESRI','37229','EPSG','3191','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37229','geodetic_crs','EPSG','4732','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37229','EPSG','4732','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106230','D_Wake_Island_1952','Wake Island Astro 1952','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106230_USAGE','geodetic_datum','ESRI','106230','EPSG','3190','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37230','GCS_Wake_Island_1952',NULL,'geographic 2D','EPSG','6422','ESRI','106230',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37230_USAGE','geodetic_crs','ESRI','37230','EPSG','3190','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37230','geodetic_crs','EPSG','4733','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37230','EPSG','4733','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106231','D_Anna_1_1965','Anna 1 Astro 1965 (Cocos Islands 1965)','EPSG','7003','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106231_USAGE','geodetic_datum','ESRI','106231','EPSG','1069','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37231','GCS_Anna_1_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106231',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37231_USAGE','geodetic_crs','ESRI','37231','EPSG','1069','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37231','geodetic_crs','EPSG','4708','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37231','EPSG','4708','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106232','D_Gan_1970','Gan 1970','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106232_USAGE','geodetic_datum','ESRI','106232','EPSG','3274','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37232','GCS_Gan_1970',NULL,'geographic 2D','EPSG','6422','ESRI','106232',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37232_USAGE','geodetic_crs','ESRI','37232','EPSG','3274','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37232','geodetic_crs','EPSG','4684','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37232','EPSG','4684','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106233','D_ISTS_073_1969','ISTS 073 Astro 1969 (Diego Garcia 1969)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106233_USAGE','geodetic_datum','ESRI','106233','EPSG','3189','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37233','GCS_ISTS_073_1969',NULL,'geographic 2D','EPSG','6422','ESRI','106233',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37233_USAGE','geodetic_crs','ESRI','37233','EPSG','3189','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37233','geodetic_crs','EPSG','4724','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37233','EPSG','4724','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106234','D_Kerguelen_Island_1949','Kerguelen Island 1949','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106234_USAGE','geodetic_datum','ESRI','106234','EPSG','2816','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37234','GCS_Kerguelen_Island_1949',NULL,'geographic 2D','EPSG','6422','ESRI','106234',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37234_USAGE','geodetic_crs','ESRI','37234','EPSG','2816','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37234','geodetic_crs','EPSG','4698','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37234','EPSG','4698','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106235','D_Reunion_1947','Reunion 1947','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106235_USAGE','geodetic_datum','ESRI','106235','EPSG','3337','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37235','GCS_Reunion_1947',NULL,'geographic 2D','EPSG','6422','ESRI','106235',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37235_USAGE','geodetic_crs','ESRI','37235','EPSG','3337','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37235','geodetic_crs','EPSG','4626','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37235','EPSG','4626','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106237','D_Ascension_Island_1958','Ascension Island 1958','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106237_USAGE','geodetic_datum','ESRI','106237','EPSG','3182','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37237','GCS_Ascension_Island_1958',NULL,'geographic 2D','EPSG','6422','ESRI','106237',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37237_USAGE','geodetic_crs','ESRI','37237','EPSG','3182','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37237','geodetic_crs','EPSG','4712','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37237','EPSG','4712','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106238','D_DOS_71_4','Astro DOS 71/4 (St. Helena 1971)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106238_USAGE','geodetic_datum','ESRI','106238','EPSG','3183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37238','GCS_DOS_71_4',NULL,'geographic 2D','EPSG','6422','ESRI','106238',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37238_USAGE','geodetic_crs','ESRI','37238','EPSG','3183','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37238','geodetic_crs','EPSG','4710','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37238','EPSG','4710','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106239','D_Cape_Canaveral','Cape Canaveral','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106239_USAGE','geodetic_datum','ESRI','106239','EPSG','3206','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37239','GCS_Cape_Canaveral',NULL,'geographic 2D','EPSG','6422','ESRI','106239',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37239_USAGE','geodetic_crs','ESRI','37239','EPSG','3206','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37239','geodetic_crs','EPSG','4717','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37239','EPSG','4717','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106240','D_Fort_Thomas_1955','Fort Thomas 1955','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106240_USAGE','geodetic_datum','ESRI','106240','EPSG','1200','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37240','GCS_Fort_Thomas_1955',NULL,'geographic 2D','EPSG','6422','ESRI','106240',NULL,0); @@ -2058,7 +2058,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106242','D_ISTS_061_1968','ISTS 061 INSERT INTO "usage" VALUES('ESRI', '106242_USAGE','geodetic_datum','ESRI','106242','EPSG','3529','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37242','GCS_ISTS_061_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106242',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37242_USAGE','geodetic_crs','ESRI','37242','EPSG','3529','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37242','geodetic_crs','EPSG','4722','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37242','EPSG','4722','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106243','D_LC5_1961','L.C. 5 Astro 1961','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106243_USAGE','geodetic_datum','ESRI','106243','EPSG','3186','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37243','GCS_LC5_1961',NULL,'geographic 2D','EPSG','6422','ESRI','106243',NULL,0); @@ -2071,12 +2071,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106246','D_Pico_de_Las_Nieves','Pico INSERT INTO "usage" VALUES('ESRI', '106246_USAGE','geodetic_datum','ESRI','106246','EPSG','3873','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37246','GCS_Pico_de_Las_Nieves',NULL,'geographic 2D','EPSG','6422','ESRI','106246',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37246_USAGE','geodetic_crs','ESRI','37246','EPSG','3873','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37246','geodetic_crs','EPSG','4728','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37246','EPSG','4728','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106247','D_Porto_Santo_1936','Porto Santo 1936','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106247_USAGE','geodetic_datum','ESRI','106247','EPSG','1314','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37247','GCS_Porto_Santo_1936',NULL,'geographic 2D','EPSG','6422','ESRI','106247',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37247_USAGE','geodetic_crs','ESRI','37247','EPSG','1314','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37247','geodetic_crs','EPSG','4615','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37247','EPSG','4615','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106249','D_Sao_Braz','Sao Braz','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106249_USAGE','geodetic_datum','ESRI','106249','EPSG','1345','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37249','GCS_Sao_Braz',NULL,'geographic 2D','EPSG','6422','ESRI','106249',NULL,0); @@ -2085,32 +2085,32 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106250','D_Selvagem_Grande_1938','Se INSERT INTO "usage" VALUES('ESRI', '106250_USAGE','geodetic_datum','ESRI','106250','EPSG','2779','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37250','GCS_Selvagem_Grande_1938',NULL,'geographic 2D','EPSG','6422','ESRI','106250',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37250_USAGE','geodetic_crs','ESRI','37250','EPSG','2779','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37250','geodetic_crs','EPSG','4616','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37250','EPSG','4616','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106251','D_Tristan_1968','Tristan Astro 1968','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106251_USAGE','geodetic_datum','ESRI','106251','EPSG','3184','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37251','GCS_Tristan_1968',NULL,'geographic 2D','EPSG','6422','ESRI','106251',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37251_USAGE','geodetic_crs','ESRI','37251','EPSG','3184','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37251','geodetic_crs','EPSG','4734','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37251','EPSG','4734','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106252','D_American_Samoa_1962','American Samoa 1962','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106252_USAGE','geodetic_datum','ESRI','106252','EPSG','3109','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37252','GCS_American_Samoa_1962',NULL,'geographic 2D','EPSG','6422','ESRI','106252',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37252_USAGE','geodetic_crs','ESRI','37252','EPSG','3109','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37252','geodetic_crs','EPSG','4169','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37252','EPSG','4169','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106253','D_Camp_Area','Camp Area Astro','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106253_USAGE','geodetic_datum','ESRI','106253','EPSG','3205','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37253','GCS_Camp_Area',NULL,'geographic 2D','EPSG','6422','ESRI','106253',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37253_USAGE','geodetic_crs','ESRI','37253','EPSG','3205','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37253','geodetic_crs','EPSG','4715','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37253','EPSG','4715','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106254','D_Deception_Island','Deception Island','EPSG','7012','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106254_USAGE','geodetic_datum','ESRI','106254','EPSG','3204','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37254','GCS_Deception_Island',NULL,'geographic 2D','EPSG','6422','ESRI','106254',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37254_USAGE','geodetic_crs','ESRI','37254','EPSG','3204','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37254','geodetic_crs','EPSG','4736','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37254','EPSG','4736','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106255','D_Gunung_Segara','Gunung Segara','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106255_USAGE','geodetic_datum','ESRI','106255','EPSG','1360','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37255','GCS_Gunung_Segara',NULL,'geographic 2D','EPSG','6422','ESRI','106255',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37255_USAGE','geodetic_crs','ESRI','37255','EPSG','1360','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37255','geodetic_crs','EPSG','4613','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37255','EPSG','4613','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106257','D_S42_Hungary','S-42 Hungary','EPSG','7024','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106257_USAGE','geodetic_datum','ESRI','106257','EPSG','1119','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37257','GCS_S42_Hungary',NULL,'geographic 2D','EPSG','6422','ESRI','106257',NULL,0); @@ -2119,7 +2119,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106259','D_Kusaie_1951','Kusaie Astr INSERT INTO "usage" VALUES('ESRI', '106259_USAGE','geodetic_datum','ESRI','106259','EPSG','3192','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37259','GCS_Kusaie_1951',NULL,'geographic 2D','EPSG','6422','ESRI','106259',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37259_USAGE','geodetic_crs','ESRI','37259','EPSG','3192','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','37259','geodetic_crs','EPSG','4735','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37259','EPSG','4735','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106260','D_Alaskan_Islands','Alaskan Islands','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106260_USAGE','geodetic_datum','ESRI','106260','EPSG','1330','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37260','GCS_Alaskan_Islands',NULL,'geographic 2D','EPSG','6422','ESRI','106260',NULL,0); @@ -2130,45 +2130,45 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106009','D_Kyrgyz_Republic_2006','Ky INSERT INTO "usage" VALUES('ESRI', '106009_USAGE','geodetic_datum','ESRI','106009','EPSG','1137','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104009','GCS_Kyrg-06',NULL,'geographic 2D','EPSG','6422','ESRI','106009',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104009_USAGE','geodetic_crs','ESRI','104009','EPSG','1137','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104009','geodetic_crs','EPSG','7686','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104009','EPSG','7686','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104010','GCS_IGS08',NULL,'geographic 2D','EPSG','6422','EPSG','1141',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104010_USAGE','geodetic_crs','ESRI','104010','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104010','geodetic_crs','EPSG','9014','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104010','EPSG','9014','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104011','WGS_1984_(G730)',NULL,'geographic 2D','EPSG','6422','EPSG','1152',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104011_USAGE','geodetic_crs','ESRI','104011','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104011','geodetic_crs','EPSG','9053','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104011','EPSG','9053','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104012','WGS_1984_(G873)',NULL,'geographic 2D','EPSG','6422','EPSG','1153',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104012_USAGE','geodetic_crs','ESRI','104012','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104012','geodetic_crs','EPSG','9054','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104012','EPSG','9054','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104013','WGS_1984_(G1150)',NULL,'geographic 2D','EPSG','6422','EPSG','1154',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104013_USAGE','geodetic_crs','ESRI','104013','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104013','geodetic_crs','EPSG','9055','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104013','EPSG','9055','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104014','WGS_1984_(G1674)',NULL,'geographic 2D','EPSG','6422','EPSG','1155',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104014_USAGE','geodetic_crs','ESRI','104014','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104014','geodetic_crs','EPSG','9056','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104014','EPSG','9056','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104015','WGS_1984_(G1762)',NULL,'geographic 2D','EPSG','6422','EPSG','1156',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104015_USAGE','geodetic_crs','ESRI','104015','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104015','geodetic_crs','EPSG','9057','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104015','EPSG','9057','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104016','WGS_1984_(Transit)',NULL,'geographic 2D','EPSG','6422','EPSG','1166',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104016_USAGE','geodetic_crs','ESRI','104016','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104016','geodetic_crs','EPSG','8888','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104016','EPSG','8888','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104017','PZ-90.02',NULL,'geographic 2D','EPSG','6422','EPSG','1157',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104017_USAGE','geodetic_crs','ESRI','104017','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104017','geodetic_crs','EPSG','9474','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104017','EPSG','9474','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104018','PZ-90.11',NULL,'geographic 2D','EPSG','6422','EPSG','1158',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104018_USAGE','geodetic_crs','ESRI','104018','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104018','geodetic_crs','EPSG','9475','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104018','EPSG','9475','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104019','ITRF2014',NULL,'geographic 2D','EPSG','6422','EPSG','1165',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104019_USAGE','geodetic_crs','ESRI','104019','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104019','geodetic_crs','EPSG','9000','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104019','EPSG','9000','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106020','D_JGD_2011','Japan Geodetic Datum 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106020_USAGE','geodetic_datum','ESRI','106020','EPSG','1129','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104020','GCS_JGD_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106020',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104020_USAGE','geodetic_crs','ESRI','104020','EPSG','1129','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104020','geodetic_crs','EPSG','6668','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104020','EPSG','6668','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104021','IGS14',NULL,'geographic 2D','EPSG','6422','EPSG','1191',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104021_USAGE','geodetic_crs','ESRI','104021','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104021','geodetic_crs','EPSG','9019','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104021','EPSG','9019','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106010','Georgia_Geodetic_Datum','Georgia Geodetic Datum - ITRF2008/IGS08','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106010_USAGE','geodetic_datum','ESRI','106010','EPSG','3251','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104022','GGD',NULL,'geographic 2D','EPSG','6422','ESRI','106010',NULL,0); @@ -2192,7 +2192,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106027','Oman_National_Geodetic_Datu INSERT INTO "usage" VALUES('ESRI', '106027_USAGE','geodetic_datum','ESRI','106027','EPSG','1183','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104027','ONGD17',NULL,'geographic 2D','EPSG','6422','ESRI','106027',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104027_USAGE','geodetic_crs','ESRI','104027','EPSG','1183','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104027','geodetic_crs','EPSG','9294','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104027','EPSG','9294','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106028','Geocentric_Datum_of_Mauritius_2008','Geocentric Datum of Mauritius 2008','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106028_USAGE','geodetic_datum','ESRI','106028','EPSG','1158','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104028','GDM2008',NULL,'geographic 2D','EPSG','6422','ESRI','106028',NULL,0); @@ -2210,7 +2210,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106100','D_GDBD2009','GDBD2009','EPS INSERT INTO "usage" VALUES('ESRI', '106100_USAGE','geodetic_datum','ESRI','106100','EPSG','1055','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104100','GCS_GDBD2009',NULL,'geographic 2D','EPSG','6422','ESRI','106100',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104100_USAGE','geodetic_crs','ESRI','104100','EPSG','1055','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104100','geodetic_crs','EPSG','5246','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104100','EPSG','5246','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106101','D_Estonia_1937','Estonia 1937','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106101_USAGE','geodetic_datum','ESRI','106101','EPSG','1090','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104101','GCS_Estonia_1937',NULL,'geographic 2D','EPSG','6422','ESRI','106101',NULL,0); @@ -2227,7 +2227,7 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106261','D_Hong_Kong_1980','Hong Kon INSERT INTO "usage" VALUES('ESRI', '106261_USAGE','geodetic_datum','ESRI','106261','EPSG','1118','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104104','GCS_Hong_Kong_1980',NULL,'geographic 2D','EPSG','6422','ESRI','106261',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104104_USAGE','geodetic_crs','ESRI','104104','EPSG','1118','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104104','geodetic_crs','EPSG','4611','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104104','EPSG','4611','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106262','D_Datum_Lisboa_Bessel','Datum Lisboa Bessel','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106262_USAGE','geodetic_datum','ESRI','106262','EPSG','1193','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104105','GCS_Datum_Lisboa_Bessel',NULL,'geographic 2D','EPSG','6422','ESRI','106262',NULL,0); @@ -2240,12 +2240,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106264','D_RGF_1993','Reseau Geodesi INSERT INTO "usage" VALUES('ESRI', '106264_USAGE','geodetic_datum','ESRI','106264','EPSG','1096','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104107','GCS_RGF_1993',NULL,'geographic 2D','EPSG','6422','ESRI','106264',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104107_USAGE','geodetic_crs','ESRI','104107','EPSG','1096','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104107','geodetic_crs','EPSG','4171','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104107','EPSG','4171','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106265','D_NZGD_2000','New Zealand Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106265_USAGE','geodetic_datum','ESRI','106265','EPSG','1175','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104108','GCS_NZGD_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106265',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104108_USAGE','geodetic_crs','ESRI','104108','EPSG','1175','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104108','geodetic_crs','EPSG','4167','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104108','EPSG','4167','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106266','D_Pohnpei','Pohnpei - Fed. States Micronesia','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106266_USAGE','geodetic_datum','ESRI','106266','EPSG','1161','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104109','GCS_Pohnpei',NULL,'geographic 2D','EPSG','6422','ESRI','106266',NULL,0); @@ -2254,12 +2254,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106267','D_REGVEN','REGVEN','EPSG',' INSERT INTO "usage" VALUES('ESRI', '106267_USAGE','geodetic_datum','ESRI','106267','EPSG','1251','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104110','GCS_REGVEN',NULL,'geographic 2D','EPSG','6422','ESRI','106267',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104110_USAGE','geodetic_crs','ESRI','104110','EPSG','1251','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104110','geodetic_crs','EPSG','4189','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104110','EPSG','4189','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106268','D_JGD_2000','Japan Geodetic Datum 2000','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106268_USAGE','geodetic_datum','ESRI','106268','EPSG','1129','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104111','GCS_JGD_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106268',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104111_USAGE','geodetic_crs','ESRI','104111','EPSG','1129','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104111','geodetic_crs','EPSG','4612','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104111','EPSG','4612','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106269','D_Bab_South','Bab South Astro - Bablethuap Is - Republic of Palau','EPSG','7008','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106269_USAGE','geodetic_datum','ESRI','106269','EPSG','1185','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104112','GCS_Bab_South',NULL,'geographic 2D','EPSG','6422','ESRI','106269',NULL,0); @@ -2272,42 +2272,42 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106271','D_Bermuda_2000','Bermuda 20 INSERT INTO "usage" VALUES('ESRI', '106271_USAGE','geodetic_datum','ESRI','106271','EPSG','1047','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104114','GCS_Bermuda_2000',NULL,'geographic 2D','EPSG','6422','ESRI','106271',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104114_USAGE','geodetic_crs','ESRI','104114','EPSG','1047','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104114','geodetic_crs','EPSG','4762','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104114','EPSG','4762','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104115','GCS_ITRF_1988',NULL,'geographic 2D','EPSG','6422','EPSG','6647',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104115_USAGE','geodetic_crs','ESRI','104115','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104115','geodetic_crs','EPSG','8988','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104115','EPSG','8988','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104116','GCS_ITRF_1989',NULL,'geographic 2D','EPSG','6422','EPSG','6648',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104116_USAGE','geodetic_crs','ESRI','104116','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104116','geodetic_crs','EPSG','8989','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104116','EPSG','8989','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104117','GCS_ITRF_1990',NULL,'geographic 2D','EPSG','6422','EPSG','6649',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104117_USAGE','geodetic_crs','ESRI','104117','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104117','geodetic_crs','EPSG','8990','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104117','EPSG','8990','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104118','GCS_ITRF_1991',NULL,'geographic 2D','EPSG','6422','EPSG','6650',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104118_USAGE','geodetic_crs','ESRI','104118','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104118','geodetic_crs','EPSG','8991','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104118','EPSG','8991','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104119','GCS_ITRF_1992',NULL,'geographic 2D','EPSG','6422','EPSG','6651',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104119_USAGE','geodetic_crs','ESRI','104119','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104119','geodetic_crs','EPSG','8992','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104119','EPSG','8992','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104120','GCS_ITRF_1993',NULL,'geographic 2D','EPSG','6422','EPSG','6652',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104120_USAGE','geodetic_crs','ESRI','104120','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104120','geodetic_crs','EPSG','8993','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104120','EPSG','8993','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104121','GCS_ITRF_1994',NULL,'geographic 2D','EPSG','6422','EPSG','6653',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104121_USAGE','geodetic_crs','ESRI','104121','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104121','geodetic_crs','EPSG','8994','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104121','EPSG','8994','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104122','GCS_ITRF_1996',NULL,'geographic 2D','EPSG','6422','EPSG','6654',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104122_USAGE','geodetic_crs','ESRI','104122','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104122','geodetic_crs','EPSG','8995','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104122','EPSG','8995','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104123','GCS_ITRF_1997',NULL,'geographic 2D','EPSG','6422','EPSG','6655',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104123_USAGE','geodetic_crs','ESRI','104123','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104123','geodetic_crs','EPSG','8996','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104123','EPSG','8996','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104124','GCS_ITRF_2000',NULL,'geographic 2D','EPSG','6422','EPSG','6656',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104124_USAGE','geodetic_crs','ESRI','104124','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104124','geodetic_crs','EPSG','8997','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104124','EPSG','8997','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106273','D_Chatham_Islands_1979','Chatham Islands 1979','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106273_USAGE','geodetic_datum','ESRI','106273','EPSG','2889','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104125','GCS_Chatham_Islands_1979',NULL,'geographic 2D','EPSG','6422','ESRI','106273',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104125_USAGE','geodetic_crs','ESRI','104125','EPSG','2889','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104125','geodetic_crs','EPSG','4673','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104125','EPSG','4673','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106274','D_Observatorio_Meteorologico_1965','Observatorio Meteorologico 1965','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106274_USAGE','geodetic_datum','ESRI','106274','EPSG','1147','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104126','GCS_Observatorio_Meteorologico_1965',NULL,'geographic 2D','EPSG','6422','ESRI','106274',NULL,0); @@ -2335,12 +2335,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106279','D_Ocotepeque_1935','Ocotepe INSERT INTO "usage" VALUES('ESRI', '106279_USAGE','geodetic_datum','ESRI','106279','EPSG','3876','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104132','GCS_Ocotepeque_1935',NULL,'geographic 2D','EPSG','6422','ESRI','106279',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104132_USAGE','geodetic_crs','ESRI','104132','EPSG','3876','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104132','geodetic_crs','EPSG','5451','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104132','EPSG','5451','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106280','D_Jamaica_2001','Jamaica 2001','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106280_USAGE','geodetic_datum','ESRI','106280','EPSG','1128','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104133','GCS_JAD_2001',NULL,'geographic 2D','EPSG','6422','ESRI','106280',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104133_USAGE','geodetic_crs','ESRI','104133','EPSG','1128','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104133','geodetic_crs','EPSG','4758','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104133','EPSG','4758','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104134','GCS_MONREF_1997',NULL,'geographic 2D','EPSG','6422','EPSG','6656',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104134_USAGE','geodetic_crs','ESRI','104134','EPSG','1164','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104135','GCS_MSK_1942',NULL,'geographic 2D','EPSG','6422','EPSG','6284',NULL,0); @@ -2349,12 +2349,12 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106281','D_TWD_1967','Taiwan 1967',' INSERT INTO "usage" VALUES('ESRI', '106281_USAGE','geodetic_datum','ESRI','106281','EPSG','3315','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104136','GCS_TWD_1967',NULL,'geographic 2D','EPSG','6422','ESRI','106281',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104136_USAGE','geodetic_crs','ESRI','104136','EPSG','3315','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104136','geodetic_crs','EPSG','3821','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104136','EPSG','3821','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106282','D_TWD_1997','Taiwan 1997','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106282_USAGE','geodetic_datum','ESRI','106282','EPSG','1228','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104137','GCS_TWD_1997',NULL,'geographic 2D','EPSG','6422','ESRI','106282',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104137_USAGE','geodetic_crs','ESRI','104137','EPSG','1228','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104137','geodetic_crs','EPSG','3824','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104137','EPSG','3824','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106284','D_Old_Hawaiian_Intl_1924','Old Hawaiian on Intl_1924 spheroid (NGS)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106284_USAGE','geodetic_datum','ESRI','106284','EPSG','1334','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104138','GCS_Old_Hawaiian_Intl_1924',NULL,'geographic 2D','EPSG','6422','ESRI','106284',NULL,0); @@ -2367,105 +2367,105 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106225','D_Cyprus_Geodetic_Reference INSERT INTO "usage" VALUES('ESRI', '106225_USAGE','geodetic_datum','ESRI','106225','EPSG','3236','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104141','GCS_CGRS_1993',NULL,'geographic 2D','EPSG','6422','ESRI','106225',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104141_USAGE','geodetic_crs','ESRI','104141','EPSG','3236','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104141','geodetic_crs','EPSG','6311','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104141','EPSG','6311','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106236','D_PTRA08','Portugal - Autonomous Regions (Madeira and Azores Archipelagos)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106236_USAGE','geodetic_datum','ESRI','106236','EPSG','3670','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104142','GCS_PTRA08',NULL,'geographic 2D','EPSG','6422','ESRI','106236',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104142_USAGE','geodetic_crs','ESRI','104142','EPSG','3670','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104142','geodetic_crs','EPSG','5013','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104142','EPSG','5013','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106244','D_Costa_Rica_2005','Costa Rica 2005','EPSG','7030','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106244_USAGE','geodetic_datum','ESRI','106244','EPSG','1074','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104143','GCS_CR05',NULL,'geographic 2D','EPSG','6422','ESRI','106244',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104143_USAGE','geodetic_crs','ESRI','104143','EPSG','1074','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104143','geodetic_crs','EPSG','5365','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104143','EPSG','5365','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106144','D_Islands_Network_2004','Islands Network 2004','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106144_USAGE','geodetic_datum','ESRI','106144','EPSG','1120','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104144','GCS_ISN_2004',NULL,'geographic 2D','EPSG','6422','ESRI','106144',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104144_USAGE','geodetic_crs','ESRI','104144','EPSG','1120','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104144','geodetic_crs','EPSG','5324','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104144','EPSG','5324','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106285','D_NAD_1983_2011','NAD 1983 (2011)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106285_USAGE','geodetic_datum','ESRI','106285','EPSG','1511','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104145','GCS_NAD_1983_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106285',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104145_USAGE','geodetic_crs','ESRI','104145','EPSG','1511','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104145','geodetic_crs','EPSG','6318','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104145','EPSG','6318','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104179','ETRF90',NULL,'geographic 2D','EPSG','6422','EPSG','1179',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104179_USAGE','geodetic_crs','ESRI','104179','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104179','geodetic_crs','EPSG','9060','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104179','EPSG','9060','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104180','ETRF91',NULL,'geographic 2D','EPSG','6422','EPSG','1180',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104180_USAGE','geodetic_crs','ESRI','104180','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104180','geodetic_crs','EPSG','9061','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104180','EPSG','9061','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104181','ETRF92',NULL,'geographic 2D','EPSG','6422','EPSG','1181',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104181_USAGE','geodetic_crs','ESRI','104181','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104181','geodetic_crs','EPSG','9062','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104181','EPSG','9062','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104182','ETRF93',NULL,'geographic 2D','EPSG','6422','EPSG','1182',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104182_USAGE','geodetic_crs','ESRI','104182','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104182','geodetic_crs','EPSG','9063','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104182','EPSG','9063','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104183','ETRF94',NULL,'geographic 2D','EPSG','6422','EPSG','1183',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104183_USAGE','geodetic_crs','ESRI','104183','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104183','geodetic_crs','EPSG','9064','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104183','EPSG','9064','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104184','ETRF96',NULL,'geographic 2D','EPSG','6422','EPSG','1184',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104184_USAGE','geodetic_crs','ESRI','104184','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104184','geodetic_crs','EPSG','9065','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104184','EPSG','9065','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104185','ETRF97',NULL,'geographic 2D','EPSG','6422','EPSG','1185',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104185_USAGE','geodetic_crs','ESRI','104185','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104185','geodetic_crs','EPSG','9066','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104185','EPSG','9066','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104186','ETRF2000',NULL,'geographic 2D','EPSG','6422','EPSG','1186',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104186_USAGE','geodetic_crs','ESRI','104186','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104186','geodetic_crs','EPSG','9067','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104186','EPSG','9067','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106283','D_WGS_1984_Major_Auxiliary_Sphere','Major auxiliary sphere based on WGS 1984','EPSG','7059','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106283_USAGE','geodetic_datum','ESRI','106283','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104199','GCS_WGS_1984_Major_Auxiliary_Sphere',NULL,'geographic 2D','EPSG','6422','ESRI','106283',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104199_USAGE','geodetic_crs','ESRI','104199','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104199','geodetic_crs','EPSG','4055','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104199','EPSG','4055','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106223','D_NAD_1983_CORS96','NAD 1983 (CORS96)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106223_USAGE','geodetic_datum','ESRI','106223','EPSG','1511','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104223','GCS_NAD_1983_CORS96',NULL,'geographic 2D','EPSG','6422','ESRI','106223',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104223_USAGE','geodetic_crs','ESRI','104223','EPSG','1511','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104223','geodetic_crs','EPSG','6783','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104223','EPSG','6783','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106248','D_MACAO_2008','Macao 2008 (ITRF 2005)','EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106248_USAGE','geodetic_datum','ESRI','106248','EPSG','1147','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104248','GCS_MACAO_2008',NULL,'geographic 2D','EPSG','6422','ESRI','106248',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104248_USAGE','geodetic_crs','ESRI','104248','EPSG','1147','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104248','geodetic_crs','EPSG','8431','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104248','EPSG','8431','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106256','D_Nepal_Nagarkot','Nepal Nagarkot','EPSG','7015','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106256_USAGE','geodetic_datum','ESRI','106256','EPSG','1171','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104256','GCS_Nepal_Nagarkot',NULL,'geographic 2D','EPSG','6422','ESRI','106256',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104256_USAGE','geodetic_crs','ESRI','104256','EPSG','1171','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104256','geodetic_crs','EPSG','6207','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104256','EPSG','6207','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104257','GCS_ITRF_2008',NULL,'geographic 2D','EPSG','6422','EPSG','1061',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104257_USAGE','geodetic_crs','ESRI','104257','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104257','geodetic_crs','EPSG','8999','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104257','EPSG','8999','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106258','D_ETRF_1989','European Terrestrial Ref. Frame 1989','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106258_USAGE','geodetic_datum','ESRI','106258','EPSG','1298','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104258','GCS_ETRF_1989',NULL,'geographic 2D','EPSG','6422','ESRI','106258',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104258_USAGE','geodetic_crs','ESRI','104258','EPSG','1298','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104258','geodetic_crs','EPSG','9059','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104258','EPSG','9059','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106209','D_NAD_1983_PACP00','NAD 1983 PACP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106209_USAGE','geodetic_datum','ESRI','106209','EPSG','4162','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104259','GCS_NAD_1983_PACP00',NULL,'geographic 2D','EPSG','6422','ESRI','106209',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104259_USAGE','geodetic_crs','ESRI','104259','EPSG','4162','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104259','geodetic_crs','EPSG','9075','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104259','EPSG','9075','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106210','D_NAD_1983_MARP00','NAD 1983 MARP00','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106210_USAGE','geodetic_datum','ESRI','106210','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104260','GCS_NAD_1983_MARP00',NULL,'geographic 2D','EPSG','6422','ESRI','106210',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104260_USAGE','geodetic_crs','ESRI','104260','EPSG','4167','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104260','geodetic_crs','EPSG','9072','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104260','EPSG','9072','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104261','GCS_Merchich',NULL,'geographic 2D','EPSG','6422','EPSG','6261',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104261_USAGE','geodetic_crs','ESRI','104261','EPSG','4581','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104261','geodetic_crs','EPSG','4261','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104261','EPSG','4261','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106286','D_NAD_1983_MA11','NAD 1983 (MA11) - Marianas Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106286_USAGE','geodetic_datum','ESRI','106286','EPSG','4167','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104286','GCS_NAD_1983_MA11',NULL,'geographic 2D','EPSG','6422','ESRI','106286',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104286_USAGE','geodetic_crs','ESRI','104286','EPSG','4167','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104286','geodetic_crs','EPSG','6325','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104286','EPSG','6325','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106287','D_NAD_1983_PA11','NAD 1983 (PA11) - Pacific Plate 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106287_USAGE','geodetic_datum','ESRI','106287','EPSG','4162','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104287','GCS_NAD_1983_PA11',NULL,'geographic 2D','EPSG','6422','ESRI','106287',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104287_USAGE','geodetic_crs','ESRI','104287','EPSG','4162','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104287','geodetic_crs','EPSG','6322','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104287','EPSG','6322','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104304','GCS_Voirol_1875',NULL,'geographic 2D','EPSG','6422','EPSG','6304',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104304_USAGE','geodetic_crs','ESRI','104304','EPSG','1365','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104304','geodetic_crs','EPSG','4304','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104304','EPSG','4304','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104305','GCS_Voirol_Unifie_1960_Degree',NULL,'geographic 2D','EPSG','6422','ESRI','106011',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104305_USAGE','geodetic_crs','ESRI','104305','EPSG','1365','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104602','North_American_1983_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6269',NULL,0); @@ -2482,7 +2482,7 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104646','GCS_PANAMA08_2011',NULL,'geog INSERT INTO "usage" VALUES('ESRI', '104646_USAGE','geodetic_crs','ESRI','104646','EPSG','1186','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104647','ONGD17_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106027',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104647_USAGE','geodetic_crs','ESRI','104647','EPSG','1183','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104647','geodetic_crs','EPSG','9293','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104647','EPSG','9293','ESRI'); INSERT INTO "geodetic_crs" VALUES('ESRI','104648','S-JTSK_[JTSK03]_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1201',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104648_USAGE','geodetic_crs','ESRI','104648','EPSG','1211','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104653','MONREF_1997_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6656',NULL,0); @@ -3139,7 +3139,7 @@ INSERT INTO "geodetic_crs" VALUES('ESRI','104879','Anthe_2015',NULL,'geographic INSERT INTO "usage" VALUES('ESRI', '104879_USAGE','geodetic_crs','ESRI','104879','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104896','GCS_ITRF_2005',NULL,'geographic 2D','EPSG','6422','EPSG','6896',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104896_USAGE','geodetic_crs','ESRI','104896','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104896','geodetic_crs','EPSG','8998','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104896','EPSG','8998','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106890','Pandora_2015','Saturn - Pandora IAU 2015','ESRI','107990','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106890_USAGE','geodetic_datum','ESRI','106890','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104897','Pandora_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106890',NULL,0); @@ -3516,17 +3516,17 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106990','D_Hungarian_Datum_1909','Hu INSERT INTO "usage" VALUES('ESRI', '106990_USAGE','geodetic_datum','ESRI','106990','EPSG','1119','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104990','GCS_HD1909',NULL,'geographic 2D','EPSG','6422','ESRI','106990',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104990_USAGE','geodetic_crs','ESRI','104990','EPSG','1119','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104990','geodetic_crs','EPSG','3819','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104990','EPSG','3819','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106991','D_Iraqi_Geospatial_Reference_System','Iraqi Geospatial Reference System','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106991_USAGE','geodetic_datum','ESRI','106991','EPSG','1124','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104991','GCS_IGRS',NULL,'geographic 2D','EPSG','6422','ESRI','106991',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104991_USAGE','geodetic_crs','ESRI','104991','EPSG','1124','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104991','geodetic_crs','EPSG','3889','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104991','EPSG','3889','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106992','D_MGI_1901','MGI 1901','EPSG','7004','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106992_USAGE','geodetic_datum','ESRI','106992','EPSG','2370','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104992','GCS_MGI_1901',NULL,'geographic 2D','EPSG','6422','ESRI','106992',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104992_USAGE','geodetic_crs','ESRI','104992','EPSG','2370','EPSG','1024'); -INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104992','geodetic_crs','EPSG','3906','ESRI',1); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104992','EPSG','3906','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106893','Prometheus_2015','Saturn - Prometheus IAU 2015','ESRI','107993','ESRI','108900',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', '106893_USAGE','geodetic_datum','ESRI','106893','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104993','Prometheus_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106893',NULL,0); @@ -3555,6 +3555,8 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106899','Charon_2015','Pluto - Charo INSERT INTO "usage" VALUES('ESRI', '106899_USAGE','geodetic_datum','ESRI','106899','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104999','Charon_2015',NULL,'geographic 2D','EPSG','6422','ESRI','106899',NULL,0); INSERT INTO "usage" VALUES('ESRI', '104999_USAGE','geodetic_crs','ESRI','104999','EPSG','1262','EPSG','1024'); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','4305','ESRI','104026','ESRI'); +INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','4812','ESRI','104025','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','2000','Anguilla_1957_British_West_Indies_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','2001','Antigua_1943_British_West_Indies_Grid','ESRI'); INSERT INTO alias_name VALUES('projected_crs','EPSG','2002','Dominica_1945_British_West_Indies_Grid','ESRI'); @@ -16250,884 +16252,884 @@ INSERT INTO "conversion" VALUES('ESRI','112101','unnamed',NULL,'EPSG','9807','Tr INSERT INTO "usage" VALUES('ESRI', 'CONV_112101_USAGE','conversion','ESRI','112101','ESRI','148','EPSG','1024'); INSERT INTO "projected_crs" VALUES('ESRI','112101','OSGB36_National_Highways_C19H2',NULL,'EPSG','4400','EPSG','4277','ESRI','112101',NULL,0); INSERT INTO "usage" VALUES('ESRI', 'PCRS_112101_USAGE','projected_crs','ESRI','112101','ESRI','148','EPSG','1024'); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2181','projected_crs','ESRI','102550','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2182','projected_crs','ESRI','102551','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2183','projected_crs','ESRI','102552','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2184','projected_crs','ESRI','102553','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2185','projected_crs','ESRI','102554','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2186','projected_crs','ESRI','102555','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','2187','projected_crs','ESRI','102556','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31491','projected_crs','ESRI','103972','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31492','projected_crs','ESRI','103973','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31493','projected_crs','ESRI','103974','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31494','projected_crs','ESRI','103975','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31495','projected_crs','ESRI','103976','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31917','projected_crs','EPSG','31986','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31918','projected_crs','EPSG','31987','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31919','projected_crs','EPSG','31988','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31920','projected_crs','EPSG','31989','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31921','projected_crs','EPSG','31990','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','31922','projected_crs','EPSG','31991','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','54035','projected_crs','EPSG','8857','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','54036','projected_crs','EPSG','8858','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','54037','projected_crs','EPSG','8859','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','65163','projected_crs','EPSG','3088','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102006','projected_crs','EPSG','3338','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102040','projected_crs','EPSG','5178','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102046','projected_crs','EPSG','6328','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102047','projected_crs','EPSG','6329','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102048','projected_crs','EPSG','6330','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102049','projected_crs','EPSG','6331','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102050','projected_crs','EPSG','6332','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102051','projected_crs','EPSG','6333','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102052','projected_crs','EPSG','6334','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102053','projected_crs','EPSG','6335','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102054','projected_crs','EPSG','6336','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102055','projected_crs','EPSG','6337','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102056','projected_crs','EPSG','6338','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102057','projected_crs','EPSG','6339','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102058','projected_crs','EPSG','6340','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102059','projected_crs','EPSG','6341','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102065','projected_crs','EPSG','5513','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102066','projected_crs','EPSG','5221','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102067','projected_crs','EPSG','5514','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102080','projected_crs','EPSG','5179','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102081','projected_crs','EPSG','5185','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102082','projected_crs','EPSG','5186','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102083','projected_crs','EPSG','5187','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102084','projected_crs','EPSG','5188','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102085','projected_crs','EPSG','5173','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102086','projected_crs','EPSG','5174','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102087','projected_crs','EPSG','5175','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102088','projected_crs','EPSG','5176','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102089','projected_crs','EPSG','5177','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102090','projected_crs','EPSG','3770','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102091','projected_crs','EPSG','3003','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102092','projected_crs','EPSG','3004','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102095','projected_crs','EPSG','3448','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102100','projected_crs','EPSG','3857','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102110','projected_crs','EPSG','2154','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102111','projected_crs','EPSG','5519','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102112','projected_crs','EPSG','3764','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102113','projected_crs','EPSG','3785','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102119','projected_crs','EPSG','3080','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102123','projected_crs','EPSG','3078','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102124','projected_crs','EPSG','26701','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102125','projected_crs','EPSG','26702','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102126','projected_crs','EPSG','3370','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102127','projected_crs','EPSG','3371','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102128','projected_crs','EPSG','26901','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102129','projected_crs','EPSG','26902','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102130','projected_crs','EPSG','3372','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102131','projected_crs','EPSG','3373','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102139','projected_crs','EPSG','3067','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102140','projected_crs','EPSG','2326','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102145','projected_crs','EPSG','3097','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102146','projected_crs','EPSG','3098','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102147','projected_crs','EPSG','3099','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102148','projected_crs','EPSG','3100','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102149','projected_crs','EPSG','3101','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102151','projected_crs','EPSG','3092','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102152','projected_crs','EPSG','3093','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102153','projected_crs','EPSG','3094','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102154','projected_crs','EPSG','3095','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102155','projected_crs','EPSG','3096','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102167','projected_crs','EPSG','2942','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102169','projected_crs','EPSG','2943','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102170','projected_crs','EPSG','3110','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102171','projected_crs','EPSG','3111','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102172','projected_crs','EPSG','3107','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102180','projected_crs','EPSG','3771','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102181','projected_crs','EPSG','3772','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102182','projected_crs','EPSG','3773','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102183','projected_crs','EPSG','3800','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102184','projected_crs','EPSG','3400','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102185','projected_crs','EPSG','3401','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102186','projected_crs','EPSG','3775','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102187','projected_crs','EPSG','3776','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102188','projected_crs','EPSG','3777','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102189','projected_crs','EPSG','3801','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102190','projected_crs','EPSG','3005','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102191','projected_crs','EPSG','26191','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102192','projected_crs','EPSG','26192','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102199','projected_crs','EPSG','3812','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102200','projected_crs','EPSG','2195','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102201','projected_crs','EPSG','4414','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102202','projected_crs','EPSG','3750','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102203','projected_crs','EPSG','3751','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102205','projected_crs','EPSG','3741','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102206','projected_crs','EPSG','3742','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102207','projected_crs','EPSG','3743','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102208','projected_crs','EPSG','3075','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102209','projected_crs','EPSG','3464','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102210','projected_crs','EPSG','3077','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102211','projected_crs','EPSG','3748','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102212','projected_crs','EPSG','32159','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102214','projected_crs','EPSG','4826','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102218','projected_crs','EPSG','9674','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102229','projected_crs','EPSG','2759','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102230','projected_crs','EPSG','2760','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102234','projected_crs','EPSG','3158','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102235','projected_crs','EPSG','3159','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102236','projected_crs','EPSG','3160','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102241','projected_crs','EPSG','2766','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102242','projected_crs','EPSG','2767','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102243','projected_crs','EPSG','2768','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102244','projected_crs','EPSG','2769','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102245','projected_crs','EPSG','2770','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102246','projected_crs','EPSG','2771','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102248','projected_crs','EPSG','2761','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102249','projected_crs','EPSG','2762','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102250','projected_crs','EPSG','2763','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102251','projected_crs','EPSG','2764','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102252','projected_crs','EPSG','2765','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102253','projected_crs','EPSG','2772','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102254','projected_crs','EPSG','2773','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102255','projected_crs','EPSG','2774','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102256','projected_crs','EPSG','2775','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102257','projected_crs','EPSG','2776','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102258','projected_crs','EPSG','2777','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102259','projected_crs','EPSG','2778','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102260','projected_crs','EPSG','2779','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102261','projected_crs','EPSG','2782','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102262','projected_crs','EPSG','2783','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102263','projected_crs','EPSG','2784','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102264','projected_crs','EPSG','2785','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102265','projected_crs','EPSG','2786','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102266','projected_crs','EPSG','2780','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102267','projected_crs','EPSG','2781','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102268','projected_crs','EPSG','2787','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102269','projected_crs','EPSG','2788','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102270','projected_crs','EPSG','2789','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102271','projected_crs','EPSG','2790','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102272','projected_crs','EPSG','2791','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102273','projected_crs','EPSG','2792','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102274','projected_crs','EPSG','2793','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102275','projected_crs','EPSG','2794','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102276','projected_crs','EPSG','2795','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102277','projected_crs','EPSG','2796','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102278','projected_crs','EPSG','2797','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102279','projected_crs','EPSG','2798','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102280','projected_crs','EPSG','2799','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102281','projected_crs','EPSG','2800','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102282','projected_crs','EPSG','2801','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102283','projected_crs','EPSG','2802','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102284','projected_crs','EPSG','2803','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102285','projected_crs','EPSG','2804','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102286','projected_crs','EPSG','2805','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102287','projected_crs','EPSG','2806','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102288','projected_crs','EPSG','2807','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102289','projected_crs','EPSG','2808','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102290','projected_crs','EPSG','2809','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102291','projected_crs','EPSG','2810','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102292','projected_crs','EPSG','2811','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102293','projected_crs','EPSG','2812','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102294','projected_crs','EPSG','2813','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102295','projected_crs','EPSG','2814','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102296','projected_crs','EPSG','2815','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102297','projected_crs','EPSG','2816','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102298','projected_crs','EPSG','2817','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102300','projected_crs','EPSG','2818','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102304','projected_crs','EPSG','2819','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102305','projected_crs','EPSG','5367','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102307','projected_crs','EPSG','2820','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102308','projected_crs','EPSG','2821','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102309','projected_crs','EPSG','2822','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102310','projected_crs','EPSG','2823','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102311','projected_crs','EPSG','2824','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102312','projected_crs','EPSG','2825','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102313','projected_crs','EPSG','2826','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102314','projected_crs','EPSG','2827','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102315','projected_crs','EPSG','2828','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102316','projected_crs','EPSG','2829','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102317','projected_crs','EPSG','2830','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102318','projected_crs','EPSG','2831','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102320','projected_crs','EPSG','2832','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102321','projected_crs','EPSG','2833','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102322','projected_crs','EPSG','2834','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102323','projected_crs','EPSG','2835','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102324','projected_crs','EPSG','2836','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102325','projected_crs','EPSG','2837','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102326','projected_crs','EPSG','2838','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102327','projected_crs','EPSG','2839','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102330','projected_crs','EPSG','2840','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102331','projected_crs','EPSG','5014','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102332','projected_crs','EPSG','5015','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102333','projected_crs','EPSG','5016','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102334','projected_crs','EPSG','2841','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102335','projected_crs','EPSG','2842','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102336','projected_crs','EPSG','2843','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102337','projected_crs','EPSG','2844','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102338','projected_crs','EPSG','2845','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102339','projected_crs','EPSG','2846','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102340','projected_crs','EPSG','2847','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102341','projected_crs','EPSG','2848','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102342','projected_crs','EPSG','2849','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102343','projected_crs','EPSG','2850','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102344','projected_crs','EPSG','2851','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102345','projected_crs','EPSG','2852','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102346','projected_crs','EPSG','2853','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102347','projected_crs','EPSG','2854','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102348','projected_crs','EPSG','2855','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102349','projected_crs','EPSG','2856','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102350','projected_crs','EPSG','2857','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102351','projected_crs','EPSG','2858','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102352','projected_crs','EPSG','2859','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102353','projected_crs','EPSG','2860','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102354','projected_crs','EPSG','2861','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102355','projected_crs','EPSG','2862','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102356','projected_crs','EPSG','2863','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102357','projected_crs','EPSG','2864','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102358','projected_crs','EPSG','2865','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102361','projected_crs','EPSG','2866','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102362','projected_crs','EPSG','4647','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102363','projected_crs','EPSG','3090','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102376','projected_crs','EPSG','6884','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102377','projected_crs','EPSG','6886','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102378','projected_crs','EPSG','6885','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102379','projected_crs','EPSG','6887','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102380','projected_crs','EPSG','6867','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102381','projected_crs','EPSG','6868','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102382','projected_crs','EPSG','6342','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102383','projected_crs','EPSG','6343','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102384','projected_crs','EPSG','6344','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102385','projected_crs','EPSG','6345','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102386','projected_crs','EPSG','6346','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102387','projected_crs','EPSG','6347','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102388','projected_crs','EPSG','6348','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102420','projected_crs','EPSG','5325','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102439','projected_crs','EPSG','4462','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102441','projected_crs','EPSG','3828','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102442','projected_crs','EPSG','3827','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102443','projected_crs','EPSG','3826','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102444','projected_crs','EPSG','3825','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102449','projected_crs','EPSG','8693','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102463','projected_crs','EPSG','3760','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102466','projected_crs','EPSG','26857','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102467','projected_crs','EPSG','26858','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102468','projected_crs','EPSG','26859','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102469','projected_crs','EPSG','3815','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102490','projected_crs','EPSG','5247','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102493','projected_crs','EPSG','6634','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102494','projected_crs','EPSG','6635','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102495','projected_crs','EPSG','6637','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102496','projected_crs','EPSG','6636','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102500','projected_crs','EPSG','6785','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102501','projected_crs','EPSG','6797','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102502','projected_crs','EPSG','6789','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102503','projected_crs','EPSG','6793','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102504','projected_crs','EPSG','6801','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102505','projected_crs','EPSG','6805','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102506','projected_crs','EPSG','6809','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102507','projected_crs','EPSG','6813','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102508','projected_crs','EPSG','6817','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102509','projected_crs','EPSG','6821','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102510','projected_crs','EPSG','6825','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102511','projected_crs','EPSG','6829','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102512','projected_crs','EPSG','6833','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102513','projected_crs','EPSG','6837','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102514','projected_crs','EPSG','6841','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102515','projected_crs','EPSG','6849','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102516','projected_crs','EPSG','6845','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102517','projected_crs','EPSG','6853','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102518','projected_crs','EPSG','6857','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102519','projected_crs','EPSG','6861','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102520','projected_crs','EPSG','6628','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102521','projected_crs','EPSG','6629','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102522','projected_crs','EPSG','6630','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102523','projected_crs','EPSG','6631','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102524','projected_crs','EPSG','6632','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102527','projected_crs','EPSG','6633','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102530','projected_crs','EPSG','6784','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102531','projected_crs','EPSG','6796','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102532','projected_crs','EPSG','6788','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102533','projected_crs','EPSG','6792','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102534','projected_crs','EPSG','6800','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102535','projected_crs','EPSG','6804','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102536','projected_crs','EPSG','6808','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102537','projected_crs','EPSG','6812','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102538','projected_crs','EPSG','6816','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102539','projected_crs','EPSG','6820','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102540','projected_crs','EPSG','6824','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102541','projected_crs','EPSG','6828','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102542','projected_crs','EPSG','6832','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102543','projected_crs','EPSG','6836','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102544','projected_crs','EPSG','6840','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102545','projected_crs','EPSG','6848','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102546','projected_crs','EPSG','6844','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102547','projected_crs','EPSG','6852','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102548','projected_crs','EPSG','6856','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102549','projected_crs','EPSG','6860','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102557','projected_crs','EPSG','7692','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102558','projected_crs','EPSG','7693','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102559','projected_crs','EPSG','7694','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102560','projected_crs','EPSG','7695','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102561','projected_crs','EPSG','7696','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102590','projected_crs','EPSG','8441','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102593','projected_crs','EPSG','6688','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102594','projected_crs','EPSG','6689','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102595','projected_crs','EPSG','6690','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102596','projected_crs','EPSG','6691','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102597','projected_crs','EPSG','6692','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102601','projected_crs','EPSG','3083','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102602','projected_crs','EPSG','3082','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102603','projected_crs','EPSG','3081','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102605','projected_crs','EPSG','8826','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102606','projected_crs','EPSG','3072','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102607','projected_crs','EPSG','3463','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102608','projected_crs','EPSG','3074','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102609','projected_crs','EPSG','3814','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102610','projected_crs','EPSG','6669','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102611','projected_crs','EPSG','6670','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102612','projected_crs','EPSG','6671','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102613','projected_crs','EPSG','6672','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102614','projected_crs','EPSG','6673','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102615','projected_crs','EPSG','6674','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102616','projected_crs','EPSG','6675','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102617','projected_crs','EPSG','6676','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102618','projected_crs','EPSG','6677','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102619','projected_crs','EPSG','6678','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102620','projected_crs','EPSG','6679','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102621','projected_crs','EPSG','6680','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102622','projected_crs','EPSG','6681','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102623','projected_crs','EPSG','6682','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102624','projected_crs','EPSG','6683','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102625','projected_crs','EPSG','6684','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102626','projected_crs','EPSG','6685','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102627','projected_crs','EPSG','6686','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102628','projected_crs','EPSG','6687','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102641','projected_crs','EPSG','2225','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102642','projected_crs','EPSG','2226','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102643','projected_crs','EPSG','2227','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102644','projected_crs','EPSG','2228','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102645','projected_crs','EPSG','2229','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102646','projected_crs','EPSG','2230','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102647','projected_crs','EPSG','4437','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102651','projected_crs','EPSG','3433','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102652','projected_crs','EPSG','3434','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102653','projected_crs','EPSG','2231','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102654','projected_crs','EPSG','2232','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102655','projected_crs','EPSG','2233','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102656','projected_crs','EPSG','2234','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102657','projected_crs','EPSG','2235','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102658','projected_crs','EPSG','2236','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102659','projected_crs','EPSG','2237','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102660','projected_crs','EPSG','2238','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102663','projected_crs','EPSG','3759','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102666','projected_crs','EPSG','2239','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102667','projected_crs','EPSG','2240','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102668','projected_crs','EPSG','2241','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102669','projected_crs','EPSG','2242','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102670','projected_crs','EPSG','2243','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102671','projected_crs','EPSG','3435','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102672','projected_crs','EPSG','3436','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102673','projected_crs','EPSG','2965','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102674','projected_crs','EPSG','2966','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102675','projected_crs','EPSG','3417','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102676','projected_crs','EPSG','3418','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102677','projected_crs','EPSG','3419','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102678','projected_crs','EPSG','3420','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102679','projected_crs','EPSG','2246','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102680','projected_crs','EPSG','2247','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102681','projected_crs','EPSG','3451','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102682','projected_crs','EPSG','3452','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102683','projected_crs','EPSG','26847','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102684','projected_crs','EPSG','26848','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102685','projected_crs','EPSG','2248','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102686','projected_crs','EPSG','2249','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102687','projected_crs','EPSG','2250','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102691','projected_crs','EPSG','26849','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102692','projected_crs','EPSG','26850','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102693','projected_crs','EPSG','26851','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102694','projected_crs','EPSG','2254','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102695','projected_crs','EPSG','2255','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102704','projected_crs','EPSG','26852','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102706','projected_crs','EPSG','7142','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102707','projected_crs','EPSG','3421','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102708','projected_crs','EPSG','3422','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102709','projected_crs','EPSG','3423','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102710','projected_crs','EPSG','3437','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102711','projected_crs','EPSG','3424','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102712','projected_crs','EPSG','2257','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102713','projected_crs','EPSG','2258','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102714','projected_crs','EPSG','2259','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102715','projected_crs','EPSG','2260','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102716','projected_crs','EPSG','2261','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102717','projected_crs','EPSG','2262','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102718','projected_crs','EPSG','2263','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102719','projected_crs','EPSG','2264','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102722','projected_crs','EPSG','3734','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102723','projected_crs','EPSG','3735','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102724','projected_crs','EPSG','2267','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102725','projected_crs','EPSG','2268','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102728','projected_crs','EPSG','2271','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102729','projected_crs','EPSG','2272','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102730','projected_crs','EPSG','3438','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102734','projected_crs','EPSG','4457','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102735','projected_crs','EPSG','3455','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102736','projected_crs','EPSG','2274','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102737','projected_crs','EPSG','2275','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102738','projected_crs','EPSG','2276','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102739','projected_crs','EPSG','2277','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102740','projected_crs','EPSG','2278','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102741','projected_crs','EPSG','2279','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102742','projected_crs','EPSG','3560','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102743','projected_crs','EPSG','3566','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102744','projected_crs','EPSG','3567','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102745','projected_crs','EPSG','5646','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102746','projected_crs','EPSG','2283','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102747','projected_crs','EPSG','2284','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102748','projected_crs','EPSG','2285','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102749','projected_crs','EPSG','2286','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102750','projected_crs','EPSG','26853','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102751','projected_crs','EPSG','26854','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102752','projected_crs','EPSG','2287','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102753','projected_crs','EPSG','2288','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102754','projected_crs','EPSG','2289','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102755','projected_crs','EPSG','3736','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102756','projected_crs','EPSG','3737','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102757','projected_crs','EPSG','3738','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102758','projected_crs','EPSG','3739','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102762','projected_crs','EPSG','4415','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102763','projected_crs','EPSG','3089','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102764','projected_crs','EPSG','4417','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102765','projected_crs','EPSG','4434','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102767','projected_crs','EPSG','6255','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102768','projected_crs','EPSG','6257','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102769','projected_crs','EPSG','6244','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102770','projected_crs','EPSG','6246','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102771','projected_crs','EPSG','6247','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102772','projected_crs','EPSG','6250','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102773','projected_crs','EPSG','6272','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102774','projected_crs','EPSG','6256','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102775','projected_crs','EPSG','6252','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102776','projected_crs','EPSG','6275','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102777','projected_crs','EPSG','6264','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102778','projected_crs','EPSG','6273','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102779','projected_crs','EPSG','6266','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102780','projected_crs','EPSG','6260','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102781','projected_crs','EPSG','6254','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102782','projected_crs','EPSG','6269','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102783','projected_crs','EPSG','6261','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102784','projected_crs','EPSG','6267','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102785','projected_crs','EPSG','6270','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102786','projected_crs','EPSG','6274','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102787','projected_crs','EPSG','6262','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102788','projected_crs','EPSG','6251','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102789','projected_crs','EPSG','6259','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102790','projected_crs','EPSG','6245','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102791','projected_crs','EPSG','6263','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102792','projected_crs','EPSG','6268','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102793','projected_crs','EPSG','6248','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102794','projected_crs','EPSG','6271','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102795','projected_crs','EPSG','6253','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102796','projected_crs','EPSG','6249','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102797','projected_crs','EPSG','6258','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102798','projected_crs','EPSG','6265','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102901','projected_crs','EPSG','23303','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102902','projected_crs','EPSG','23301','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102903','projected_crs','EPSG','23304','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102904','projected_crs','EPSG','23302','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102905','projected_crs','EPSG','23305','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102906','projected_crs','EPSG','23307','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102907','projected_crs','EPSG','23306','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102908','projected_crs','EPSG','23308','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102909','projected_crs','EPSG','23312','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102910','projected_crs','EPSG','23314','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102911','projected_crs','EPSG','23309','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102912','projected_crs','EPSG','23315','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102913','projected_crs','EPSG','23311','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102914','projected_crs','EPSG','23313','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102915','projected_crs','EPSG','23310','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102916','projected_crs','EPSG','23320','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102917','projected_crs','EPSG','23319','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102918','projected_crs','EPSG','23316','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102919','projected_crs','EPSG','23318','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102920','projected_crs','EPSG','23317','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102921','projected_crs','EPSG','23322','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102922','projected_crs','EPSG','23321','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102923','projected_crs','EPSG','23326','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102924','projected_crs','EPSG','23323','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102925','projected_crs','EPSG','23325','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102926','projected_crs','EPSG','23328','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102927','projected_crs','EPSG','23324','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102928','projected_crs','EPSG','23327','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102929','projected_crs','EPSG','23329','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102930','projected_crs','EPSG','23331','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102931','projected_crs','EPSG','23330','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102932','projected_crs','EPSG','23332','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102933','projected_crs','EPSG','23333','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102962','projected_crs','EPSG','6414','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102963','projected_crs','EPSG','6508','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102965','projected_crs','EPSG','6350','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102966','projected_crs','EPSG','6393','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102967','projected_crs','EPSG','6439','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102968','projected_crs','EPSG','6497','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102969','projected_crs','EPSG','6556','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102970','projected_crs','EPSG','6557','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102971','projected_crs','EPSG','6579','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102972','projected_crs','EPSG','6580','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102973','projected_crs','EPSG','6610','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102975','projected_crs','EPSG','6355','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102976','projected_crs','EPSG','6356','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102977','projected_crs','EPSG','6394','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102978','projected_crs','EPSG','6395','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102979','projected_crs','EPSG','6396','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102980','projected_crs','EPSG','6397','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102981','projected_crs','EPSG','6398','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102982','projected_crs','EPSG','6399','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102983','projected_crs','EPSG','6400','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102984','projected_crs','EPSG','6401','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102985','projected_crs','EPSG','6402','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102986','projected_crs','EPSG','6403','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102987','projected_crs','EPSG','6406','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102988','projected_crs','EPSG','6404','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102989','projected_crs','EPSG','6408','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102990','projected_crs','EPSG','6407','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102991','projected_crs','EPSG','6405','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102992','projected_crs','EPSG','6409','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102993','projected_crs','EPSG','6410','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102994','projected_crs','EPSG','6412','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102995','projected_crs','EPSG','6411','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102996','projected_crs','EPSG','6413','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102997','projected_crs','EPSG','6415','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102998','projected_crs','EPSG','6417','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','102999','projected_crs','EPSG','6419','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103000','projected_crs','EPSG','6421','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103001','projected_crs','EPSG','6423','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103002','projected_crs','EPSG','6425','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103003','projected_crs','EPSG','6416','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103004','projected_crs','EPSG','6418','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103005','projected_crs','EPSG','6420','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103006','projected_crs','EPSG','6422','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103007','projected_crs','EPSG','6424','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103008','projected_crs','EPSG','6426','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103009','projected_crs','EPSG','6429','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103010','projected_crs','EPSG','6427','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103011','projected_crs','EPSG','6431','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103012','projected_crs','EPSG','6430','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103013','projected_crs','EPSG','6428','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103014','projected_crs','EPSG','6432','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103015','projected_crs','EPSG','6433','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103016','projected_crs','EPSG','6434','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103017','projected_crs','EPSG','6435','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103018','projected_crs','EPSG','6436','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103019','projected_crs','EPSG','6437','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103020','projected_crs','EPSG','6442','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103021','projected_crs','EPSG','6440','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103022','projected_crs','EPSG','6438','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103023','projected_crs','EPSG','6443','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103024','projected_crs','EPSG','6441','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103025','projected_crs','EPSG','6444','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103026','projected_crs','EPSG','6446','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103027','projected_crs','EPSG','6445','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103028','projected_crs','EPSG','6447','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103029','projected_crs','EPSG','6450','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103030','projected_crs','EPSG','6448','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103031','projected_crs','EPSG','6452','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103032','projected_crs','EPSG','6451','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103033','projected_crs','EPSG','6449','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103034','projected_crs','EPSG','6453','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103035','projected_crs','EPSG','6454','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103036','projected_crs','EPSG','6456','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103037','projected_crs','EPSG','6455','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103038','projected_crs','EPSG','6457','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103039','projected_crs','EPSG','6458','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103040','projected_crs','EPSG','6460','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103041','projected_crs','EPSG','6459','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103042','projected_crs','EPSG','6461','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103043','projected_crs','EPSG','6462','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103044','projected_crs','EPSG','6464','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103045','projected_crs','EPSG','6463','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103046','projected_crs','EPSG','6465','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103047','projected_crs','EPSG','6466','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103048','projected_crs','EPSG','6468','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103049','projected_crs','EPSG','6467','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103050','projected_crs','EPSG','6469','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103051','projected_crs','EPSG','6470','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103052','projected_crs','EPSG','6471','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103053','projected_crs','EPSG','6472','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103054','projected_crs','EPSG','6473','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103055','projected_crs','EPSG','6474','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103056','projected_crs','EPSG','6475','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103057','projected_crs','EPSG','6476','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103058','projected_crs','EPSG','6478','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103059','projected_crs','EPSG','6477','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103060','projected_crs','EPSG','6479','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103061','projected_crs','EPSG','6483','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103062','projected_crs','EPSG','6485','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103063','projected_crs','EPSG','6484','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103064','projected_crs','EPSG','6486','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103065','projected_crs','EPSG','6481','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103066','projected_crs','EPSG','6480','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103067','projected_crs','EPSG','6482','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103068','projected_crs','EPSG','6487','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103069','projected_crs','EPSG','6488','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103070','projected_crs','EPSG','6491','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103071','projected_crs','EPSG','6489','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103072','projected_crs','EPSG','6492','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103073','projected_crs','EPSG','6490','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103074','projected_crs','EPSG','6495','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103075','projected_crs','EPSG','6493','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103076','projected_crs','EPSG','6498','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103077','projected_crs','EPSG','6496','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103078','projected_crs','EPSG','6494','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103079','projected_crs','EPSG','6499','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103080','projected_crs','EPSG','6502','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103081','projected_crs','EPSG','6500','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103082','projected_crs','EPSG','6504','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103083','projected_crs','EPSG','6503','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103084','projected_crs','EPSG','6501','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103085','projected_crs','EPSG','6505','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103086','projected_crs','EPSG','6506','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103087','projected_crs','EPSG','6509','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103088','projected_crs','EPSG','6507','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103089','projected_crs','EPSG','6510','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103090','projected_crs','EPSG','6512','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103091','projected_crs','EPSG','6511','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103092','projected_crs','EPSG','6513','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103093','projected_crs','EPSG','6514','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103094','projected_crs','EPSG','6515','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103095','projected_crs','EPSG','6516','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103096','projected_crs','EPSG','6880','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103097','projected_crs','EPSG','6520','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103098','projected_crs','EPSG','6518','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103099','projected_crs','EPSG','6522','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103100','projected_crs','EPSG','6521','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103101','projected_crs','EPSG','6519','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103102','projected_crs','EPSG','6523','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103103','projected_crs','EPSG','6524','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103104','projected_crs','EPSG','6525','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103105','projected_crs','EPSG','6526','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103106','projected_crs','EPSG','6527','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103107','projected_crs','EPSG','6530','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103108','projected_crs','EPSG','6528','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103109','projected_crs','EPSG','6532','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103110','projected_crs','EPSG','6531','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103111','projected_crs','EPSG','6529','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103112','projected_crs','EPSG','6533','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103113','projected_crs','EPSG','6536','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103114','projected_crs','EPSG','6534','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103115','projected_crs','EPSG','6540','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103116','projected_crs','EPSG','6538','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103117','projected_crs','EPSG','6537','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103118','projected_crs','EPSG','6535','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103119','projected_crs','EPSG','6541','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103120','projected_crs','EPSG','6539','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103121','projected_crs','EPSG','6542','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103122','projected_crs','EPSG','6543','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103123','projected_crs','EPSG','6544','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103124','projected_crs','EPSG','6546','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103125','projected_crs','EPSG','6545','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103126','projected_crs','EPSG','6547','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103127','projected_crs','EPSG','6548','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103128','projected_crs','EPSG','6550','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103129','projected_crs','EPSG','6549','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103130','projected_crs','EPSG','6551','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103131','projected_crs','EPSG','6552','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103132','projected_crs','EPSG','6554','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103133','projected_crs','EPSG','6553','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103134','projected_crs','EPSG','6555','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103135','projected_crs','EPSG','6558','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103136','projected_crs','EPSG','6560','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103137','projected_crs','EPSG','6559','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103138','projected_crs','EPSG','6561','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103139','projected_crs','EPSG','6562','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103140','projected_crs','EPSG','6563','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103141','projected_crs','EPSG','6564','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103142','projected_crs','EPSG','6565','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103143','projected_crs','EPSG','6567','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103144','projected_crs','EPSG','6568','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103145','projected_crs','EPSG','6569','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103146','projected_crs','EPSG','6570','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103147','projected_crs','EPSG','6571','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103148','projected_crs','EPSG','6573','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103149','projected_crs','EPSG','6572','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103150','projected_crs','EPSG','6574','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103151','projected_crs','EPSG','6575','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103152','projected_crs','EPSG','6576','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103153','projected_crs','EPSG','6581','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103154','projected_crs','EPSG','6583','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103155','projected_crs','EPSG','6577','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103156','projected_crs','EPSG','6587','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103157','projected_crs','EPSG','6585','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103158','projected_crs','EPSG','6582','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103159','projected_crs','EPSG','6584','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103160','projected_crs','EPSG','6578','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103161','projected_crs','EPSG','6588','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103162','projected_crs','EPSG','6586','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103163','projected_crs','EPSG','6620','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103164','projected_crs','EPSG','6619','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103165','projected_crs','EPSG','6621','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103169','projected_crs','EPSG','6626','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103170','projected_crs','EPSG','6625','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103171','projected_crs','EPSG','6627','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103172','projected_crs','EPSG','6589','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103173','projected_crs','EPSG','6590','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103174','projected_crs','EPSG','6592','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103175','projected_crs','EPSG','6594','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103176','projected_crs','EPSG','6593','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103177','projected_crs','EPSG','6595','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103178','projected_crs','EPSG','6596','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103179','projected_crs','EPSG','6598','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103180','projected_crs','EPSG','6597','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103181','projected_crs','EPSG','6599','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103182','projected_crs','EPSG','6600','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103183','projected_crs','EPSG','6602','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103184','projected_crs','EPSG','6601','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103185','projected_crs','EPSG','6603','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103186','projected_crs','EPSG','6606','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103187','projected_crs','EPSG','6879','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103188','projected_crs','EPSG','6608','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103189','projected_crs','EPSG','6607','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103190','projected_crs','EPSG','6605','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103191','projected_crs','EPSG','6609','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103192','projected_crs','EPSG','6611','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103193','projected_crs','EPSG','6613','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103194','projected_crs','EPSG','6617','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103195','projected_crs','EPSG','6615','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103196','projected_crs','EPSG','6612','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103197','projected_crs','EPSG','6614','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103198','projected_crs','EPSG','6618','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103199','projected_crs','EPSG','6616','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103200','projected_crs','EPSG','6566','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103201','projected_crs','EPSG','4048','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103202','projected_crs','EPSG','4049','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103203','projected_crs','EPSG','4050','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103204','projected_crs','EPSG','4051','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103205','projected_crs','EPSG','4056','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103206','projected_crs','EPSG','4057','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103207','projected_crs','EPSG','4058','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103208','projected_crs','EPSG','4059','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103209','projected_crs','EPSG','4060','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103210','projected_crs','EPSG','4061','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103211','projected_crs','EPSG','4062','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103212','projected_crs','EPSG','4063','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103213','projected_crs','EPSG','4071','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103214','projected_crs','EPSG','4082','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103215','projected_crs','EPSG','4083','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103216','projected_crs','EPSG','4093','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103217','projected_crs','EPSG','4094','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103218','projected_crs','EPSG','4095','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103219','projected_crs','EPSG','4096','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103301','projected_crs','EPSG','8222','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103302','projected_crs','EPSG','8218','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103303','projected_crs','EPSG','8214','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103304','projected_crs','EPSG','8212','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103305','projected_crs','EPSG','8209','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103306','projected_crs','EPSG','8207','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103308','projected_crs','EPSG','8203','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103309','projected_crs','EPSG','8201','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103310','projected_crs','EPSG','8198','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103311','projected_crs','EPSG','8196','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103312','projected_crs','EPSG','8191','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103314','projected_crs','EPSG','8184','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103315','projected_crs','EPSG','8181','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103316','projected_crs','EPSG','8179','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103317','projected_crs','EPSG','8092','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103318','projected_crs','EPSG','8090','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103320','projected_crs','EPSG','8173','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103321','projected_crs','EPSG','8171','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103324','projected_crs','EPSG','8165','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103325','projected_crs','EPSG','8163','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103326','projected_crs','EPSG','8161','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103331','projected_crs','EPSG','8155','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103333','projected_crs','EPSG','8153','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103334','projected_crs','EPSG','8151','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103336','projected_crs','EPSG','8149','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103337','projected_crs','EPSG','8147','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103339','projected_crs','EPSG','8145','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103341','projected_crs','EPSG','8143','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103342','projected_crs','EPSG','8141','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103343','projected_crs','EPSG','8139','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103348','projected_crs','EPSG','8135','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103349','projected_crs','EPSG','8133','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103350','projected_crs','EPSG','8131','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103352','projected_crs','EPSG','8129','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103353','projected_crs','EPSG','8127','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103354','projected_crs','EPSG','8125','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103355','projected_crs','EPSG','8123','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103356','projected_crs','EPSG','8121','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103357','projected_crs','EPSG','8119','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103359','projected_crs','EPSG','8117','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103360','projected_crs','EPSG','8115','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103361','projected_crs','EPSG','8113','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103362','projected_crs','EPSG','8111','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103363','projected_crs','EPSG','8109','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103364','projected_crs','EPSG','8107','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103365','projected_crs','EPSG','8105','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103366','projected_crs','EPSG','8103','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103367','projected_crs','EPSG','8101','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103368','projected_crs','EPSG','8099','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103369','projected_crs','EPSG','8097','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103371','projected_crs','EPSG','8095','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103401','projected_crs','EPSG','8224','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103402','projected_crs','EPSG','8220','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103403','projected_crs','EPSG','8216','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103404','projected_crs','EPSG','8213','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103405','projected_crs','EPSG','8210','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103406','projected_crs','EPSG','8208','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103408','projected_crs','EPSG','8204','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103409','projected_crs','EPSG','8202','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103410','projected_crs','EPSG','8200','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103411','projected_crs','EPSG','8197','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103412','projected_crs','EPSG','8193','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103414','projected_crs','EPSG','8185','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103415','projected_crs','EPSG','8182','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103416','projected_crs','EPSG','8180','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103417','projected_crs','EPSG','8093','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103418','projected_crs','EPSG','8091','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103420','projected_crs','EPSG','8177','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103421','projected_crs','EPSG','8172','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103424','projected_crs','EPSG','8166','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103425','projected_crs','EPSG','8164','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103426','projected_crs','EPSG','8162','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103431','projected_crs','EPSG','8156','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103433','projected_crs','EPSG','8154','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103434','projected_crs','EPSG','8152','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103436','projected_crs','EPSG','8150','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103437','projected_crs','EPSG','8148','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103439','projected_crs','EPSG','8146','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103441','projected_crs','EPSG','8144','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103442','projected_crs','EPSG','8142','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103443','projected_crs','EPSG','8140','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103448','projected_crs','EPSG','8136','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103449','projected_crs','EPSG','8134','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103450','projected_crs','EPSG','8132','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103452','projected_crs','EPSG','8130','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103453','projected_crs','EPSG','8128','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103454','projected_crs','EPSG','8126','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103455','projected_crs','EPSG','8124','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103456','projected_crs','EPSG','8122','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103457','projected_crs','EPSG','8120','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103459','projected_crs','EPSG','8118','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103460','projected_crs','EPSG','8116','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103461','projected_crs','EPSG','8114','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103462','projected_crs','EPSG','8112','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103463','projected_crs','EPSG','8110','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103464','projected_crs','EPSG','8108','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103465','projected_crs','EPSG','8106','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103466','projected_crs','EPSG','8104','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103467','projected_crs','EPSG','8102','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103468','projected_crs','EPSG','8100','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103469','projected_crs','EPSG','8098','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103471','projected_crs','EPSG','8096','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103595','projected_crs','EPSG','9295','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103596','projected_crs','EPSG','9296','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103597','projected_crs','EPSG','9297','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103696','projected_crs','EPSG','22619','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103697','projected_crs','EPSG','22620','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103698','projected_crs','EPSG','22621','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103794','projected_crs','EPSG','4484','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103795','projected_crs','EPSG','4485','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103796','projected_crs','EPSG','4486','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103797','projected_crs','EPSG','4487','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103798','projected_crs','EPSG','4488','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103799','projected_crs','EPSG','4489','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103873','projected_crs','EPSG','22615','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103874','projected_crs','EPSG','22616','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103875','projected_crs','EPSG','22617','ESRI',1); -INSERT INTO "supersession" VALUES('projected_crs','ESRI','103876','projected_crs','EPSG','22618','ESRI',1); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2181','ESRI','102550','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2182','ESRI','102551','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2183','ESRI','102552','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2184','ESRI','102553','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2185','ESRI','102554','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2186','ESRI','102555','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','2187','ESRI','102556','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31491','ESRI','103972','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31492','ESRI','103973','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31493','ESRI','103974','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31494','ESRI','103975','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31495','ESRI','103976','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31917','EPSG','31986','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31918','EPSG','31987','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31919','EPSG','31988','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31920','EPSG','31989','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31921','EPSG','31990','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','31922','EPSG','31991','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','54035','EPSG','8857','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','54036','EPSG','8858','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','54037','EPSG','8859','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','65163','EPSG','3088','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102006','EPSG','3338','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102040','EPSG','5178','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102046','EPSG','6328','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102047','EPSG','6329','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102048','EPSG','6330','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102049','EPSG','6331','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102050','EPSG','6332','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102051','EPSG','6333','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102052','EPSG','6334','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102053','EPSG','6335','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102054','EPSG','6336','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102055','EPSG','6337','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102056','EPSG','6338','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102057','EPSG','6339','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102058','EPSG','6340','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102059','EPSG','6341','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102065','EPSG','5513','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102066','EPSG','5221','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102067','EPSG','5514','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102080','EPSG','5179','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102081','EPSG','5185','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102082','EPSG','5186','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102083','EPSG','5187','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102084','EPSG','5188','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102085','EPSG','5173','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102086','EPSG','5174','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102087','EPSG','5175','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102088','EPSG','5176','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102089','EPSG','5177','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102090','EPSG','3770','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102091','EPSG','3003','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102092','EPSG','3004','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102095','EPSG','3448','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102100','EPSG','3857','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102110','EPSG','2154','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102111','EPSG','5519','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102112','EPSG','3764','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102113','EPSG','3785','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102119','EPSG','3080','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102123','EPSG','3078','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102124','EPSG','26701','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102125','EPSG','26702','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102126','EPSG','3370','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102127','EPSG','3371','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102128','EPSG','26901','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102129','EPSG','26902','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102130','EPSG','3372','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102131','EPSG','3373','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102139','EPSG','3067','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102140','EPSG','2326','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102145','EPSG','3097','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102146','EPSG','3098','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102147','EPSG','3099','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102148','EPSG','3100','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102149','EPSG','3101','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102151','EPSG','3092','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102152','EPSG','3093','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102153','EPSG','3094','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102154','EPSG','3095','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102155','EPSG','3096','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102167','EPSG','2942','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102169','EPSG','2943','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102170','EPSG','3110','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102171','EPSG','3111','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102172','EPSG','3107','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102180','EPSG','3771','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102181','EPSG','3772','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102182','EPSG','3773','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102183','EPSG','3800','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102184','EPSG','3400','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102185','EPSG','3401','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102186','EPSG','3775','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102187','EPSG','3776','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102188','EPSG','3777','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102189','EPSG','3801','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102190','EPSG','3005','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102191','EPSG','26191','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102192','EPSG','26192','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102199','EPSG','3812','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102200','EPSG','2195','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102201','EPSG','4414','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102202','EPSG','3750','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102203','EPSG','3751','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102205','EPSG','3741','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102206','EPSG','3742','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102207','EPSG','3743','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102208','EPSG','3075','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102209','EPSG','3464','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102210','EPSG','3077','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102211','EPSG','3748','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102212','EPSG','32159','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102214','EPSG','4826','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102218','EPSG','9674','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102229','EPSG','2759','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102230','EPSG','2760','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102234','EPSG','3158','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102235','EPSG','3159','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102236','EPSG','3160','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102241','EPSG','2766','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102242','EPSG','2767','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102243','EPSG','2768','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102244','EPSG','2769','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102245','EPSG','2770','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102246','EPSG','2771','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102248','EPSG','2761','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102249','EPSG','2762','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102250','EPSG','2763','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102251','EPSG','2764','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102252','EPSG','2765','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102253','EPSG','2772','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102254','EPSG','2773','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102255','EPSG','2774','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102256','EPSG','2775','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102257','EPSG','2776','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102258','EPSG','2777','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102259','EPSG','2778','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102260','EPSG','2779','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102261','EPSG','2782','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102262','EPSG','2783','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102263','EPSG','2784','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102264','EPSG','2785','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102265','EPSG','2786','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102266','EPSG','2780','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102267','EPSG','2781','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102268','EPSG','2787','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102269','EPSG','2788','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102270','EPSG','2789','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102271','EPSG','2790','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102272','EPSG','2791','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102273','EPSG','2792','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102274','EPSG','2793','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102275','EPSG','2794','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102276','EPSG','2795','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102277','EPSG','2796','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102278','EPSG','2797','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102279','EPSG','2798','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102280','EPSG','2799','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102281','EPSG','2800','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102282','EPSG','2801','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102283','EPSG','2802','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102284','EPSG','2803','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102285','EPSG','2804','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102286','EPSG','2805','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102287','EPSG','2806','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102288','EPSG','2807','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102289','EPSG','2808','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102290','EPSG','2809','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102291','EPSG','2810','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102292','EPSG','2811','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102293','EPSG','2812','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102294','EPSG','2813','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102295','EPSG','2814','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102296','EPSG','2815','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102297','EPSG','2816','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102298','EPSG','2817','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102300','EPSG','2818','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102304','EPSG','2819','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102305','EPSG','5367','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102307','EPSG','2820','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102308','EPSG','2821','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102309','EPSG','2822','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102310','EPSG','2823','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102311','EPSG','2824','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102312','EPSG','2825','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102313','EPSG','2826','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102314','EPSG','2827','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102315','EPSG','2828','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102316','EPSG','2829','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102317','EPSG','2830','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102318','EPSG','2831','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102320','EPSG','2832','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102321','EPSG','2833','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102322','EPSG','2834','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102323','EPSG','2835','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102324','EPSG','2836','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102325','EPSG','2837','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102326','EPSG','2838','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102327','EPSG','2839','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102330','EPSG','2840','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102331','EPSG','5014','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102332','EPSG','5015','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102333','EPSG','5016','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102334','EPSG','2841','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102335','EPSG','2842','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102336','EPSG','2843','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102337','EPSG','2844','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102338','EPSG','2845','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102339','EPSG','2846','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102340','EPSG','2847','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102341','EPSG','2848','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102342','EPSG','2849','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102343','EPSG','2850','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102344','EPSG','2851','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102345','EPSG','2852','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102346','EPSG','2853','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102347','EPSG','2854','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102348','EPSG','2855','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102349','EPSG','2856','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102350','EPSG','2857','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102351','EPSG','2858','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102352','EPSG','2859','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102353','EPSG','2860','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102354','EPSG','2861','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102355','EPSG','2862','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102356','EPSG','2863','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102357','EPSG','2864','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102358','EPSG','2865','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102361','EPSG','2866','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102362','EPSG','4647','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102363','EPSG','3090','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102376','EPSG','6884','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102377','EPSG','6886','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102378','EPSG','6885','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102379','EPSG','6887','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102380','EPSG','6867','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102381','EPSG','6868','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102382','EPSG','6342','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102383','EPSG','6343','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102384','EPSG','6344','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102385','EPSG','6345','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102386','EPSG','6346','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102387','EPSG','6347','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102388','EPSG','6348','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102420','EPSG','5325','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102439','EPSG','4462','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102441','EPSG','3828','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102442','EPSG','3827','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102443','EPSG','3826','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102444','EPSG','3825','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102449','EPSG','8693','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102463','EPSG','3760','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102466','EPSG','26857','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102467','EPSG','26858','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102468','EPSG','26859','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102469','EPSG','3815','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102490','EPSG','5247','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102493','EPSG','6634','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102494','EPSG','6635','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102495','EPSG','6637','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102496','EPSG','6636','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102500','EPSG','6785','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102501','EPSG','6797','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102502','EPSG','6789','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102503','EPSG','6793','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102504','EPSG','6801','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102505','EPSG','6805','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102506','EPSG','6809','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102507','EPSG','6813','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102508','EPSG','6817','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102509','EPSG','6821','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102510','EPSG','6825','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102511','EPSG','6829','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102512','EPSG','6833','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102513','EPSG','6837','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102514','EPSG','6841','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102515','EPSG','6849','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102516','EPSG','6845','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102517','EPSG','6853','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102518','EPSG','6857','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102519','EPSG','6861','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102520','EPSG','6628','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102521','EPSG','6629','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102522','EPSG','6630','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102523','EPSG','6631','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102524','EPSG','6632','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102527','EPSG','6633','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102530','EPSG','6784','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102531','EPSG','6796','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102532','EPSG','6788','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102533','EPSG','6792','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102534','EPSG','6800','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102535','EPSG','6804','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102536','EPSG','6808','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102537','EPSG','6812','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102538','EPSG','6816','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102539','EPSG','6820','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102540','EPSG','6824','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102541','EPSG','6828','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102542','EPSG','6832','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102543','EPSG','6836','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102544','EPSG','6840','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102545','EPSG','6848','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102546','EPSG','6844','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102547','EPSG','6852','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102548','EPSG','6856','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102549','EPSG','6860','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102557','EPSG','7692','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102558','EPSG','7693','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102559','EPSG','7694','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102560','EPSG','7695','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102561','EPSG','7696','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102590','EPSG','8441','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102593','EPSG','6688','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102594','EPSG','6689','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102595','EPSG','6690','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102596','EPSG','6691','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102597','EPSG','6692','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102601','EPSG','3083','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102602','EPSG','3082','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102603','EPSG','3081','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102605','EPSG','8826','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102606','EPSG','3072','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102607','EPSG','3463','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102608','EPSG','3074','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102609','EPSG','3814','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102610','EPSG','6669','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102611','EPSG','6670','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102612','EPSG','6671','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102613','EPSG','6672','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102614','EPSG','6673','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102615','EPSG','6674','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102616','EPSG','6675','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102617','EPSG','6676','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102618','EPSG','6677','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102619','EPSG','6678','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102620','EPSG','6679','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102621','EPSG','6680','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102622','EPSG','6681','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102623','EPSG','6682','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102624','EPSG','6683','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102625','EPSG','6684','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102626','EPSG','6685','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102627','EPSG','6686','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102628','EPSG','6687','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102641','EPSG','2225','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102642','EPSG','2226','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102643','EPSG','2227','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102644','EPSG','2228','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102645','EPSG','2229','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102646','EPSG','2230','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102647','EPSG','4437','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102651','EPSG','3433','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102652','EPSG','3434','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102653','EPSG','2231','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102654','EPSG','2232','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102655','EPSG','2233','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102656','EPSG','2234','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102657','EPSG','2235','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102658','EPSG','2236','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102659','EPSG','2237','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102660','EPSG','2238','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102663','EPSG','3759','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102666','EPSG','2239','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102667','EPSG','2240','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102668','EPSG','2241','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102669','EPSG','2242','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102670','EPSG','2243','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102671','EPSG','3435','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102672','EPSG','3436','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102673','EPSG','2965','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102674','EPSG','2966','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102675','EPSG','3417','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102676','EPSG','3418','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102677','EPSG','3419','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102678','EPSG','3420','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102679','EPSG','2246','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102680','EPSG','2247','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102681','EPSG','3451','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102682','EPSG','3452','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102683','EPSG','26847','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102684','EPSG','26848','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102685','EPSG','2248','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102686','EPSG','2249','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102687','EPSG','2250','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102691','EPSG','26849','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102692','EPSG','26850','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102693','EPSG','26851','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102694','EPSG','2254','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102695','EPSG','2255','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102704','EPSG','26852','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102706','EPSG','7142','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102707','EPSG','3421','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102708','EPSG','3422','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102709','EPSG','3423','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102710','EPSG','3437','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102711','EPSG','3424','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102712','EPSG','2257','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102713','EPSG','2258','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102714','EPSG','2259','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102715','EPSG','2260','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102716','EPSG','2261','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102717','EPSG','2262','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102718','EPSG','2263','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102719','EPSG','2264','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102722','EPSG','3734','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102723','EPSG','3735','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102724','EPSG','2267','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102725','EPSG','2268','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102728','EPSG','2271','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102729','EPSG','2272','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102730','EPSG','3438','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102734','EPSG','4457','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102735','EPSG','3455','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102736','EPSG','2274','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102737','EPSG','2275','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102738','EPSG','2276','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102739','EPSG','2277','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102740','EPSG','2278','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102741','EPSG','2279','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102742','EPSG','3560','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102743','EPSG','3566','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102744','EPSG','3567','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102745','EPSG','5646','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102746','EPSG','2283','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102747','EPSG','2284','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102748','EPSG','2285','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102749','EPSG','2286','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102750','EPSG','26853','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102751','EPSG','26854','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102752','EPSG','2287','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102753','EPSG','2288','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102754','EPSG','2289','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102755','EPSG','3736','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102756','EPSG','3737','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102757','EPSG','3738','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102758','EPSG','3739','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102762','EPSG','4415','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102763','EPSG','3089','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102764','EPSG','4417','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102765','EPSG','4434','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102767','EPSG','6255','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102768','EPSG','6257','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102769','EPSG','6244','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102770','EPSG','6246','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102771','EPSG','6247','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102772','EPSG','6250','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102773','EPSG','6272','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102774','EPSG','6256','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102775','EPSG','6252','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102776','EPSG','6275','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102777','EPSG','6264','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102778','EPSG','6273','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102779','EPSG','6266','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102780','EPSG','6260','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102781','EPSG','6254','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102782','EPSG','6269','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102783','EPSG','6261','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102784','EPSG','6267','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102785','EPSG','6270','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102786','EPSG','6274','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102787','EPSG','6262','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102788','EPSG','6251','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102789','EPSG','6259','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102790','EPSG','6245','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102791','EPSG','6263','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102792','EPSG','6268','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102793','EPSG','6248','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102794','EPSG','6271','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102795','EPSG','6253','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102796','EPSG','6249','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102797','EPSG','6258','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102798','EPSG','6265','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102901','EPSG','23303','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102902','EPSG','23301','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102903','EPSG','23304','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102904','EPSG','23302','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102905','EPSG','23305','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102906','EPSG','23307','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102907','EPSG','23306','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102908','EPSG','23308','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102909','EPSG','23312','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102910','EPSG','23314','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102911','EPSG','23309','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102912','EPSG','23315','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102913','EPSG','23311','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102914','EPSG','23313','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102915','EPSG','23310','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102916','EPSG','23320','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102917','EPSG','23319','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102918','EPSG','23316','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102919','EPSG','23318','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102920','EPSG','23317','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102921','EPSG','23322','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102922','EPSG','23321','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102923','EPSG','23326','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102924','EPSG','23323','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102925','EPSG','23325','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102926','EPSG','23328','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102927','EPSG','23324','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102928','EPSG','23327','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102929','EPSG','23329','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102930','EPSG','23331','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102931','EPSG','23330','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102932','EPSG','23332','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102933','EPSG','23333','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102962','EPSG','6414','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102963','EPSG','6508','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102965','EPSG','6350','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102966','EPSG','6393','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102967','EPSG','6439','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102968','EPSG','6497','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102969','EPSG','6556','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102970','EPSG','6557','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102971','EPSG','6579','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102972','EPSG','6580','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102973','EPSG','6610','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102975','EPSG','6355','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102976','EPSG','6356','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102977','EPSG','6394','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102978','EPSG','6395','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102979','EPSG','6396','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102980','EPSG','6397','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102981','EPSG','6398','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102982','EPSG','6399','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102983','EPSG','6400','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102984','EPSG','6401','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102985','EPSG','6402','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102986','EPSG','6403','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102987','EPSG','6406','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102988','EPSG','6404','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102989','EPSG','6408','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102990','EPSG','6407','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102991','EPSG','6405','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102992','EPSG','6409','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102993','EPSG','6410','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102994','EPSG','6412','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102995','EPSG','6411','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102996','EPSG','6413','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102997','EPSG','6415','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102998','EPSG','6417','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102999','EPSG','6419','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103000','EPSG','6421','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103001','EPSG','6423','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103002','EPSG','6425','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103003','EPSG','6416','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103004','EPSG','6418','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103005','EPSG','6420','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103006','EPSG','6422','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103007','EPSG','6424','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103008','EPSG','6426','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103009','EPSG','6429','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103010','EPSG','6427','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103011','EPSG','6431','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103012','EPSG','6430','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103013','EPSG','6428','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103014','EPSG','6432','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103015','EPSG','6433','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103016','EPSG','6434','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103017','EPSG','6435','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103018','EPSG','6436','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103019','EPSG','6437','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103020','EPSG','6442','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103021','EPSG','6440','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103022','EPSG','6438','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103023','EPSG','6443','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103024','EPSG','6441','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103025','EPSG','6444','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103026','EPSG','6446','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103027','EPSG','6445','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103028','EPSG','6447','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103029','EPSG','6450','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103030','EPSG','6448','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103031','EPSG','6452','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103032','EPSG','6451','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103033','EPSG','6449','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103034','EPSG','6453','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103035','EPSG','6454','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103036','EPSG','6456','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103037','EPSG','6455','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103038','EPSG','6457','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103039','EPSG','6458','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103040','EPSG','6460','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103041','EPSG','6459','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103042','EPSG','6461','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103043','EPSG','6462','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103044','EPSG','6464','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103045','EPSG','6463','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103046','EPSG','6465','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103047','EPSG','6466','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103048','EPSG','6468','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103049','EPSG','6467','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103050','EPSG','6469','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103051','EPSG','6470','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103052','EPSG','6471','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103053','EPSG','6472','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103054','EPSG','6473','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103055','EPSG','6474','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103056','EPSG','6475','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103057','EPSG','6476','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103058','EPSG','6478','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103059','EPSG','6477','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103060','EPSG','6479','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103061','EPSG','6483','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103062','EPSG','6485','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103063','EPSG','6484','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103064','EPSG','6486','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103065','EPSG','6481','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103066','EPSG','6480','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103067','EPSG','6482','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103068','EPSG','6487','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103069','EPSG','6488','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103070','EPSG','6491','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103071','EPSG','6489','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103072','EPSG','6492','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103073','EPSG','6490','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103074','EPSG','6495','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103075','EPSG','6493','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103076','EPSG','6498','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103077','EPSG','6496','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103078','EPSG','6494','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103079','EPSG','6499','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103080','EPSG','6502','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103081','EPSG','6500','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103082','EPSG','6504','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103083','EPSG','6503','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103084','EPSG','6501','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103085','EPSG','6505','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103086','EPSG','6506','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103087','EPSG','6509','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103088','EPSG','6507','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103089','EPSG','6510','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103090','EPSG','6512','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103091','EPSG','6511','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103092','EPSG','6513','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103093','EPSG','6514','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103094','EPSG','6515','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103095','EPSG','6516','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103096','EPSG','6880','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103097','EPSG','6520','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103098','EPSG','6518','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103099','EPSG','6522','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103100','EPSG','6521','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103101','EPSG','6519','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103102','EPSG','6523','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103103','EPSG','6524','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103104','EPSG','6525','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103105','EPSG','6526','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103106','EPSG','6527','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103107','EPSG','6530','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103108','EPSG','6528','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103109','EPSG','6532','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103110','EPSG','6531','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103111','EPSG','6529','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103112','EPSG','6533','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103113','EPSG','6536','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103114','EPSG','6534','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103115','EPSG','6540','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103116','EPSG','6538','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103117','EPSG','6537','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103118','EPSG','6535','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103119','EPSG','6541','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103120','EPSG','6539','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103121','EPSG','6542','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103122','EPSG','6543','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103123','EPSG','6544','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103124','EPSG','6546','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103125','EPSG','6545','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103126','EPSG','6547','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103127','EPSG','6548','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103128','EPSG','6550','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103129','EPSG','6549','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103130','EPSG','6551','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103131','EPSG','6552','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103132','EPSG','6554','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103133','EPSG','6553','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103134','EPSG','6555','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103135','EPSG','6558','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103136','EPSG','6560','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103137','EPSG','6559','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103138','EPSG','6561','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103139','EPSG','6562','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103140','EPSG','6563','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103141','EPSG','6564','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103142','EPSG','6565','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103143','EPSG','6567','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103144','EPSG','6568','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103145','EPSG','6569','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103146','EPSG','6570','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103147','EPSG','6571','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103148','EPSG','6573','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103149','EPSG','6572','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103150','EPSG','6574','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103151','EPSG','6575','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103152','EPSG','6576','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103153','EPSG','6581','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103154','EPSG','6583','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103155','EPSG','6577','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103156','EPSG','6587','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103157','EPSG','6585','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103158','EPSG','6582','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103159','EPSG','6584','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103160','EPSG','6578','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103161','EPSG','6588','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103162','EPSG','6586','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103163','EPSG','6620','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103164','EPSG','6619','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103165','EPSG','6621','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103169','EPSG','6626','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103170','EPSG','6625','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103171','EPSG','6627','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103172','EPSG','6589','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103173','EPSG','6590','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103174','EPSG','6592','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103175','EPSG','6594','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103176','EPSG','6593','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103177','EPSG','6595','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103178','EPSG','6596','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103179','EPSG','6598','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103180','EPSG','6597','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103181','EPSG','6599','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103182','EPSG','6600','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103183','EPSG','6602','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103184','EPSG','6601','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103185','EPSG','6603','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103186','EPSG','6606','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103187','EPSG','6879','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103188','EPSG','6608','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103189','EPSG','6607','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103190','EPSG','6605','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103191','EPSG','6609','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103192','EPSG','6611','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103193','EPSG','6613','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103194','EPSG','6617','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103195','EPSG','6615','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103196','EPSG','6612','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103197','EPSG','6614','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103198','EPSG','6618','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103199','EPSG','6616','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103200','EPSG','6566','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103201','EPSG','4048','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103202','EPSG','4049','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103203','EPSG','4050','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103204','EPSG','4051','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103205','EPSG','4056','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103206','EPSG','4057','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103207','EPSG','4058','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103208','EPSG','4059','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103209','EPSG','4060','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103210','EPSG','4061','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103211','EPSG','4062','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103212','EPSG','4063','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103213','EPSG','4071','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103214','EPSG','4082','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103215','EPSG','4083','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103216','EPSG','4093','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103217','EPSG','4094','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103218','EPSG','4095','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103219','EPSG','4096','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103301','EPSG','8222','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103302','EPSG','8218','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103303','EPSG','8214','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103304','EPSG','8212','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103305','EPSG','8209','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103306','EPSG','8207','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103308','EPSG','8203','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103309','EPSG','8201','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103310','EPSG','8198','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103311','EPSG','8196','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103312','EPSG','8191','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103314','EPSG','8184','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103315','EPSG','8181','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103316','EPSG','8179','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103317','EPSG','8092','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103318','EPSG','8090','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103320','EPSG','8173','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103321','EPSG','8171','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103324','EPSG','8165','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103325','EPSG','8163','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103326','EPSG','8161','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103331','EPSG','8155','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103333','EPSG','8153','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103334','EPSG','8151','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103336','EPSG','8149','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103337','EPSG','8147','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103339','EPSG','8145','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103341','EPSG','8143','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103342','EPSG','8141','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103343','EPSG','8139','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103348','EPSG','8135','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103349','EPSG','8133','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103350','EPSG','8131','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103352','EPSG','8129','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103353','EPSG','8127','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103354','EPSG','8125','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103355','EPSG','8123','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103356','EPSG','8121','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103357','EPSG','8119','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103359','EPSG','8117','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103360','EPSG','8115','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103361','EPSG','8113','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103362','EPSG','8111','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103363','EPSG','8109','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103364','EPSG','8107','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103365','EPSG','8105','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103366','EPSG','8103','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103367','EPSG','8101','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103368','EPSG','8099','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103369','EPSG','8097','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103371','EPSG','8095','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103401','EPSG','8224','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103402','EPSG','8220','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103403','EPSG','8216','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103404','EPSG','8213','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103405','EPSG','8210','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103406','EPSG','8208','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103408','EPSG','8204','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103409','EPSG','8202','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103410','EPSG','8200','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103411','EPSG','8197','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103412','EPSG','8193','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103414','EPSG','8185','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103415','EPSG','8182','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103416','EPSG','8180','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103417','EPSG','8093','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103418','EPSG','8091','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103420','EPSG','8177','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103421','EPSG','8172','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103424','EPSG','8166','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103425','EPSG','8164','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103426','EPSG','8162','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103431','EPSG','8156','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103433','EPSG','8154','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103434','EPSG','8152','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103436','EPSG','8150','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103437','EPSG','8148','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103439','EPSG','8146','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103441','EPSG','8144','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103442','EPSG','8142','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103443','EPSG','8140','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103448','EPSG','8136','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103449','EPSG','8134','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103450','EPSG','8132','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103452','EPSG','8130','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103453','EPSG','8128','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103454','EPSG','8126','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103455','EPSG','8124','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103456','EPSG','8122','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103457','EPSG','8120','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103459','EPSG','8118','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103460','EPSG','8116','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103461','EPSG','8114','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103462','EPSG','8112','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103463','EPSG','8110','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103464','EPSG','8108','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103465','EPSG','8106','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103466','EPSG','8104','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103467','EPSG','8102','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103468','EPSG','8100','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103469','EPSG','8098','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103471','EPSG','8096','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103595','EPSG','9295','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103596','EPSG','9296','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103597','EPSG','9297','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103696','EPSG','22619','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103697','EPSG','22620','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103698','EPSG','22621','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103794','EPSG','4484','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103795','EPSG','4485','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103796','EPSG','4486','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103797','EPSG','4487','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103798','EPSG','4488','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103799','EPSG','4489','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103873','EPSG','22615','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103874','EPSG','22616','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103875','EPSG','22617','ESRI'); +INSERT INTO "deprecation" VALUES('projected_crs','ESRI','103876','EPSG','22618','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1027','EGM2008_Geoid','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1028','Fao_1979','ESRI'); INSERT INTO alias_name VALUES('vertical_datum','EPSG','1039','New_Zealand_Vertical_Datum_2009','ESRI'); @@ -17621,45 +17623,45 @@ INSERT INTO "vertical_datum" VALUES('ESRI','105101','Dansk_Vertikal_Reference_19 INSERT INTO "usage" VALUES('ESRI', '105101_USAGE','vertical_datum','ESRI','105101','EPSG','3237','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105701','DVR90',NULL,'EPSG','6499','ESRI','105101',1); INSERT INTO "usage" VALUES('ESRI', '105701_USAGE','vertical_crs','ESRI','105701','EPSG','3237','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105701','vertical_crs','EPSG','5799','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105701','EPSG','5799','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105102','Rikets_Hojdsystem_2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105102_USAGE','vertical_datum','ESRI','105102','EPSG','3313','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105702','RH2000',NULL,'EPSG','6499','ESRI','105102',1); INSERT INTO "usage" VALUES('ESRI', '105702_USAGE','vertical_crs','ESRI','105702','EPSG','3313','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105702','vertical_crs','EPSG','5613','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105702','EPSG','5613','ESRI'); INSERT INTO "vertical_crs" VALUES('ESRI','105703','NAVD88_height_(ftUS)',NULL,'EPSG','6497','EPSG','5103',1); INSERT INTO "usage" VALUES('ESRI', '105703_USAGE','vertical_crs','ESRI','105703','EPSG','3664','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105703','vertical_crs','EPSG','6360','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105703','EPSG','6360','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105104','Lithuanian_Height_System_2007',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105104_USAGE','vertical_datum','ESRI','105104','EPSG','3272','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105704','LAS07_height',NULL,'EPSG','6499','ESRI','105104',1); INSERT INTO "usage" VALUES('ESRI', '105704_USAGE','vertical_crs','ESRI','105704','EPSG','3272','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105704','vertical_crs','EPSG','9666','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105704','EPSG','9666','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105290','EGM2008_Geoid',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105290_USAGE','vertical_datum','ESRI','105290','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105790','EGM2008_Geoid',NULL,'EPSG','6499','ESRI','105290',1); INSERT INTO "usage" VALUES('ESRI', '105790_USAGE','vertical_crs','ESRI','105790','EPSG','1262','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105790','vertical_crs','EPSG','3855','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105790','EPSG','3855','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105291','Fao_1979',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105291_USAGE','vertical_datum','ESRI','105291','EPSG','3625','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105791','Fao_1979',NULL,'EPSG','6499','ESRI','105291',1); INSERT INTO "usage" VALUES('ESRI', '105791_USAGE','vertical_crs','ESRI','105791','EPSG','3625','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105791','vertical_crs','EPSG','3886','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105791','EPSG','3886','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105292','New_Zealand_Vertical_Datum_2009',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105292_USAGE','vertical_datum','ESRI','105292','EPSG','1175','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105792','NZVD2009_height',NULL,'EPSG','6499','ESRI','105292',1); INSERT INTO "usage" VALUES('ESRI', '105792_USAGE','vertical_crs','ESRI','105792','EPSG','1175','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105792','vertical_crs','EPSG','4440','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105792','EPSG','4440','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105293','N2000',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105293_USAGE','vertical_datum','ESRI','105293','EPSG','3333','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105793','N2000_height',NULL,'EPSG','6499','ESRI','105293',1); INSERT INTO "usage" VALUES('ESRI', '105793_USAGE','vertical_crs','ESRI','105793','EPSG','3333','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105793','vertical_crs','EPSG','3900','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105793','EPSG','3900','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','105294','Dunedin_Bluff_1960',NULL,NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '105294_USAGE','vertical_datum','ESRI','105294','EPSG','3806','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','105794','Dunedin_Bluff_1960_height',NULL,'EPSG','6499','ESRI','105294',1); INSERT INTO "usage" VALUES('ESRI', '105794_USAGE','vertical_crs','ESRI','105794','EPSG','3806','EPSG','1024'); -INSERT INTO "supersession" VALUES('vertical_crs','ESRI','105794','vertical_crs','EPSG','4458','ESRI',1); +INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','105794','EPSG','4458','ESRI'); INSERT INTO "vertical_datum" VALUES('ESRI','from_geogdatum_EPSG_6326','D_WGS_1984',NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('ESRI', 'from_geogdatum_EPSG_6326_USAGE','vertical_datum','ESRI','from_geogdatum_EPSG_6326','EPSG','1262','EPSG','1024'); INSERT INTO "vertical_crs" VALUES('ESRI','115700','WGS_1984',NULL,'ESRI','ELLPS_HEIGHT_METRE','ESRI','from_geogdatum_EPSG_6326',0); diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index 8029a98e47..0a45ed5330 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -1384,8 +1384,6 @@ FOR EACH ROW BEGIN WHERE NOT EXISTS (SELECT 1 FROM object_view o WHERE o.table_name = NEW.table_name AND o.auth_name = NEW.auth_name AND o.code = NEW.code); END; --- For ESRI stuff --- typically deprecated is the 'wkid' column of deprecated = 'yes' entries in the .csv files, and non_deprecates is the 'latestWkid' column -- For EPSG, used to track superseded coordinate operations. CREATE TABLE supersession( superseded_table_name TEXT NOT NULL CHECK (superseded_table_name IN ( diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index bff118364d..6659d0c343 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -526,6 +526,11 @@ def import_datum(): def import_geogcs(): + + # Those 2 maps are used to fill the deprecation table + map_code_to_authority = {} + mapDeprecatedToNonDeprecated = {} + with open(path_to_csv / 'pe_list_geogcs.csv', 'rt') as csvfile: reader = csv.reader(csvfile) header = next(reader) @@ -595,6 +600,8 @@ def import_geogcs(): print("GeogCRS ESRI:%s (%s) has the same name as EPSG:%s. Fixing authority to be EPSG" % (latestWkid, esri_name, latestWkid)) authority = "EPSG" + map_code_to_authority[code] = authority.upper() + if authority == 'EPSG': map_geogcs_esri_name_to_auth_code[esri_name] = [ @@ -731,9 +738,19 @@ def import_geogcs(): src_row = cursor.fetchone() assert src_row, (code, latestWkid) - sql = """INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','%s','geodetic_crs','EPSG','%s','ESRI',1);""" % ( + sql = """INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( code, latestWkid) all_sql.append(sql) + elif deprecated and code != latestWkid: + mapDeprecatedToNonDeprecated[code] = latestWkid + + + for code in mapDeprecatedToNonDeprecated: + replacement_code = mapDeprecatedToNonDeprecated[code] + if replacement_code in map_code_to_authority: + sql = """INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','%s','%s','%s','ESRI');""" % ( + code, map_code_to_authority[replacement_code], replacement_code) + all_sql.append(sql) ######################## @@ -1258,6 +1275,7 @@ def insert_conversion_sql(esri_code: str, esri_name: str, epsg_code: str, epsg_n def import_projcs(): + with open(path_to_csv / 'pe_list_projcs.csv', 'rt') as csvfile: reader = csv.reader(csvfile) header = next(reader) @@ -1513,7 +1531,7 @@ def import_projcs(): latestWkid = mapDeprecatedToNonDeprecated[deprecated] if latestWkid in wkid_set: - sql = """INSERT INTO "supersession" VALUES('projected_crs','ESRI','%s','projected_crs','ESRI','%s','ESRI',1);""" % ( + sql = """INSERT INTO "deprecation" VALUES('projected_crs','ESRI','%s','ESRI','%s','ESRI');""" % ( code, latestWkid) all_sql.append(sql) else: @@ -1521,7 +1539,7 @@ def import_projcs(): "SELECT name FROM projected_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) src_row = cursor.fetchone() assert src_row, row - sql = """INSERT INTO "supersession" VALUES('projected_crs','ESRI','%s','projected_crs','EPSG','%s','ESRI',1);""" % ( + sql = """INSERT INTO "deprecation" VALUES('projected_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( code, latestWkid) all_sql.append(sql) @@ -1615,6 +1633,11 @@ def import_vdatum(): def import_vertcs(): + + # Those 2 maps are used to fill the deprecation table + map_code_to_authority = {} + mapDeprecatedToNonDeprecated = {} + with open(path_to_csv / 'pe_list_vertcs.csv', 'rt') as csvfile: reader = csv.reader(csvfile) header = next(reader) @@ -1693,6 +1716,8 @@ def import_vertcs(): print("VertCRS ESRI:%s (%s) has the same name as EPSG:%s. Fixing authority to be EPSG" % (latestWkid, esri_name, latestWkid)) authority = "EPSG" + map_code_to_authority[code] = authority.upper() + if authority == 'EPSG': map_vertcs_esri_name_to_auth_code[esri_name] = [ @@ -1825,9 +1850,19 @@ def import_vertcs(): src_row = cursor.fetchone() assert src_row - sql = """INSERT INTO "supersession" VALUES('vertical_crs','ESRI','%s','vertical_crs','EPSG','%s','ESRI',1);""" % ( + sql = """INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( code, latestWkid) all_sql.append(sql) + elif deprecated and code != latestWkid: + mapDeprecatedToNonDeprecated[code] = latestWkid + + + for code in mapDeprecatedToNonDeprecated: + replacement_code = mapDeprecatedToNonDeprecated[code] + if replacement_code in map_code_to_authority: + sql = """INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','%s','%s','%s','ESRI');""" % ( + code, map_code_to_authority[replacement_code], replacement_code) + all_sql.append(sql) ######################## From 9866bef2817d85f19560b892453538aebea94dfa Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 29 Jan 2024 14:21:20 +0100 Subject: [PATCH 154/199] Database (ESRI): do not add an entry in deprecated table for a deprecated CRS that would be obsoleted by a deprecated EPSG CRS --- data/sql/esri.sql | 3 --- scripts/build_db_from_esri.py | 32 ++++++++++++++++++-------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/data/sql/esri.sql b/data/sql/esri.sql index 93e531f57b..df3517a8df 100644 --- a/data/sql/esri.sql +++ b/data/sql/esri.sql @@ -1995,7 +1995,6 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106228','D_Viti_Levu_1916','Viti Lev INSERT INTO "usage" VALUES('ESRI', '106228_USAGE','geodetic_datum','ESRI','106228','EPSG','3195','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37228','GCS_Viti_Levu_1916',NULL,'geographic 2D','EPSG','6422','ESRI','106228',NULL,1); INSERT INTO "usage" VALUES('ESRI', '37228_USAGE','geodetic_crs','ESRI','37228','EPSG','3195','EPSG','1024'); -INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','37228','EPSG','4731','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106229','D_Wake_Eniwetok_1960','Wake-Eniwetok 1960 (Marshall Islands 1960)','EPSG','7053','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106229_USAGE','geodetic_datum','ESRI','106229','EPSG','3191','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','37229','GCS_Wake_Eniwetok_1960',NULL,'geographic 2D','EPSG','6422','ESRI','106229',NULL,1); @@ -2416,7 +2415,6 @@ INSERT INTO "geodetic_datum" VALUES('ESRI','106283','D_WGS_1984_Major_Auxiliary_ INSERT INTO "usage" VALUES('ESRI', '106283_USAGE','geodetic_datum','ESRI','106283','EPSG','1262','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104199','GCS_WGS_1984_Major_Auxiliary_Sphere',NULL,'geographic 2D','EPSG','6422','ESRI','106283',NULL,1); INSERT INTO "usage" VALUES('ESRI', '104199_USAGE','geodetic_crs','ESRI','104199','EPSG','1262','EPSG','1024'); -INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','104199','EPSG','4055','ESRI'); INSERT INTO "geodetic_datum" VALUES('ESRI','106223','D_NAD_1983_CORS96','NAD 1983 (CORS96)','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('ESRI', '106223_USAGE','geodetic_datum','ESRI','106223','EPSG','1511','EPSG','1024'); INSERT INTO "geodetic_crs" VALUES('ESRI','104223','GCS_NAD_1983_CORS96',NULL,'geographic 2D','EPSG','6422','ESRI','106223',NULL,1); @@ -16311,7 +16309,6 @@ INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102100','EPSG','3857',' INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102110','EPSG','2154','ESRI'); INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102111','EPSG','5519','ESRI'); INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102112','EPSG','3764','ESRI'); -INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102113','EPSG','3785','ESRI'); INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102119','EPSG','3080','ESRI'); INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102123','EPSG','3078','ESRI'); INSERT INTO "deprecation" VALUES('projected_crs','ESRI','102124','EPSG','26701','ESRI'); diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index 6659d0c343..ccd051c9c3 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -734,13 +734,14 @@ def import_geogcs(): if deprecated and code != latestWkid and code not in ('4305', '4812'): # Voirol 1960 no longer in EPSG cursor.execute( - "SELECT name FROM geodetic_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) + "SELECT name, deprecated FROM geodetic_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) src_row = cursor.fetchone() assert src_row, (code, latestWkid) - - sql = """INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( - code, latestWkid) - all_sql.append(sql) + _, deprecated = src_row + if not deprecated: + sql = """INSERT INTO "deprecation" VALUES('geodetic_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( + code, latestWkid) + all_sql.append(sql) elif deprecated and code != latestWkid: mapDeprecatedToNonDeprecated[code] = latestWkid @@ -1536,12 +1537,14 @@ def import_projcs(): all_sql.append(sql) else: cursor.execute( - "SELECT name FROM projected_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) + "SELECT name, deprecated FROM projected_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) src_row = cursor.fetchone() assert src_row, row - sql = """INSERT INTO "deprecation" VALUES('projected_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( - code, latestWkid) - all_sql.append(sql) + _, deprecated = src_row + if not deprecated: + sql = """INSERT INTO "deprecation" VALUES('projected_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( + code, latestWkid) + all_sql.append(sql) ######################## @@ -1846,13 +1849,14 @@ def import_vertcs(): if deprecated and code != latestWkid: cursor.execute( - "SELECT name FROM vertical_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) + "SELECT name, deprecated FROM vertical_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,)) src_row = cursor.fetchone() assert src_row - - sql = """INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( - code, latestWkid) - all_sql.append(sql) + _, deprecated = src_row + if not deprecated: + sql = """INSERT INTO "deprecation" VALUES('vertical_crs','ESRI','%s','EPSG','%s','ESRI');""" % ( + code, latestWkid) + all_sql.append(sql) elif deprecated and code != latestWkid: mapDeprecatedToNonDeprecated[code] = latestWkid From c3032fb3b36c496a4cd77d9e6e9c23bfb417d229 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 29 Jan 2024 21:01:02 +0100 Subject: [PATCH 155/199] Move content of proj_experimental.h to proj.h Those functions have been used for ages by GDAL 3.X. They are not so much "experimental" nowadays. No backward compatibility issue as proj_experimental.h includes proj.h --- src/proj.h | 682 +++++++++++++++++++++++++++++++++++++++ src/proj_experimental.h | 688 +--------------------------------------- 2 files changed, 684 insertions(+), 686 deletions(-) diff --git a/src/proj.h b/src/proj.h index f0543ddfca..1b42fae8be 100644 --- a/src/proj.h +++ b/src/proj.h @@ -1504,6 +1504,688 @@ double PROJ_DLL proj_coordinate_metadata_get_epoch(PJ_CONTEXT *ctx, /**@}*/ +/* ------------------------------------------------------------------------- */ +/* Binding in C of advanced methods from the C++ API */ +/* */ +/* Manual construction of CRS objects. */ +/* ------------------------------------------------------------------------- */ + +/** + * \defgroup advanced_cpp_binding Binding in C of advanced methods from the C++ + * API + * @{ + */ + +/** Type of unit of measure. */ +typedef enum { + /** Angular unit of measure */ + PJ_UT_ANGULAR, + /** Linear unit of measure */ + PJ_UT_LINEAR, + /** Scale unit of measure */ + PJ_UT_SCALE, + /** Time unit of measure */ + PJ_UT_TIME, + /** Parametric unit of measure */ + PJ_UT_PARAMETRIC +} PJ_UNIT_TYPE; + +/** Axis description. */ +typedef struct { + /** Axis name. */ + char *name; + /** Axis abbreviation. */ + char *abbreviation; + /** Axis direction. */ + char *direction; + /** Axis unit name. */ + char *unit_name; + /** Conversion factor to SI of the unit. */ + double unit_conv_factor; + /** Type of unit */ + PJ_UNIT_TYPE unit_type; +} PJ_AXIS_DESCRIPTION; + +PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, + int axis_count, const PJ_AXIS_DESCRIPTION *axis); + +/** Type of Cartesian 2D coordinate system. */ +typedef enum { + /* Easting-Norting */ + PJ_CART2D_EASTING_NORTHING, + /* Northing-Easting */ + PJ_CART2D_NORTHING_EASTING, + /* North Pole Easting/SOUTH-Norting/SOUTH */ + PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH, + /* South Pole Easting/NORTH-Norting/NORTH */ + PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH, + /* Westing-southing */ + PJ_CART2D_WESTING_SOUTHING, +} PJ_CARTESIAN_CS_2D_TYPE; + +PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, + PJ_CARTESIAN_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor); + +/** Type of Ellipsoidal 2D coordinate system. */ +typedef enum { + /* Longitude-Latitude */ + PJ_ELLPS2D_LONGITUDE_LATITUDE, + /* Latitude-Longitude */ + PJ_ELLPS2D_LATITUDE_LONGITUDE, +} PJ_ELLIPSOIDAL_CS_2D_TYPE; + +PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, + PJ_ELLIPSOIDAL_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor); + +/** Type of Ellipsoidal 3D coordinate system. */ +typedef enum { + /* Longitude-Latitude-Height(up) */ + PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT, + /* Latitude-Longitude-Height(up) */ + PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT, +} PJ_ELLIPSOIDAL_CS_3D_TYPE; + +PJ PROJ_DLL * +proj_create_ellipsoidal_3D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_3D_TYPE type, + const char *horizontal_angular_unit_name, + double horizontal_angular_unit_conv_factor, + const char *vertical_linear_unit_name, + double vertical_linear_unit_conv_factor); + +PJ_OBJ_LIST PROJ_DLL *proj_query_geodetic_crs_from_datum( + PJ_CONTEXT *ctx, const char *crs_auth_name, const char *datum_auth_name, + const char *datum_code, const char *crs_type); + +PJ PROJ_DLL *proj_create_geographic_crs( + PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, + const char *ellps_name, double semi_major_metre, double inv_flattening, + const char *prime_meridian_name, double prime_meridian_offset, + const char *pm_angular_units, double pm_units_conv, PJ *ellipsoidal_cs); + +PJ PROJ_DLL *proj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, + const char *crs_name, + PJ *datum_or_datum_ensemble, + PJ *ellipsoidal_cs); + +PJ PROJ_DLL *proj_create_geocentric_crs( + PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, + const char *ellps_name, double semi_major_metre, double inv_flattening, + const char *prime_meridian_name, double prime_meridian_offset, + const char *angular_units, double angular_units_conv, + const char *linear_units, double linear_units_conv); + +PJ PROJ_DLL *proj_create_geocentric_crs_from_datum( + PJ_CONTEXT *ctx, const char *crs_name, const PJ *datum_or_datum_ensemble, + const char *linear_units, double linear_units_conv); + +PJ PROJ_DLL *proj_create_derived_geographic_crs(PJ_CONTEXT *ctx, + const char *crs_name, + const PJ *base_geographic_crs, + const PJ *conversion, + const PJ *ellipsoidal_cs); + +int PROJ_DLL proj_is_derived_crs(PJ_CONTEXT *ctx, const PJ *crs); + +PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, const char *name); + +PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, + const char *auth_name, const char *code); + +PJ PROJ_DLL *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, + const PJ *new_geod_crs); + +PJ PROJ_DLL *proj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, + const char *angular_units, + double angular_units_conv, + const char *unit_auth_name, + const char *unit_code); + +PJ PROJ_DLL *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, + const char *linear_units, + double linear_units_conv, + const char *unit_auth_name, + const char *unit_code); + +PJ PROJ_DLL *proj_crs_alter_parameters_linear_unit( + PJ_CONTEXT *ctx, const PJ *obj, const char *linear_units, + double linear_units_conv, const char *unit_auth_name, const char *unit_code, + int convert_to_new_unit); + +PJ PROJ_DLL *proj_crs_promote_to_3D(PJ_CONTEXT *ctx, const char *crs_3D_name, + const PJ *crs_2D); + +PJ PROJ_DLL * +proj_crs_create_projected_3D_crs_from_2D(PJ_CONTEXT *ctx, const char *crs_name, + const PJ *projected_2D_crs, + const PJ *geog_3D_crs); + +PJ PROJ_DLL *proj_crs_demote_to_2D(PJ_CONTEXT *ctx, const char *crs_2D_name, + const PJ *crs_3D); + +PJ PROJ_DLL *proj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crsName); + +PJ PROJ_DLL *proj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, + const char *datum_name, + const char *linear_units, + double linear_units_conv); + +PJ PROJ_DLL *proj_create_vertical_crs_ex( + PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, + const char *datum_auth_name, const char *datum_code, + const char *linear_units, double linear_units_conv, + const char *geoid_model_name, const char *geoid_model_auth_name, + const char *geoid_model_code, const PJ *geoid_geog_crs, + const char *const *options); + +PJ PROJ_DLL *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, + PJ *horiz_crs, PJ *vert_crs); + +/** Description of a parameter value for a Conversion. */ +typedef struct { + /** Parameter name. */ + const char *name; + /** Parameter authority name. */ + const char *auth_name; + /** Parameter code. */ + const char *code; + /** Parameter value. */ + double value; + /** Name of unit in which parameter value is expressed. */ + const char *unit_name; + /** Conversion factor to SI of the unit. */ + double unit_conv_factor; + /** Type of unit */ + PJ_UNIT_TYPE unit_type; +} PJ_PARAM_DESCRIPTION; + +PJ PROJ_DLL *proj_create_conversion(PJ_CONTEXT *ctx, const char *name, + const char *auth_name, const char *code, + const char *method_name, + const char *method_auth_name, + const char *method_code, int param_count, + const PJ_PARAM_DESCRIPTION *params); + +PJ PROJ_DLL *proj_create_transformation( + PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, + PJ *source_crs, PJ *target_crs, PJ *interpolation_crs, + const char *method_name, const char *method_auth_name, + const char *method_code, int param_count, + const PJ_PARAM_DESCRIPTION *params, double accuracy); + +PJ PROJ_DLL * +proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, const PJ *conversion, + int new_method_epsg_code, + const char *new_method_name); + +PJ PROJ_DLL *proj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, + const PJ *geodetic_crs, + const PJ *conversion, + const PJ *coordinate_system); + +PJ PROJ_DLL *proj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, + const PJ *hub_crs, + const PJ *transformation); + +PJ PROJ_DLL *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, const PJ *crs, + const char *const *options); + +PJ PROJ_DLL *proj_crs_create_bound_vertical_crs(PJ_CONTEXT *ctx, + const PJ *vert_crs, + const PJ *hub_geographic_3D_crs, + const char *grid_name); + +/* BEGIN: Generated by scripts/create_c_api_projections.py*/ +PJ PROJ_DLL *proj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north); + +PJ PROJ_DLL *proj_create_conversion_transverse_mercator( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_gauss_schreiber_transverse_mercator( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_transverse_mercator_south_oriented( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_two_point_equidistant( + PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, + double latitude_second_point, double longitude_secon_point, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_tunisia_mapping_grid( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_tunisia_mining_grid( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_albers_equal_area( + PJ_CONTEXT *ctx, double latitude_false_origin, + double longitude_false_origin, double latitude_first_parallel, + double latitude_second_parallel, double easting_false_origin, + double northing_false_origin, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp_variant_b( + PJ_CONTEXT *ctx, double latitude_nat_origin, double scale, + double latitude_false_origin, double longitude_false_origin, + double easting_false_origin, double northing_false_origin, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp( + PJ_CONTEXT *ctx, double latitude_false_origin, + double longitude_false_origin, double latitude_first_parallel, + double latitude_second_parallel, double easting_false_origin, + double northing_false_origin, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_michigan( + PJ_CONTEXT *ctx, double latitude_false_origin, + double longitude_false_origin, double latitude_first_parallel, + double latitude_second_parallel, double easting_false_origin, + double northing_false_origin, double ellipsoid_scaling_factor, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_belgium( + PJ_CONTEXT *ctx, double latitude_false_origin, + double longitude_false_origin, double latitude_first_parallel, + double latitude_second_parallel, double easting_false_origin, + double northing_false_origin, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_azimuthal_equidistant( + PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_guam_projection( + PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_bonne( + PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area_spherical( + PJ_CONTEXT *ctx, double latitude_first_parallel, + double longitude_nat_origin, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area( + PJ_CONTEXT *ctx, double latitude_first_parallel, + double longitude_nat_origin, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_cassini_soldner( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_equidistant_conic( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double latitude_first_parallel, double latitude_second_parallel, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_i( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_ii( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_iii( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_iv( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_v( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_eckert_vi( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical( + PJ_CONTEXT *ctx, double latitude_first_parallel, + double longitude_nat_origin, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical_spherical( + PJ_CONTEXT *ctx, double latitude_first_parallel, + double longitude_nat_origin, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_goode_homolosine( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_interrupted_goode_homolosine( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_x( + PJ_CONTEXT *ctx, double center_long, double height, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_y( + PJ_CONTEXT *ctx, double center_long, double height, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_gnomonic( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_a( + PJ_CONTEXT *ctx, double latitude_projection_centre, + double longitude_projection_centre, double azimuth_initial_line, + double angle_from_rectified_to_skrew_grid, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_b( + PJ_CONTEXT *ctx, double latitude_projection_centre, + double longitude_projection_centre, double azimuth_initial_line, + double angle_from_rectified_to_skrew_grid, double scale, + double easting_projection_centre, double northing_projection_centre, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL * +proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( + PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, + double longitude_point1, double latitude_point2, double longitude_point2, + double scale, double easting_projection_centre, + double northing_projection_centre, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_laborde_oblique_mercator( + PJ_CONTEXT *ctx, double latitude_projection_centre, + double longitude_projection_centre, double azimuth_initial_line, + double scale, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_international_map_world_polyconic( + PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, + double latitude_second_parallel, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_krovak_north_oriented( + PJ_CONTEXT *ctx, double latitude_projection_centre, + double longitude_of_origin, double colatitude_cone_axis, + double latitude_pseudo_standard_parallel, + double scale_factor_pseudo_standard_parallel, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_krovak( + PJ_CONTEXT *ctx, double latitude_projection_centre, + double longitude_of_origin, double colatitude_cone_axis, + double latitude_pseudo_standard_parallel, + double scale_factor_pseudo_standard_parallel, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_lambert_azimuthal_equal_area( + PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_miller_cylindrical( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_mercator_variant_a( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_mercator_variant_b( + PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_popular_visualisation_pseudo_mercator( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_mollweide( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_new_zealand_mapping_grid( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_oblique_stereographic( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_orthographic( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_american_polyconic( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_a( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_b( + PJ_CONTEXT *ctx, double latitude_standard_parallel, + double longitude_of_origin, double false_easting, double false_northing, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_robinson( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_sinusoidal( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_stereographic( + PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_van_der_grinten( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_i( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_ii( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_iii( + PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_iv( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_v( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_vi( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_wagner_vii( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_quadrilateralized_spherical_cube( + PJ_CONTEXT *ctx, double center_lat, double center_long, + double false_easting, double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_spherical_cross_track_height( + PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, + double peg_point_heading, double peg_point_height, + const char *ang_unit_name, double ang_unit_conv_factor, + const char *linear_unit_name, double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_equal_earth( + PJ_CONTEXT *ctx, double center_long, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_vertical_perspective( + PJ_CONTEXT *ctx, double topo_origin_lat, double topo_origin_long, + double topo_origin_height, double view_point_height, double false_easting, + double false_northing, const char *ang_unit_name, + double ang_unit_conv_factor, const char *linear_unit_name, + double linear_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_pole_rotation_grib_convention( + PJ_CONTEXT *ctx, double south_pole_lat_in_unrotated_crs, + double south_pole_long_in_unrotated_crs, double axis_rotation, + const char *ang_unit_name, double ang_unit_conv_factor); + +PJ PROJ_DLL *proj_create_conversion_pole_rotation_netcdf_cf_convention( + PJ_CONTEXT *ctx, double grid_north_pole_latitude, + double grid_north_pole_longitude, double north_pole_grid_longitude, + const char *ang_unit_name, double ang_unit_conv_factor); + +/* END: Generated by scripts/create_c_api_projections.py*/ + +/**@}*/ + #ifdef __cplusplus } #endif diff --git a/src/proj_experimental.h b/src/proj_experimental.h index 03859759ef..561f78a440 100644 --- a/src/proj_experimental.h +++ b/src/proj_experimental.h @@ -38,697 +38,13 @@ extern "C" { /** * \file proj_experimental.h * - * Experimental C API. + * Experimental C API (none currently) * * \warning * This API has been considered now to be experimental, and may change or - * be removed in the future. It addresses for now the needs of the GDAL - * project to be able to construct CRS objects in a programmatic way, piece - * by piece, instead of whole conversion from PROJ string or WKT string. + * be removed in the future. */ -/* ------------------------------------------------------------------------- */ -/* Binding in C of advanced methods from the C++ API */ -/* */ -/* Manual construction of CRS objects. */ -/* ------------------------------------------------------------------------- */ - -/** - * \defgroup advanced_cpp_binding Binding in C of advanced methods from the C++ - * API - * @{ - */ - -/** Type of unit of measure. */ -typedef enum { - /** Angular unit of measure */ - PJ_UT_ANGULAR, - /** Linear unit of measure */ - PJ_UT_LINEAR, - /** Scale unit of measure */ - PJ_UT_SCALE, - /** Time unit of measure */ - PJ_UT_TIME, - /** Parametric unit of measure */ - PJ_UT_PARAMETRIC -} PJ_UNIT_TYPE; - -/** Axis description. */ -typedef struct { - /** Axis name. */ - char *name; - /** Axis abbreviation. */ - char *abbreviation; - /** Axis direction. */ - char *direction; - /** Axis unit name. */ - char *unit_name; - /** Conversion factor to SI of the unit. */ - double unit_conv_factor; - /** Type of unit */ - PJ_UNIT_TYPE unit_type; -} PJ_AXIS_DESCRIPTION; - -PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, - int axis_count, const PJ_AXIS_DESCRIPTION *axis); - -/** Type of Cartesian 2D coordinate system. */ -typedef enum { - /* Easting-Norting */ - PJ_CART2D_EASTING_NORTHING, - /* Northing-Easting */ - PJ_CART2D_NORTHING_EASTING, - /* North Pole Easting/SOUTH-Norting/SOUTH */ - PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH, - /* South Pole Easting/NORTH-Norting/NORTH */ - PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH, - /* Westing-southing */ - PJ_CART2D_WESTING_SOUTHING, -} PJ_CARTESIAN_CS_2D_TYPE; - -PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, - PJ_CARTESIAN_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor); - -/** Type of Ellipsoidal 2D coordinate system. */ -typedef enum { - /* Longitude-Latitude */ - PJ_ELLPS2D_LONGITUDE_LATITUDE, - /* Latitude-Longitude */ - PJ_ELLPS2D_LATITUDE_LONGITUDE, -} PJ_ELLIPSOIDAL_CS_2D_TYPE; - -PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, - PJ_ELLIPSOIDAL_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor); - -/** Type of Ellipsoidal 3D coordinate system. */ -typedef enum { - /* Longitude-Latitude-Height(up) */ - PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT, - /* Latitude-Longitude-Height(up) */ - PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT, -} PJ_ELLIPSOIDAL_CS_3D_TYPE; - -PJ PROJ_DLL * -proj_create_ellipsoidal_3D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_3D_TYPE type, - const char *horizontal_angular_unit_name, - double horizontal_angular_unit_conv_factor, - const char *vertical_linear_unit_name, - double vertical_linear_unit_conv_factor); - -PJ_OBJ_LIST PROJ_DLL *proj_query_geodetic_crs_from_datum( - PJ_CONTEXT *ctx, const char *crs_auth_name, const char *datum_auth_name, - const char *datum_code, const char *crs_type); - -PJ PROJ_DLL *proj_create_geographic_crs( - PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, - const char *ellps_name, double semi_major_metre, double inv_flattening, - const char *prime_meridian_name, double prime_meridian_offset, - const char *pm_angular_units, double pm_units_conv, PJ *ellipsoidal_cs); - -PJ PROJ_DLL *proj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, - const char *crs_name, - PJ *datum_or_datum_ensemble, - PJ *ellipsoidal_cs); - -PJ PROJ_DLL *proj_create_geocentric_crs( - PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, - const char *ellps_name, double semi_major_metre, double inv_flattening, - const char *prime_meridian_name, double prime_meridian_offset, - const char *angular_units, double angular_units_conv, - const char *linear_units, double linear_units_conv); - -PJ PROJ_DLL *proj_create_geocentric_crs_from_datum( - PJ_CONTEXT *ctx, const char *crs_name, const PJ *datum_or_datum_ensemble, - const char *linear_units, double linear_units_conv); - -PJ PROJ_DLL *proj_create_derived_geographic_crs(PJ_CONTEXT *ctx, - const char *crs_name, - const PJ *base_geographic_crs, - const PJ *conversion, - const PJ *ellipsoidal_cs); - -int PROJ_DLL proj_is_derived_crs(PJ_CONTEXT *ctx, const PJ *crs); - -PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, const char *name); - -PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, - const char *auth_name, const char *code); - -PJ PROJ_DLL *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, - const PJ *new_geod_crs); - -PJ PROJ_DLL *proj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, - const char *angular_units, - double angular_units_conv, - const char *unit_auth_name, - const char *unit_code); - -PJ PROJ_DLL *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, - const char *linear_units, - double linear_units_conv, - const char *unit_auth_name, - const char *unit_code); - -PJ PROJ_DLL *proj_crs_alter_parameters_linear_unit( - PJ_CONTEXT *ctx, const PJ *obj, const char *linear_units, - double linear_units_conv, const char *unit_auth_name, const char *unit_code, - int convert_to_new_unit); - -PJ PROJ_DLL *proj_crs_promote_to_3D(PJ_CONTEXT *ctx, const char *crs_3D_name, - const PJ *crs_2D); - -PJ PROJ_DLL * -proj_crs_create_projected_3D_crs_from_2D(PJ_CONTEXT *ctx, const char *crs_name, - const PJ *projected_2D_crs, - const PJ *geog_3D_crs); - -PJ PROJ_DLL *proj_crs_demote_to_2D(PJ_CONTEXT *ctx, const char *crs_2D_name, - const PJ *crs_3D); - -PJ PROJ_DLL *proj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crsName); - -PJ PROJ_DLL *proj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, - const char *datum_name, - const char *linear_units, - double linear_units_conv); - -PJ PROJ_DLL *proj_create_vertical_crs_ex( - PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, - const char *datum_auth_name, const char *datum_code, - const char *linear_units, double linear_units_conv, - const char *geoid_model_name, const char *geoid_model_auth_name, - const char *geoid_model_code, const PJ *geoid_geog_crs, - const char *const *options); - -PJ PROJ_DLL *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, - PJ *horiz_crs, PJ *vert_crs); - -/** Description of a parameter value for a Conversion. */ -typedef struct { - /** Parameter name. */ - const char *name; - /** Parameter authority name. */ - const char *auth_name; - /** Parameter code. */ - const char *code; - /** Parameter value. */ - double value; - /** Name of unit in which parameter value is expressed. */ - const char *unit_name; - /** Conversion factor to SI of the unit. */ - double unit_conv_factor; - /** Type of unit */ - PJ_UNIT_TYPE unit_type; -} PJ_PARAM_DESCRIPTION; - -PJ PROJ_DLL *proj_create_conversion(PJ_CONTEXT *ctx, const char *name, - const char *auth_name, const char *code, - const char *method_name, - const char *method_auth_name, - const char *method_code, int param_count, - const PJ_PARAM_DESCRIPTION *params); - -PJ PROJ_DLL *proj_create_transformation( - PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, - PJ *source_crs, PJ *target_crs, PJ *interpolation_crs, - const char *method_name, const char *method_auth_name, - const char *method_code, int param_count, - const PJ_PARAM_DESCRIPTION *params, double accuracy); - -PJ PROJ_DLL * -proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, const PJ *conversion, - int new_method_epsg_code, - const char *new_method_name); - -PJ PROJ_DLL *proj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, - const PJ *geodetic_crs, - const PJ *conversion, - const PJ *coordinate_system); - -PJ PROJ_DLL *proj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, - const PJ *hub_crs, - const PJ *transformation); - -PJ PROJ_DLL *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, const PJ *crs, - const char *const *options); - -PJ PROJ_DLL *proj_crs_create_bound_vertical_crs(PJ_CONTEXT *ctx, - const PJ *vert_crs, - const PJ *hub_geographic_3D_crs, - const char *grid_name); - -/* BEGIN: Generated by scripts/create_c_api_projections.py*/ -PJ PROJ_DLL *proj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north); - -PJ PROJ_DLL *proj_create_conversion_transverse_mercator( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_gauss_schreiber_transverse_mercator( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_transverse_mercator_south_oriented( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_two_point_equidistant( - PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, - double latitude_second_point, double longitude_secon_point, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_tunisia_mapping_grid( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_tunisia_mining_grid( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_albers_equal_area( - PJ_CONTEXT *ctx, double latitude_false_origin, - double longitude_false_origin, double latitude_first_parallel, - double latitude_second_parallel, double easting_false_origin, - double northing_false_origin, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp_variant_b( - PJ_CONTEXT *ctx, double latitude_nat_origin, double scale, - double latitude_false_origin, double longitude_false_origin, - double easting_false_origin, double northing_false_origin, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp( - PJ_CONTEXT *ctx, double latitude_false_origin, - double longitude_false_origin, double latitude_first_parallel, - double latitude_second_parallel, double easting_false_origin, - double northing_false_origin, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_michigan( - PJ_CONTEXT *ctx, double latitude_false_origin, - double longitude_false_origin, double latitude_first_parallel, - double latitude_second_parallel, double easting_false_origin, - double northing_false_origin, double ellipsoid_scaling_factor, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_belgium( - PJ_CONTEXT *ctx, double latitude_false_origin, - double longitude_false_origin, double latitude_first_parallel, - double latitude_second_parallel, double easting_false_origin, - double northing_false_origin, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_azimuthal_equidistant( - PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_guam_projection( - PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_bonne( - PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area_spherical( - PJ_CONTEXT *ctx, double latitude_first_parallel, - double longitude_nat_origin, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area( - PJ_CONTEXT *ctx, double latitude_first_parallel, - double longitude_nat_origin, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_cassini_soldner( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_equidistant_conic( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double latitude_first_parallel, double latitude_second_parallel, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_i( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_ii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_iii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_iv( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_v( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_eckert_vi( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical( - PJ_CONTEXT *ctx, double latitude_first_parallel, - double longitude_nat_origin, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical_spherical( - PJ_CONTEXT *ctx, double latitude_first_parallel, - double longitude_nat_origin, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_goode_homolosine( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_interrupted_goode_homolosine( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_x( - PJ_CONTEXT *ctx, double center_long, double height, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_y( - PJ_CONTEXT *ctx, double center_long, double height, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_gnomonic( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_a( - PJ_CONTEXT *ctx, double latitude_projection_centre, - double longitude_projection_centre, double azimuth_initial_line, - double angle_from_rectified_to_skrew_grid, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_b( - PJ_CONTEXT *ctx, double latitude_projection_centre, - double longitude_projection_centre, double azimuth_initial_line, - double angle_from_rectified_to_skrew_grid, double scale, - double easting_projection_centre, double northing_projection_centre, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL * -proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( - PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, - double longitude_point1, double latitude_point2, double longitude_point2, - double scale, double easting_projection_centre, - double northing_projection_centre, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_laborde_oblique_mercator( - PJ_CONTEXT *ctx, double latitude_projection_centre, - double longitude_projection_centre, double azimuth_initial_line, - double scale, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_international_map_world_polyconic( - PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, - double latitude_second_parallel, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_krovak_north_oriented( - PJ_CONTEXT *ctx, double latitude_projection_centre, - double longitude_of_origin, double colatitude_cone_axis, - double latitude_pseudo_standard_parallel, - double scale_factor_pseudo_standard_parallel, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_krovak( - PJ_CONTEXT *ctx, double latitude_projection_centre, - double longitude_of_origin, double colatitude_cone_axis, - double latitude_pseudo_standard_parallel, - double scale_factor_pseudo_standard_parallel, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_lambert_azimuthal_equal_area( - PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_miller_cylindrical( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_mercator_variant_a( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_mercator_variant_b( - PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_popular_visualisation_pseudo_mercator( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_mollweide( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_new_zealand_mapping_grid( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_oblique_stereographic( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_orthographic( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_american_polyconic( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_a( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_b( - PJ_CONTEXT *ctx, double latitude_standard_parallel, - double longitude_of_origin, double false_easting, double false_northing, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_robinson( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_sinusoidal( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_stereographic( - PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_van_der_grinten( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_i( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_ii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_iii( - PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_iv( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_v( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_vi( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_wagner_vii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_quadrilateralized_spherical_cube( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_spherical_cross_track_height( - PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, - double peg_point_heading, double peg_point_height, - const char *ang_unit_name, double ang_unit_conv_factor, - const char *linear_unit_name, double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_equal_earth( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_vertical_perspective( - PJ_CONTEXT *ctx, double topo_origin_lat, double topo_origin_long, - double topo_origin_height, double view_point_height, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_pole_rotation_grib_convention( - PJ_CONTEXT *ctx, double south_pole_lat_in_unrotated_crs, - double south_pole_long_in_unrotated_crs, double axis_rotation, - const char *ang_unit_name, double ang_unit_conv_factor); - -PJ PROJ_DLL *proj_create_conversion_pole_rotation_netcdf_cf_convention( - PJ_CONTEXT *ctx, double grid_north_pole_latitude, - double grid_north_pole_longitude, double north_pole_grid_longitude, - const char *ang_unit_name, double ang_unit_conv_factor); - -/* END: Generated by scripts/create_c_api_projections.py*/ - -/**@}*/ - #ifdef __cplusplus } #endif From 4bc8a5a049ddb84009a0fe6f7163dede7c9fe49b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 29 Jan 2024 22:19:05 +0100 Subject: [PATCH 156/199] Doc: reference C API that used to be proj_experimental.h --- .../development/reference/datatypes.rst | 3 + .../development/reference/functions.rst | 11 ++ src/proj.h | 105 +++++++++++------- 3 files changed, 77 insertions(+), 42 deletions(-) diff --git a/docs/source/development/reference/datatypes.rst b/docs/source/development/reference/datatypes.rst index 7cb61e1dc9..e8c3cd1e94 100644 --- a/docs/source/development/reference/datatypes.rst +++ b/docs/source/development/reference/datatypes.rst @@ -996,4 +996,7 @@ C API for ISO-19111 functionality :content-only: :members: +.. doxygengroup:: iso19111_advanced_types + :project: doxygen_api + :content-only: diff --git a/docs/source/development/reference/functions.rst b/docs/source/development/reference/functions.rst index 8adb5c0279..8eea1abcd4 100644 --- a/docs/source/development/reference/functions.rst +++ b/docs/source/development/reference/functions.rst @@ -1043,7 +1043,18 @@ Conversely, objects returned by :c:func:`proj_create` and :c:func:`proj_create_a which are not of type CRS (can be tested with :c:func:`proj_is_crs`), will return an error when used with functions of this section. +Base functions +~~~~~~~~~~~~~~ + .. doxygengroup:: iso19111_functions :project: doxygen_api :content-only: +Advanced functions +~~~~~~~~~~~~~~~~~~ + +Available in :file:`proj.h` since PROJ 9.4. Previously were available in :file:`proj_experimental.h`. + +.. doxygengroup:: iso19111_advanced_functions + :project: doxygen_api + :content-only: diff --git a/src/proj.h b/src/proj.h index 1b42fae8be..6920de64b9 100644 --- a/src/proj.h +++ b/src/proj.h @@ -1511,7 +1511,7 @@ double PROJ_DLL proj_coordinate_metadata_get_epoch(PJ_CONTEXT *ctx, /* ------------------------------------------------------------------------- */ /** - * \defgroup advanced_cpp_binding Binding in C of advanced methods from the C++ + * \defgroup iso19111_advanced_types C types for advanced methods from the C++ * API * @{ */ @@ -1530,65 +1530,104 @@ typedef enum { PJ_UT_PARAMETRIC } PJ_UNIT_TYPE; -/** Axis description. */ +/** \brief Axis description. + */ typedef struct { /** Axis name. */ char *name; + /** Axis abbreviation. */ char *abbreviation; + /** Axis direction. */ char *direction; + /** Axis unit name. */ char *unit_name; + /** Conversion factor to SI of the unit. */ double unit_conv_factor; + /** Type of unit */ PJ_UNIT_TYPE unit_type; } PJ_AXIS_DESCRIPTION; -PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, - int axis_count, const PJ_AXIS_DESCRIPTION *axis); - /** Type of Cartesian 2D coordinate system. */ typedef enum { - /* Easting-Norting */ + /** Easting-Norting */ PJ_CART2D_EASTING_NORTHING, - /* Northing-Easting */ + /** Northing-Easting */ PJ_CART2D_NORTHING_EASTING, - /* North Pole Easting/SOUTH-Norting/SOUTH */ + /** North Pole Easting/SOUTH-Norting/SOUTH */ PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH, - /* South Pole Easting/NORTH-Norting/NORTH */ + /** South Pole Easting/NORTH-Norting/NORTH */ PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH, - /* Westing-southing */ + /** Westing-southing */ PJ_CART2D_WESTING_SOUTHING, } PJ_CARTESIAN_CS_2D_TYPE; -PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, - PJ_CARTESIAN_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor); - /** Type of Ellipsoidal 2D coordinate system. */ typedef enum { - /* Longitude-Latitude */ + /** Longitude-Latitude */ PJ_ELLPS2D_LONGITUDE_LATITUDE, - /* Latitude-Longitude */ + /** Latitude-Longitude */ PJ_ELLPS2D_LATITUDE_LONGITUDE, } PJ_ELLIPSOIDAL_CS_2D_TYPE; -PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, - PJ_ELLIPSOIDAL_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor); - /** Type of Ellipsoidal 3D coordinate system. */ typedef enum { - /* Longitude-Latitude-Height(up) */ + /** Longitude-Latitude-Height(up) */ PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT, - /* Latitude-Longitude-Height(up) */ + /** Latitude-Longitude-Height(up) */ PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT, } PJ_ELLIPSOIDAL_CS_3D_TYPE; +/** \brief Description of a parameter value for a Conversion. + */ +typedef struct { + /** Parameter name. */ + const char *name; + + /** Parameter authority name. */ + const char *auth_name; + + /** Parameter code. */ + const char *code; + + /** Parameter value. */ + double value; + + /** Name of unit in which parameter value is expressed. */ + const char *unit_name; + + /** Conversion factor to SI of the unit. */ + double unit_conv_factor; + + /** Type of unit */ + PJ_UNIT_TYPE unit_type; +} PJ_PARAM_DESCRIPTION; + +/**@}*/ + +/** + * \defgroup iso19111_advanced_functions Binding in C of advanced methods from + * the C++ API + * @{ + */ + +PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, + int axis_count, const PJ_AXIS_DESCRIPTION *axis); + +PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, + PJ_CARTESIAN_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor); + +PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, + PJ_ELLIPSOIDAL_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor); + PJ PROJ_DLL * proj_create_ellipsoidal_3D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_3D_TYPE type, const char *horizontal_angular_unit_name, @@ -1684,24 +1723,6 @@ PJ PROJ_DLL *proj_create_vertical_crs_ex( PJ PROJ_DLL *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, PJ *horiz_crs, PJ *vert_crs); -/** Description of a parameter value for a Conversion. */ -typedef struct { - /** Parameter name. */ - const char *name; - /** Parameter authority name. */ - const char *auth_name; - /** Parameter code. */ - const char *code; - /** Parameter value. */ - double value; - /** Name of unit in which parameter value is expressed. */ - const char *unit_name; - /** Conversion factor to SI of the unit. */ - double unit_conv_factor; - /** Type of unit */ - PJ_UNIT_TYPE unit_type; -} PJ_PARAM_DESCRIPTION; - PJ PROJ_DLL *proj_create_conversion(PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, const char *method_name, From 22d15f60a8b70035fd99edc1051b647eeff2578b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 30 Jan 2024 22:39:21 +0100 Subject: [PATCH 157/199] proj_create_conversion_tunisia_mining_grid(): fix mixed-up deprecation / since tags --- src/iso19111/c_api.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 17df96ee2c..a353fe1792 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -5208,7 +5208,7 @@ PJ *proj_create_conversion_two_point_equidistant( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). * - * @deprecated. Replaced by proj_create_conversion_tunisia_mining_grid + * @since 9.2 */ PJ *proj_create_conversion_tunisia_mining_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -5242,7 +5242,7 @@ PJ *proj_create_conversion_tunisia_mining_grid( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). * - * @since 9.2 + * @deprecated Replaced by proj_create_conversion_tunisia_mining_grid */ PJ *proj_create_conversion_tunisia_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, From a54fe6cdf6b3eb10299f2827ac5d286874a12aa3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 30 Jan 2024 22:50:34 +0100 Subject: [PATCH 158/199] test/gie/builtins.gie: relax a bit tolerance on +proj=vandg test for Mac M1 ARM64 --- test/gie/builtins.gie | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 5b6ae287bd..0c1a267a9a 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -7238,7 +7238,8 @@ expect failure errno coord_transfm_outside_projection_domain ------------------------------------------------------------------------------- operation +proj=vandg +a=6400000 +over ------------------------------------------------------------------------------- -tolerance 0.25 mm +# 0.25 is OK for Intel platforms, but on Mac M1 ARM64 we need 0.35 +tolerance 0.35 mm accept 2 1 expect 223395.249543407 111704.596633675 From 81b136898195aad8f0ac6735c034751b9a6c0d81 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 30 Jan 2024 18:55:32 +0100 Subject: [PATCH 159/199] CI: add a M1 ARM64 MacOS runner Co-authored-by: Howard Butler --- .github/workflows/mac.yml | 24 +++++++++++++++++------- .github/workflows/mac/before_install.sh | 4 +--- .github/workflows/mac/environment.yml | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/mac/environment.yml diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 658e0dfbfe..0a6a19d0b7 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -15,25 +15,35 @@ concurrency: jobs: macos_build: - runs-on: macos-latest + strategy: + fail-fast: true + matrix: + include: + - platform: "macos-latest" + architecture: "x64" + # macOS-14 is a M1 ARM64 MacOS runner: https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/ + - platform: "macOS-14" + architecture: "arm64" + + runs-on: ${{ matrix.platform }} + if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v3 - - uses: conda-incubator/setup-miniconda@v2 + - uses: mamba-org/setup-micromamba@v1 with: - miniforge-variant: Mambaforge - miniforge-version: latest - use-mamba: true + init-shell: bash + environment-file: .github/workflows/mac/environment.yml - name: Cache uses: actions/cache@v3 id: cache with: path: ${{ github.workspace }}/.ccache - key: ${{ runner.os }}-cache-mac-${{ github.run_id }} - restore-keys: ${{ runner.os }}-cache-mac- + key: ${{ runner.os }}-cache-mac-${{ matrix.architecture }}-${{ github.run_id }} + restore-keys: ${{ runner.os }}-cache-mac-${{ matrix.architecture }}- - name: Install Requirements shell: bash -l {0} diff --git a/.github/workflows/mac/before_install.sh b/.github/workflows/mac/before_install.sh index 2b6dccc65c..7f730313d1 100755 --- a/.github/workflows/mac/before_install.sh +++ b/.github/workflows/mac/before_install.sh @@ -2,6 +2,4 @@ set -e -mamba install --yes --quiet compilers -mamba install --yes --quiet python=3.8 autoconf automake libtool pkg-config ccache jsonschema -mamba install --yes --quiet --only-deps proj=7.1.1=h45baca5_3 +mamba install --yes --quiet --only-deps proj diff --git a/.github/workflows/mac/environment.yml b/.github/workflows/mac/environment.yml new file mode 100644 index 0000000000..263ada7eb3 --- /dev/null +++ b/.github/workflows/mac/environment.yml @@ -0,0 +1,16 @@ +name: proj +channels: + - conda-forge +dependencies: + - python=3.8 + - conda + - mamba + - compilers + - ninja + - cmake + - pkg-config + - ccache + - autoconf + - automake + - jsonschema + From b6ccd389f2f2620bd5f2d657fd1e8c1f5da80b15 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 31 Jan 2024 13:40:55 +1300 Subject: [PATCH 160/199] Ensure directory exists for PROJ_DB_CACHE_DIR --- travis/install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/travis/install.sh b/travis/install.sh index e61bb7d17a..ad559169a2 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -25,6 +25,9 @@ else USE_CCACHE=OFF fi +# Ensure directory exists for PROJ_DB_CACHE_DIR +mkdir -p $HOME/.ccache + if test "x${CMAKE_BUILD_TYPE}" = "x"; then CMAKE_BUILD_TYPE=Release fi From be7d344571134e8e89453aa42555396b665b6ece Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 31 Jan 2024 21:18:50 +0100 Subject: [PATCH 161/199] CI: add missing permissions section to .yml files OpenSSF Scorecard report complains about the lack of it: https://securityscorecards.dev/viewer/?uri=github.com/OSGeo/PROJ ('Token-Permissions') --- .github/workflows/cifuzz.yml | 3 +++ .github/workflows/clang_linux.yml | 3 +++ .github/workflows/clang_static_analyzer.yml | 3 +++ .github/workflows/code_checks.yml | 3 +++ .github/workflows/conda.yml | 3 +++ .github/workflows/coverity-scan.yml | 3 +++ .github/workflows/docker.yml | 3 +++ .github/workflows/linux_gcc_32bit.yml | 3 +++ .github/workflows/mac.yml | 3 +++ .github/workflows/mingw_w64.yml | 3 +++ .github/workflows/windows.yml | 3 +++ 11 files changed, 33 insertions(+) diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml index f852d5e056..e4819448d4 100644 --- a/.github/workflows/cifuzz.yml +++ b/.github/workflows/cifuzz.yml @@ -9,6 +9,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: Fuzzing: runs-on: ubuntu-latest diff --git a/.github/workflows/clang_linux.yml b/.github/workflows/clang_linux.yml index b656eb9e60..d7a2f2f070 100644 --- a/.github/workflows/clang_linux.yml +++ b/.github/workflows/clang_linux.yml @@ -13,6 +13,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: clang_linux: diff --git a/.github/workflows/clang_static_analyzer.yml b/.github/workflows/clang_static_analyzer.yml index 0cea3da8e3..96d936875d 100644 --- a/.github/workflows/clang_static_analyzer.yml +++ b/.github/workflows/clang_static_analyzer.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: clang_static_analyzer: diff --git a/.github/workflows/code_checks.yml b/.github/workflows/code_checks.yml index 23082bea71..67b96df5eb 100644 --- a/.github/workflows/code_checks.yml +++ b/.github/workflows/code_checks.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: cppcheck_2204: diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 65c15d7c20..c2afbd9305 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -10,6 +10,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: conda: name: Conda ${{ matrix.platform }} diff --git a/.github/workflows/coverity-scan.yml b/.github/workflows/coverity-scan.yml index d9f342b34f..c3c7524b4a 100644 --- a/.github/workflows/coverity-scan.yml +++ b/.github/workflows/coverity-scan.yml @@ -9,6 +9,9 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +permissions: + contents: read + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: coverity: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 25bcfebfb9..6c57e99bbc 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -14,6 +14,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + # adapted from https://raw.githubusercontent.com/stefanprodan/podinfo/master/.github/workflows/release.yml # jobs: diff --git a/.github/workflows/linux_gcc_32bit.yml b/.github/workflows/linux_gcc_32bit.yml index 4d29584f5b..537a532cba 100644 --- a/.github/workflows/linux_gcc_32bit.yml +++ b/.github/workflows/linux_gcc_32bit.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: linux_gcc_32bit: diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 0a6a19d0b7..2f1784d100 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: macos_build: diff --git a/.github/workflows/mingw_w64.yml b/.github/workflows/mingw_w64.yml index f98671f094..b7ccc4d370 100644 --- a/.github/workflows/mingw_w64.yml +++ b/.github/workflows/mingw_w64.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: mingw_w64_build: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 573d34e28f..3d84d84bc0 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -12,6 +12,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: MSVC: From f4d4bc7edf8ad16f07359c5e9d9db1c07017c7bf Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Thu, 1 Feb 2024 09:56:12 +1300 Subject: [PATCH 162/199] CI: upgrade versions for various actions/* --- .github/workflows/cifuzz.yml | 2 +- .github/workflows/clang_linux.yml | 4 ++-- .github/workflows/clang_static_analyzer.yml | 2 +- .github/workflows/code_checks.yml | 4 ++-- .github/workflows/codeql.yml | 4 ++-- .github/workflows/conda.yml | 4 ++-- .github/workflows/coverity-scan.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/linux_gcc_32bit.yml | 4 ++-- .github/workflows/mac.yml | 4 ++-- .github/workflows/mingw_w64.yml | 4 ++-- .github/workflows/windows.yml | 9 +++++---- 12 files changed, 23 insertions(+), 22 deletions(-) diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml index f852d5e056..26aad842ae 100644 --- a/.github/workflows/cifuzz.yml +++ b/.github/workflows/cifuzz.yml @@ -26,7 +26,7 @@ jobs: fuzz-seconds: 600 dry-run: false - name: Upload Crash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() && steps.build.outcome == 'success' with: name: artifacts diff --git a/.github/workflows/clang_linux.yml b/.github/workflows/clang_linux.yml index b656eb9e60..90510f3452 100644 --- a/.github/workflows/clang_linux.yml +++ b/.github/workflows/clang_linux.yml @@ -35,10 +35,10 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: | diff --git a/.github/workflows/clang_static_analyzer.yml b/.github/workflows/clang_static_analyzer.yml index 0cea3da8e3..b2ade13c94 100644 --- a/.github/workflows/clang_static_analyzer.yml +++ b/.github/workflows/clang_static_analyzer.yml @@ -19,7 +19,7 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run run: .github/workflows/clang_static_analyzer/start.sh diff --git a/.github/workflows/code_checks.yml b/.github/workflows/code_checks.yml index 23082bea71..cf0d1ec3eb 100644 --- a/.github/workflows/code_checks.yml +++ b/.github/workflows/code_checks.yml @@ -19,7 +19,7 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Requirements run: | @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Requirements run: | diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 14c8bb01fa..b6755a874f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -65,7 +65,7 @@ jobs: - name: Restore build cache if: matrix.language == 'c-cpp' id: restore-cache - uses: actions/cache/restore@v3 + uses: actions/cache/restore@v4 with: path: ${{ github.workspace }}/.ccache key: ${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}-${{ github.ref_name }}-${{ github.run_id }} @@ -92,7 +92,7 @@ jobs: ccache -s - name: Save build cache if: matrix.language == 'c-cpp' - uses: actions/cache/save@v3 + uses: actions/cache/save@v4 with: path: ${{ github.workspace }}/.ccache key: ${{ steps.restore-cache.outputs.cache-primary-key }} diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 65c15d7c20..13629e66b9 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -25,7 +25,7 @@ jobs: PLATFORM: ${{ matrix.platform }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: conda-incubator/setup-miniconda@v2 with: @@ -44,7 +44,7 @@ jobs: working-directory: ./proj.4-feedstock - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: ${{ matrix.platform }}-conda-package path: ./proj.4-feedstock/packages/ diff --git a/.github/workflows/coverity-scan.yml b/.github/workflows/coverity-scan.yml index d9f342b34f..d799ebb25f 100644 --- a/.github/workflows/coverity-scan.yml +++ b/.github/workflows/coverity-scan.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-22.04 if: github.repository == 'OSGeo/PROJ' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Libraries run: | diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 25bcfebfb9..20628149df 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -33,7 +33,7 @@ jobs: PUSH_PACKAGES: ${{ github.repository_owner == 'OSGeo' && github.event_name != 'pull_request' }} CONTAINER: ${{ matrix.container }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Lint id: lint run: | diff --git a/.github/workflows/linux_gcc_32bit.yml b/.github/workflows/linux_gcc_32bit.yml index 4d29584f5b..f2d3d6cd6d 100644 --- a/.github/workflows/linux_gcc_32bit.yml +++ b/.github/workflows/linux_gcc_32bit.yml @@ -19,10 +19,10 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: | diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 0a6a19d0b7..c2b85bd712 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -30,7 +30,7 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: mamba-org/setup-micromamba@v1 with: @@ -38,7 +38,7 @@ jobs: environment-file: .github/workflows/mac/environment.yml - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: ${{ github.workspace }}/.ccache diff --git a/.github/workflows/mingw_w64.yml b/.github/workflows/mingw_w64.yml index f98671f094..2f104c304f 100644 --- a/.github/workflows/mingw_w64.yml +++ b/.github/workflows/mingw_w64.yml @@ -19,10 +19,10 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 573d34e28f..6fc88df32a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -32,11 +32,12 @@ jobs: steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 - name: Cache vcpkg packages - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: c:\vcpkg\installed @@ -106,10 +107,10 @@ jobs: steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 id: cache with: path: ~/.ccache From 3eeb0a22e2a80d03041aa7aec05b3719e92c966c Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Thu, 1 Feb 2024 11:00:27 +1300 Subject: [PATCH 163/199] Add dependabot for future github-actions updates --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..8ac6b8c498 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" From ba2f2a2598dbf1a9c605df9e65939952e16806b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:45:40 +0000 Subject: [PATCH 164/199] build(deps): bump actions/stale from 8 to 9 Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b6d9b185a8..b57e8ff322 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: if: github.repository_owner == 'osgeo' runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-pr-message: > From a9731217ac9dca5c299603c1cbf7a92a166c5030 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:45:45 +0000 Subject: [PATCH 165/199] build(deps): bump docker/build-push-action from 4 to 5 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4...v5) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 72b5722c17..660e187185 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -71,7 +71,7 @@ jobs: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT - name: Build image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: push: ${{ env.PUSH_PACKAGES == 'true' }} builder: ${{ steps.buildx.outputs.name }} From 997ef2fce1e293b464c669a79bafb9391e60c85f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:45:49 +0000 Subject: [PATCH 166/199] build(deps): bump docker/login-action from 2 to 3 Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 72b5722c17..b8bc9521c9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -50,14 +50,14 @@ jobs: version: latest - if: ${{ env.PUSH_PACKAGES == 'true' }} name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GHCR_TOKEN }} - if: ${{ env.PUSH_PACKAGES == 'true' }} name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 80a4925be4bfc869ad9d0dd20fca463e8ee9fa42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:45:52 +0000 Subject: [PATCH 167/199] build(deps): bump docker/setup-buildx-action from 2 to 3 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 72b5722c17..378e289003 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -45,7 +45,7 @@ jobs: echo "ref" ${{ github.ref }} - name: Setup Docker Buildx id: buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 with: version: latest - if: ${{ env.PUSH_PACKAGES == 'true' }} From cb66c3702ca7d64da4ea8e167c5360d19332d45a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:45:56 +0000 Subject: [PATCH 168/199] build(deps): bump conda-incubator/setup-miniconda from 2 to 3 Bumps [conda-incubator/setup-miniconda](https://github.com/conda-incubator/setup-miniconda) from 2 to 3. - [Release notes](https://github.com/conda-incubator/setup-miniconda/releases) - [Changelog](https://github.com/conda-incubator/setup-miniconda/blob/main/CHANGELOG.md) - [Commits](https://github.com/conda-incubator/setup-miniconda/compare/v2...v3) --- updated-dependencies: - dependency-name: conda-incubator/setup-miniconda dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index fcb7340076..8ffeb310e5 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: conda-incubator/setup-miniconda@v2 + - uses: conda-incubator/setup-miniconda@v3 with: miniforge-variant: Mambaforge miniforge-version: latest From 828a4722ca9da791c9b8c815edbeba9649befd21 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 31 Jan 2024 18:25:35 +0100 Subject: [PATCH 169/199] Add +proj=mod_krovak projection method for Modified Krovak that applies to S-JTSK/05 in the Czech Republic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Validated with the test point given in EPSG Guidance Note 7-2 Also validated with CUZK online calculator at https://geoportal.cuzk.cz/(S(g4ipaut0ckzb5lellu153lvf))/Default.aspx?head_tab=sekce-01-gp&mode=TextMeta&text=wcts&menu=19 Unfortunately this calculator does not offer 'elementary' transformations, and cannot just validate Modified Krovak alone. The best we can do is to use ETRS89 <--> S-JTSK/05 / Krovak modified, which involves a Helmert transformation as well for the datum transformation. * Validation of reverse modified Krovak: Online calculator: - Souřadnice/input: -5568990.91 -6050538.71 100 - Source CRS: S-JTSK/05 + Bpv (-Y-XH /east-north) - Destination CRS: ETRS89 (BLh / DEG) - Výsledek/result: 50.208297081 16.848326835 143.762 With PROJ: echo -5568990.91 -6050538.71 100 | bin/cs2cs -d 9 EPSG:5516 EPSG:4937 --3d 50.208297081 16.848326833 143.143233569 Note the different on longitude is totally neglectable: 0.1 mm, as computed by: $ echo 50.208297081 16.848326835 50.208297081 16.848326833 | bin/geod -F "%.4f" -I +ellps=GRS80 -90d 90d 0.0001 and that when outputing Krovak modified, the online calculator displays Y/X with a precision of 1 cm. The difference on Z is significant, but can be explained from the fact that the online calculator using Baltic Height for S-JTSK/05 and thus apply a Baltic Height<-->ETRS89 geoid that we don't apply here. * Validation of forward Krovak using same point: Online calculator: - Souřadnice/input: 50.208297081 16.848326835 143.762 - Source: ETRS89 (BLh / DEG) - Destination: S-JTSK/05 + Bpv (-Y-XH /east-north) - Výsledek/result: -5568990.91 -6050538.71 100 With PROJ: $ echo 50.208297081 16.848326835 143.762 | bin/cs2cs -d 2 EPSG:4937 EPSG:5516 --3d -5568990.91 -6050538.71 100.62 --- docs/source/operations/projections/index.rst | 1 + docs/source/operations/projections/krovak.rst | 18 +- .../operations/projections/mod_krovak.rst | 77 +++++ src/iso19111/io.cpp | 20 +- src/iso19111/operation/conversion.cpp | 8 +- src/iso19111/operation/parammappings.cpp | 7 + src/pj_list.h | 1 + src/proj_constants.h | 7 + src/projections/krovak.cpp | 158 ++++++++--- test/gie/builtins.gie | 44 +++ test/unit/test_io.cpp | 267 ++++++++++++++++++ 11 files changed, 566 insertions(+), 42 deletions(-) create mode 100644 docs/source/operations/projections/mod_krovak.rst diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst index fd2f1b0e99..8b89244e2d 100644 --- a/docs/source/operations/projections/index.rst +++ b/docs/source/operations/projections/index.rst @@ -93,6 +93,7 @@ Projections map the spherical 3D space to a flat 2D space. mil_os mill misrsom + mod_krovak moll murd1 murd2 diff --git a/docs/source/operations/projections/krovak.rst b/docs/source/operations/projections/krovak.rst index 59f66b0426..6202f1ac97 100644 --- a/docs/source/operations/projections/krovak.rst +++ b/docs/source/operations/projections/krovak.rst @@ -5,11 +5,12 @@ Krovak ******************************************************************************** +---------------------+----------------------------------------------------------+ -| **Classification** | Conical | +| **Classification** | Conformal Conical | +---------------------+----------------------------------------------------------+ | **Available forms** | Forward and inverse, spherical and ellipsoidal | +---------------------+----------------------------------------------------------+ -| **Defined area** | Global, but more accurate around Czechoslovakia | +| **Defined area** | Global, but more accurate around Czech Republic and | +| | Slovakia | +---------------------+----------------------------------------------------------+ | **Alias** | krovak | +---------------------+----------------------------------------------------------+ @@ -28,6 +29,16 @@ Krovak proj-string: ``+proj=krovak`` +By default, coordinates in the forward direction are output in easting, northing, +and negative in the Czech Republic and Slovakia, with absolute value of +easting/westing being smaller than absolute value of northing/southing. + +See also :ref:`mod_krovak` for a variation of Krovak used with the S-JTSK/05 datum +in the Czech Republic. + +.. note:: Before PROJ 9.4, using other values for x_0 or y_0 than the default 0 + would lead to incorrect results when not using the ``+czech`` switch. + Parameters ################################################################################ @@ -39,7 +50,8 @@ Parameters .. option:: +czech Reverse the sign of the output coordinates, as is tradition in the - Czech Republic. + Czech Republic, to be westing, southing (positive values in Czech Republic + and Slovakia). .. option:: +lon_0= diff --git a/docs/source/operations/projections/mod_krovak.rst b/docs/source/operations/projections/mod_krovak.rst new file mode 100644 index 0000000000..6b72c88b32 --- /dev/null +++ b/docs/source/operations/projections/mod_krovak.rst @@ -0,0 +1,77 @@ +.. _mod_krovak: + +******************************************************************************** +Modified Krovak +******************************************************************************** + +.. versionadded:: 9.4.0 + ++---------------------+----------------------------------------------------------+ +| **Classification** | Conical | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward and inverse, spherical and ellipsoidal | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Czech Republic | ++---------------------+----------------------------------------------------------+ +| **Alias** | mod_krovak | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/krovak.png + :width: 500 px + :align: center + :alt: Modified Krovak + + proj-string: ``+proj=mod_krovak`` + +Modified Krovak builts upon traditional :ref:`krovak`, with corrective terms that +are better suited when using it with the S-JTSK/05 datum. This method is specific +to the Czech Republic. Due to the corrective terms, this projection method is +no longer strictly conformal. + +By default, coordinates in the forward direction are output in easting, northing, +and negative in the Czech Republic, with absolute value of easting/westing +being smaller than absolute value of northing/southing. +To distinguish it from regular Krovak, the usual value for ``+x_0`` and ``+y_0`` +in Modified Krovak is typically 5,000,000. + +Parameters +################################################################################ + +.. note:: All parameters are optional for the Modified Krovak projection. + + The latitude of pseudo standard parallel is hardcoded to 78.5° and + the ellipsoid to Bessel. + +.. option:: +czech + + Reverse the sign of the output coordinates, as is tradition in the + Czech Republic, to be westing, southing (positive values in Czech Republic) + +.. option:: +lon_0= + + Longitude of projection center. + + *Defaults to 24°50' (24.8333333333333)* + +.. option:: +lat_0= + + Latitude of projection center. + + *Defaults to 49.5* + +.. option:: +k_0= + + Scale factor. Determines scale factor used in the projection. + + *Defaults to 0.9999* + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index f7af8282e1..92a32d564a 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -10635,7 +10635,7 @@ PROJStringParser::Private::buildDatum(Step &step, const std::string &title) { !fStr.empty() || !esStr.empty() || !eStr.empty(); if (!numericParamPresent && ellpsStr.empty() && datumStr.empty() && - step.name == "krovak") { + (step.name == "krovak" || step.name == "mod_krovak")) { ellpsStr = "bessel"; } @@ -11059,7 +11059,8 @@ PROJStringParser::Private::processAxisSwap(Step &step, throw ParsingException("Unhandled order=" + orderStr); } } - } else if (step.name == "krovak" && hasParamValue(step, "czech")) { + } else if ((step.name == "krovak" || step.name == "mod_krovak") && + hasParamValue(step, "czech")) { axis[0] = west; axis[1] = south; } @@ -11519,6 +11520,16 @@ PROJStringParser::Private::buildProjectedCRS(int iStep, } else if (step.name == "krovak" && iAxisSwap < 0 && hasParamValue(step, "czech") && !hasParamValue(step, "axis")) { mapping = getMapping(EPSG_CODE_METHOD_KROVAK); + } else if (step.name == "mod_krovak" && + ((iAxisSwap < 0 && getParamValue(step, "axis") == "swu" && + !hasParamValue(step, "czech")) || + (iAxisSwap > 0 && + getParamValue(steps_[iAxisSwap], "order") == "-2,-1" && + !hasParamValue(step, "czech")))) { + mapping = getMapping(EPSG_CODE_METHOD_KROVAK_MODIFIED); + } else if (step.name == "mod_krovak" && iAxisSwap < 0 && + hasParamValue(step, "czech") && !hasParamValue(step, "axis")) { + mapping = getMapping(EPSG_CODE_METHOD_KROVAK_MODIFIED); } else if (step.name == "merc") { if (hasParamValue(step, "a") && hasParamValue(step, "b") && getParamValue(step, "a") == getParamValue(step, "b") && @@ -11692,7 +11703,7 @@ PROJStringParser::Private::buildProjectedCRS(int iStep, if (!paramValue->empty()) { value = getAngularValue(*paramValue); } - } else if (step.name == "krovak") { + } else if (step.name == "krovak" || step.name == "mod_krovak") { // Keep it in sync with defaults of krovak.cpp if (param->epsg_code == EPSG_CODE_PARAMETER_LATITUDE_PROJECTION_CENTRE) { @@ -12278,7 +12289,8 @@ PROJStringParser::createFromPROJString(const std::string &projString) { continue; } foundKeys.insert(kv.key); - if (step.name == "krovak" && kv.key == "alpha") { + if ((step.name == "krovak" || step.name == "mod_krovak") && + kv.key == "alpha") { // We recognize it in our CRS parsing code recognizedByPROJ = true; } else { diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index 31de78c1cd..66894529de 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -3925,7 +3925,9 @@ void Conversion::_exportToPROJString( "y_0", parameterValueNumericAsSI( EPSG_CODE_PARAMETER_NORTHING_PROJECTION_CENTRE)); } - } else if (methodEPSGCode == EPSG_CODE_METHOD_KROVAK_NORTH_ORIENTED) { + } else if (methodEPSGCode == EPSG_CODE_METHOD_KROVAK_NORTH_ORIENTED || + methodEPSGCode == + EPSG_CODE_METHOD_KROVAK_MODIFIED_NORTH_ORIENTED) { double colatitude = parameterValueNumeric(EPSG_CODE_PARAMETER_COLATITUDE_CONE_AXIS, common::UnitOfMeasure::DEGREE); @@ -4184,7 +4186,9 @@ void Conversion::_exportToPROJString( if (mapping->proj_name_aux) { bool addAux = true; if (internal::starts_with(mapping->proj_name_aux, "axis=")) { - if (mapping->epsg_code == EPSG_CODE_METHOD_KROVAK) { + if (mapping->epsg_code == EPSG_CODE_METHOD_KROVAK || + mapping->epsg_code == + EPSG_CODE_METHOD_KROVAK_MODIFIED) { auto projCRS = dynamic_cast( l_targetCRS.get()); if (projCRS) { diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 6f5274cfda..19bded5ebd 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -760,6 +760,13 @@ static const MethodMapping projectionMethodMappings[] = { {EPSG_NAME_METHOD_KROVAK, EPSG_CODE_METHOD_KROVAK, "Krovak", "krovak", "axis=swu", krovakParameters}, + {EPSG_NAME_METHOD_KROVAK_MODIFIED_NORTH_ORIENTED, + EPSG_CODE_METHOD_KROVAK_MODIFIED_NORTH_ORIENTED, nullptr, "mod_krovak", + nullptr, krovakParameters}, + + {EPSG_NAME_METHOD_KROVAK_MODIFIED, EPSG_CODE_METHOD_KROVAK_MODIFIED, + nullptr, "mod_krovak", "axis=swu", krovakParameters}, + {EPSG_NAME_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA, EPSG_CODE_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA, "Lambert_Azimuthal_Equal_Area", "laea", nullptr, paramsLaea}, diff --git a/src/pj_list.h b/src/pj_list.h index a71e49a21a..e0b2035687 100644 --- a/src/pj_list.h +++ b/src/pj_list.h @@ -104,6 +104,7 @@ PROJ_HEAD(merc, "Mercator") PROJ_HEAD(mil_os, "Miller Oblated Stereographic") PROJ_HEAD(mill, "Miller Cylindrical") PROJ_HEAD(misrsom, "Space oblique for MISR") +PROJ_HEAD(mod_krovak, "Modified Krovak") PROJ_HEAD(moll, "Mollweide") PROJ_HEAD(molobadekas, "Molodensky-Badekas transform") /* implemented in PJ_helmert.c */ diff --git a/src/proj_constants.h b/src/proj_constants.h index 97102d54cc..f72d115907 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -173,6 +173,13 @@ #define EPSG_NAME_METHOD_KROVAK "Krovak" #define EPSG_CODE_METHOD_KROVAK 9819 +#define EPSG_NAME_METHOD_KROVAK_MODIFIED "Krovak Modified" +#define EPSG_CODE_METHOD_KROVAK_MODIFIED 1042 + +#define EPSG_NAME_METHOD_KROVAK_MODIFIED_NORTH_ORIENTED \ + "Krovak Modified (North Orientated)" +#define EPSG_CODE_METHOD_KROVAK_MODIFIED_NORTH_ORIENTED 1043 + #define EPSG_NAME_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA \ "Lambert Azimuthal Equal Area" #define EPSG_CODE_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA 9820 diff --git a/src/projections/krovak.cpp b/src/projections/krovak.cpp index ef5cf65c9d..4c75e7e9cd 100644 --- a/src/projections/krovak.cpp +++ b/src/projections/krovak.cpp @@ -78,10 +78,13 @@ #include #include +#include + #include "proj.h" #include "proj_internal.h" PROJ_HEAD(krovak, "Krovak") "\n\tPCyl, Ell"; +PROJ_HEAD(mod_krovak, "Modified Krovak") "\n\tPCyl, Ell"; #define EPS 1e-15 #define UQ 1.04216856380474 /* DU(2, 59, 42, 42.69689) */ @@ -97,41 +100,107 @@ struct pj_krovak_data { double n; double rho0; double ad; - int czech; + bool easting_northing; // true, in default mode. false when using +czech + bool modified; }; } // anonymous namespace +namespace pj_modified_krovak { +constexpr double X0 = 1089000.0; +constexpr double Y0 = 654000.0; +constexpr double C1 = 2.946529277E-02; +constexpr double C2 = 2.515965696E-02; +constexpr double C3 = 1.193845912E-07; +constexpr double C4 = -4.668270147E-07; +constexpr double C5 = 9.233980362E-12; +constexpr double C6 = 1.523735715E-12; +constexpr double C7 = 1.696780024E-18; +constexpr double C8 = 4.408314235E-18; +constexpr double C9 = -8.331083518E-24; +constexpr double C10 = -3.689471323E-24; + +// Correction terms to be applied to regular Krovak to obtain Modified Krovak. +// Note that Xr is a Southing in metres and Yr a Westing in metres, +// and output (dX, dY) is a corrective term in (Southing, Westing) in metres +// Reference: +// https://www.cuzk.cz/Zememerictvi/Geodeticke-zaklady-na-uzemi-CR/GNSS/Nova-realizace-systemu-ETRS89-v-CR/Metodika-prevodu-ETRF2000-vs-S-JTSK-var2(101208).aspx +static void mod_krovak_compute_dx_dy(const double Xr, const double Yr, + double &dX, double &dY) { + const double Xr2 = Xr * Xr; + const double Yr2 = Yr * Yr; + const double Xr4 = Xr2 * Xr2; + const double Yr4 = Yr2 * Yr2; + + dX = C1 + C3 * Xr - C4 * Yr - 2 * C6 * Xr * Yr + C5 * (Xr2 - Yr2) + + C7 * Xr * (Xr2 - 3 * Yr2) - C8 * Yr * (3 * Xr2 - Yr2) + + 4 * C9 * Xr * Yr * (Xr2 - Yr2) + C10 * (Xr4 + Yr4 - 6 * Xr2 * Yr2); + dY = C2 + C3 * Yr + C4 * Xr + 2 * C5 * Xr * Yr + C6 * (Xr2 - Yr2) + + C8 * Xr * (Xr2 - 3 * Yr2) + C7 * Yr * (3 * Xr2 - Yr2) - + 4 * C10 * Xr * Yr * (Xr2 - Yr2) + C9 * (Xr4 + Yr4 - 6 * Xr2 * Yr2); +} + +} // namespace pj_modified_krovak + static PJ_XY krovak_e_forward(PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ struct pj_krovak_data *Q = static_cast(P->opaque); PJ_XY xy = {0.0, 0.0}; - double gfi, u, deltav, s, d, eps, rho; - - gfi = pow((1. + P->e * sin(lp.phi)) / (1. - P->e * sin(lp.phi)), - Q->alpha * P->e / 2.); + const double gfi = + pow((1. + P->e * sin(lp.phi)) / (1. - P->e * sin(lp.phi)), + Q->alpha * P->e / 2.); - u = 2. * + const double u = + 2. * (atan(Q->k * pow(tan(lp.phi / 2. + M_PI_4), Q->alpha) / gfi) - M_PI_4); - deltav = -lp.lam * Q->alpha; + const double deltav = -lp.lam * Q->alpha; - s = asin(cos(Q->ad) * sin(u) + sin(Q->ad) * cos(u) * cos(deltav)); + const double s = + asin(cos(Q->ad) * sin(u) + sin(Q->ad) * cos(u) * cos(deltav)); const double cos_s = cos(s); if (cos_s < 1e-12) { xy.x = 0; xy.y = 0; return xy; } - d = asin(cos(u) * sin(deltav) / cos_s); + const double d = asin(cos(u) * sin(deltav) / cos_s); + + const double eps = Q->n * d; + const double rho = Q->rho0 * pow(tan(S0 / 2. + M_PI_4), Q->n) / + pow(tan(s / 2. + M_PI_4), Q->n); - eps = Q->n * d; - rho = Q->rho0 * pow(tan(S0 / 2. + M_PI_4), Q->n) / - pow(tan(s / 2. + M_PI_4), Q->n); + xy.x = rho * cos(eps); + xy.y = rho * sin(eps); - xy.y = rho * cos(eps); - xy.x = rho * sin(eps); + // At this point, xy.x is a southing and xy.y is a westing + + if (Q->modified) { + using namespace pj_modified_krovak; + + const double Xp = xy.x; + const double Yp = xy.y; + + // Reduced X and Y + const double Xr = Xp * P->a - X0; + const double Yr = Yp * P->a - Y0; + + double dX, dY; + mod_krovak_compute_dx_dy(Xr, Yr, dX, dY); + + xy.x = Xp - dX / P->a; + xy.y = Yp - dY / P->a; + } - xy.y *= Q->czech; - xy.x *= Q->czech; + // PROJ always return values in (easting, northing) (default mode) + // or (westing, southing) (+czech mode), so swap X/Y + std::swap(xy.x, xy.y); + + if (Q->easting_northing) { + // The default non-Czech convention uses easting, northing, so we have + // to reverse the sign of the coordinates. But to do so, we have to take + // into account the false easting/northing. + xy.x = -xy.x - 2 * P->x0 / P->a; + xy.y = -xy.y - 2 * P->y0 / P->a; + } return xy; } @@ -140,20 +209,36 @@ static PJ_LP krovak_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ struct pj_krovak_data *Q = static_cast(P->opaque); PJ_LP lp = {0.0, 0.0}; - double u, deltav, s, d, eps, rho, fi1, xy0; - int i; + if (Q->easting_northing) { + // The default non-Czech convention uses easting, northing, so we have + // to reverse the sign of the coordinates. But to do so, we have to take + // into account the false easting/northing. + xy.y = -xy.y - 2 * P->x0 / P->a; + xy.x = -xy.x - 2 * P->y0 / P->a; + } + + std::swap(xy.x, xy.y); + + if (Q->modified) { + using namespace pj_modified_krovak; - xy0 = xy.x; - xy.x = xy.y; - xy.y = xy0; + // Note: in EPSG guidance node 7-2, below Xr/Yr/dX/dY are actually + // Xr'/Yr'/dX'/dY' + const double Xr = xy.x * P->a - X0; + const double Yr = xy.y * P->a - Y0; - xy.x *= Q->czech; - xy.y *= Q->czech; + double dX, dY; + mod_krovak_compute_dx_dy(Xr, Yr, dX, dY); - rho = sqrt(xy.x * xy.x + xy.y * xy.y); - eps = atan2(xy.y, xy.x); + xy.x = xy.x + dX / P->a; + xy.y = xy.y + dY / P->a; + } + + const double rho = sqrt(xy.x * xy.x + xy.y * xy.y); + const double eps = atan2(xy.y, xy.x); - d = eps / sin(S0); + const double d = eps / sin(S0); + double s; if (rho == 0.0) { s = M_PI_2; } else { @@ -161,14 +246,15 @@ static PJ_LP krovak_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ M_PI_4); } - u = asin(cos(Q->ad) * sin(s) - sin(Q->ad) * cos(s) * cos(d)); - deltav = asin(cos(s) * sin(d) / cos(u)); + const double u = asin(cos(Q->ad) * sin(s) - sin(Q->ad) * cos(s) * cos(d)); + const double deltav = asin(cos(s) * sin(d) / cos(u)); lp.lam = P->lam0 - deltav / Q->alpha; /* ITERATION FOR lp.phi */ - fi1 = u; + double fi1 = u; + int i; for (i = MAX_ITER; i; --i) { lp.phi = 2. * (atan(pow(Q->k, -1. / Q->alpha) * pow(tan(u / 2. + M_PI_4), 1. / Q->alpha) * @@ -189,7 +275,7 @@ static PJ_LP krovak_e_inverse(PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ return lp; } -PJ *PJ_PROJECTION(krovak) { +static PJ *krovak_setup(PJ *P, bool modified) { double u0, n0, g; struct pj_krovak_data *Q = static_cast( calloc(1, sizeof(struct pj_krovak_data))); @@ -217,9 +303,11 @@ PJ *PJ_PROJECTION(krovak) { !pj_param(P->ctx, P->params, "tk_0").i) P->k0 = 0.9999; - Q->czech = 1; - if (!pj_param(P->ctx, P->params, "tczech").i) - Q->czech = -1; + Q->modified = modified; + + Q->easting_northing = true; + if (pj_param(P->ctx, P->params, "tczech").i) + Q->easting_northing = false; /* Set up shared parameters between forward and inverse */ Q->alpha = sqrt(1. + (P->es * pow(cos(P->phi0), 4)) / (1. - P->es)); @@ -244,6 +332,10 @@ PJ *PJ_PROJECTION(krovak) { return P; } +PJ *PJ_PROJECTION(krovak) { return krovak_setup(P, false); } + +PJ *PJ_PROJECTION(mod_krovak) { return krovak_setup(P, true); } + #undef EPS #undef UQ #undef S0 diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 0c1a267a9a..0c29235325 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -2846,6 +2846,50 @@ operation +proj=krovak +lat_0=-90 ------------------------------------------------------------------------------- expect failure errno invalid_op_illegal_arg_value + +# Test point from EPSG Guidance Note 7-2 +------------------------------------------------------------------------------- +operation +proj=krovak +lat_0=49.5 +lon_0=42.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +------------------------------------------------------------------------------- +tolerance 1.1 cm +# 16°50'59.179"E, 50°12'32.442"N +accept 16.849771944444445 50.20901166666667 +expect -568991.00 -1050538.64 +roundtrip 1 + +------------------------------------------------------------------------------- +operation +proj=krovak +lat_0=49.5 +lon_0=42.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +czech +------------------------------------------------------------------------------- +tolerance 1.1 cm +# 16°50'59.179"E, 50°12'32.442"N +accept 16.849771944444445 50.20901166666667 +expect 568991.00 1050538.64 +roundtrip 1 + +=============================================================================== +# Krovak Modified +# PCyl., Ellps. +=============================================================================== + +# Test point from EPSG Guidance Note 7-2 +# Note: all longitudes below are east of Ferro +------------------------------------------------------------------------------- +operation +proj=mod_krovak +lat_0=49.5 +lon_0=42.5 +k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel +------------------------------------------------------------------------------- +tolerance 1 cm +# 34°30'59.179"E of Ferro, 50°12'32.442"N +accept 34.51643861111111 50.20901166666667 +expect -5568990.91 -6050538.71 +roundtrip 1 + +------------------------------------------------------------------------------- +operation +proj=mod_krovak +lat_0=49.5 +lon_0=42.5 +k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel +czech +------------------------------------------------------------------------------- +tolerance 1 cm +accept 34.51643861111111 50.20901166666667 +expect 5568990.91 6050538.71 +roundtrip 1 + =============================================================================== # Laborde # Cyl, Sph diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 172dd6d29e..790d34e796 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -1792,6 +1792,211 @@ TEST(wkt_parse, wkt1_krovak_north_oriented) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt2_krovak_modified_south_west) { + auto wkt = + "PROJCRS[\"S-JTSK/05 / Modified Krovak\",\n" + " BASEGEOGCRS[\"S-JTSK/05\",\n" + " DATUM[\"System of the Unified Trigonometrical Cadastral " + "Network/05\",\n" + " ELLIPSOID[\"Bessel 1841\",6377397.155,299.1528128,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " ID[\"EPSG\",5228]],\n" + " CONVERSION[\"Modified Krovak (Greenwich)\",\n" + " METHOD[\"Krovak Modified\",\n" + " ID[\"EPSG\",1042]],\n" + " PARAMETER[\"Latitude of projection centre\",49.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8811]],\n" + " PARAMETER[\"Longitude of origin\",24.8333333333333,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8833]],\n" + " PARAMETER[\"Co-latitude of cone axis\",30.2881397222222,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",1036]],\n" + " PARAMETER[\"Latitude of pseudo standard parallel\",78.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8818]],\n" + " PARAMETER[\"Scale factor on pseudo standard " + "parallel\",0.9999,\n" + " SCALEUNIT[\"unity\",1],\n" + " ID[\"EPSG\",8819]],\n" + " PARAMETER[\"False easting\",5000000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",5000000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"southing (X)\",south,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " AXIS[\"westing (Y)\",west,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " USAGE[\n" + " SCOPE[\"Engineering survey, topographic mapping.\"],\n" + " AREA[\"Czechia.\"],\n" + " BBOX[48.58,12.09,51.06,18.86]],\n" + " ID[\"EPSG\",5515]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + EXPECT_EQ(crs->derivingConversion()->method()->nameStr(), + "Krovak Modified"); + + EXPECT_EQ( + crs->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), + wkt); + + auto projString = + crs->exportToPROJString(PROJStringFormatter::create().get()); + auto expectedPROJString = + "+proj=mod_krovak +axis=swu +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397222222 +k=0.9999 +x_0=5000000 +y_0=5000000 " + "+ellps=bessel +units=m +no_defs +type=crs"; + EXPECT_EQ(projString, expectedPROJString); + + obj = PROJStringParser().createFromPROJString(projString); + auto crs2 = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs2 != nullptr); + auto wkt2 = crs2->exportToWKT(WKTFormatter::create().get()); + EXPECT_TRUE(wkt2.find("METHOD[\"Krovak Modified\"") != std::string::npos) + << wkt2; + EXPECT_TRUE( + wkt2.find("PARAMETER[\"Latitude of pseudo standard parallel\",78.5,") != + std::string::npos) + << wkt2; + EXPECT_TRUE( + wkt2.find("PARAMETER[\"Co-latitude of cone axis\",30.2881397222222,") != + std::string::npos) + << wkt2; + EXPECT_EQ(crs2->exportToPROJString(PROJStringFormatter::create().get()), + expectedPROJString); + + obj = PROJStringParser().createFromPROJString( + "+type=crs +proj=pipeline +step +proj=unitconvert +xy_in=deg " + "+xy_out=rad " + "+step +proj=mod_krovak +lat_0=49.5 " + "+lon_0=24.8333333333333 +alpha=30.2881397222222 " + "+k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel " + "+step +proj=axisswap +order=-2,-1"); + crs2 = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs2 != nullptr); + wkt2 = crs2->exportToWKT(WKTFormatter::create().get()); + EXPECT_TRUE(wkt2.find("METHOD[\"Krovak Modified\"") != std::string::npos) + << wkt2; +} + +// --------------------------------------------------------------------------- + +TEST(wkt_parse, wkt2_krovak_modified_east_north) { + auto wkt = + "PROJCRS[\"S-JTSK/05 / Modified Krovak East North\",\n" + " BASEGEOGCRS[\"S-JTSK/05\",\n" + " DATUM[\"System of the Unified Trigonometrical Cadastral " + "Network/05\",\n" + " ELLIPSOID[\"Bessel 1841\",6377397.155,299.1528128,\n" + " LENGTHUNIT[\"metre\",1]]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " ID[\"EPSG\",5228]],\n" + " CONVERSION[\"Modified Krovak East North (Greenwich)\",\n" + " METHOD[\"Krovak Modified (North Orientated)\",\n" + " ID[\"EPSG\",1043]],\n" + " PARAMETER[\"Latitude of projection centre\",49.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8811]],\n" + " PARAMETER[\"Longitude of origin\",24.8333333333333,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8833]],\n" + " PARAMETER[\"Co-latitude of cone axis\",30.2881397222222,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",1036]],\n" + " PARAMETER[\"Latitude of pseudo standard parallel\",78.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8818]],\n" + " PARAMETER[\"Scale factor on pseudo standard " + "parallel\",0.9999,\n" + " SCALEUNIT[\"unity\",1],\n" + " ID[\"EPSG\",8819]],\n" + " PARAMETER[\"False easting\",5000000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",5000000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"easting (X)\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " AXIS[\"northing (Y)\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " USAGE[\n" + " SCOPE[\"GIS.\"],\n" + " AREA[\"Czechia.\"],\n" + " BBOX[48.58,12.09,51.06,18.86]],\n" + " ID[\"EPSG\",5516]]"; + + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + EXPECT_EQ(crs->derivingConversion()->method()->nameStr(), + "Krovak Modified (North Orientated)"); + + EXPECT_EQ( + crs->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT2_2019).get()), + wkt); + + auto projString = + crs->exportToPROJString(PROJStringFormatter::create().get()); + auto expectedPROJString = + "+proj=mod_krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397222222 +k=0.9999 +x_0=5000000 +y_0=5000000 " + "+ellps=bessel +units=m +no_defs +type=crs"; + EXPECT_EQ(projString, expectedPROJString); + + obj = PROJStringParser().createFromPROJString(projString); + auto crs2 = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs2 != nullptr); + auto wkt2 = crs2->exportToWKT(WKTFormatter::create().get()); + EXPECT_TRUE(wkt2.find("METHOD[\"Krovak Modified (North Orientated)\"") != + std::string::npos) + << wkt2; + EXPECT_TRUE( + wkt2.find("PARAMETER[\"Latitude of pseudo standard parallel\",78.5,") != + std::string::npos) + << wkt2; + EXPECT_TRUE( + wkt2.find("PARAMETER[\"Co-latitude of cone axis\",30.2881397222222,") != + std::string::npos) + << wkt2; + EXPECT_EQ(crs2->exportToPROJString(PROJStringFormatter::create().get()), + expectedPROJString); + + obj = PROJStringParser().createFromPROJString( + "+type=crs +proj=pipeline +step +proj=unitconvert +xy_in=deg " + "+xy_out=rad " + "+step +proj=mod_krovak +lat_0=49.5 " + "+lon_0=24.8333333333333 +alpha=30.2881397222222 " + "+k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel"); + crs2 = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs2 != nullptr); + wkt2 = crs2->exportToWKT(WKTFormatter::create().get()); + EXPECT_TRUE(wkt2.find("METHOD[\"Krovak Modified (North Orientated)\"") != + std::string::npos) + << wkt2; +} + +// --------------------------------------------------------------------------- + TEST(wkt_parse, wkt1_polar_stereographic_latitude_of_origin_70) { auto wkt = "PROJCS[\"unknown\",\n" " GEOGCS[\"unknown\",\n" @@ -11126,6 +11331,68 @@ TEST(io, projparse_krovak_czech) { // --------------------------------------------------------------------------- +TEST(io, projparse_krovak_modified) { + auto obj = + PROJStringParser().createFromPROJString("+proj=mod_krovak +type=crs"); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + WKTFormatterNNPtr f(WKTFormatter::create()); + f->simulCurNodeHasId(); + f->setMultiLine(false); + crs->exportToWKT(f.get()); + auto wkt = f->toString(); + EXPECT_TRUE(wkt.find("METHOD[\"Krovak Modified (North " + "Orientated)\",ID[\"EPSG\",1043]]") != + std::string::npos) + << wkt; +} + +// --------------------------------------------------------------------------- + +TEST(io, projparse_krovak_modified_axis_swu) { + auto obj = PROJStringParser().createFromPROJString( + "+proj=mod_krovak +axis=swu +type=crs"); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + WKTFormatterNNPtr f(WKTFormatter::create()); + f->simulCurNodeHasId(); + f->setMultiLine(false); + crs->exportToWKT(f.get()); + auto wkt = f->toString(); + EXPECT_TRUE(wkt.find("METHOD[\"Krovak Modified\",ID[\"EPSG\",1042]]") != + std::string::npos) + << wkt; +} + +// --------------------------------------------------------------------------- + +TEST(io, projparse_krovak_modified_czech) { + auto obj = PROJStringParser().createFromPROJString( + "+proj=mod_krovak +czech +x_0=5000000 +y_0=5000000 +type=crs"); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + EXPECT_EQ(crs->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=mod_krovak +czech +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=5000000 +y_0=5000000 " + "+ellps=bessel +units=m +no_defs +type=crs"); + WKTFormatterNNPtr f(WKTFormatter::create()); + f->simulCurNodeHasId(); + f->setMultiLine(false); + crs->exportToWKT(f.get()); + auto wkt = f->toString(); + EXPECT_TRUE(wkt.find("METHOD[\"Krovak Modified\",ID[\"EPSG\",1042]]") != + std::string::npos) + << wkt; + EXPECT_TRUE(wkt.find(",AXIS[\"westing\",west,ORDER[1]") != + std::string::npos) + << wkt; + EXPECT_TRUE(wkt.find(",AXIS[\"southing\",south,ORDER[2]") != + std::string::npos) + << wkt; +} + +// --------------------------------------------------------------------------- + TEST(io, projparse_etmerc) { auto obj = PROJStringParser().createFromPROJString("+proj=etmerc +type=crs"); From 1391fce4e5c6d084f3e7ef103157bd92993b3625 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 2 Feb 2024 12:15:12 +0100 Subject: [PATCH 170/199] Fix example 3 in cct.rst Closes #4017 --- docs/source/apps/cct.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/apps/cct.rst b/docs/source/apps/cct.rst index 20d41ca53b..7fb87b10ac 100644 --- a/docs/source/apps/cct.rst +++ b/docs/source/apps/cct.rst @@ -169,7 +169,7 @@ Should give results comparable to the classic :program:`proj` command .. code-block:: console - cct +proj=pipeline +proj=utm +ellps=GRS80 +zone=32 +step +step +inv + cct +proj=pipeline +ellps=GRS80 +zone=32 +step +proj=utm +step +proj=utm +inv 4. As (2) but specify input columns for longitude, latitude, height and time: From a3b225fc9e8ae4423449c2862833bf747a4573ad Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 3 Feb 2024 13:08:32 +0100 Subject: [PATCH 171/199] Fix typo in comment --- src/iso19111/io.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 92a32d564a..066956fc45 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -9136,7 +9136,7 @@ const std::string &PROJStringFormatter::toString() const { } } - // hermert followed by its inverse is a no-op + // Helmert followed by its inverse is a no-op if (curStep.name == "helmert" && prevStep.name == "helmert" && !curStep.inverted && !prevStep.inverted && curStepParamCount == prevStepParamCount) { From d24bd04309a1b59e1e15e6aec74a9a25cc189635 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 3 Feb 2024 13:34:33 +0100 Subject: [PATCH 172/199] PROJString formatter optimizer: simplify pipelines doing [Modified]Krovak (South West) <--> [Modified]Krovak (East North) by just doing an axis swap --- src/iso19111/io.cpp | 45 ++++++++++++++++++++++ test/unit/test_io.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 066956fc45..ad6c6ac4d6 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -9241,6 +9241,51 @@ const std::string &PROJStringFormatter::toString() const { } } + // Optimize patterns like Krovak (South West) to Krovak East North + // (also applies to Modified Krovak) + // +step +inv +proj=krovak +axis=swu +lat_0=49.5 + // +lon_0=24.8333333333333 + // +alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel + // +step +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 + // +alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel + // as: + // +step +proj=axisswap +order=-2,-1 + // Also applies for the symmetrical case where +axis=swu is on the + // second step. + if (curStep.inverted != prevStep.inverted && + curStep.name == prevStep.name && + ((curStepParamCount + 1 == prevStepParamCount && + prevStep.paramValues[0].equals("axis", "swu")) || + (prevStepParamCount + 1 == curStepParamCount && + curStep.paramValues[0].equals("axis", "swu")))) { + const auto &swStep = (curStepParamCount < prevStepParamCount) + ? prevStep + : curStep; + const auto &enStep = (curStepParamCount < prevStepParamCount) + ? curStep + : prevStep; + // Check if all remaining parameters (except leading axis=swu + // in swStep) are identical. + bool allSame = true; + for (size_t j = 0; + j < std::min(curStepParamCount, prevStepParamCount); j++) { + if (enStep.paramValues[j] != swStep.paramValues[j + 1]) { + allSame = false; + break; + } + } + if (allSame) { + iterCur->inverted = false; + iterCur->name = "axisswap"; + iterCur->paramValues.clear(); + iterCur->paramValues.emplace_back( + Step::KeyValue("order", "-2,-1")); + + deletePrevIter(); + continue; + } + } + // detect a step and its inverse if (curStep.inverted != prevStep.inverted && curStep.name == prevStep.name && diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index 790d34e796..7e4d101877 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -10015,6 +10015,93 @@ TEST(io, projstringformatter_optim_as_uc_vgridshift_uc_as_push_as_uc) { // --------------------------------------------------------------------------- +TEST(io, projstringformatter_krovak_to_krovak_east_north) { + // Working case + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +axis=swu +lat_0=49.5 " + "+lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); + EXPECT_EQ(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } + + // Missing parameter + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +axis=swu +lat_0=49.5 " + "+lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 "); + // Not equal + EXPECT_NE(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } + + // Different parameter values + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +axis=swu +lat_0=49.5 " + "+lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +lat_0=FOO +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); + // Not equal + EXPECT_NE(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } +} + +// --------------------------------------------------------------------------- + +TEST(io, projstringformatter_krovak_east_north_to_krovak) { + // Working case + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +axis=swu +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); + EXPECT_EQ(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } + + // Missing parameter + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +axis=swu +lat_0=FOO +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0"); + // Not equal + EXPECT_NE(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } + + // Different parameter values + { + auto fmt = PROJStringFormatter::create(); + fmt->ingestPROJString( + "+proj=pipeline " + "+step +inv +proj=krovak +lat_0=49.5 +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel " + "+step +proj=krovak +axis=swu +lat_0=FOO +lon_0=24.8333333333333 " + "+alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); + // Not equal + EXPECT_NE(fmt->toString(), "+proj=axisswap +order=-2,-1"); + } +} + +// --------------------------------------------------------------------------- + TEST(io, projparse_longlat) { auto expected = "GEODCRS[\"unknown\",\n" From b74adbdafac06925f0759ac56e4cee8d74bfee07 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 6 Mar 2024 15:17:36 +0100 Subject: [PATCH 173/199] +proj=gridshift: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections --- data/tests/test_gridshift_projected.tif | Bin 0 -> 1741 bytes .../operations/transformations/gridshift.rst | 8 +- scripts/reference_exported_symbols.txt | 2 +- src/grids.cpp | 24 +- src/grids.hpp | 4 +- src/transformations/gridshift.cpp | 669 +++++++++++------- test/gie/gridshift.gie | 14 + test/unit/test_grids.cpp | 12 +- 8 files changed, 461 insertions(+), 272 deletions(-) create mode 100644 data/tests/test_gridshift_projected.tif diff --git a/data/tests/test_gridshift_projected.tif b/data/tests/test_gridshift_projected.tif new file mode 100644 index 0000000000000000000000000000000000000000..bcead1bcec6ed60adc4e67db88f84adacdef7319 GIT binary patch literal 1741 zcmbVMZD?Cn7(V$}Hfx`#M#w&jN<$pS`=0DN9P>L*FS9l+VV)CnF! zz6%m^^yy9#0{kc7ca{T$0^R}1R+jxF0{9@{Bd7diKL{Ox`zgT4{|5MYr52RK3yKyU zS)udNIYje|H2JtFlxU_{v&UAIm&I5Cb`L7Eq$BJ65KTb{otBO&(e0_3?8NZkU}7Ljm84B(EItV2z0$Ob zmN5S-YG<^MCZ$~$jsl`rx8nJ-Fcue#dyRTxS0dhLa)o`k^Oh=ZgHkQ6M1|VCB3PI^f*Z1E)LaqPy+>hj zErx{anU<}DQv`+38aJUktI$47ac52_qu{uPsJe4TL7I>W9>~u2 z{M;imsj$8$Gn?L*na=H=GBV@i*;KAQxgc#{Ri-lYj;2Mqo)wzW|8{JHIWYfA;AVJAQjm|LMW| gJPZ9XtY^#8DAvY?PVd3mJlpDnEpI&sbv(-c0ZVrKHvj+t literal 0 HcmV?d00001 diff --git a/docs/source/operations/transformations/gridshift.rst b/docs/source/operations/transformations/gridshift.rst index a125d9340a..28b6580089 100644 --- a/docs/source/operations/transformations/gridshift.rst +++ b/docs/source/operations/transformations/gridshift.rst @@ -13,12 +13,12 @@ Translation of geodetic coordinates using a grid shift. +-----------------+-------------------------------------------------------------------+ | **Domain** | 2D and 3D | +-----------------+-------------------------------------------------------------------+ -| **Input type** | Geodetic coordinates (horizontal), meters (vertical) | +| **Input type** | Geodetic or projected coordinates (horizontal), meters (vertical) | +-----------------+-------------------------------------------------------------------+ -| **Output type** | Geodetic coordinates (horizontal), meters (vertical) | +| **Output type** | Geodetic or projected coordinates (horizontal), meters (vertical) | +-----------------+-------------------------------------------------------------------+ -The transformation may apply horizontal geodetic offsetting and/or vertical +The transformation may apply horizontal geodetic or projected offsetting and/or vertical (ellipsoidal or orthometric height) offsetting, depending on the type of the grid(s). @@ -26,6 +26,8 @@ This is a generalization of the :ref:`hgridshift` and :ref:`vgridshift` methods, that may be used in particular for US NADCON5 grids that contain both horizontal geodetic and ellipsoidal height offsets. +.. note:: Support for grids referenced in a projected CRS has been added in PROJ 9.4.0 + Example ------------------------------------------------------------------------------- diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index fc6733b1ed..19860f2637 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -322,7 +322,7 @@ osgeo::proj::GenericShiftGridSet::gridAt(std::string const&, double, double) con osgeo::proj::GenericShiftGridSet::open(pj_ctx*, std::string const&) osgeo::proj::GenericShiftGridSet::reassign_context(pj_ctx*) osgeo::proj::GenericShiftGridSet::reopen(pj_ctx*) -osgeo::proj::GenericShiftGrid::valuesAt(int, int, int, int, int, int const*, float*) const +osgeo::proj::GenericShiftGrid::valuesAt(int, int, int, int, int, int const*, float*, bool&) const osgeo::proj::Grid::~Grid() osgeo::proj::Grid::Grid(std::string const&, int, int, osgeo::proj::ExtentAndRes const&) osgeo::proj::HorizontalShiftGrid::gridAt(double, double) const diff --git a/src/grids.cpp b/src/grids.cpp index e9ae9649cb..8429f8f71f 100644 --- a/src/grids.cpp +++ b/src/grids.cpp @@ -484,7 +484,8 @@ class GTiffGrid : public Grid { bool valueAt(uint16_t sample, int x, int y, float &out) const; bool valuesAt(int x_start, int y_start, int x_count, int y_count, - int sample_count, const int *sample_idx, float *out) const; + int sample_count, const int *sample_idx, float *out, + bool &nodataFound) const; bool isNodata(float val) const; @@ -769,11 +770,12 @@ bool GTiffGrid::valueAt(uint16_t sample, int x, int yFromBottom, // --------------------------------------------------------------------------- bool GTiffGrid::valuesAt(int x_start, int y_start, int x_count, int y_count, - int sample_count, const int *sample_idx, - float *out) const { + int sample_count, const int *sample_idx, float *out, + bool &nodataFound) const { const auto getTIFFRow = [this](int y) { return m_bottomUp ? y : m_height - 1 - y; }; + nodataFound = false; if (m_blockIs256Pixel && m_planarConfig == PLANARCONFIG_CONTIG && m_dt == TIFFDataType::Float32 && (x_start / 256) == (x_start + x_count - 1) / 256 && @@ -915,6 +917,9 @@ bool GTiffGrid::valuesAt(int x_start, int y_start, int x_count, int y_count, if (!valueAt(static_cast(sample_idx[isample]), x, y, *out)) return false; + if (isNodata(*out)) { + nodataFound = true; + } ++out; } } @@ -2845,8 +2850,8 @@ class GTiffGenericGrid final : public GenericShiftGrid { bool valueAt(int x, int y, int sample, float &out) const override; bool valuesAt(int x_start, int y_start, int x_count, int y_count, - int sample_count, const int *sample_idx, - float *out) const override; + int sample_count, const int *sample_idx, float *out, + bool &nodataFound) const override; int samplesPerPixel() const override { return m_grid->samplesPerPixel(); } @@ -2917,9 +2922,10 @@ bool GTiffGenericGrid::valueAt(int x, int y, int sample, float &out) const { bool GTiffGenericGrid::valuesAt(int x_start, int y_start, int x_count, int y_count, int sample_count, - const int *sample_idx, float *out) const { + const int *sample_idx, float *out, + bool &nodataFound) const { return m_grid->valuesAt(x_start, y_start, x_count, y_count, sample_count, - sample_idx, out); + sample_idx, out, nodataFound); } // --------------------------------------------------------------------------- @@ -3047,7 +3053,9 @@ GenericShiftGrid::~GenericShiftGrid() = default; bool GenericShiftGrid::valuesAt(int x_start, int y_start, int x_count, int y_count, int sample_count, - const int *sample_idx, float *out) const { + const int *sample_idx, float *out, + bool &nodataFound) const { + nodataFound = false; for (int y = y_start; y < y_start + y_count; ++y) { for (int x = x_start; x < x_start + x_count; ++x) { for (int isample = 0; isample < sample_count; ++isample) { diff --git a/src/grids.hpp b/src/grids.hpp index 40e38328bb..a5e0d8c4c4 100644 --- a/src/grids.hpp +++ b/src/grids.hpp @@ -215,8 +215,8 @@ class PROJ_GCC_DLL GenericShiftGrid : public Grid { PROJ_FOR_TEST virtual bool valuesAt(int x_start, int y_start, int x_count, int y_count, int sample_count, - const int *sample_idx, - float *out) const; + const int *sample_idx, float *out, + bool &nodataFound) const; PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx) = 0; }; diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index d628d36d32..7e9e7f92e0 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -25,6 +25,10 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ +#ifndef FROM_PROJ_CPP +#define FROM_PROJ_CPP +#endif + #include #include #include @@ -32,30 +36,43 @@ #include #include "grids.hpp" +#include "proj/internal/internal.hpp" #include "proj_internal.h" +#include #include #include #include +#include PROJ_HEAD(gridshift, "Generic grid shift"); static std::mutex gMutex{}; -static std::set gKnownGrids{}; +// Map of (name, isProjected) +static std::map gKnownGrids{}; using namespace NS_PROJ; namespace { // anonymous namespace +struct IXY { + int32_t x, y; + + inline bool operator!=(const IXY &other) const { + return x != other.x || y != other.y; + } +}; + struct GridInfo { - int idxSampleLat = -1; - int idxSampleLong = -1; + int idxSampleX = -1; + int idxSampleY = -1; int idxSampleZ = -1; + bool eastingNorthingOffset = false; bool bilinearInterpolation = true; std::vector shifts; - std::vector idxSampleLatLongZ{-1, -1, -1}; - int lastIdxLam = -1; - int lastIdxPhi = -1; + bool swapXYInRes = false; + std::vector idxSampleXYZ{-1, -1, -1}; + IXY lastIdxXY = IXY{-1, -1}; }; // --------------------------------------------------------------------------- @@ -75,31 +92,54 @@ struct gridshiftData { std::string m_interpolation{}; std::map m_cacheGridInfo{}; - bool checkGridTypes(PJ *P); + //! Offset in X to add in the forward direction, after the correction + // has been applied. (and reciprocally to subtract in the inverse direction + // before reading the grid). Used typically for the S-JTSK --> S-JTSK/05 + // grid + double m_offsetX = 0; + + //! Offset in Y to add in the forward direction, after the correction + // has been applied. (and reciprocally to subtract in the inverse direction + // before reading the grid). Used typically for the S-JTSK --> S-JTSK/05 + // grid + double m_offsetY = 0; + + bool checkGridTypes(PJ *P, bool &isProjectedCoord); + bool loadGridsIfNeeded(PJ *P); const GenericShiftGrid *findGrid(const std::string &type, - const PJ_LPZ &input, + const PJ_XYZ &input, GenericShiftGridSet *&gridSetOut) const; - PJ_LPZ grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, PJ_LP lp, + PJ_XYZ grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, PJ_XY xy, const GenericShiftGrid *grid, bool &biquadraticInterpolationOut); - PJ_LPZ grid_apply_internal(PJ_CONTEXT *ctx, const std::string &type, - bool isVerticalOnly, const PJ_LPZ in, + PJ_XYZ grid_apply_internal(PJ_CONTEXT *ctx, const std::string &type, + bool isVerticalOnly, const PJ_XYZ in, PJ_DIRECTION direction, const GenericShiftGrid *grid, GenericShiftGridSet *gridset, bool &shouldRetry); - PJ_LPZ apply(PJ *P, PJ_DIRECTION dir, PJ_LPZ lpz); + PJ_XYZ apply(PJ *P, PJ_DIRECTION dir, PJ_XYZ xyz); }; // --------------------------------------------------------------------------- -bool gridshiftData::checkGridTypes(PJ *P) { +bool gridshiftData::checkGridTypes(PJ *P, bool &isProjectedCoord) { + std::string offsetX, offsetY; + int gridCount = 0; + isProjectedCoord = false; for (const auto &gridset : m_grids) { for (const auto &grid : gridset->grids()) { + ++gridCount; const auto &type = grid->metadataItem("TYPE"); - if (type == "HORIZONTAL_OFFSET") + if (type == "HORIZONTAL_OFFSET") { m_bHasHorizontalOffset = true; - else if (type == "GEOGRAPHIC_3D_OFFSET") + if (offsetX.empty()) { + offsetX = grid->metadataItem("constant_offset", 0); + } + if (offsetY.empty()) { + offsetY = grid->metadataItem("constant_offset", 1); + } + } else if (type == "GEOGRAPHIC_3D_OFFSET") m_bHasGeographic3DOffset = true; else if (type == "ELLIPSOIDAL_HEIGHT_OFFSET") m_bHasEllipsoidalHeightOffset = true; @@ -115,6 +155,29 @@ bool gridshiftData::checkGridTypes(PJ *P) { P, _("Unhandled value for TYPE metadata item in grid(s).")); return false; } + + isProjectedCoord = !grid->extentAndRes().isGeographic; + } + } + + if (!offsetX.empty() || !offsetY.empty()) { + if (gridCount > 1) { + // Makes life easier... + proj_log_error(P, _("Shift offset found in one grid. Only one grid " + "with shift offset is supported at a time.")); + return false; + } + try { + m_offsetX = osgeo::proj::internal::c_locale_stod(offsetX); + } catch (const std::exception &) { + proj_log_error(P, _("Invalid offset value")); + return false; + } + try { + m_offsetY = osgeo::proj::internal::c_locale_stod(offsetY); + } catch (const std::exception &) { + proj_log_error(P, _("Invalid offset value")); + return false; } } @@ -158,10 +221,10 @@ bool gridshiftData::checkGridTypes(PJ *P) { // --------------------------------------------------------------------------- const GenericShiftGrid * -gridshiftData::findGrid(const std::string &type, const PJ_LPZ &input, +gridshiftData::findGrid(const std::string &type, const PJ_XYZ &input, GenericShiftGridSet *&gridSetOut) const { for (const auto &gridset : m_grids) { - auto grid = gridset->gridAt(type, input.lam, input.phi); + auto grid = gridset->gridAt(type, input.x, input.y); if (grid) { gridSetOut = gridset.get(); return grid; @@ -172,44 +235,60 @@ gridshiftData::findGrid(const std::string &type, const PJ_LPZ &input, // --------------------------------------------------------------------------- -typedef struct { - int32_t lam, phi; -} ILP; - #define REL_TOLERANCE_HGRIDSHIFT 1e-5 -PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, - PJ_LP lp, const GenericShiftGrid *grid, +PJ_XYZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, + PJ_XY xy, const GenericShiftGrid *grid, bool &biquadraticInterpolationOut) { - PJ_LPZ val; + PJ_XYZ val; - val.lam = val.phi = HUGE_VAL; + val.x = val.y = HUGE_VAL; val.z = 0; + const bool isProjectedCoord = !grid->extentAndRes().isGeographic; auto iterCache = m_cacheGridInfo.find(grid); if (iterCache == m_cacheGridInfo.end()) { + bool eastingNorthingOffset = false; const auto samplesPerPixel = grid->samplesPerPixel(); - int idxSampleLat = -1; - int idxSampleLong = -1; + int idxSampleY = -1; + int idxSampleX = -1; int idxSampleZ = -1; for (int i = 0; i < samplesPerPixel; i++) { const auto desc = grid->description(i); - if (desc == "latitude_offset") { - idxSampleLat = i; - const auto unit = grid->unit(idxSampleLat); + if (!isProjectedCoord && desc == "latitude_offset") { + idxSampleY = i; + const auto unit = grid->unit(idxSampleY); if (!unit.empty() && unit != "arc-second") { pj_log(ctx, PJ_LOG_ERROR, "gridshift: Only unit=arc-second currently handled"); return val; } - } else if (desc == "longitude_offset") { - idxSampleLong = i; - const auto unit = grid->unit(idxSampleLong); + } else if (!isProjectedCoord && desc == "longitude_offset") { + idxSampleX = i; + const auto unit = grid->unit(idxSampleX); if (!unit.empty() && unit != "arc-second") { pj_log(ctx, PJ_LOG_ERROR, "gridshift: Only unit=arc-second currently handled"); return val; } + } else if (isProjectedCoord && desc == "easting_offset") { + eastingNorthingOffset = true; + idxSampleX = i; + const auto unit = grid->unit(idxSampleX); + if (!unit.empty() && unit != "metre") { + pj_log(ctx, PJ_LOG_ERROR, + "gridshift: Only unit=metre currently handled"); + return val; + } + } else if (isProjectedCoord && desc == "northing_offset") { + eastingNorthingOffset = true; + idxSampleY = i; + const auto unit = grid->unit(idxSampleY); + if (!unit.empty() && unit != "metre") { + pj_log(ctx, PJ_LOG_ERROR, + "gridshift: Only unit=metre currently handled"); + return val; + } } else if (desc == "ellipsoidal_height_offset" || desc == "geoid_undulation" || desc == "hydroid_height" || desc == "vertical_offset") { @@ -222,13 +301,23 @@ PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, } } } - if (samplesPerPixel >= 2 && idxSampleLat < 0 && idxSampleLong < 0 && + if (samplesPerPixel >= 2 && idxSampleY < 0 && idxSampleX < 0 && type == "HORIZONTAL_OFFSET") { - idxSampleLat = 0; - idxSampleLong = 1; + if (isProjectedCoord) { + eastingNorthingOffset = true; + idxSampleX = 0; + idxSampleY = 1; + } else { + // X=longitude assumed to be the second component if metadata + // lacking + idxSampleX = 1; + // Y=latitude assumed to be the first component if metadata + // lacking + idxSampleY = 0; + } } if (type == "HORIZONTAL_OFFSET" || type == "GEOGRAPHIC_3D_OFFSET") { - if (idxSampleLat < 0 || idxSampleLong < 0) { + if (idxSampleY < 0 || idxSampleX < 0) { pj_log(ctx, PJ_LOG_ERROR, "gridshift: grid has not expected samples"); return val; @@ -258,121 +347,123 @@ PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, } GridInfo gridInfo; - gridInfo.idxSampleLat = idxSampleLat; - gridInfo.idxSampleLong = idxSampleLong; + gridInfo.idxSampleX = idxSampleX; + gridInfo.idxSampleY = idxSampleY; gridInfo.idxSampleZ = m_skip_z_transform ? -1 : idxSampleZ; + gridInfo.eastingNorthingOffset = eastingNorthingOffset; gridInfo.bilinearInterpolation = (interpolation == "bilinear" || grid->width() < 3 || grid->height() < 3); gridInfo.shifts.resize(3 * 3 * 3); - gridInfo.idxSampleLatLongZ[0] = idxSampleLat; - gridInfo.idxSampleLatLongZ[1] = idxSampleLong; - gridInfo.idxSampleLatLongZ[2] = idxSampleZ; + if (idxSampleX == 1 && idxSampleY == 0) { + // Little optimization for the common of grids storing shifts in + // latitude, longitude, in that order. + // We want to request data in the order it is stored in the grid, + // which triggers a read optimization. + // But we must compensate for that by switching the role of x and y + // after computation. + gridInfo.swapXYInRes = true; + gridInfo.idxSampleXYZ[0] = 0; + gridInfo.idxSampleXYZ[1] = 1; + } else { + gridInfo.idxSampleXYZ[0] = idxSampleX; + gridInfo.idxSampleXYZ[1] = idxSampleY; + } + gridInfo.idxSampleXYZ[2] = idxSampleZ; iterCache = m_cacheGridInfo.emplace(grid, std::move(gridInfo)).first; } GridInfo &gridInfo = iterCache->second; - const int idxSampleLat = gridInfo.idxSampleLat; - const int idxSampleLong = gridInfo.idxSampleLong; + const int idxSampleX = gridInfo.idxSampleX; + const int idxSampleY = gridInfo.idxSampleY; const int idxSampleZ = gridInfo.idxSampleZ; const bool bilinearInterpolation = gridInfo.bilinearInterpolation; biquadraticInterpolationOut = !bilinearInterpolation; - ILP indx; + IXY indxy; const auto &extent = grid->extentAndRes(); - double lam = (lp.lam - extent.west) / extent.resX; - indx.lam = std::isnan(lam) ? 0 : (int32_t)lround(floor(lam)); - double phi = (lp.phi - extent.south) / extent.resY; - indx.phi = std::isnan(phi) ? 0 : (int32_t)lround(floor(phi)); - - PJ_LP frct; - frct.lam = lam - indx.lam; - frct.phi = phi - indx.phi; + double x = (xy.x - extent.west) / extent.resX; + indxy.x = std::isnan(x) ? 0 : (int32_t)lround(floor(x)); + double y = (xy.y - extent.south) / extent.resY; + indxy.y = std::isnan(y) ? 0 : (int32_t)lround(floor(y)); + + PJ_XY frct; + frct.x = x - indxy.x; + frct.y = y - indxy.y; int tmpInt; - if (indx.lam < 0) { - if (indx.lam == -1 && frct.lam > 1 - 10 * REL_TOLERANCE_HGRIDSHIFT) { - ++indx.lam; - frct.lam = 0.; + if (indxy.x < 0) { + if (indxy.x == -1 && frct.x > 1 - 10 * REL_TOLERANCE_HGRIDSHIFT) { + ++indxy.x; + frct.x = 0.; } else return val; - } else if ((tmpInt = indx.lam + 1) >= grid->width()) { - if (tmpInt == grid->width() && - frct.lam < 10 * REL_TOLERANCE_HGRIDSHIFT) { - --indx.lam; - frct.lam = 1.; + } else if ((tmpInt = indxy.x + 1) >= grid->width()) { + if (tmpInt == grid->width() && frct.x < 10 * REL_TOLERANCE_HGRIDSHIFT) { + --indxy.x; + frct.x = 1.; } else return val; } - if (indx.phi < 0) { - if (indx.phi == -1 && frct.phi > 1 - 10 * REL_TOLERANCE_HGRIDSHIFT) { - ++indx.phi; - frct.phi = 0.; + if (indxy.y < 0) { + if (indxy.y == -1 && frct.y > 1 - 10 * REL_TOLERANCE_HGRIDSHIFT) { + ++indxy.y; + frct.y = 0.; } else return val; - } else if ((tmpInt = indx.phi + 1) >= grid->height()) { + } else if ((tmpInt = indxy.y + 1) >= grid->height()) { if (tmpInt == grid->height() && - frct.phi < 10 * REL_TOLERANCE_HGRIDSHIFT) { - --indx.phi; - frct.phi = 1.; + frct.y < 10 * REL_TOLERANCE_HGRIDSHIFT) { + --indxy.y; + frct.y = 1.; } else return val; } - constexpr double convFactorLatLong = 1. / 3600 / 180 * M_PI; + bool nodataFound = false; if (bilinearInterpolation) { - double m10 = frct.lam; + double m10 = frct.x; double m11 = m10; - double m01 = 1. - frct.lam; + double m01 = 1. - frct.x; double m00 = m01; - m11 *= frct.phi; - m01 *= frct.phi; - frct.phi = 1. - frct.phi; - m00 *= frct.phi; - m10 *= frct.phi; - if (idxSampleLong >= 0 && idxSampleLat >= 0) { - if (gridInfo.lastIdxPhi != indx.phi || - gridInfo.lastIdxLam != indx.lam) { - if (!grid->valuesAt(indx.lam, indx.phi, 2, 2, + m11 *= frct.y; + m01 *= frct.y; + frct.y = 1. - frct.y; + m00 *= frct.y; + m10 *= frct.y; + if (idxSampleX >= 0 && idxSampleY >= 0) { + if (gridInfo.lastIdxXY != indxy) { + if (!grid->valuesAt(indxy.x, indxy.y, 2, 2, idxSampleZ >= 0 ? 3 : 2, - gridInfo.idxSampleLatLongZ.data(), - gridInfo.shifts.data())) { + gridInfo.idxSampleXYZ.data(), + gridInfo.shifts.data(), nodataFound) || + nodataFound) { return val; } - gridInfo.lastIdxPhi = indx.phi; - gridInfo.lastIdxLam = indx.lam; + gridInfo.lastIdxXY = indxy; } if (idxSampleZ >= 0) { - val.phi = - (m00 * gridInfo.shifts[0] + m10 * gridInfo.shifts[3] + - m01 * gridInfo.shifts[6] + m11 * gridInfo.shifts[9]) * - convFactorLatLong; - val.lam = - (m00 * gridInfo.shifts[1] + m10 * gridInfo.shifts[4] + - m01 * gridInfo.shifts[7] + m11 * gridInfo.shifts[10]) * - convFactorLatLong; + val.x = (m00 * gridInfo.shifts[0] + m10 * gridInfo.shifts[3] + + m01 * gridInfo.shifts[6] + m11 * gridInfo.shifts[9]); + val.y = (m00 * gridInfo.shifts[1] + m10 * gridInfo.shifts[4] + + m01 * gridInfo.shifts[7] + m11 * gridInfo.shifts[10]); val.z = m00 * gridInfo.shifts[2] + m10 * gridInfo.shifts[5] + m01 * gridInfo.shifts[8] + m11 * gridInfo.shifts[11]; } else { - val.phi = - (m00 * gridInfo.shifts[0] + m10 * gridInfo.shifts[2] + - m01 * gridInfo.shifts[4] + m11 * gridInfo.shifts[6]) * - convFactorLatLong; - val.lam = - (m00 * gridInfo.shifts[1] + m10 * gridInfo.shifts[3] + - m01 * gridInfo.shifts[5] + m11 * gridInfo.shifts[7]) * - convFactorLatLong; + val.x = (m00 * gridInfo.shifts[0] + m10 * gridInfo.shifts[2] + + m01 * gridInfo.shifts[4] + m11 * gridInfo.shifts[6]); + val.y = (m00 * gridInfo.shifts[1] + m10 * gridInfo.shifts[3] + + m01 * gridInfo.shifts[5] + m11 * gridInfo.shifts[7]); } } else { - val.lam = 0; - val.phi = 0; + val.x = 0; + val.y = 0; if (idxSampleZ >= 0) { - if (gridInfo.lastIdxPhi != indx.phi || - gridInfo.lastIdxLam != indx.lam) { - if (!grid->valuesAt(indx.lam, indx.phi, 2, 2, 1, - &idxSampleZ, gridInfo.shifts.data())) { + if (gridInfo.lastIdxXY != indxy) { + if (!grid->valuesAt(indxy.x, indxy.y, 2, 2, 1, &idxSampleZ, + gridInfo.shifts.data(), nodataFound) || + nodataFound) { return val; } - gridInfo.lastIdxPhi = indx.phi; - gridInfo.lastIdxLam = indx.lam; + gridInfo.lastIdxXY = indxy; } val.z = m00 * gridInfo.shifts[0] + m10 * gridInfo.shifts[1] + m01 * gridInfo.shifts[2] + m11 * gridInfo.shifts[3]; @@ -383,125 +474,125 @@ PJ_LPZ gridshiftData::grid_interpolate(PJ_CONTEXT *ctx, const std::string &type, // Cf https://geodesy.noaa.gov/library/pdfs/NOAA_TM_NOS_NGS_0084.pdf // Depending if we are before or after half-pixel, shift the 3x3 window // of interpolation - if ((frct.lam <= 0.5 && indx.lam > 0) || - (indx.lam + 2 == grid->width())) { - indx.lam -= 1; - frct.lam += 1; + if ((frct.x <= 0.5 && indxy.x > 0) || (indxy.x + 2 == grid->width())) { + indxy.x -= 1; + frct.x += 1; } - if ((frct.phi <= 0.5 && indx.phi > 0) || - (indx.phi + 2 == grid->height())) { - indx.phi -= 1; - frct.phi += 1; + if ((frct.y <= 0.5 && indxy.y > 0) || (indxy.y + 2 == grid->height())) { + indxy.y -= 1; + frct.y += 1; } // Port of qterp() Fortran function from NOAA - // x must be in [0,2] range + // xToInterp must be in [0,2] range // f0 must be f(0), f1 must be f(1), f2 must be f(2) - // Returns f(x) interpolated value along the parabolic function - const auto quadraticInterpol = [](double x, double f0, double f1, - double f2) { + // Returns f(xToInterp) interpolated value along the parabolic function + const auto quadraticInterpol = [](double xToInterp, double f0, + double f1, double f2) { const double df0 = f1 - f0; const double df1 = f2 - f1; const double d2f0 = df1 - df0; - return f0 + x * df0 + 0.5 * x * (x - 1.0) * d2f0; + return f0 + xToInterp * df0 + + 0.5 * xToInterp * (xToInterp - 1.0) * d2f0; }; - if (idxSampleLong >= 0 && idxSampleLat >= 0) { - if (gridInfo.lastIdxPhi != indx.phi || - gridInfo.lastIdxLam != indx.lam) { - if (!grid->valuesAt(indx.lam, indx.phi, 3, 3, + if (idxSampleX >= 0 && idxSampleY >= 0) { + if (gridInfo.lastIdxXY != indxy) { + if (!grid->valuesAt(indxy.x, indxy.y, 3, 3, idxSampleZ >= 0 ? 3 : 2, - gridInfo.idxSampleLatLongZ.data(), - gridInfo.shifts.data())) { + gridInfo.idxSampleXYZ.data(), + gridInfo.shifts.data(), nodataFound) || + nodataFound) { return val; } - gridInfo.lastIdxPhi = indx.phi; - gridInfo.lastIdxLam = indx.lam; + gridInfo.lastIdxXY = indxy; } - const float *shifts_ptr = gridInfo.shifts.data(); + const auto *shifts_ptr = gridInfo.shifts.data(); if (idxSampleZ >= 0) { - double latlonz_shift[3][4]; + double xyz_shift[3][4]; for (int j = 0; j <= 2; ++j) { - latlonz_shift[j][0] = quadraticInterpol( - frct.lam, shifts_ptr[0], shifts_ptr[3], shifts_ptr[6]); - latlonz_shift[j][1] = quadraticInterpol( - frct.lam, shifts_ptr[1], shifts_ptr[4], shifts_ptr[7]); - latlonz_shift[j][2] = quadraticInterpol( - frct.lam, shifts_ptr[2], shifts_ptr[5], shifts_ptr[8]); + xyz_shift[j][0] = quadraticInterpol( + frct.x, shifts_ptr[0], shifts_ptr[3], shifts_ptr[6]); + xyz_shift[j][1] = quadraticInterpol( + frct.x, shifts_ptr[1], shifts_ptr[4], shifts_ptr[7]); + xyz_shift[j][2] = quadraticInterpol( + frct.x, shifts_ptr[2], shifts_ptr[5], shifts_ptr[8]); shifts_ptr += 9; } - val.phi = quadraticInterpol(frct.phi, latlonz_shift[0][0], - latlonz_shift[1][0], - latlonz_shift[2][0]) * - convFactorLatLong; - val.lam = quadraticInterpol(frct.phi, latlonz_shift[0][1], - latlonz_shift[1][1], - latlonz_shift[2][1]) * - convFactorLatLong; - val.z = - quadraticInterpol(frct.phi, latlonz_shift[0][2], - latlonz_shift[1][2], latlonz_shift[2][2]); + val.x = quadraticInterpol(frct.y, xyz_shift[0][0], + xyz_shift[1][0], xyz_shift[2][0]); + val.y = quadraticInterpol(frct.y, xyz_shift[0][1], + xyz_shift[1][1], xyz_shift[2][1]); + val.z = quadraticInterpol(frct.y, xyz_shift[0][2], + xyz_shift[1][2], xyz_shift[2][2]); } else { - double latlon_shift[3][2]; + double xy_shift[3][2]; for (int j = 0; j <= 2; ++j) { - latlon_shift[j][0] = quadraticInterpol( - frct.lam, shifts_ptr[0], shifts_ptr[2], shifts_ptr[4]); - latlon_shift[j][1] = quadraticInterpol( - frct.lam, shifts_ptr[1], shifts_ptr[3], shifts_ptr[5]); + xy_shift[j][0] = quadraticInterpol( + frct.x, shifts_ptr[0], shifts_ptr[2], shifts_ptr[4]); + xy_shift[j][1] = quadraticInterpol( + frct.x, shifts_ptr[1], shifts_ptr[3], shifts_ptr[5]); shifts_ptr += 6; } - val.phi = - quadraticInterpol(frct.phi, latlon_shift[0][0], - latlon_shift[1][0], latlon_shift[2][0]) * - convFactorLatLong; - val.lam = - quadraticInterpol(frct.phi, latlon_shift[0][1], - latlon_shift[1][1], latlon_shift[2][1]) * - convFactorLatLong; + val.x = quadraticInterpol(frct.y, xy_shift[0][0], + xy_shift[1][0], xy_shift[2][0]); + val.y = quadraticInterpol(frct.y, xy_shift[0][1], + xy_shift[1][1], xy_shift[2][1]); } } else { - val.lam = 0; - val.phi = 0; + val.x = 0; + val.y = 0; if (idxSampleZ >= 0) { - if (gridInfo.lastIdxPhi != indx.phi || - gridInfo.lastIdxLam != indx.lam) { - if (!grid->valuesAt(indx.lam, indx.phi, 3, 3, 1, - &idxSampleZ, gridInfo.shifts.data())) { + if (gridInfo.lastIdxXY != indxy) { + if (!grid->valuesAt(indxy.x, indxy.y, 3, 3, 1, &idxSampleZ, + gridInfo.shifts.data(), nodataFound) || + nodataFound) { return val; } - gridInfo.lastIdxPhi = indx.phi; - gridInfo.lastIdxLam = indx.lam; + gridInfo.lastIdxXY = indxy; } double z_shift[3]; - const float *shifts_ptr = gridInfo.shifts.data(); + const auto *shifts_ptr = gridInfo.shifts.data(); for (int j = 0; j <= 2; ++j) { z_shift[j] = quadraticInterpol( - frct.lam, shifts_ptr[0], shifts_ptr[1], shifts_ptr[2]); + frct.x, shifts_ptr[0], shifts_ptr[1], shifts_ptr[2]); shifts_ptr += 3; } - val.z = quadraticInterpol(frct.phi, z_shift[0], z_shift[1], + val.z = quadraticInterpol(frct.y, z_shift[0], z_shift[1], z_shift[2]); } } } + if (idxSampleX >= 0 && idxSampleY >= 0 && !gridInfo.eastingNorthingOffset) { + constexpr double convFactorXY = 1. / 3600 / 180 * M_PI; + val.x *= convFactorXY; + val.y *= convFactorXY; + } + + if (gridInfo.swapXYInRes) { + std::swap(val.x, val.y); + } + return val; } // --------------------------------------------------------------------------- -static PJ_LP normalizeLongitude(const GenericShiftGrid *grid, const PJ_LPZ in, - const NS_PROJ::ExtentAndRes *&extentOut) { - PJ_LP normalized; - normalized.lam = in.lam; - normalized.phi = in.phi; +static PJ_XY normalizeX(const GenericShiftGrid *grid, const PJ_XYZ in, + const NS_PROJ::ExtentAndRes *&extentOut) { + PJ_XY normalized; + normalized.x = in.x; + normalized.y = in.y; extentOut = &(grid->extentAndRes()); - const double epsilon = - (extentOut->resX + extentOut->resY) * REL_TOLERANCE_HGRIDSHIFT; - if (normalized.lam < extentOut->west - epsilon) - normalized.lam += 2 * M_PI; - else if (normalized.lam > extentOut->east + epsilon) - normalized.lam -= 2 * M_PI; + if (extentOut->isGeographic) { + const double epsilon = + (extentOut->resX + extentOut->resY) * REL_TOLERANCE_HGRIDSHIFT; + if (normalized.x < extentOut->west - epsilon) + normalized.x += 2 * M_PI; + else if (normalized.x > extentOut->east + epsilon) + normalized.x -= 2 * M_PI; + } return normalized; } @@ -510,48 +601,48 @@ static PJ_LP normalizeLongitude(const GenericShiftGrid *grid, const PJ_LPZ in, #define MAX_ITERATIONS 10 #define TOL 1e-12 -PJ_LPZ gridshiftData::grid_apply_internal( +PJ_XYZ gridshiftData::grid_apply_internal( PJ_CONTEXT *ctx, const std::string &type, bool isVerticalOnly, - const PJ_LPZ in, PJ_DIRECTION direction, const GenericShiftGrid *grid, + const PJ_XYZ in, PJ_DIRECTION direction, const GenericShiftGrid *grid, GenericShiftGridSet *gridset, bool &shouldRetry) { shouldRetry = false; - if (in.lam == HUGE_VAL) + if (in.x == HUGE_VAL) return in; /* normalized longitude of input */ const NS_PROJ::ExtentAndRes *extent; - PJ_LP normalized_in = normalizeLongitude(grid, in, extent); + PJ_XY normalized_in = normalizeX(grid, in, extent); bool biquadraticInterpolationOut = false; - PJ_LPZ shift = grid_interpolate(ctx, type, normalized_in, grid, + PJ_XYZ shift = grid_interpolate(ctx, type, normalized_in, grid, biquadraticInterpolationOut); if (grid->hasChanged()) { shouldRetry = gridset->reopen(ctx); - PJ_LPZ out; - out.lam = out.phi = out.z = HUGE_VAL; + PJ_XYZ out; + out.x = out.y = out.z = HUGE_VAL; return out; } - if (shift.lam == HUGE_VAL) + if (shift.x == HUGE_VAL) return shift; if (direction == PJ_FWD) { - PJ_LPZ out = in; - out.lam += shift.lam; - out.phi += shift.phi; + PJ_XYZ out = in; + out.x += shift.x; + out.y += shift.y; out.z += shift.z; return out; } if (isVerticalOnly) { - PJ_LPZ out = in; + PJ_XYZ out = in; out.z -= shift.z; return out; } - PJ_LP guess; - guess.lam = normalized_in.lam - shift.lam; - guess.phi = normalized_in.phi - shift.phi; + PJ_XY guess; + guess.x = normalized_in.x - shift.x; + guess.y = normalized_in.y - shift.y; // NOAA NCAT transformer tool doesn't do iteration in the reverse path. // Do the same (only for biquadratic, although NCAT applies this logic to @@ -567,23 +658,23 @@ PJ_LPZ gridshiftData::grid_apply_internal( if (!biquadraticInterpolationOut) { int i = MAX_ITERATIONS; const double toltol = TOL * TOL; - PJ_LP diff; + PJ_XY diff; do { shift = grid_interpolate(ctx, type, guess, grid, biquadraticInterpolationOut); if (grid->hasChanged()) { shouldRetry = gridset->reopen(ctx); - PJ_LPZ out; - out.lam = out.phi = out.z = HUGE_VAL; + PJ_XYZ out; + out.x = out.y = out.z = HUGE_VAL; return out; } /* We can possibly go outside of the initial guessed grid, so try */ /* to fetch a new grid into which iterate... */ - if (shift.lam == HUGE_VAL) { - PJ_LPZ lp; - lp.lam = guess.lam; - lp.phi = guess.phi; + if (shift.x == HUGE_VAL) { + PJ_XYZ lp; + lp.x = guess.x; + lp.y = guess.y; auto newGrid = findGrid(type, lp, gridset); if (newGrid == nullptr || newGrid == grid || newGrid->isNullGrid()) @@ -591,30 +682,30 @@ PJ_LPZ gridshiftData::grid_apply_internal( pj_log(ctx, PJ_LOG_TRACE, "Switching from grid %s to grid %s", grid->name().c_str(), newGrid->name().c_str()); grid = newGrid; - normalized_in = normalizeLongitude(grid, in, extent); - diff.lam = std::numeric_limits::max(); - diff.phi = std::numeric_limits::max(); + normalized_in = normalizeX(grid, in, extent); + diff.x = std::numeric_limits::max(); + diff.y = std::numeric_limits::max(); continue; } - diff.lam = guess.lam + shift.lam - normalized_in.lam; - diff.phi = guess.phi + shift.phi - normalized_in.phi; - guess.lam -= diff.lam; - guess.phi -= diff.phi; + diff.x = guess.x + shift.x - normalized_in.x; + diff.y = guess.y + shift.y - normalized_in.y; + guess.x -= diff.x; + guess.y -= diff.y; - } while (--i && (diff.lam * diff.lam + diff.phi * diff.phi > + } while (--i && (diff.x * diff.x + diff.y * diff.y > toltol)); /* prob. slightly faster than hypot() */ if (i == 0) { pj_log(ctx, PJ_LOG_TRACE, "Inverse grid shift iterator failed to converge."); proj_context_errno_set(ctx, PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE); - PJ_LPZ out; - out.lam = out.phi = out.z = HUGE_VAL; + PJ_XYZ out; + out.x = out.y = out.z = HUGE_VAL; return out; } - if (shift.lam == HUGE_VAL) { + if (shift.x == HUGE_VAL) { pj_log( ctx, PJ_LOG_TRACE, "Inverse grid shift iteration failed, presumably at grid edge. " @@ -622,46 +713,54 @@ PJ_LPZ gridshiftData::grid_apply_internal( } } - PJ_LPZ out; - out.lam = adjlon(guess.lam); - out.phi = guess.phi; + PJ_XYZ out; + out.x = extent->isGeographic ? adjlon(guess.x) : guess.x; + out.y = guess.y; out.z = in.z - shift.z; return out; } // --------------------------------------------------------------------------- -static const std::string sHORIZONTAL_OFFSET("HORIZONTAL_OFFSET"); - -PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { +bool gridshiftData::loadGridsIfNeeded(PJ *P) { if (m_defer_grid_opening) { m_defer_grid_opening = false; m_grids = pj_generic_grid_init(P, "grids"); if (proj_errno(P)) { - return proj_coord_error().lpz; + return false; } - if (!checkGridTypes(P)) { - return proj_coord_error().lpz; + bool isProjectedCoord; + if (!checkGridTypes(P, isProjectedCoord)) { + return false; } } + return true; +} + +// --------------------------------------------------------------------------- + +// --------------------------------------------------------------------------- + +static const std::string sHORIZONTAL_OFFSET("HORIZONTAL_OFFSET"); - PJ_LPZ out; +PJ_XYZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_XYZ xyz) { + PJ_XYZ out; - out.lam = HUGE_VAL; - out.phi = HUGE_VAL; + out.x = HUGE_VAL; + out.y = HUGE_VAL; out.z = HUGE_VAL; std::string &type = m_mainGridType; bool bFoundGeog3DOffset = false; while (true) { GenericShiftGridSet *gridset = nullptr; - const GenericShiftGrid *grid = findGrid(type, lpz, gridset); + const GenericShiftGrid *grid = findGrid(type, xyz, gridset); if (!grid) { if (m_mainGridTypeIsGeographic3DOffset && m_bHasHorizontalOffset) { // If we have a mix of grids with GEOGRAPHIC_3D_OFFSET // and HORIZONTAL_OFFSET+ELLIPSOIDAL_HEIGHT_OFFSET type = sHORIZONTAL_OFFSET; - grid = findGrid(type, lpz, gridset); + grid = findGrid(type, xyz, gridset); } if (!grid) { proj_context_errno_set(P->ctx, @@ -674,19 +773,19 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { } if (grid->isNullGrid()) { - out = lpz; + out = xyz; break; } bool shouldRetry = false; out = grid_apply_internal( P->ctx, type, !(m_bHasGeographic3DOffset || m_bHasHorizontalOffset), - lpz, direction, grid, gridset, shouldRetry); + xyz, direction, grid, gridset, shouldRetry); if (!shouldRetry) { break; } } - if (out.lam == HUGE_VAL || out.phi == HUGE_VAL) { + if (out.x == HUGE_VAL || out.y == HUGE_VAL) { if (proj_context_errno(P->ctx) == 0) { proj_context_errno_set(P->ctx, PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID); } @@ -696,10 +795,10 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { // Second pass to apply vertical transformation, if it is in a // separate grid than lat-lon offsets. if (!bFoundGeog3DOffset && !m_auxGridType.empty()) { - lpz = out; + xyz = out; while (true) { GenericShiftGridSet *gridset = nullptr; - const auto grid = findGrid(m_auxGridType, lpz, gridset); + const auto grid = findGrid(m_auxGridType, xyz, gridset); if (!grid) { proj_context_errno_set(P->ctx, PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID); @@ -710,14 +809,14 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { } bool shouldRetry = false; - out = grid_apply_internal(P->ctx, m_auxGridType, true, lpz, + out = grid_apply_internal(P->ctx, m_auxGridType, true, xyz, direction, grid, gridset, shouldRetry); if (!shouldRetry) { break; } } - if (out.lam == HUGE_VAL || out.phi == HUGE_VAL) { + if (out.x == HUGE_VAL || out.y == HUGE_VAL) { proj_context_errno_set(P->ctx, PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID); return out; } @@ -732,23 +831,43 @@ PJ_LPZ gridshiftData::apply(PJ *P, PJ_DIRECTION direction, PJ_LPZ lpz) { static PJ_XYZ pj_gridshift_forward_3d(PJ_LPZ lpz, PJ *P) { auto Q = static_cast(P->opaque); - PJ_COORD point = {{0, 0, 0, 0}}; - point.lpz = Q->apply(P, PJ_FWD, lpz); + if (!Q->loadGridsIfNeeded(P)) { + return proj_coord_error().xyz; + } + + PJ_XYZ xyz; + xyz.x = lpz.lam; + xyz.y = lpz.phi; + xyz.z = lpz.z; + + xyz = Q->apply(P, PJ_FWD, xyz); - return point.xyz; + xyz.x += Q->m_offsetX; + xyz.y += Q->m_offsetY; + + return xyz; } // --------------------------------------------------------------------------- static PJ_LPZ pj_gridshift_reverse_3d(PJ_XYZ xyz, PJ *P) { auto Q = static_cast(P->opaque); - PJ_COORD point = {{0, 0, 0, 0}}; - point.xyz = xyz; - point.lpz = Q->apply(P, PJ_INV, point.lpz); + // Must be done before using m_offsetX ! + if (!Q->loadGridsIfNeeded(P)) { + return proj_coord_error().lpz; + } + + xyz.x -= Q->m_offsetX; + xyz.y -= Q->m_offsetY; - return point.lpz; + PJ_XYZ xyz_out = Q->apply(P, PJ_INV, xyz); + PJ_LPZ lpz; + lpz.lam = xyz_out.x; + lpz.phi = xyz_out.y; + lpz.z = xyz_out.z; + return lpz; } // --------------------------------------------------------------------------- @@ -785,21 +904,22 @@ PJ *PJ_TRANSFORMATION(gridshift, 0) { P->fwd = nullptr; P->inv = nullptr; - P->left = PJ_IO_UNITS_RADIANS; - P->right = PJ_IO_UNITS_RADIANS; - if (0 == pj_param(P->ctx, P->params, "tgrids").i) { proj_log_error(P, _("+grids parameter missing.")); return pj_gridshift_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG); } + bool isProjectedCoord = false; if (P->ctx->defer_grid_opening) { Q->m_defer_grid_opening = true; } else { const char *gridnames = pj_param(P->ctx, P->params, "sgrids").s; gMutex.lock(); - const bool isKnownGrid = - gKnownGrids.find(gridnames) != gKnownGrids.end(); + const auto iter = gKnownGrids.find(gridnames); + const bool isKnownGrid = iter != gKnownGrids.end(); + if (isKnownGrid) { + isProjectedCoord = iter->second; + } gMutex.unlock(); if (isKnownGrid) { Q->m_defer_grid_opening = true; @@ -811,13 +931,13 @@ PJ *PJ_TRANSFORMATION(gridshift, 0) { return pj_gridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } - if (!Q->checkGridTypes(P)) { + if (!Q->checkGridTypes(P, isProjectedCoord)) { return pj_gridshift_destructor( P, PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID); } gMutex.lock(); - gKnownGrids.insert(gridnames); + gKnownGrids[gridnames] = isProjectedCoord; gMutex.unlock(); } } @@ -839,6 +959,49 @@ PJ *PJ_TRANSFORMATION(gridshift, 0) { Q->m_skip_z_transform = true; } + // +coord_type not advertized in documentation on purpose for now. + // It is probably useless to do it, as the only potential use case of it + // would be for PROJ itself when generating pipelines with defered grid + // opening. + if (pj_param(P->ctx, P->params, "tcoord_type").i) { + // Check the coordinate type (projected/geographic) from the explicit + // +coord_type switch. This is mostly only useful in defered grid + // opening, otherwise we have figured it out above in checkGridTypes() + const char *coord_type = pj_param(P->ctx, P->params, "scoord_type").s; + if (coord_type) { + if (strcmp(coord_type, "projected") == 0) { + if (!P->ctx->defer_grid_opening && !isProjectedCoord) { + proj_log_error(P, + _("+coord_type=projected specified, but the " + "grid is known to not be projected")); + return pj_gridshift_destructor( + P, PROJ_ERR_INVALID_OP_MISSING_ARG); + } + isProjectedCoord = true; + } else if (strcmp(coord_type, "geographic") == 0) { + if (!P->ctx->defer_grid_opening && isProjectedCoord) { + proj_log_error(P, _("+coord_type=geographic specified, but " + "the grid is known to be projected")); + return pj_gridshift_destructor( + P, PROJ_ERR_INVALID_OP_MISSING_ARG); + } + } else { + proj_log_error(P, _("Unsupported value for +coord_type: valid " + "values are 'geographic' or 'projected'")); + return pj_gridshift_destructor(P, + PROJ_ERR_INVALID_OP_MISSING_ARG); + } + } + } + + if (isProjectedCoord) { + P->left = PJ_IO_UNITS_PROJECTED; + P->right = PJ_IO_UNITS_PROJECTED; + } else { + P->left = PJ_IO_UNITS_RADIANS; + P->right = PJ_IO_UNITS_RADIANS; + } + return P; } diff --git a/test/gie/gridshift.gie b/test/gie/gridshift.gie index 61d5729b1d..fec8e50106 100644 --- a/test/gie/gridshift.gie +++ b/test/gie/gridshift.gie @@ -237,6 +237,20 @@ tolerance 0.005 mm accept -122.4250009683 37.8286740788 expect -122.4249999391 37.8286728006 +---------------------------------------------------------------------- +# Test a grid referenced in a projected CRS, with an additional constant offset +---------------------------------------------------------------------- + +------------------------------------------------------------------------------- +operation +proj=gridshift +grids=tests/test_gridshift_projected.tif +------------------------------------------------------------------------------- + +tolerance 0.5 mm + +accept -598000.000 -1160020.000 0.000 +expect -5597999.885 -6160019.978 0.000 +roundtrip 1 + ------------- # Error cases ------------- diff --git a/test/unit/test_grids.cpp b/test/unit/test_grids.cpp index 3eab20feff..3cdeac027d 100644 --- a/test/unit/test_grids.cpp +++ b/test/unit/test_grids.cpp @@ -195,7 +195,8 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff) { EXPECT_TRUE(grid->valueAt(0, 1, 0, out)); EXPECT_EQ(out, 0.19718019664287567139f); int bandZero = 0; - EXPECT_TRUE(grid->valuesAt(0, 0, 1, 1, 1, &bandZero, &out)); + bool nodataFound = false; + EXPECT_TRUE(grid->valuesAt(0, 0, 1, 1, 1, &bandZero, &out, nodataFound)); EXPECT_EQ(out, 0.20783890783786773682f); constexpr int COUNT_X = 2; constexpr int COUNT_Y = 4; @@ -205,7 +206,7 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff) { constexpr int OFFSET_X = 2; constexpr int OFFSET_Y = 1; EXPECT_TRUE(grid->valuesAt(OFFSET_X, OFFSET_Y, COUNT_X, COUNT_Y, - COUNT_BANDS, bands, values)); + COUNT_BANDS, bands, values, nodataFound)); int valuesIdx = 0; for (int y = 0; y < COUNT_Y; ++y) { for (int x = 0; x < COUNT_X; ++x) { @@ -251,7 +252,8 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff_valuesAt_tiled_optim) { EXPECT_TRUE(grid->valueAt(0, 1, 0, out)); EXPECT_EQ(out, 0.19718019664287567139f); int bandZero = 0; - EXPECT_TRUE(grid->valuesAt(0, 0, 1, 1, 1, &bandZero, &out)); + bool nodataFound = false; + EXPECT_TRUE(grid->valuesAt(0, 0, 1, 1, 1, &bandZero, &out, nodataFound)); EXPECT_EQ(out, 0.20783890783786773682f); constexpr int COUNT_X = 2; constexpr int COUNT_Y = 4; @@ -261,7 +263,7 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff_valuesAt_tiled_optim) { constexpr int OFFSET_X = 2; constexpr int OFFSET_Y = 1; EXPECT_TRUE(grid->valuesAt(OFFSET_X, OFFSET_Y, COUNT_X, COUNT_Y, - COUNT_BANDS_THREE, bands, values)); + COUNT_BANDS_THREE, bands, values, nodataFound)); for (int y = 0, valuesIdx = 0; y < COUNT_Y; ++y) { for (int x = 0; x < COUNT_X; ++x) { for (int band = 0; band < COUNT_BANDS_THREE; ++band) { @@ -275,7 +277,7 @@ TEST_F(GridTest, GenericShiftGridSet_gtiff_valuesAt_tiled_optim) { constexpr int COUNT_BANDS_TWO = 2; EXPECT_TRUE(grid->valuesAt(OFFSET_X, OFFSET_Y, COUNT_X, COUNT_Y, - COUNT_BANDS_TWO, bands, values)); + COUNT_BANDS_TWO, bands, values, nodataFound)); for (int y = 0, valuesIdx = 0; y < COUNT_Y; ++y) { for (int x = 0; x < COUNT_X; ++x) { for (int band = 0; band < COUNT_BANDS_TWO; ++band) { From e36f5810120d4772bcd44de4e6198a7bb554087f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 6 Mar 2024 15:17:37 +0100 Subject: [PATCH 174/199] geodetictiffgrids.rst spec: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections --- .../specifications/geodetictiffgrids.rst | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/docs/source/specifications/geodetictiffgrids.rst b/docs/source/specifications/geodetictiffgrids.rst index 584e9dd630..9c5d11e87f 100644 --- a/docs/source/specifications/geodetictiffgrids.rst +++ b/docs/source/specifications/geodetictiffgrids.rst @@ -212,10 +212,16 @@ is an easy way to inspect such grid files: Values recognized by PROJ currently are: - ``HORIZONTAL_OFFSET``: implies the presence of at least two samples. - The first sample must contain the latitude offset and the second - sample must contain the longitude offset. The offset may also be expressed - as a speed per year for temporal gridshifting. - Corresponds to PROJ :ref:`hgridshift` method. + For grids referenced in geographic coordinates, the first sample must + contain the latitude offset and the second sample must contain the + longitude offset. + For grids referenced in projected coordinates (supported since PROJ 9.4), + the first sample must contain the easting offset and the second sample + must contain the northing offset. + The offset may also be expressed as a speed per year for temporal gridshifting. + Corresponds to PROJ :ref:`hgridshift` (only for grids referenced in + geographic coordinates) and :ref:`gridshift` methods (for grids referenced + both in geographic and projected coordinates) - ``GEOGRAPHIC_3D_OFFSET``: implies the presence of at least 3 samples. The first sample must contain the latitude offset, the second @@ -278,6 +284,14 @@ is an easy way to inspect such grid files: the value to add a longitude expressed in the CRS encoded in the GeoKeys to obtain a longitude value expressed in the target CRS. + + ``easting_offset``: valid for TYPE=HORIZONTAL_OFFSET. Sample values should be + the value to add a easting expressed in the CRS encoded in the GeoKeys + to obtain a easting value expressed in the target CRS. + + + ``northing_offset``: valid for TYPE=HORIZONTAL_OFFSET. Sample values should be + the value to add a northing expressed in the CRS encoded in the GeoKeys + to obtain a northing value expressed in the target CRS. + + ``ellipsoidal_height_offset``: valid for TYPE=ELLIPSOIDAL_HEIGHT_OFFSET or GEOGRAPHIC_3D_OFFSET . Sample values should be the value to add to the ellipsoidal height of the source CRS to obtain the ellipsoidal height of @@ -383,6 +397,19 @@ is an easy way to inspect such grid files: arc-second arc-second + * For grids with TYPE=HORIZONTAL_OFFSET and with a ``easting_offset`` and + ``northing_offset`` channel, an extra offset to apply after the grid correction + in the forward direction of the transformation can be specified with a + ``constant_offset`` metadata item, expressed in the same units as the grid + values (only metre supported at the moment). + + Example: + + .. code-block:: xml + + -5000000 + -5000000 + * For TYPE=DEFORMATION_MODEL, the type of the displacement must be specified with a `Item` whose ``name`` is set to ``DISPLACEMENT_TYPE``. From ad81dd9c55621799bd73dc5047c925e143e1dcb7 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Sat, 10 Feb 2024 11:18:44 +0100 Subject: [PATCH 175/199] Use NS_PROJ macro instead of osgeo::proj Closes #4046 --- src/transformations/gridshift.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index 7e9e7f92e0..fcf2985a8f 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -168,13 +168,13 @@ bool gridshiftData::checkGridTypes(PJ *P, bool &isProjectedCoord) { return false; } try { - m_offsetX = osgeo::proj::internal::c_locale_stod(offsetX); + m_offsetX = NS_PROJ::internal::c_locale_stod(offsetX); } catch (const std::exception &) { proj_log_error(P, _("Invalid offset value")); return false; } try { - m_offsetY = osgeo::proj::internal::c_locale_stod(offsetY); + m_offsetY = NS_PROJ::internal::c_locale_stod(offsetY); } catch (const std::exception &) { proj_log_error(P, _("Invalid offset value")); return false; From 6e0c18253717237fa055193fe00cb7f0700768b8 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Fri, 16 Feb 2024 09:18:43 +1300 Subject: [PATCH 176/199] Freeze hard-coded prime meridians and note they are no longer updated (#4042) * Legacy hard-coded prime meridians are no longer updated * Expand docs for angular units, add another prime meridian example --- docs/source/apps/cs2cs.rst | 6 +++ .../development/reference/datatypes.rst | 3 +- .../development/reference/functions.rst | 3 +- docs/source/usage/projections.rst | 51 ++++++++++++++----- src/apps/cs2cs.cpp | 4 +- src/datums.cpp | 9 +++- test/unit/gie_self_tests.cpp | 3 +- 7 files changed, 60 insertions(+), 19 deletions(-) diff --git a/docs/source/apps/cs2cs.rst b/docs/source/apps/cs2cs.rst index 4e6221dcbb..0f565d4bb1 100644 --- a/docs/source/apps/cs2cs.rst +++ b/docs/source/apps/cs2cs.rst @@ -104,6 +104,12 @@ The following control parameters can appear in any order: List of all ellipsoids that can be selected with the *+ellps* parameters. +.. option:: -lm + + List of hard-coded prime meridians that can be selected with the *+pm* + parameter. Note that this list is no longer updated, + and some values may conflict with other sources. + .. option:: -lu List of all distance units that can be selected with the *+units* parameter. diff --git a/docs/source/development/reference/datatypes.rst b/docs/source/development/reference/datatypes.rst index e8c3cd1e94..b362199eb2 100644 --- a/docs/source/development/reference/datatypes.rst +++ b/docs/source/development/reference/datatypes.rst @@ -608,7 +608,8 @@ List structures .. c:type:: PJ_PRIME_MERIDIANS - Prime meridians defined in PROJ. + Hard-coded prime meridians defined in PROJ. Note that the structure is + no longer updated, and some values may conflict with other sources. .. code-block:: C diff --git a/docs/source/development/reference/functions.rst b/docs/source/development/reference/functions.rst index 8eea1abcd4..e7e9f6b807 100644 --- a/docs/source/development/reference/functions.rst +++ b/docs/source/development/reference/functions.rst @@ -667,7 +667,8 @@ Lists .. c:function:: const PJ_PRIME_MERIDIANS* proj_list_prime_meridians(void) - Get a pointer to an array of prime meridians defined in PROJ. The last + Get a pointer to an array of hard-coded prime meridians defined in PROJ. + Note that this list is no longer updated. The last entry of the returned array is a NULL-entry. The array is statically allocated and does not need to be freed after use. diff --git a/docs/source/usage/projections.rst b/docs/source/usage/projections.rst index c571dc5bd4..bc0a32f0d3 100644 --- a/docs/source/usage/projections.rst +++ b/docs/source/usage/projections.rst @@ -70,10 +70,10 @@ The returned coordinates are scaled by the value assigned with the ``+k_0`` parameter. This parameter is only used by projections that mention using it, and its exact effect is projection dependent. -Input units for angular parameters (``+lon_0``, ``+lat_0``, etc.) are +Input units for angular parameters (``+lon_0``, ``+lat_0``, ``+pm``, etc.) are interpreted to be decimal degrees by convention. Explicit specification of input angular units can be accomplished by adding the -appropriate ruffix to input values. +appropriate suffix to input values. +----------------+---------------------+ @@ -90,10 +90,24 @@ appropriate ruffix to input values. | R | | +----------------+---------------------+ +The sign of an angle is taken from either a ``-`` or ``+`` prefix, +or the last character specifying a cardinal direction, +where ``e``/``E`` (East) or ``n``/``N`` (North) are positive +and ``w``/``W`` (West) or ``s``/``S`` (South) are negative. + Example of use. The longitude of the central meridian ``+lon_0=90``, can also be expressed more explicitly with units of decimal degrees as ``+lon_0=90d`` or in radian units as ``+lon_0=1.570796r`` (approximately). +Angles can be expressed in DMS notation, using ``'`` after arcminutes +and ``"`` after arcseconds, ending with optional cardinal direction. +For example, ``+pm=3d41'14.55"W``, but +character escapes ``+pm=3d41\'14.55\"W`` may be required. + +Degree-minute notation does not require any quotation symbols. +All of these are equivalent values: ``+pm=-17d40``, ``+pm=17D40W``, +``+pm=17°40w`` or ``+pm=17d40'W`` (escaped as ``+pm=17d40\'W``). + False Easting/Northing +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -135,18 +149,19 @@ Note that ``+over`` does **not** disable ``+lon_wrap``. Prime Meridian +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -A prime meridian may be declared indicating the offset between the prime -meridian of the declared coordinate system and that of greenwich. A prime -meridian is declared using the "pm" parameter, and may be assigned a symbolic -name, or the longitude of the alternative prime meridian relative to greenwich. +A prime meridian may be declared indicating the longitude offset between +the prime meridian of the declared coordinate system and that of greenwich. +A prime meridian is declared using the ``+pm`` parameter, and may be assigned +an angle in DMS or decimal degrees format, or as a hard-coded name. Currently prime meridian declarations are not used by the ``pj_inv()`` and ``pj_fwd()`` calls. Consequently the user utility :program:`cs2cs` does honour prime meridians but the :program:`proj` user utility ignores them. -The following predeclared prime meridian names are supported. These can be -listed using with ``cs2cs -lm``. +Hard-coded prime meridians can be listed with ``cs2cs -lm``. +Note that the following list is no longer updated, and some values +may conflict with other sources. =========== ================ Meridian Longitude @@ -154,8 +169,8 @@ listed using with ``cs2cs -lm``. greenwich 0dE lisbon 9d07'54.862"W paris 2d20'14.025"E - bogota 74d04'51.3"E - madrid 3d41'16.48"W + bogota 74d04'51.3"W + madrid 3d41'16.58"W rome 12d27'8.4"E bern 7d26'22.5"E jakarta 106d48'27.79"E @@ -164,17 +179,27 @@ listed using with ``cs2cs -lm``. stockholm 18d3'29.8"E athens 23d42'58.815"E oslo 10d43'22.5"E + copenhagen 12d34'40.35"E =========== ================ Example of use. The location ``long=0``, ``lat=0`` in the greenwich based lat/long -coordinates is translated to lat/long coordinates with Madrid as the prime +coordinates is translated to lat/long coordinates with Lisbon as the prime meridian. :: - cs2cs +proj=latlong +datum=WGS84 +to +proj=latlong +datum=WGS84 +pm=madrid + cs2cs +proj=latlong +datum=WGS84 +to +proj=latlong +datum=WGS84 +pm=lisbon 0 0 - 3d41'16.48"E 0dN 0.000 + 9d7'54.862"E 0dN 0.000 + +Decimal degrees can also be simply specified for the prime meridian. + +:: + + echo 13d30E 45N | proj +proj=merc +pm=13.5 + 0.00 5591295.92 + +See :ref:`projection_units` for other examples of angular inputs. Axis orientation diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index b6a1ed123b..8c91b683e3 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -580,8 +580,10 @@ int main(int argc, char **argv) { } proj_unit_list_destroy(units); } else if (arg[1] == 'm') { /* list prime meridians */ + (void)fprintf(stderr, + "This list is no longer updated, and some values may " + "conflict with other sources.\n"); const struct PJ_PRIME_MERIDIANS *lpm; - for (lpm = proj_list_prime_meridians(); lpm->id; ++lpm) (void)printf("%12s %-30s\n", lpm->id, lpm->defn); } else diff --git a/src/datums.cpp b/src/datums.cpp index 7ab574cef1..b753ffb0f4 100644 --- a/src/datums.cpp +++ b/src/datums.cpp @@ -63,6 +63,11 @@ static const struct PJ_DATUMS pj_datums[] = { const struct PJ_DATUMS *pj_get_datums_ref() { return pj_datums; } +/* + * This list is no longer updated, and some values may conflict with + * other sources. + */ + static const struct PJ_PRIME_MERIDIANS pj_prime_meridians[] = { /* id definition */ /* -- ---------- */ @@ -70,7 +75,7 @@ static const struct PJ_PRIME_MERIDIANS pj_prime_meridians[] = { {"lisbon", "9d07'54.862\"W"}, {"paris", "2d20'14.025\"E"}, {"bogota", "74d04'51.3\"W"}, - {"madrid", "3d41'16.58\"W"}, + {"madrid", "3d41'16.58\"W"}, /* EPSG:8905 is 3d41'14.55"W */ {"rome", "12d27'8.4\"E"}, {"bern", "7d26'22.5\"E"}, {"jakarta", "106d48'27.79\"E"}, @@ -79,7 +84,7 @@ static const struct PJ_PRIME_MERIDIANS pj_prime_meridians[] = { {"stockholm", "18d3'29.8\"E"}, {"athens", "23d42'58.815\"E"}, {"oslo", "10d43'22.5\"E"}, - {"copenhagen", "12d34'40.35\"E"}, + {"copenhagen", "12d34'40.35\"E"}, /* EPSG:1026 is 12d34'39.9"E */ {nullptr, nullptr}}; const PJ_PRIME_MERIDIANS *proj_list_prime_meridians(void) { diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp index 6650126068..a378520fca 100644 --- a/test/unit/gie_self_tests.cpp +++ b/test/unit/gie_self_tests.cpp @@ -644,7 +644,8 @@ TEST(gie, info_functions) { n = 0; for (pm_list = proj_list_prime_meridians(); pm_list->id; ++pm_list) n++; - ASSERT_NE(n, 0U); + /* hard-coded prime meridians are not updated; expect a fixed size */ + EXPECT_EQ(n, 14U); } // --------------------------------------------------------------------------- From f258dea390c7638ba962650c8a2a75d3409c9532 Mon Sep 17 00:00:00 2001 From: Carl Godkin Date: Fri, 16 Feb 2024 10:02:00 -0800 Subject: [PATCH 177/199] Update migration.rst Typo in "reimplemented in PROJ 6" example used "clrs66" in one case instead of "clrk66" so example didn't actually work. I'd recommend #include for the top too to pick up HUGE_VAL, but that isn't vital. Thanks! --- docs/source/development/migration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/development/migration.rst b/docs/source/development/migration.rst index 3c39b32acd..83af5d716a 100644 --- a/docs/source/development/migration.rst +++ b/docs/source/development/migration.rst @@ -62,7 +62,7 @@ The same program implemented using PROJ 6: /* engine" used by PROJ to determine the best transformation(s) between */ /* two CRS. */ P = proj_create_crs_to_crs(PJ_DEFAULT_CTX, - "+proj=longlat +ellps=clrs66", + "+proj=longlat +ellps=clrk66", "+proj=merc +ellps=clrk66 +lat_ts=33", NULL); if (P==0) From e69395a761c0f9e5032899524766f78df41a0ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Wed, 7 Feb 2024 12:43:56 +0800 Subject: [PATCH 178/199] Update omerc.rst to add vital caveat about the two-point method It is imperative that users be informed about the vast difference of the two point method, undocumented till today! See also https://gis.stackexchange.com/questions/323570/proj-oblique-mercator-specifying-two-points-on-central-line/337169#337169 --- docs/source/operations/projections/omerc.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/source/operations/projections/omerc.rst b/docs/source/operations/projections/omerc.rst index 6d5c3e65b2..d8e4490668 100644 --- a/docs/source/operations/projections/omerc.rst +++ b/docs/source/operations/projections/omerc.rst @@ -182,3 +182,20 @@ Optional .. include:: ../options/x_0.rst .. include:: ../options/y_0.rst + +Caveats +####### + +Note for the two-point method no rectification is done, + +:: + + echo 0 0|proj -I +proj=omerc +R=6400000 +lonc=-87 +lat_0=42 +alpha=0 + 87dW 42dN + echo 0 0|proj -I +proj=omerc +R=6400000 +lonc=-87 +lat_0=42 +alpha=0 +no_rot + 87dW 0dS + echo 0 0|proj -I +proj=omerc +R=6400000 +lon_1=-87 +lat_1=42 +lon_2=-87 +lat_2=43 + 87dW 0dN + +Thus, just as was noted above regarding +no_rot, the two-point method +itself is also probably only marginally useful. From 4a83a678166cb9964652e5a4fbc82893e65b7143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Mon, 12 Feb 2024 12:01:11 +0800 Subject: [PATCH 179/199] Update omerc.rst to express two points connection We make sure the user understands how the two point and one point models interact. --- docs/source/operations/projections/omerc.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/operations/projections/omerc.rst b/docs/source/operations/projections/omerc.rst index d8e4490668..6d2ded0a0e 100644 --- a/docs/source/operations/projections/omerc.rst +++ b/docs/source/operations/projections/omerc.rst @@ -85,6 +85,10 @@ projections are limiting forms of the Oblique Mercator $ echo 12 55 | proj +proj=omerc +alpha=0 +R=6400000 766869.97 6209742.96 + # Same, with azimuth given indirectly via two points: + $ echo 12 55 | proj +proj=omerc +lon_1=0 +lat_1=-1 +lon_2=0 +lat_2=0 +R=6400000 + 766869.97 6209742.96 + $ echo 12 55 | proj +proj=tmerc +R=6400000 766869.97 6209742.96 From 097af607c78b3282a1095b9e167f581af0ff8fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?= Date: Mon, 12 Feb 2024 11:52:32 +0800 Subject: [PATCH 180/199] Update omerc.rst to show directly and indirectly given azimuth connection We must finally show the user the connection between the two input forms. --- docs/source/operations/projections/omerc.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/operations/projections/omerc.rst b/docs/source/operations/projections/omerc.rst index d8e4490668..e012ddc5e0 100644 --- a/docs/source/operations/projections/omerc.rst +++ b/docs/source/operations/projections/omerc.rst @@ -93,7 +93,11 @@ Example: Second case - indirectly given azimuth :: $ echo 12 55 | proj +proj=omerc +lon_1=-1 +lat_1=1 +lon_2=0 +lat_2=0 +ellps=GRS80 - 349567.57 6839490.50 + 349567.57 6839490.50 + + # Same, with directly given azimuth, (via: echo 0 0 1 -1|geod -I -f %.7f +ellps=GRS80): + $ echo 12 55 | proj +proj=omerc +alpha=-45.1880402 +ellps=GRS80 + 349567.57 6839490.50 Example: An approximation of the Danish "System 34" from :cite:`Rittri2012` From 4ad46c60bf65b9ede7f13f61c283f04f6b7f3581 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 9 Feb 2024 14:32:10 +0100 Subject: [PATCH 181/199] ConcatenatedOperation::fixStepsDirection(): invert first and last steps when needed --- .../operation/concatenatedoperation.cpp | 30 +++++++++ test/unit/test_factory.cpp | 63 +++++++++++++++++++ 2 files changed, 93 insertions(+) diff --git a/src/iso19111/operation/concatenatedoperation.cpp b/src/iso19111/operation/concatenatedoperation.cpp index 6fe3462c0d..6345cb9ce9 100644 --- a/src/iso19111/operation/concatenatedoperation.cpp +++ b/src/iso19111/operation/concatenatedoperation.cpp @@ -309,6 +309,36 @@ void ConcatenatedOperation::fixStepsDirection( } } + // If the first operation is a transformation whose target CRS matches the + // source CRS of the concatenated operation, then reverse it. + if (operationsInOut.size() >= 2) { + auto &op = operationsInOut.front(); + auto l_sourceCRS = op->sourceCRS(); + auto l_targetCRS = op->targetCRS(); + if (l_sourceCRS && l_targetCRS && + !areCRSMoreOrLessEquivalent(l_sourceCRS.get(), + concatOpSourceCRS.get()) && + areCRSMoreOrLessEquivalent(l_targetCRS.get(), + concatOpSourceCRS.get())) { + op = op->inverse(); + } + } + + // If the last operation is a transformation whose source CRS matches the + // target CRS of the concatenated operation, then reverse it. + if (operationsInOut.size() >= 2) { + auto &op = operationsInOut.back(); + auto l_sourceCRS = op->sourceCRS(); + auto l_targetCRS = op->targetCRS(); + if (l_sourceCRS && l_targetCRS && + !areCRSMoreOrLessEquivalent(l_targetCRS.get(), + concatOpTargetCRS.get()) && + areCRSMoreOrLessEquivalent(l_sourceCRS.get(), + concatOpTargetCRS.get())) { + op = op->inverse(); + } + } + const auto extractDerivedCRS = [](const crs::CRS *crs) -> const crs::DerivedCRS * { auto derivedCRS = dynamic_cast(crs); diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 115d7e0ef8..8f8854257c 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -2362,6 +2362,69 @@ TEST(factory, AuthorityFactory_getAvailableGeoidmodels) { // --------------------------------------------------------------------------- +TEST_F(FactoryWithTmpDatabase, + AuthorityFactory_test_inversion_first_and_last_steps_of_concat_op) { + createStructure(); + populateWithFakeEPSG(); + + // Completely dummy, to test proper inversion of first and last + // steps in ConcatenatedOperation, when it is needed + ASSERT_TRUE(execute("INSERT INTO geodetic_datum " + "VALUES('EPSG','OTHER_DATUM','Other datum',''," + "'EPSG','7030','EPSG','8901',NULL,NULL,NULL," + "'my anchor',NULL,0);")) + << last_error(); + ASSERT_TRUE( + execute("INSERT INTO geodetic_crs VALUES('EPSG','OTHER_GEOG_CRS'," + "'OTHER_GEOG_CRS',NULL,'geographic 2D','EPSG','6422'," + "'EPSG','OTHER_DATUM',NULL,0);")) + << last_error(); + ASSERT_TRUE( + execute("INSERT INTO other_transformation " + "VALUES('EPSG','4326_TO_OTHER_GEOG_CRS','name',NULL," + "'EPSG','9601','Longitude rotation'," + "'EPSG','4326','EPSG','OTHER_GEOG_CRS',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,NULL,NULL,NULL,0);")) + << last_error(); + ASSERT_TRUE( + execute("INSERT INTO other_transformation " + "VALUES('EPSG','OTHER_GEOG_CRS_TO_4326','name',NULL," + "'EPSG','9601','Longitude rotation'," + "'EPSG','OTHER_GEOG_CRS','EPSG','4326',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,NULL,NULL,NULL,0);")) + << last_error(); + ASSERT_TRUE(execute("INSERT INTO concatenated_operation " + "VALUES('EPSG','DUMMY_CONCATENATED_2','name',NULL," + "'EPSG','4326','EPSG'" + ",'4326',NULL,NULL,0);")) + << last_error(); + ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " + "VALUES('EPSG','DUMMY_CONCATENATED_2',1," + "'EPSG','OTHER_GEOG_CRS_TO_4326');")) + << last_error(); + + ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " + "VALUES('EPSG','DUMMY_CONCATENATED_2',2," + "'EPSG','4326_TO_OTHER_GEOG_CRS');")) + << last_error(); + + auto factoryEPSG = AuthorityFactory::create(DatabaseContext::create(m_ctxt), + std::string("EPSG")); + EXPECT_TRUE(nn_dynamic_pointer_cast( + factoryEPSG->createObject("DUMMY_CONCATENATED_2")) != + nullptr); +} + +// --------------------------------------------------------------------------- + TEST_F(FactoryWithTmpDatabase, AuthorityFactory_test_with_fake_EPSG_and_OTHER_database) { createStructure(); From b01d96698a82a024ef2d1c499d9b66c7d8b702b7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 19 Feb 2024 15:47:25 +0100 Subject: [PATCH 182/199] customizations.sql: improve condition to create Geog3D->VertCRS transformation from Geog3D->Geog2D+VertCRS --- data/sql/customizations.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql index 858a4b774c..d47212bc44 100644 --- a/data/sql/customizations.sql +++ b/data/sql/customizations.sql @@ -563,7 +563,7 @@ JOIN compound_crs c ON gt.target_crs_code = c.code AND gt.target_crs_auth_name = JOIN geodetic_crs gcrs ON gt.source_crs_auth_name = gcrs.auth_name AND gt.source_crs_code = gcrs.code JOIN vertical_crs vcrs on vcrs.auth_name = c.vertical_crs_auth_name AND vcrs.code = c.vertical_crs_code WHERE method_auth_name = 'EPSG' AND method_name LIKE 'Geog3D to Geog2D+%' -AND NOT EXISTS (SELECT 1 FROM grid_transformation gt2 WHERE gt2.method_name LIKE 'Geographic3D to%' AND gt2.source_crs_auth_name = gt.source_crs_auth_name AND gt2.source_crs_code = gt.source_crs_code AND gt2.target_crs_auth_name = vcrs.auth_name AND gt2.target_crs_code = vcrs.code) +AND NOT EXISTS (SELECT 1 FROM grid_transformation gt2 WHERE gt2.method_name LIKE 'Geographic3D to%' AND gt2.source_crs_auth_name = gt.source_crs_auth_name AND gt2.source_crs_code = gt.source_crs_code AND gt2.target_crs_auth_name = vcrs.auth_name AND gt2.target_crs_code = vcrs.code AND gt2.grid_name = gt.grid_name) AND gt.deprecated = 0; INSERT INTO "usage" From 529114740e4877a457312ba1758c1dacff714e44 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 19 Feb 2024 15:18:47 +0100 Subject: [PATCH 183/199] Database: add transformations_czechia.sql with CR2005 geoid for ETRS89 to Baltic 1957 height --- data/sql/grid_alternatives.sql | 3 +++ data/sql/transformations_czechia.sql | 24 ++++++++++++++++++++++++ data/sql_filelist.cmake | 1 + test/unit/test_operationfactory.cpp | 12 +++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 data/sql/transformations_czechia.sql diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 7ad3af99ab..8decfefeb9 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -102,6 +102,9 @@ VALUES ('chgeo2004_ETRS.agr','ch_swisstopo_chgeo2004_ETRS89_LHN95.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ch_swisstopo_chgeo2004_ETRS89_LHN95.tif',1,1,NULL), ('chgeo2004_htrans_ETRS.agr','ch_swisstopo_chgeo2004_ETRS89_LN02.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ch_swisstopo_chgeo2004_ETRS89_LN02.tif',1,1,NULL), +-- cz_cuzk - ČÚZK +('cz_cuzk_CR-2005.tif','cz_cuzk_CR-2005.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/cz_cuzk_CR-2005.tif',1,1,NULL), + -- de_adv - Arbeitsgemeinschaft der Vermessungsverwaltungender der Länder der Bundesrepublik Deutschland (AdV) ('BETA2007.gsb','de_adv_BETA2007.tif','BETA2007.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_adv_BETA2007.tif',1,1,NULL), diff --git a/data/sql/transformations_czechia.sql b/data/sql/transformations_czechia.sql new file mode 100644 index 0000000000..94c9f1ee39 --- /dev/null +++ b/data/sql/transformations_czechia.sql @@ -0,0 +1,24 @@ +-- This file is hand generated. + +-- Czechia transformations + +-- Geoid transformation + +INSERT INTO "grid_transformation" VALUES( + 'PROJ','ETRS89_TO_BALTIC_HEIGHT_CZECHIA','ETRS89 to Baltic 1957 height (Czechia)', + NULL, + 'EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)', + 'EPSG','4937', -- source CRS (ETRS 89) + 'EPSG','8357', -- target CRS (Baltic 1957 height) + 0.05, -- guessed... + 'EPSG','8666','Geoid (height correction) model file','cz_cuzk_CR-2005.tif', + NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); + +INSERT INTO "usage" VALUES( + 'PROJ', + 'ETRS89_TO_BALTIC_HEIGHT_CZECHIA_USAGE', + 'grid_transformation', + 'PROJ', + 'ETRS89_TO_BALTIC_HEIGHT_CZECHIA', + 'EPSG','1079','EPSG','1189' +); diff --git a/data/sql_filelist.cmake b/data/sql_filelist.cmake index b88451ecdb..d99f699ee1 100644 --- a/data/sql_filelist.cmake +++ b/data/sql_filelist.cmake @@ -36,6 +36,7 @@ set(SQL_FILES "${SQL_DIR}/nkg.sql" "${SQL_DIR}/iau.sql" "${SQL_DIR}/nrcan.sql" + "${SQL_DIR}/transformations_czechia.sql" "${SQL_DIR}/grid_alternatives.sql" "${SQL_DIR}/grid_alternatives_generated_noaa.sql" "${SQL_DIR}/nadcon5_concatenated_operations.sql" diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 0b52a87b34..f6b5f469eb 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -813,13 +813,23 @@ TEST(operation, vertCRS_to_geogCRS_context) { authFactory->createCoordinateReferenceSystem("8357"), // ETRS89 authFactory->createCoordinateReferenceSystem("4937"), ctxt); - ASSERT_EQ(list.size(), 2U); + ASSERT_EQ(list.size(), 3U); EXPECT_EQ( list[0]->exportToPROJString(PROJStringFormatter::create().get()), "+proj=pipeline " "+step +proj=axisswap +order=2,1 " "+step +proj=unitconvert +xy_in=deg +xy_out=rad " "+step +proj=vgridshift " + "+grids=cz_cuzk_CR-2005.tif " + "+multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); + EXPECT_EQ( + list[1]->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +proj=vgridshift " "+grids=sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif " "+multiplier=1 " "+step +proj=unitconvert +xy_in=rad +xy_out=deg " From 94209fc1e5993f7aa9483babf8ded97867e954a8 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 19 Feb 2024 15:21:40 +0100 Subject: [PATCH 184/199] Database: add transformations_czechia_extra.sql for transformations based on S-JTSK/05 For now this file is not integrated in the default build, due to licensing of grid cz_cuzk_table_yx_3_v1710_east_north.tif being not clarified (work in progress with CUZK). Thoat grid can be generated with the script https://github.com/OSGeo/PROJ-data/blob/master/cz_cuzk/convert_table_yx_3_v1710.py --- data/sql/transformations_czechia_extra.sql | 170 +++++++++++++++++++++ data/sql_filelist.cmake | 2 + 2 files changed, 172 insertions(+) create mode 100644 data/sql/transformations_czechia_extra.sql diff --git a/data/sql/transformations_czechia_extra.sql b/data/sql/transformations_czechia_extra.sql new file mode 100644 index 0000000000..a14b8de452 --- /dev/null +++ b/data/sql/transformations_czechia_extra.sql @@ -0,0 +1,170 @@ +-- This file is hand generated. + +-- WARNING: for now this file is not integrated in the default build, due to +-- licensing of grids cz_cuzk_table_yx_3_v1710_east_north.tif and cz_cuzk_CR-2005.tif +-- being not clarified. + +-- Czechia transformations + +-- 2d transformations between S-JTSK / Krovak and S-JTSK/05 / Modified Krovak using a grid with easting,northing offsets + +INSERT INTO other_transformation VALUES( + 'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N','S-JTSK / Krovak East North (EPSG:5514) to S-JTSK/05 / Modified Krovak East North (EPSG:5516)', + 'Transformation based on grid table_yx_3_v1710.dat', + 'PROJ','PROJString', + '+proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif', + 'EPSG','5514','EPSG','5516',0.035, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N_USAGE','other_transformation','PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N','EPSG','1079','EPSG','1189'); + + +INSERT INTO other_transformation VALUES( + 'PROJ','S_JTSK_E_N_TO_S_JTSK05','S-JTSK / Krovak East North (EPSG:5514) to S-JTSK/05 / Modified Krovak (EPSG:5515)', + 'Transformation based on grid table_yx_3_v1710.dat', + 'PROJ','PROJString', + '+proj=pipeline ' || + '+step +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif ' || + '+step +proj=axisswap +order=-2,-1', + 'EPSG','5514','EPSG','5515',0.035, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_TO_S_JTSK05_USAGE','other_transformation','PROJ','S_JTSK_E_N_TO_S_JTSK05','EPSG','1079','EPSG','1189'); + + +INSERT INTO other_transformation VALUES( + 'PROJ','S_JTSK_TO_S_JTSK05_E_N','S-JTSK / Krovak (EPSG:5513) to S-JTSK/05 / Modified Krovak East North (EPSG:5516)', + 'Transformation based on grid table_yx_3_v1710.dat', + 'PROJ','PROJString', + '+proj=pipeline ' || + '+step +proj=axisswap +order=-2,-1 ' || + '+step +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif', + 'EPSG','5513','EPSG','5516',0.035, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_TO_S_JTSK05_E_N_USAGE','other_transformation','PROJ','S_JTSK_TO_S_JTSK05_E_N','EPSG','1079','EPSG','1189'); + + +INSERT INTO other_transformation VALUES( + 'PROJ','S_JTSK_TO_S_JTSK05','S-JTSK / Krovak (EPSG:5513) to S-JTSK/05 / Modified Krovak (EPSG:5515)', + 'Transformation based on grid table_yx_3_v1710.dat', + 'PROJ','PROJString', + '+proj=pipeline ' || + '+step +proj=axisswap +order=-2,-1 ' || + '+step +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif ' || + '+step +proj=axisswap +order=-2,-1', + 'EPSG','5513','EPSG','5515',0.035, + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_TO_S_JTSK05_USAGE','other_transformation','PROJ','S_JTSK_TO_S_JTSK05','EPSG','1079','EPSG','1189'); + +--- Geographic transformation: S/JTSK <--> S/JTSK/05 + +UPDATE other_transformation SET accuracy = 0.1 WHERE name = 'S-JTSK to S-JTSK/05 (1)'; + +INSERT INTO "concatenated_operation" VALUES( + 'PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG','S-JTSK (EPSG:4156) to S-JTSK/05 (EPSG:5228)', + 'Transformation based on grid table_yx_3_v1710.dat','EPSG','4156','EPSG','5228',NULL,NULL,0); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',1,'EPSG','5510'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',2,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',3,'EPSG','5512'); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG_USAGE','concatenated_operation','PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG','EPSG','1079','EPSG','1189'); + + +-- CUZK recommands to do ETRS89 to S-JTSK / Krovak by doing: +-- 1) ETRS89 to S-JTSK/05 using a Helmert transformation (EPSG:5226) +-- 2) S-JTSK/05 to S-JTSK/05 / Modified Krovak, using modified Krovak projection (EPSG:5512) +-- 3) S-JTSK/05 / Modified Krovak to S-JTSK / Krovak using (reverse) grid table_yx_3_v1710.dat +-- Cf https://www.cuzk.cz/Zememerictvi/Geodeticke-zaklady-na-uzemi-CR/GNSS/Nova-realizace-systemu-ETRS89-v-CR/Metodika-prevodu-ETRF2000-vs-S-JTSK-var2(101208).aspx (Metodika převodu mezi ETRF2000 a S-JTSK varianta 2) +INSERT INTO "concatenated_operation" VALUES( + 'PROJ','ETRS89_TO_S_JTSK_E_N','ETRS89 to S-JTSK / Krovak East North (EPSG:5514)', + 'Transformation based on grid table_yx_3_v1710.dat','EPSG','4258','EPSG','5514',NULL,NULL,0); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',1,'EPSG','5226'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',2,'EPSG','5512'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',3,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N'); -- in reverse direction +INSERT INTO "usage" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N_USAGE','concatenated_operation','PROJ','ETRS89_TO_S_JTSK_E_N','EPSG','1079','EPSG','1189'); + + +-- 3d transformations between ETRS 89 and compound CRS S-JTSK / Krovak (or S-JTSK/05 / Modified Krovak) + Baltic 1957 height + +INSERT INTO "compound_crs" VALUES('PROJ','S_JTSK05_E_N_BALTIC_HEIGHT','S-JTSK/05 / Modified Krovak East North + Baltic 1957 height',NULL,'EPSG','5516','EPSG','8357',0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK05_E_N_BALTIC_HEIGHT_USAGE','compound_crs','PROJ','S_JTSK05_E_N_BALTIC_HEIGHT','EPSG','1079','EPSG','1189'); + +-- Simulate a variable +CREATE TEMPORARY TABLE temp_var(k,v); + +INSERT INTO temp_var VALUES( + 'ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT', + '+proj=pipeline ' || + '+step +proj=axisswap +order=2,1 ' || + '+step +proj=unitconvert +xy_in=deg +xy_out=rad ' || + '+step +proj=push +v_3 +omit_inv ' || + '+step +inv +proj=vgridshift +grids=cz_cuzk_CR-2005.tif +multiplier=1 ' || + '+step +proj=push +v_3 +omit_fwd ' || -- on reverse path, restore initial Baltic height + '+step +proj=push +v_4 ' || + '+step +proj=set +v_4=0 +omit_inv ' || + '+step +proj=axisswap +order=1,2,4,3 +omit_inv ' || -- on forward path, save Baltic height in v_4 component... + '+step +proj=pop +v_3 +omit_inv ' || -- on forward parth, restore initial ellipsoidal height + '+step +proj=cart +ellps=GRS80 ' || + '+step +inv +proj=helmert +x=572.213 +y=85.334 +z=461.94 +rx=-4.9732 +ry=-1.529 +rz=-5.2484 +s=3.5378 +convention=coordinate_frame ' || + '+step +inv +proj=cart +ellps=bessel ' || + '+step +proj=mod_krovak +lat_0=49.5 +lon_0=24.8333333333333 +alpha=30.2881397222222 +k=0.9999 +x_0=5000000 +y_0=5000000 +ellps=bessel ' || + '+step +proj=axisswap +order=1,2,4,3 +omit_inv ' || -- on forward path, restore Baltic height from v_4 component... + '+step +proj=set +v_4=0 +omit_inv ' || + '+step +proj=pop +v_4 ' || + '+step +proj=pop +v_3 +omit_fwd ' -- on reverse path, save initial Baltic height +); + +INSERT INTO other_transformation VALUES( + 'PROJ','ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT','ETRS89 to S-JTSK/05 / Modified Krovak East North + Baltic 1957 height', + 'Transformation based on grid CR-2005.gtx', + 'PROJ','PROJString', + (SELECT v FROM temp_var WHERE k = 'ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT'), + 'EPSG','4937','PROJ','S_JTSK05_E_N_BALTIC_HEIGHT', + 0.05, -- guessed... + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT_USAGE','other_transformation','PROJ','ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT','EPSG','1079','EPSG','1189'); + + +INSERT INTO "compound_crs" VALUES('PROJ','S_JTSK05_BALTIC_HEIGHT','S-JTSK/05 / Modified Krovak + Baltic 1957 height',NULL,'EPSG','5515','EPSG','8357',0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK05_BALTIC_HEIGHT_USAGE','compound_crs','PROJ','S_JTSK05_BALTIC_HEIGHT','EPSG','1079','EPSG','1095'); + +INSERT INTO other_transformation VALUES( + 'PROJ','ETRS89_3D_TO_S_JTSK05_BALTIC_HEIGHT','ETRS89 to S-JTSK/05 / Modified Krovak + Baltic 1957 height', + 'Transformation based on grid CR-2005.gtx', + 'PROJ','PROJString', + (SELECT v FROM temp_var WHERE k = 'ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT') || + '+step +proj=axisswap +order=-2,-1', -- East North --> Southing Westing + 'EPSG','4937','PROJ','S_JTSK05_BALTIC_HEIGHT', + 0.05, -- guessed... + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','ETRS89_3D_TO_S_JTSK05_BALTIC_HEIGHT_USAGE','other_transformation','PROJ','ETRS89_3D_TO_S_JTSK05_BALTIC_HEIGHT','EPSG','1079','EPSG','1095'); + + +INSERT INTO "compound_crs" VALUES('PROJ','S_JTSK_E_N_BALTIC_HEIGHT','S-JTSK / Krovak East North + Baltic 1957 height',NULL,'EPSG','5514','EPSG','8357',0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_BALTIC_HEIGHT_USAGE','compound_crs','PROJ','S_JTSK_E_N_BALTIC_HEIGHT','EPSG','1079','EPSG','1189'); + +INSERT INTO other_transformation VALUES( + 'PROJ','ETRS89_3D_TO_S_JTSK_E_N_BALTIC_HEIGHT','ETRS89 to S-JTSK / Krovak East North + Baltic 1957 height', + 'Transformation based on grids CR-2005.gtx and table_yx_3_v1710.dat ', + 'PROJ','PROJString', + (SELECT v FROM temp_var WHERE k = 'ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT') || + '+step +inv +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif ', + 'EPSG','4937','PROJ','S_JTSK_E_N_BALTIC_HEIGHT', + 0.05, -- guessed... + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','ETRS89_3D_TO_S_JTSK_E_N_BALTIC_HEIGHT_USAGE','other_transformation','PROJ','ETRS89_3D_TO_S_JTSK_E_N_BALTIC_HEIGHT','EPSG','1079','EPSG','1189'); + + +INSERT INTO "compound_crs" VALUES('PROJ','S_JTSK_BALTIC_HEIGHT','S-JTSK / Krovak + Baltic 1957 height',NULL,'EPSG','5513','EPSG','8357',0); +INSERT INTO "usage" VALUES('PROJ','S_JTSK_BALTIC_HEIGHT_USAGE','compound_crs','PROJ','S_JTSK_BALTIC_HEIGHT','EPSG','1079','EPSG','1095'); + +INSERT INTO other_transformation VALUES( + 'PROJ','ETRS89_3D_TO_S_JTSK_BALTIC_HEIGHT','ETRS89 to S-JTSK / Krovak + Baltic 1957 height', + 'Transformation based on grids CR-2005.gtx and table_yx_3_v1710.dat ', + 'PROJ','PROJString', + (SELECT v FROM temp_var WHERE k = 'ETRS89_3D_TO_S_JTSK05_E_N_BALTIC_HEIGHT') || + '+step +inv +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif ' || + '+step +proj=axisswap +order=-2,-1', -- East North --> Southing Westing + 'EPSG','4937','PROJ','S_JTSK_BALTIC_HEIGHT', + 0.05, -- guessed... + NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('PROJ','ETRS89_3D_TO_S_JTSK_BALTIC_HEIGHT_USAGE','other_transformation','PROJ','ETRS89_3D_TO_S_JTSK_BALTIC_HEIGHT','EPSG','1079','EPSG','1095'); + +DROP TABLE temp_var; diff --git a/data/sql_filelist.cmake b/data/sql_filelist.cmake index d99f699ee1..099b0771db 100644 --- a/data/sql_filelist.cmake +++ b/data/sql_filelist.cmake @@ -37,6 +37,8 @@ set(SQL_FILES "${SQL_DIR}/iau.sql" "${SQL_DIR}/nrcan.sql" "${SQL_DIR}/transformations_czechia.sql" + # Below file not yet integrated to unclear licensing of referenced grid file + # "${SQL_DIR}/transformations_czechia_extra.sql" "${SQL_DIR}/grid_alternatives.sql" "${SQL_DIR}/grid_alternatives_generated_noaa.sql" "${SQL_DIR}/nadcon5_concatenated_operations.sql" From 26fb427e8dce36d018a0417b1d0f31f9e4e96411 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 20 Feb 2024 11:35:50 +0100 Subject: [PATCH 185/199] Fix -Weffc++ warnings --- src/grids.cpp | 10 +++++++--- src/transformations/gridshift.cpp | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/grids.cpp b/src/grids.cpp index 8429f8f71f..d61e85b4f3 100644 --- a/src/grids.cpp +++ b/src/grids.cpp @@ -200,7 +200,7 @@ class GTXVerticalShiftGrid : public VerticalShiftGrid { PJ_CONTEXT *m_ctx; std::unique_ptr m_fp; std::unique_ptr m_cache; - mutable std::vector m_buffer; + mutable std::vector m_buffer{}; GTXVerticalShiftGrid(const GTXVerticalShiftGrid &) = delete; GTXVerticalShiftGrid &operator=(const GTXVerticalShiftGrid &) = delete; @@ -2046,7 +2046,7 @@ bool CTable2Grid::valueAt(int x, int y, bool compensateNTConvention, class NTv2GridSet : public HorizontalShiftGridSet { std::unique_ptr m_fp; - std::unique_ptr m_cache; + std::unique_ptr m_cache{}; NTv2GridSet(const NTv2GridSet &) = delete; NTv2GridSet &operator=(const NTv2GridSet &) = delete; @@ -2077,7 +2077,7 @@ class NTv2Grid : public HorizontalShiftGrid { uint32_t m_gridIdx; unsigned long long m_offset; bool m_mustSwap; - mutable std::vector m_buffer; + mutable std::vector m_buffer{}; NTv2Grid(const NTv2Grid &) = delete; NTv2Grid &operator=(const NTv2Grid &) = delete; @@ -2892,6 +2892,10 @@ class GTiffGenericGrid final : public GenericShiftGrid { } bool hasChanged() const override { return m_grid->hasChanged(); } + + private: + GTiffGenericGrid(const GTiffGenericGrid &) = delete; + GTiffGenericGrid &operator=(const GTiffGenericGrid &) = delete; }; // --------------------------------------------------------------------------- diff --git a/src/transformations/gridshift.cpp b/src/transformations/gridshift.cpp index fcf2985a8f..260b5b05ca 100644 --- a/src/transformations/gridshift.cpp +++ b/src/transformations/gridshift.cpp @@ -69,7 +69,7 @@ struct GridInfo { int idxSampleZ = -1; bool eastingNorthingOffset = false; bool bilinearInterpolation = true; - std::vector shifts; + std::vector shifts{}; bool swapXYInRes = false; std::vector idxSampleXYZ{-1, -1, -1}; IXY lastIdxXY = IXY{-1, -1}; From 81fecbc24329abf9d952bcdbfc7ebd31d376caf6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 20 Feb 2024 11:50:23 +0100 Subject: [PATCH 186/199] Another -Weffc++ warning fix --- src/iso19111/factory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 0d2f96fbf5..5b4bfc4ec8 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -4064,7 +4064,7 @@ bool AuthorityFactory::Private::rejectOpDueToMissingGrid( struct DisableNetwork { const DatabaseContextNNPtr &m_dbContext; - bool m_old_network_enabled; + bool m_old_network_enabled = false; explicit DisableNetwork(const DatabaseContextNNPtr &l_context) : m_dbContext(l_context) { From 375a7c5e34750faf718b39cbb2420976a31a08a2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 20 Feb 2024 11:58:15 +0100 Subject: [PATCH 187/199] Enable -Weffc++ for gcc and clang --- CMakeLists.txt | 5 ++++- test/unit/CMakeLists.txt | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d18d8dc5ee..71a820b653 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,9 @@ if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wmissing-prototypes ) - set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS}) + set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS} + -Weffc++ + ) elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wmissing-prototypes @@ -65,6 +67,7 @@ elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") ) set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wfloat-conversion + -Weffc++ ) elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") add_definitions(/D_CRT_SECURE_NO_WARNINGS) # Eliminate deprecation warnings diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 17a6b79daf..1205b82fd9 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -69,7 +69,8 @@ include_directories(${PROJ_SOURCE_DIR}/include) include_directories(${PROJ_BINARY_DIR}/src) # Apply to targets in the current directory and below -add_compile_options(${PROJ_CXX_WARN_FLAGS}) +add_compile_options("$<$:${PROJ_C_WARN_FLAGS}>") +add_compile_options("$<$:${PROJ_CXX_WARN_FLAGS}>") set(PROJ_TEST_ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES" From b57acc864a11a93d719c9880431f7edff36397d3 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Thu, 22 Feb 2024 08:37:16 +1300 Subject: [PATCH 188/199] Add more compiler warning flags (#4061) * Add more compiler warning flags for GNU and Clang * Resolve -Wdocumentation -Wno-documentation-deprecated-sync * Resolve -Wzero-as-null-pointer-constant --- CMakeLists.txt | 35 ++++++++++++++++++++----- src/iso19111/operation/conversion.cpp | 3 +-- test/fuzzers/proj_crs_to_crs_fuzzer.cpp | 2 +- test/unit/gie_self_tests.cpp | 22 ++++++++-------- test/unit/test_c_api.cpp | 4 +-- 5 files changed, 44 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 71a820b653..3fa3ec688c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,30 +44,53 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden) # Set warnings as variables, then store as cache options set(PROJ_common_WARN_FLAGS # common only to GNU/Clang C/C++ -Wall + -Wdate-time + -Werror=format-security + -Werror=vla -Wextra - -Wswitch + -Wformat + -Wmissing-declarations -Wshadow + -Wswitch -Wunused-parameter - -Wmissing-declarations - -Wformat - -Wformat-security ) if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") + set(PROJ_common_WARN_FLAGS ${PROJ_common_WARN_FLAGS} + -Wduplicated-cond + -Wduplicated-branches + -Wlogical-op + ) set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wmissing-prototypes ) set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Weffc++ + -Wextra-semi + # -Wold-style-cast + -Woverloaded-virtual + -Wzero-as-null-pointer-constant ) elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") + set(PROJ_common_WARN_FLAGS ${PROJ_common_WARN_FLAGS} + -Wcomma + -Wdeprecated + -Wdocumentation -Wno-documentation-deprecated-sync + -Wfloat-conversion + -Wlogical-op-parentheses + # -Wweak-vtables + ) set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wmissing-prototypes - -Wfloat-conversion -Wc11-extensions ) set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS} - -Wfloat-conversion -Weffc++ + -Wextra-semi + # -Wold-style-cast + -Woverloaded-virtual + -Wshorten-64-to-32 + -Wunused-private-field + -Wzero-as-null-pointer-constant ) elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") add_definitions(/D_CRT_SECURE_NO_WARNINGS) # Eliminate deprecation warnings diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index 66894529de..f146a1e678 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -1760,8 +1760,7 @@ ConversionNNPtr Conversion::createPopularVisualisationPseudoMercator( * sphere at centerLat. * * This method is defined as - * + * * EPSG:1026. * * @param properties See \ref general_properties of the conversion. If the name diff --git a/test/fuzzers/proj_crs_to_crs_fuzzer.cpp b/test/fuzzers/proj_crs_to_crs_fuzzer.cpp index 2115c70da6..e714a3e256 100644 --- a/test/fuzzers/proj_crs_to_crs_fuzzer.cpp +++ b/test/fuzzers/proj_crs_to_crs_fuzzer.cpp @@ -108,7 +108,7 @@ int main(int argc, char *argv[]) { return 0; } else { int nRet = 0; - void *buf = NULL; + void *buf = nullptr; int nLen = 0; FILE *f = fopen(argv[1], "rb"); if (!f) { diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp index a378520fca..8165b18670 100644 --- a/test/unit/gie_self_tests.cpp +++ b/test/unit/gie_self_tests.cpp @@ -144,7 +144,7 @@ TEST(gie, cart_selftest) { b = proj_trans(P, PJ_FWD, b); /* Move it back to the default context */ - proj_context_set(P, 0); + proj_context_set(P, nullptr); ASSERT_EQ(pj_get_default_ctx(), P->ctx); proj_context_destroy(ctx); @@ -168,8 +168,8 @@ TEST(gie, cart_selftest) { b = proj_trans(P, PJ_FWD, obs[1]); n = proj_trans_generic(P, PJ_FWD, &(obs[0].lpz.lam), sz, 2, - &(obs[0].lpz.phi), sz, 2, &(obs[0].lpz.z), sz, 2, 0, - sz, 0); + &(obs[0].lpz.phi), sz, 2, &(obs[0].lpz.z), sz, 2, + nullptr, sz, 0); ASSERT_EQ(n, 2U); ASSERT_EQ(a.lpz.lam, obs[0].lpz.lam); @@ -264,7 +264,7 @@ class gieTest : public ::testing::Test { TEST_F(gieTest, proj_create_crs_to_crs) { /* test proj_create_crs_to_crs() */ auto P = proj_create_crs_to_crs(PJ_DEFAULT_CTX, "epsg:25832", "epsg:25833", - NULL); + nullptr); ASSERT_TRUE(P != nullptr); PJ_COORD a, b; @@ -288,7 +288,7 @@ TEST_F(gieTest, proj_create_crs_to_crs) { /* we can also allow PROJ strings as a usable PJ */ P = proj_create_crs_to_crs(PJ_DEFAULT_CTX, "proj=utm +zone=32 +datum=WGS84", - "proj=utm +zone=33 +datum=WGS84", NULL); + "proj=utm +zone=33 +datum=WGS84", nullptr); ASSERT_TRUE(P != nullptr); proj_destroy(P); @@ -303,7 +303,7 @@ TEST_F(gieTest, proj_create_crs_to_crs) { TEST_F(gieTest, proj_create_crs_to_crs_EPSG_4326) { auto P = - proj_create_crs_to_crs(PJ_DEFAULT_CTX, "EPSG:4326", "EPSG:32631", NULL); + proj_create_crs_to_crs(PJ_DEFAULT_CTX, "EPSG:4326", "EPSG:32631", nullptr); ASSERT_TRUE(P != nullptr); PJ_COORD a, b; @@ -327,7 +327,7 @@ TEST_F(gieTest, proj_create_crs_to_crs_EPSG_4326) { TEST_F(gieTest, proj_create_crs_to_crs_proj_longlat) { auto P = proj_create_crs_to_crs( - PJ_DEFAULT_CTX, "+proj=longlat +datum=WGS84", "EPSG:32631", NULL); + PJ_DEFAULT_CTX, "+proj=longlat +datum=WGS84", "EPSG:32631", nullptr); ASSERT_TRUE(P != nullptr); PJ_COORD a, b; @@ -729,7 +729,7 @@ static void test_time(const char *args, double tol, double t_in, double t_exp) { PJ_COORD in, out; PJ *P = proj_create(PJ_DEFAULT_CTX, args); - ASSERT_TRUE(P != 0); + ASSERT_TRUE(P != nullptr); in = proj_coord(0.0, 0.0, 0.0, t_in); @@ -741,7 +741,7 @@ static void test_time(const char *args, double tol, double t_in, double t_exp) { proj_destroy(P); - proj_log_level(NULL, PJ_LOG_NONE); + proj_log_level(nullptr, PJ_LOG_NONE); } // --------------------------------------------------------------------------- @@ -773,7 +773,7 @@ static void test_date(const char *args, double tol, double t_in, double t_exp) { PJ_COORD in, out; PJ *P = proj_create(PJ_DEFAULT_CTX, args); - ASSERT_TRUE(P != 0); + ASSERT_TRUE(P != nullptr); in = proj_coord(0.0, 0.0, 0.0, t_in); @@ -782,7 +782,7 @@ static void test_date(const char *args, double tol, double t_in, double t_exp) { proj_destroy(P); - proj_log_level(NULL, PJ_LOG_NONE); + proj_log_level(nullptr, PJ_LOG_NONE); } TEST(gie, unitconvert_selftest_date) { diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 68d33d42b4..efa5c2dbd5 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -4223,7 +4223,7 @@ TEST_F(CApi, proj_get_celestial_body_list_from_database) { { auto list = - proj_get_celestial_body_list_from_database(nullptr, nullptr, 0); + proj_get_celestial_body_list_from_database(nullptr, nullptr, nullptr); ASSERT_NE(list, nullptr); ASSERT_NE(list[0], nullptr); ASSERT_NE(list[0]->auth_name, nullptr); @@ -4668,7 +4668,7 @@ TEST_F(CApi, proj_context_copy_from_default) { TEST_F(CApi, proj_context_clone) { int new_init_rules = - proj_context_get_use_proj4_init_rules(NULL, 0) > 0 ? 0 : 1; + proj_context_get_use_proj4_init_rules(nullptr, 0) > 0 ? 0 : 1; PJ_CONTEXT *new_ctx = proj_context_create(); EXPECT_NE(new_ctx, nullptr); PjContextKeeper keeper_ctxt(new_ctx); From 564d2b2fe0f8a8190f76c0fc0c98bf7e5d3a6beb Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 24 Feb 2024 19:36:32 +0100 Subject: [PATCH 189/199] Database: update to EPSG v11.004 --- data/sql/compound_crs.sql | 2 ++ data/sql/extent.sql | 3 ++- data/sql/geodetic_crs.sql | 10 +++++----- data/sql/geodetic_datum.sql | 2 +- data/sql/grid_transformation.sql | 4 ++++ data/sql/helmert_transformation.sql | 2 +- data/sql/metadata.sql | 4 ++-- data/sql/supersession.sql | 2 -- scripts/build_db.py | 2 +- 9 files changed, 18 insertions(+), 13 deletions(-) diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index bf5c1c8b5d..38eccb3671 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -860,6 +860,8 @@ INSERT INTO "compound_crs" VALUES('EPSG','10500','RGF93 v2b / Lambert-93 + NGF-I INSERT INTO "usage" VALUES('EPSG','20476','compound_crs','EPSG','10500','EPSG','1327','EPSG','1178'); INSERT INTO "compound_crs" VALUES('EPSG','10507','RGF93 v2b + NGF-IGN78 height',NULL,'EPSG','9782','EPSG','5721',0); INSERT INTO "usage" VALUES('EPSG','20491','compound_crs','EPSG','10507','EPSG','1327','EPSG','1026'); +INSERT INTO "compound_crs" VALUES('EPSG','10545','ETRS89 + Cascais height',NULL,'EPSG','4258','EPSG','5780',0); +INSERT INTO "usage" VALUES('EPSG','20908','compound_crs','EPSG','10545','EPSG','1294','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0); INSERT INTO "usage" VALUES('EPSG','17956','compound_crs','EPSG','20001','EPSG','4058','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20003','MWC18 Grid + ODN height',NULL,'EPSG','20002','EPSG','5701',0); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 834bf8c25a..5b0337d2f3 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -274,7 +274,7 @@ INSERT INTO "extent" VALUES('EPSG','1294','Portugal - mainland - onshore','Portu INSERT INTO "extent" 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); INSERT INTO "extent" VALUES('EPSG','1296','Europe - ED50 by country','Europe - west: Andorra; Cyprus; Denmark - onshore and offshore; Faroe Islands - onshore; France - offshore; Germany - offshore North Sea; Gibraltar; Greece - offshore; Israel - offshore; Italy including San Marino and Vatican City State; Ireland offshore; Malta; Netherlands - offshore; North Sea; Norway including Svalbard - onshore and offshore; Portugal - mainland - offshore; Spain - onshore; Türkiye (Turkey) - onshore and offshore; United Kingdom - UKCS offshore east of 6°W including Channel Islands (Guernsey and Jersey). Egypt - Western Desert; Iraq - onshore; Jordan.',25.71,84.73,-16.1,48.61,0); INSERT INTO "extent" VALUES('EPSG','1297','Europe - west','Europe - west.',34.88,84.73,-10.56,38.01,0); -INSERT INTO "extent" VALUES('EPSG','1298','Europe - ETRF by country','Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',32.88,84.73,-16.1,40.18,0); +INSERT INTO "extent" VALUES('EPSG','1298','Europe - ETRF','Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N.',32.88,84.73,-16.1,40.18,0); INSERT INTO "extent" 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.24,-9.56,31.59,0); INSERT INTO "extent" 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 "extent" 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); @@ -3727,3 +3727,4 @@ INSERT INTO "extent" VALUES('EPSG','4748','Europe - Equi7','Europe including Rus INSERT INTO "extent" VALUES('EPSG','4749','North America - Equi7','North America, the Caribbean and Central America excluding Panama.',7.98,90.0,167.65,15.72,0); INSERT INTO "extent" VALUES('EPSG','4750','South America - Equi7','South America including Panama.',-59.87,30.31,-124.82,-14.58,0); INSERT INTO "extent" VALUES('EPSG','4751','Oceania - Equi7','Australasia and the western Pacific Ocean.',-60.56,21.57,72.37,-121.05,0); +INSERT INTO "extent" VALUES('EPSG','4755','Europe - ETRF by country','Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',32.88,84.73,-16.1,40.18,0); diff --git a/data/sql/geodetic_crs.sql b/data/sql/geodetic_crs.sql index 0c16a2aa6c..1dcf0a0c1f 100644 --- a/data/sql/geodetic_crs.sql +++ b/data/sql/geodetic_crs.sql @@ -397,7 +397,7 @@ INSERT INTO "usage" VALUES('EPSG','3138','geodetic_crs','EPSG','4256','EPSG','23 INSERT INTO "geodetic_crs" VALUES('EPSG','4257','Makassar',NULL,'geographic 2D','EPSG','6422','EPSG','6257',NULL,0); INSERT INTO "usage" VALUES('EPSG','3139','geodetic_crs','EPSG','4257','EPSG','1316','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','4258','ETRS89',NULL,'geographic 2D','EPSG','6422','EPSG','6258',NULL,0); -INSERT INTO "usage" VALUES('EPSG','3140','geodetic_crs','EPSG','4258','EPSG','1298','EPSG','1026'); +INSERT INTO "usage" VALUES('EPSG','3140','geodetic_crs','EPSG','4258','EPSG','4755','EPSG','1026'); INSERT INTO "geodetic_crs" VALUES('EPSG','4259','Malongo 1987',NULL,'geographic 2D','EPSG','6422','EPSG','6259',NULL,0); INSERT INTO "usage" VALUES('EPSG','3141','geodetic_crs','EPSG','4259','EPSG','3180','EPSG','1136'); INSERT INTO "geodetic_crs" VALUES('EPSG','4260','Manoca',NULL,'geographic 2D','EPSG','6402','EPSG','6260',NULL,1); @@ -1149,9 +1149,9 @@ INSERT INTO "usage" VALUES('EPSG','3734','geodetic_crs','EPSG','4934','EPSG','10 INSERT INTO "geodetic_crs" VALUES('EPSG','4935','EST97',NULL,'geographic 3D','EPSG','6423','EPSG','6180',NULL,0); INSERT INTO "usage" VALUES('EPSG','3735','geodetic_crs','EPSG','4935','EPSG','1090','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','4936','ETRS89',NULL,'geocentric','EPSG','6500','EPSG','6258',NULL,0); -INSERT INTO "usage" VALUES('EPSG','3736','geodetic_crs','EPSG','4936','EPSG','1298','EPSG','1026'); +INSERT INTO "usage" VALUES('EPSG','3736','geodetic_crs','EPSG','4936','EPSG','4755','EPSG','1026'); INSERT INTO "geodetic_crs" VALUES('EPSG','4937','ETRS89',NULL,'geographic 3D','EPSG','6423','EPSG','6258',NULL,0); -INSERT INTO "usage" VALUES('EPSG','3737','geodetic_crs','EPSG','4937','EPSG','1298','EPSG','1026'); +INSERT INTO "usage" VALUES('EPSG','3737','geodetic_crs','EPSG','4937','EPSG','4755','EPSG','1026'); INSERT INTO "geodetic_crs" VALUES('EPSG','4938','GDA94',NULL,'geocentric','EPSG','6500','EPSG','6283',NULL,0); INSERT INTO "usage" VALUES('EPSG','3738','geodetic_crs','EPSG','4938','EPSG','4177','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','4939','GDA94',NULL,'geographic 3D','EPSG','6423','EPSG','6283',NULL,0); @@ -1685,7 +1685,7 @@ INSERT INTO "usage" VALUES('EPSG','5561','geodetic_crs','EPSG','7928','EPSG','12 INSERT INTO "geodetic_crs" VALUES('EPSG','7929','ETRF97',NULL,'geographic 3D','EPSG','6423','EPSG','1185',NULL,0); INSERT INTO "usage" VALUES('EPSG','5562','geodetic_crs','EPSG','7929','EPSG','1298','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','7930','ETRF2000',NULL,'geocentric','EPSG','6500','EPSG','1186',NULL,0); -INSERT INTO "usage" VALUES('EPSG','5563','geodetic_crs','EPSG','7930','EPSG','1298','EPSG','1027'); +INSERT INTO "usage" VALUES('EPSG','5563','geodetic_crs','EPSG','7930','EPSG','4755','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','7931','ETRF2000',NULL,'geographic 3D','EPSG','6423','EPSG','1186',NULL,0); INSERT INTO "usage" VALUES('EPSG','5564','geodetic_crs','EPSG','7931','EPSG','1298','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','8042','Gusterberg (Ferro)',NULL,'geographic 2D','EPSG','6422','EPSG','1188',NULL,0); @@ -1749,7 +1749,7 @@ INSERT INTO "usage" VALUES('EPSG','5819','geodetic_crs','EPSG','8397','EPSG','12 INSERT INTO "geodetic_crs" VALUES('EPSG','8399','ETRF2005',NULL,'geographic 3D','EPSG','6423','EPSG','1204',NULL,0); INSERT INTO "usage" VALUES('EPSG','5820','geodetic_crs','EPSG','8399','EPSG','1298','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','8401','ETRF2014',NULL,'geocentric','EPSG','6500','EPSG','1206',NULL,0); -INSERT INTO "usage" VALUES('EPSG','5821','geodetic_crs','EPSG','8401','EPSG','1298','EPSG','1027'); +INSERT INTO "usage" VALUES('EPSG','5821','geodetic_crs','EPSG','8401','EPSG','4755','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','8403','ETRF2014',NULL,'geographic 3D','EPSG','6423','EPSG','1206',NULL,0); INSERT INTO "usage" VALUES('EPSG','5822','geodetic_crs','EPSG','8403','EPSG','1298','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','8425','Hong Kong Geodetic CS',NULL,'geocentric','EPSG','6500','EPSG','1209',NULL,0); diff --git a/data/sql/geodetic_datum.sql b/data/sql/geodetic_datum.sql index 055291f274..d47d3dea9e 100644 --- a/data/sql/geodetic_datum.sql +++ b/data/sql/geodetic_datum.sql @@ -1277,6 +1277,6 @@ INSERT INTO "usage" VALUES('EPSG','13848','geodetic_datum','EPSG','6903','EPSG', INSERT INTO "geodetic_datum" VALUES('EPSG','6904','Lisbon 1890 (Lisbon)',NULL,'EPSG','7004','EPSG','8902','1937-01-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13849','geodetic_datum','EPSG','6904','EPSG','1294','EPSG','1153'); INSERT INTO "geodetic_datum" VALUES('EPSG','6258','European Terrestrial Reference System 1989 ensemble',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,0.1,NULL,NULL,0); -INSERT INTO "usage" VALUES('EPSG','14235','geodetic_datum','EPSG','6258','EPSG','1298','EPSG','1026'); +INSERT INTO "usage" VALUES('EPSG','14235','geodetic_datum','EPSG','6258','EPSG','4755','EPSG','1026'); INSERT INTO "geodetic_datum" VALUES('EPSG','6326','World Geodetic System 1984 ensemble',NULL,'EPSG','7030','EPSG','8901',NULL,NULL,2.0,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','14343','geodetic_datum','EPSG','6326','EPSG','1262','EPSG','1245'); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 27ba20f800..74ba019d3b 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1606,6 +1606,10 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10519','CGVD28 height to CGVD20 INSERT INTO "usage" VALUES('EPSG','20893','grid_transformation','EPSG','10519','EPSG','1289','EPSG','1059'); INSERT INTO "grid_transformation" VALUES('EPSG','10520','CGVD28 height to CGVD2013a(2010) height (2)','Equivalent to HT2_2010v70 hybrid geoid model minus CGG2013a geoid model (i.e. CT code 9986 - CT 9247). NAD83(CSRS)v6 is specified as the interpolation CRS, but for grid interpolation NAD83(CSRS)v2 or any later realization may be used without error.','EPSG','1126','Vertical change by geoid grid difference (NRCan)','EPSG','5713','EPSG','9245',0.05,'EPSG','1063','Geoid model difference file','HT2_2010v70_CGG2013a.byn',NULL,NULL,NULL,NULL,'EPSG','8252','NR-Can HT2 2010',0); INSERT INTO "usage" VALUES('EPSG','20894','grid_transformation','EPSG','10520','EPSG','1289','EPSG','1059'); +INSERT INTO "grid_transformation" VALUES('EPSG','10544','ETRS89 to Cascais height (1)','Hybrid geoid model GeodPT08 adjusts ICAGM07 to fit Cascais at the Portuguese Mainland geodetic network. For reversible alternative to this transformation see ETRS89 to ETRS89 + Cascais height (1) (code 10546).','EPSG','1082','Geographic3D to GravityRelatedHeight (txt)','EPSG','4937','EPSG','5780',0.04,'EPSG','8666','Geoid (height correction) model file','GeodPT08.dat',NULL,NULL,NULL,NULL,NULL,NULL,'DGT-Prt 2008',0); +INSERT INTO "usage" VALUES('EPSG','20911','grid_transformation','EPSG','10544','EPSG','1294','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10546','ETRS89 to ETRS89 + Cascais height (1)','Reversible alternative to ETRS89 to Cascais height (1) (code 10544).','EPSG','1098','Geog3D to Geog2D+GravityRelatedHeight (txt)','EPSG','4937','EPSG','10545',0.04,'EPSG','8666','Geoid (height correction) model file','GeodPT08.dat',NULL,NULL,NULL,NULL,'EPSG','4258','DGT-Prt 2008',0); +INSERT INTO "usage" VALUES('EPSG','20910','grid_transformation','EPSG','10546','EPSG','1294','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0); INSERT INTO "usage" VALUES('EPSG','11497','grid_transformation','EPSG','15486','EPSG','1286','EPSG','1085'); INSERT INTO "grid_transformation" VALUES('EPSG','15488','RRAF 1991 to IGN 1988 MG height (1)','May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5617',0.2,'EPSG','8666','Geoid (height correction) model file','ggg00_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index 1dd7fee5ce..5d64abb81c 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -217,7 +217,7 @@ INSERT INTO "usage" VALUES('EPSG','8068','helmert_transformation','EPSG','1147', INSERT INTO "helmert_transformation" VALUES('EPSG','1148','Egypt 1907 to WGS 84 (1)','Derived at 14 stations. Accuracy 3m, 6m and 8m in X, Y and Z axes.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4229','EPSG','4326',11.0,-130.0,110.0,-13.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-Egy',0); INSERT INTO "usage" VALUES('EPSG','8069','helmert_transformation','EPSG','1148','EPSG','1086','EPSG','1160'); INSERT INTO "helmert_transformation" VALUES('EPSG','1149','ETRS89 to WGS 84 (1)','ETRS89 and WGS 84 are realizations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4258','EPSG','4326',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-eur',0); -INSERT INTO "usage" VALUES('EPSG','8070','helmert_transformation','EPSG','1149','EPSG','1298','EPSG','1252'); +INSERT INTO "usage" VALUES('EPSG','8070','helmert_transformation','EPSG','1149','EPSG','4755','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','1150','GDA94 to WGS 84 (1)','Approximation at the 3m level assuming WGS 84 is equivalent to GDA94. Ignores the low accuracy of the WGS 84 ensemble and the inconsistent application of tectonic plate motion to WGS 84 data.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4283','EPSG','4326',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,'EPSG-Aus',0); INSERT INTO "usage" VALUES('EPSG','8071','helmert_transformation','EPSG','1150','EPSG','4177','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','1151','NZGD49 to WGS 84 (1)','Derived at 14 stations. Accuracy 5m, 3m and 5m in X, Y and Z axes.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4272','EPSG','4326',8.0,84.0,-22.0,209.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-Nzl',0); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index b117b023a7..4cf768400b 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 3); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.003'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-01-15'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.004'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-02-24'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index 3ffd3e2fb6..21106415f7 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -288,8 +288,6 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9639','grid_tran INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10491','grid_transformation','EPSG','10493','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10489','grid_transformation','EPSG','10491','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10492','grid_transformation','EPSG','10494','EPSG',0); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9884','grid_transformation','EPSG','10130','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9885','grid_transformation','EPSG','10133','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10490','grid_transformation','EPSG','10492','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_transformation','EPSG','10504','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1); diff --git a/scripts/build_db.py b/scripts/build_db.py index c337db985f..456c4accfa 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -294,7 +294,7 @@ def create_datumensemble_transformations(proj_db_cursor): # Insert a null transformation between the representative CRS of the datum ensemble # and each representative CRS of its members. crs_code, crs_name, crs_extent = find_crs_code_name_extent_from_geodetic_datum_code(proj_db_cursor, member_code) - assert crs_extent == ensemble_crs_extent or (crs_extent in (2830, 1262) and ensemble_crs_extent in (2830, 1262)), (ensemble_crs_code, ensemble_crs_name, ensemble_crs_extent, crs_code, crs_name, crs_extent) + assert crs_extent == ensemble_crs_extent or (crs_extent in (2830, 1262) and ensemble_crs_extent in (2830, 1262)) or (ensemble_crs_code == 4258 and ensemble_crs_extent == 4755 and crs_extent == 1298), (ensemble_crs_code, ensemble_crs_name, ensemble_crs_extent, crs_code, crs_name, crs_extent) code = '%s_TO_%s' % (ensemble_crs_name, crs_name) code = code.replace(' ', '') From 86e023e36c423326a1f03830af17fdf19c82a2c1 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 25 Feb 2024 11:10:15 +0100 Subject: [PATCH 190/199] codeql.yml: add 'sudo apt-get update' --- .github/workflows/codeql.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b6755a874f..6ed8ebfc60 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -56,6 +56,7 @@ jobs: id: cpp/non-https-url - name: Install dependencies run: | + sudo apt-get update sudo apt-get install -y ccache cmake g++ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev # cache the .ccache directory # key it on the runner os, build type, deps, and arch From 44f0e89c67f1ca0840a1f988f470e0f3ba2598e5 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Sun, 25 Feb 2024 10:23:55 +0100 Subject: [PATCH 191/199] Add pt_dgt_GeodPT08.tif to grid_alternatives.sql --- data/sql/grid_alternatives.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 8decfefeb9..d005b6dde3 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -302,6 +302,7 @@ VALUES -- pt_dgt - DG Territorio ('DLx_ETRS89_geo.gsb','pt_dgt_DLx_ETRS89_geo.tif','DLx_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_DLx_ETRS89_geo.tif',1,1,NULL), ('D73_ETRS89_geo.gsb','pt_dgt_D73_ETRS89_geo.tif','D73_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_D73_ETRS89_geo.tif',1,1,NULL), +('GeodPT08.dat','pt_dgt_GeodPT08.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/pt_dgt_GeodPT08.tif',1,1,NULL), -- se_lantmateriet - Sweden ('SWEN17_RH2000.gtx','se_lantmateriet_SWEN17_RH2000.tif','SWEN17_RH2000.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/se_lantmateriet_SWEN17_RH2000.tif',1,1,NULL), From d3296b7f9b96bfb8f0764f3bcb7a8956d4ebdc79 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 25 Feb 2024 21:09:57 +0100 Subject: [PATCH 192/199] CI: add support for Conda osx_arm64 builds Now that https://github.com/conda-incubator/setup-miniconda/releases/tag/v3.0.2 has been released with support for them. --- .github/workflows/conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 8ffeb310e5..ef4108d36b 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: true matrix: - platform: ['ubuntu-latest','windows-latest','macos-latest'] + platform: ['ubuntu-latest','windows-latest','macos-latest','macos-14'] env: PLATFORM: ${{ matrix.platform }} From a67ff1206e136fb3a316b4bba63394a010395703 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Mon, 26 Feb 2024 16:33:50 +0100 Subject: [PATCH 193/199] Update man-pages from Sphinx-docs --- man/man1/cct.1 | 4 ++-- man/man1/cs2cs.1 | 2 +- man/man1/geod.1 | 2 +- man/man1/gie.1 | 2 +- man/man1/proj.1 | 5 +++-- man/man1/projinfo.1 | 2 +- man/man1/projsync.1 | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/man/man1/cct.1 b/man/man1/cct.1 index 1dfed93efa..3e1cd7f450 100644 --- a/man/man1/cct.1 +++ b/man/man1/cct.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CCT" "1" "1 Sep 2023" "9.3" "PROJ" +.TH "CCT" "1" "01 Sep 2023" "9.3" "PROJ" .SH NAME cct \- Coordinate Conversion and Transformation .SH SYNOPSIS @@ -281,7 +281,7 @@ cct \-t 0 \-z 0 +proj=utm +ellps=GRS80 +zone=32 .UNINDENT .INDENT 0.0 .IP 6. 3 -Auxiliary data following the coordinate input is forward to the output +Auxiliary data following the coordinate input is forwarded to the output stream: .UNINDENT .INDENT 0.0 diff --git a/man/man1/cs2cs.1 b/man/man1/cs2cs.1 index bdb192b5c3..c5ebad5867 100644 --- a/man/man1/cs2cs.1 +++ b/man/man1/cs2cs.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CS2CS" "1" "1 Sep 2023" "9.3" "PROJ" +.TH "CS2CS" "1" "01 Sep 2023" "9.3" "PROJ" .SH NAME cs2cs \- Cartographic coordinate system filter .SH SYNOPSIS diff --git a/man/man1/geod.1 b/man/man1/geod.1 index 018a4683b2..574c999384 100644 --- a/man/man1/geod.1 +++ b/man/man1/geod.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GEOD" "1" "1 Sep 2023" "9.3" "PROJ" +.TH "GEOD" "1" "01 Sep 2023" "9.3" "PROJ" .SH NAME geod \- Geodesic computations .SH SYNOPSIS diff --git a/man/man1/gie.1 b/man/man1/gie.1 index a1de9395e0..ce0daad1eb 100644 --- a/man/man1/gie.1 +++ b/man/man1/gie.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GIE" "1" "1 Sep 2023" "9.3" "PROJ" +.TH "GIE" "1" "01 Sep 2023" "9.3" "PROJ" .SH NAME gie \- The Geospatial Integrity Investigation Environment .SH SYNOPSIS diff --git a/man/man1/proj.1 b/man/man1/proj.1 index 093643cee8..0c34cffcfc 100644 --- a/man/man1/proj.1 +++ b/man/man1/proj.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PROJ" "1" "1 Sep 2023" "9.3" "PROJ" +.TH "PROJ" "1" "01 Sep 2023" "9.3" "PROJ" .SH NAME proj \- Cartographic projection filter .SH SYNOPSIS @@ -228,7 +228,7 @@ The following script .sp .nf .ft C -proj +proj=utm +zone=12 +ellps=GRS80 \-r < Date: Mon, 26 Feb 2024 16:34:38 +0100 Subject: [PATCH 194/199] Update man-pages from Sphinx-docs --- man/man1/cct.1 | 6 +++--- man/man1/cs2cs.1 | 30 ++++++++++++++++++++++++++++-- man/man1/geod.1 | 4 ++-- man/man1/gie.1 | 4 ++-- man/man1/proj.1 | 4 ++-- man/man1/projinfo.1 | 28 +++++++++++++++++++++++++--- man/man1/projsync.1 | 4 ++-- 7 files changed, 64 insertions(+), 16 deletions(-) diff --git a/man/man1/cct.1 b/man/man1/cct.1 index 3e1cd7f450..d0bcdd7a81 100644 --- a/man/man1/cct.1 +++ b/man/man1/cct.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CCT" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "CCT" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME cct \- Coordinate Conversion and Transformation .SH SYNOPSIS @@ -245,7 +245,7 @@ Roundtrip accuracy check for the case above: .sp .nf .ft C -cct +proj=pipeline +proj=utm +ellps=GRS80 +zone=32 +step +step +inv +cct +proj=pipeline +ellps=GRS80 +zone=32 +step +proj=utm +step +proj=utm +inv .ft P .fi .UNINDENT @@ -362,6 +362,6 @@ where new bug reports can be submitted to. .SH AUTHOR Thomas Knudsen .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/cs2cs.1 b/man/man1/cs2cs.1 index c5ebad5867..7e0f61b7d4 100644 --- a/man/man1/cs2cs.1 +++ b/man/man1/cs2cs.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CS2CS" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "CS2CS" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME cs2cs \- Cartographic coordinate system filter .SH SYNOPSIS @@ -39,6 +39,7 @@ cs2cs \- Cartographic coordinate system filter [[\-\-area ] | [\-\-bbox ]] [\-\-authority ] [\-\-3d] [\-\-accuracy ] [\-\-only\-best[=yes|=no]] [\-\-no\-ballpark] +[\-\-s_epoch {epoch}] [\-\-t_epoch {epoch}] ([\fI+opt[=arg]\fP ...] [+to \fI+opt[=arg]\fP ...] | {source_crs} {target_crs}) file ... .in -2 @@ -156,6 +157,13 @@ List of all ellipsoids that can be selected with the \fI+ellps\fP parameters. .UNINDENT .INDENT 0.0 .TP +.B \-lm +List of hard\-coded prime meridians that can be selected with the \fI+pm\fP +parameter. Note that this list is no longer updated, +and some values may conflict with other sources. +.UNINDENT +.INDENT 0.0 +.TP .B \-lu List of all distance units that can be selected with the \fI+units\fP parameter. .UNINDENT @@ -295,6 +303,24 @@ especially before PROJ 9.1, a mix of 2D and 3D CRS could lead to 2D or 3D transformations. Starting with PROJ 9.1, both CRS need to be 3D for vertical transformation to possibly happen. .UNINDENT +.INDENT 0.0 +.TP +.B \-\-s_epoch +New in version 9.4. + +.sp +Epoch of coordinates in the source CRS, as decimal year. +Only applies to a dynamic CRS. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-t_epoch +New in version 9.4. + +.sp +Epoch of coordinates in the target CRS, as decimal year. +Only applies to a dynamic CRS. +.UNINDENT .sp The \fI+opt\fP run\-line arguments are associated with cartographic parameters. @@ -506,6 +532,6 @@ where new bug reports can be submitted to. .SH AUTHOR Frank Warmerdam .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/geod.1 b/man/man1/geod.1 index 574c999384..3e2afc5cde 100644 --- a/man/man1/geod.1 +++ b/man/man1/geod.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GEOD" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "GEOD" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME geod \- Geodesic computations .SH SYNOPSIS @@ -255,6 +255,6 @@ where new bug reports can be submitted to. .SH AUTHOR Charles Karney .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/gie.1 b/man/man1/gie.1 index ce0daad1eb..219dfc0760 100644 --- a/man/man1/gie.1 +++ b/man/man1/gie.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "GIE" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "GIE" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME gie \- The Geospatial Integrity Investigation Environment .SH SYNOPSIS @@ -519,6 +519,6 @@ where new bug reports can be submitted to. .SH AUTHOR Thomas Knudsen .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/proj.1 b/man/man1/proj.1 index 0c34cffcfc..e9e168ad21 100644 --- a/man/man1/proj.1 +++ b/man/man1/proj.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PROJ" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "PROJ" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME proj \- Cartographic projection filter .SH SYNOPSIS @@ -321,6 +321,6 @@ where new bug reports can be submitted to. .SH AUTHOR Gerald I. Evenden .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/projinfo.1 b/man/man1/projinfo.1 index 1c4f802baa..ebb7a16d6e 100644 --- a/man/man1/projinfo.1 +++ b/man/man1/projinfo.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PROJINFO" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "PROJINFO" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME projinfo \- Geodetic object and coordinate operation queries .SH SYNOPSIS @@ -54,7 +54,8 @@ projinfo \- Geodetic object and coordinate operation queries \-\-searchpaths | \-\-remote\-data | \-\-list\-crs [list\-crs\-filter] | \-\-dump\-db\-structure [{object_definition} | {object_reference}] | -{object_definition} | {object_reference} | (\-s {srs_def} \-t {srs_def}) +{object_definition} | {object_reference} | +[\-\-s_epoch {epoch}] \-t {srs_def} [\-\-t_epoch {epoch}]) .in -2 .fi @@ -85,6 +86,9 @@ e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)": "\fI\%urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031\fP" (\fIadded in 6.2\fP) .IP \(bu 2 +Extension of OGC URN for CoordinateMetadata. +e.g. "\fI\%urn:ogc:def:CoordinateMetadata:NRCAN::NAD83_CSRS_1997_MTM11_HT2_1997\fP" +.IP \(bu 2 a OGC URN combining references for concatenated operations (e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP") .IP \(bu 2 @@ -492,6 +496,24 @@ New in version 7.0. Display information regarding if \fI\%Network capabilities\fP is enabled, and the related URL. .UNINDENT +.INDENT 0.0 +.TP +.B \-\-s_epoch +New in version 9.4. + +.sp +Epoch of coordinates in the source CRS, as decimal year. +Only applies to a dynamic CRS. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-t_epoch +New in version 9.4. + +.sp +Epoch of coordinates in the target CRS, as decimal year. +Only applies to a dynamic CRS. +.UNINDENT .SH EXAMPLES .INDENT 0.0 .IP 1. 3 @@ -826,6 +848,6 @@ where new bug reports can be submitted to. .SH AUTHOR Even Rouault .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . diff --git a/man/man1/projsync.1 b/man/man1/projsync.1 index df9a276e1a..37c292b9fc 100644 --- a/man/man1/projsync.1 +++ b/man/man1/projsync.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PROJSYNC" "1" "01 Sep 2023" "9.3" "PROJ" +.TH "PROJSYNC" "1" "01 Mar 2024" "9.4" "PROJ" .SH NAME projsync \- Downloading tool of resource files .SH SYNOPSIS @@ -222,6 +222,6 @@ Bugs specific to resource files should be submitted to .SH AUTHOR Even Rouault .SH COPYRIGHT -1983-2023, PROJ contributors +1983-2024, PROJ contributors .\" Generated by docutils manpage writer. . From 6b9dca8200ffa46092b5d15ee0d39067785837c0 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Mon, 26 Feb 2024 17:03:21 +0100 Subject: [PATCH 195/199] Update NEWS for 9.4.0 --- NEWS | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/NEWS b/NEWS index a40b0416ad..5c13eaa5c7 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,59 @@ +9.4.0 Release Notes +------------------- + + Updates + ------- + + o Add support for transformations involving coordinate epoch changes + (PointMotionOperation), specifically for Canadian NAD83(CSRS)(#3884) + + o SSL_OPTIONS: set SSL options on Curl library (#3936) + + o Add support for unity builds (#3962) + + o Added ability to install *.tif if present in data (#3970) + + o createOperationsCompoundToGeog(): tune selection logic + when --grid-check known_available is specified (#3990) + + o Increase CMake minimum version from 3.9 to 3.16 (#3997) + + o CMake: use FetchContent to get googletest-1.12.1 (#4006) + + o CMake: Replace custom FindSqlite3 with FindSQLite3 built-in (#4007) + + o tpeqd: use numerically stable formula for computing the central angle + from (phi_1, lam_1) to (phi_2, lam_2) (#4009) + + o Move content of proj_experimental.h to proj.h (#4019) + + o Add +proj=mod_krovak projection method for Modified Krovak that + applies to S-JTSK/05 in the Czech Republic (#4021) + + o PROJString formatter optimizer: simplify pipelines doing + [Modified]Krovak (South West) <--> [Modified]Krovak (East North) + by just doing an axis swap (#4034) + + o +proj=gridshift: enhance to support grids referenced in projected CRS, + and with easting_offset/northing_offset corrections (#4038) + + o Tune concatenated operation instanciation, reference CR2005 geoid for + Czechia and add (disabled by default) records for Czechia S-JTSK/05 based + transformations (#4044) + + o Database: update to EPSG v11.004 (#4062) + + Bug fixes + --------- + + o Fix missing symbols at link time for Windows target in Visual Studio (#3984) + + o Improve error message in axisswap (#3975) + + o Avoid convergence errors in +proj=gridshift when using biquadratic + interpolation (#3985) + + 9.3.1 Release Notes ------------------- From cdcbfc1bcb14d1affded4e4706a3e095390b4b4c Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Mon, 26 Feb 2024 17:05:25 +0100 Subject: [PATCH 196/199] Update CITATION files for 9.4.0 release --- CITATION | 4 ++-- CITATION.cff | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CITATION b/CITATION index 9f840f7381..792dd90fd3 100644 --- a/CITATION +++ b/CITATION @@ -1,6 +1,6 @@ To cite PROJ in publications use: - PROJ contributors (2023). PROJ coordinate transformation software + PROJ contributors (2024). PROJ coordinate transformation software library. Open Source Geospatial Foundation. URL https://proj.org/. DOI: 10.5281/zenodo.5884394 @@ -12,7 +12,7 @@ A BibTeX entry for LaTeX users is title = {{PROJ} coordinate transformation software library}, author = {{PROJ contributors}}, organization = {Open Source Geospatial Foundation}, - year = {2023}, + year = {2024}, url = {https://proj.org/}, doi = {10.5281/zenodo.5884394}, } diff --git a/CITATION.cff b/CITATION.cff index 1c36cadd6c..202cbd04d5 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,8 +2,8 @@ cff-version: 1.2.0 message: Please cite this software using these metadata or in the CITATION file. type: software title: PROJ -version: 9.3.0 -date-released: 2023-09-01 +version: 9.4.0 +date-released: 2024-03-01 doi: 10.5281/zenodo.5884394 abstract: PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another. From 97c343cc1ec1241de7ca41cef871e794f17c3d66 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Mon, 26 Feb 2024 17:07:02 +0100 Subject: [PATCH 197/199] Update PROJ-data version in docs --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8d5b791504..d5d32ec7b5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -31,7 +31,7 @@ release = "9.4.0-dev" # PROJ-data version -data_version = "1.16" +data_version = "1.17" today_date = date.today() # today_date = date(Y, M, D) # or use a specific date From df8df3bc1b14081acba09a0c0fd25d6672b27e57 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 1 Dec 2023 20:22:25 +0100 Subject: [PATCH 198/199] Update documentation for 9.3.1 release --- docs/source/download.rst | 9 ++++-- docs/source/news.rst | 60 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/docs/source/download.rst b/docs/source/download.rst index cd4cd16aef..48ae1745c9 100644 --- a/docs/source/download.rst +++ b/docs/source/download.rst @@ -26,8 +26,8 @@ Download Current Release -------------------------------------------------------------------------------- -* **2023-09-01** `proj-9.3.0.tar.gz`_ (`md5`_) -* **2023-09-01** `proj-data-1.15.tar.gz`_ +* **2023-12-01** `proj-9.3.1.tar.gz`_ (`md5`_) +* **2023-12-01** `proj-data-1.16.tar.gz`_ .. note:: @@ -40,6 +40,7 @@ Current Release Past Releases -------------------------------------------------------------------------------- +* **2023-09-01** `proj-9.3.0.tar.gz`_ * **2023-06-01** `proj-9.2.1.tar.gz`_ * **2023-03-01** `proj-9.2.0.tar.gz`_ * **2022-12-01** `proj-9.1.1.tar.gz`_ @@ -110,7 +111,8 @@ Past Releases * **2018-03-01** `proj-datumgrid-oceania-1.1.zip`_ * **2018-03-01** `proj-datumgrid-oceania-1.0.zip`_ -.. _`md5`: https://download.osgeo.org/proj/proj-9.3.0.tar.gz.md5 +.. _`md5`: https://download.osgeo.org/proj/proj-9.3.1.tar.gz.md5 +.. _`proj-9.3.1.tar.gz`: https://download.osgeo.org/proj/proj-9.3.1.tar.gz .. _`proj-9.3.0.tar.gz`: https://download.osgeo.org/proj/proj-9.3.0.tar.gz .. _`proj-9.2.1.tar.gz`: https://download.osgeo.org/proj/proj-9.2.1.tar.gz .. _`proj-9.2.0.tar.gz`: https://download.osgeo.org/proj/proj-9.2.0.tar.gz @@ -147,6 +149,7 @@ Past Releases .. _`proj-4.9.2.tar.gz`: https://download.osgeo.org/proj/proj-4.9.2.tar.gz .. _`proj-4.9.3.tar.gz`: https://download.osgeo.org/proj/proj-4.9.3.tar.gz +.. _`proj-data-1.16.tar.gz`: https://download.osgeo.org/proj/proj-data-1.16.tar.gz .. _`proj-data-1.15.tar.gz`: https://download.osgeo.org/proj/proj-data-1.15.tar.gz .. _`proj-data-1.14.tar.gz`: https://download.osgeo.org/proj/proj-data-1.14.tar.gz .. _`proj-data-1.13.tar.gz`: https://download.osgeo.org/proj/proj-data-1.13.tar.gz diff --git a/docs/source/news.rst b/docs/source/news.rst index 4673c5ea45..dc3f2cbfa4 100644 --- a/docs/source/news.rst +++ b/docs/source/news.rst @@ -3,6 +3,66 @@ News ############################################################################### + +9.3.1 Release Notes +++++++++++++++++++++ +*December 1st 2023* + +Updates +------- + +* Update to EPSG 10.098 (`#3968 `_) + +* Update ESRI objects to v3.2.0 (`#3944 `_) + +Bug fixes +--------- + +* ITRF2008: fix wrong sign for ``dry`` parameter of EURA and EURA_T (`#3870 `_) + +* Fix build error with MSVC 2019 in ``/std:c++20`` on ``NN_NO_CHECK()`` (`#3872 `_) + +* ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (`#3874 `_) + +* :cpp:func:`CoordinateOperationFactory`: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (`#3881 `_) + +* :cpp:func:`Ellipsoid::_isEquivalentTo()`: fix so that an ellipsoid of semi-major axis A (and non-zero inv flattening) isn't equivalent to a sphere of radius A (`#3882 `_) + +* :cpp:func:`isEquivalentTo()`: make a datum name 'unknown' equivalent to another one (`#3883 `_) + +* :program:`cs2cs`: fix handling of input coordinates in grad (`#3886 `_) + +* Make ``setargv.obj`` available on Universal Windows Platform (`#3891 `_) + +* Allow opening proj.db with a URI (`#3892 `_) + +* :cpp:func:`createOperations()`: fix GeogCRS 3D with TOWGS84 to geocentric CRS (`#3915 `_) + +* Fix test suite so that it can pass with ``ENABLE_TIFF=OFF`` (`#3916 `_) + +* :cpp:func:`GeographicBoundingBox::intersects()`: avoid infinite recursion and stack overflow on invalid bounding boxes (`#3919 `_) + +* Fix importing ``'+proj=topocentric ... +type=crs'`` by using a geocentric CRS as the base CRS (`#3924 `_) + +* Allow LOCAL_CS with 3 axes (`#3928 `_) + +* WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (`#3933 `_) + +* :cpp:func:`createOperations()`: fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical (`#3934 `_) + +* :cpp:func:`createOperations()`: fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS (`#3943 `_) + +* :cpp:func:`createOperations()`: Fix possible null dereference on invalid WKT input (`#3946 `_) + +* :c:func:`proj_factor`: fix when input is a compound CRS of a projected CRS (`#3950 `_) + +* :c:func:`pj_get_suggested_operation()`: tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation (`#3954 `_) + +* Move static ``NameSpace::GLOBAL`` definition in ``static.cpp`` to avoid 'static initialization fiasco' (`#3956 `_) + +* horner: allow arbitrary input type of coordinate (`#3961 `_) + + 9.3.0 Release Notes ++++++++++++++++++++ *September 1st 2023* From 7cd00d0b2ca594315acd6c76912df39be4607094 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Fri, 1 Mar 2024 17:55:31 +0100 Subject: [PATCH 199/199] Update html docs for 9.4.0 --- docs/source/conf.py | 2 +- docs/source/download.rst | 11 +++++++--- docs/source/news.rst | 45 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index d5d32ec7b5..e5b906f2d5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,7 +28,7 @@ version = "9.4" # The full project version, used as the replacement for |release| -release = "9.4.0-dev" +release = "9.4.0" # PROJ-data version data_version = "1.17" diff --git a/docs/source/download.rst b/docs/source/download.rst index 48ae1745c9..e2ad6131bd 100644 --- a/docs/source/download.rst +++ b/docs/source/download.rst @@ -26,8 +26,8 @@ Download Current Release -------------------------------------------------------------------------------- -* **2023-12-01** `proj-9.3.1.tar.gz`_ (`md5`_) -* **2023-12-01** `proj-data-1.16.tar.gz`_ +* **2024-03-01** `proj-9.4.0.tar.gz`_ (`md5`_) +* **2024-03-01** `proj-data-1.17.tar.gz`_ .. note:: @@ -40,6 +40,7 @@ Current Release Past Releases -------------------------------------------------------------------------------- +* **2023-12-01** `proj-9.3.1.tar.gz`_ * **2023-09-01** `proj-9.3.0.tar.gz`_ * **2023-06-01** `proj-9.2.1.tar.gz`_ * **2023-03-01** `proj-9.2.0.tar.gz`_ @@ -75,6 +76,8 @@ Past Releases * **2015-09-13** `proj-4.9.2.tar.gz`_ * **2015-03-04** `proj-4.9.1.tar.gz`_ +* **2023-12-01** `proj-data-1.16.tar.gz`_ +* **2023-09-01** `proj-data-1.15.tar.gz`_ * **2023-06-01** `proj-data-1.14.tar.gz`_ * **2023-03-01** `proj-data-1.13.tar.gz`_ * **2022-12-01** `proj-data-1.12.tar.gz`_ @@ -111,7 +114,8 @@ Past Releases * **2018-03-01** `proj-datumgrid-oceania-1.1.zip`_ * **2018-03-01** `proj-datumgrid-oceania-1.0.zip`_ -.. _`md5`: https://download.osgeo.org/proj/proj-9.3.1.tar.gz.md5 +.. _`md5`: https://download.osgeo.org/proj/proj-9.4.0.tar.gz.md5 +.. _`proj-9.4.0.tar.gz`: https://download.osgeo.org/proj/proj-9.4.0.tar.gz .. _`proj-9.3.1.tar.gz`: https://download.osgeo.org/proj/proj-9.3.1.tar.gz .. _`proj-9.3.0.tar.gz`: https://download.osgeo.org/proj/proj-9.3.0.tar.gz .. _`proj-9.2.1.tar.gz`: https://download.osgeo.org/proj/proj-9.2.1.tar.gz @@ -149,6 +153,7 @@ Past Releases .. _`proj-4.9.2.tar.gz`: https://download.osgeo.org/proj/proj-4.9.2.tar.gz .. _`proj-4.9.3.tar.gz`: https://download.osgeo.org/proj/proj-4.9.3.tar.gz +.. _`proj-data-1.17.tar.gz`: https://download.osgeo.org/proj/proj-data-1.17.tar.gz .. _`proj-data-1.16.tar.gz`: https://download.osgeo.org/proj/proj-data-1.16.tar.gz .. _`proj-data-1.15.tar.gz`: https://download.osgeo.org/proj/proj-data-1.15.tar.gz .. _`proj-data-1.14.tar.gz`: https://download.osgeo.org/proj/proj-data-1.14.tar.gz diff --git a/docs/source/news.rst b/docs/source/news.rst index dc3f2cbfa4..0fd052cfc1 100644 --- a/docs/source/news.rst +++ b/docs/source/news.rst @@ -3,6 +3,51 @@ News ############################################################################### +9.4.0 Release Notes +++++++++++++++++++++ +*March 1st 2024* + +Updates +------- + +* Add support for transformations involving coordinate epoch changes (PointMotionOperation), specifically for Canadian NAD83(CSRS)(`#3884 `_) + +* :envvar:`SSL_OPTIONS`: set SSL options on Curl library (`#3936 `_) + +* Add support for unity builds (`#3962 `_) + +* Added ability to install ``*.tif`` if present in data (`#3970 `_) + +* ``createOperationsCompoundToGeog()``: tune selection logic when ``--grid-check`` known_available is specified (`#3990 `_) + +* Increase CMake minimum version from 3.9 to 3.16 (`#3997 `_) + +* CMake: use FetchContent to get googletest-1.12.1 (`#4006 `_) + +* CMake: Replace custom FindSqlite3 with FindSQLite3 built-in (`#4007 `_) + +* tpeqd: use numerically stable formula for computing the central angle from (phi_1, lam_1) to (phi_2, lam_2) (`#4009 `_) + +* Move content of ``proj_experimental.h`` to ``proj.h`` (`#4019 `_) + +* Add ``+proj=mod_krovak`` projection method for Modified Krovak that applies to S-JTSK/05 in the Czech Republic (`#4021 `_) + +* PROJString formatter optimizer: simplify pipelines doing [Modified]Krovak (South West) <--> [Modified]Krovak (East North) by just doing an axis swap (`#4034 `_) + +* ``+proj=gridshift``: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections (`#4038 `_) + +* Tune concatenated operation instanciation, reference CR2005 geoid for Czechia and add (disabled by default) records for Czechia S-JTSK/05 based transformations (`#4044 `_) + +* Database: update to EPSG v11.004 (`#4062 `_) + +Bug fixes +--------- + +* Fix missing symbols at link time for Windows target in Visual Studio (`#3984 `_) + +* Improve error message in axisswap (`#3975 `_) + +* Avoid convergence errors in ``+proj=gridshift`` when using biquadratic interpolation (`#3985 `_) 9.3.1 Release Notes ++++++++++++++++++++