From 0476db2b05b9232b7c579901cf8a873ef34ae62f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 18 Nov 2020 17:19:41 +0100 Subject: Database: update to EPSG v10.007 --- scripts/build_db.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts') diff --git a/scripts/build_db.py b/scripts/build_db.py index 63636a71..af304424 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -401,6 +401,9 @@ def fill_helmert_transformation(proj_db_cursor): assert param_code[6] == 8611 assert param_uom_code[3] == param_uom_code[4] assert param_uom_code[3] == param_uom_code[5] + for i in range(7): + assert param_uom_code[i] is not None + if n_params == 8: # Time-specific transformation assert param_code[7] == 1049, (code, name, param_code[7]) param_value[14] = param_value[7] @@ -438,6 +441,8 @@ def fill_helmert_transformation(proj_db_cursor): assert param_uom_code[7] == param_uom_code[9] assert param_uom_code[10] == param_uom_code[11] assert param_uom_code[10] == param_uom_code[12] + for i in range(15): + assert param_uom_code[i] is not None, (code, name, i, param_name[i]) arg = (EPSG_AUTHORITY, code, name, remarks, -- cgit v1.2.3 From eb82aa83f2530e5e4df420ab64476b947bdc7f5d Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Sat, 14 Nov 2020 11:04:02 +0100 Subject: Raise error when ACCEPT_USE_OF_DEPRECATED_PROJ_API_H is defined --- scripts/cppcheck.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/cppcheck.sh b/scripts/cppcheck.sh index 1cfd61b5..4e76db94 100755 --- a/scripts/cppcheck.sh +++ b/scripts/cppcheck.sh @@ -22,7 +22,7 @@ for dirname in ${TOPDIR}/src; do echo "Running cppcheck on $dirname... (can be long)" if ! cppcheck --inline-suppr --template='{file}:{line},{severity},{id},{message}' \ --enable=all --inconclusive --std=posix \ - -DCPPCHECK -D__cplusplus=201103L -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H -DNAN \ + -DCPPCHECK -D__cplusplus=201103L -DNAN \ -I${TOPDIR}/src -I${TOPDIR}/include \ "$dirname" \ -j 8 >>${LOG_FILE} 2>&1 ; then -- cgit v1.2.3 From d9205b9245388f23b65917a21ec72d6bec15d035 Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Tue, 17 Nov 2020 22:43:17 +0100 Subject: Update list of exported symbols --- scripts/reference_exported_symbols.txt | 127 ++++++++++++--------------------- 1 file changed, 44 insertions(+), 83 deletions(-) (limited to 'scripts') diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index 8db49a95..8ea2c231 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -284,8 +284,8 @@ osgeo::proj::datum::VerticalReferenceFrame::create(osgeo::proj::util::PropertyMa osgeo::proj::datum::VerticalReferenceFrame::realizationMethod() const osgeo::proj::datum::VerticalReferenceFrame::~VerticalReferenceFrame() osgeo::proj::File::~File() -osgeo::proj::FileManager::exists(projCtx_t*, char const*) -osgeo::proj::FileManager::open(projCtx_t*, char const*, osgeo::proj::FileAccess) +osgeo::proj::FileManager::exists(pj_ctx*, char const*) +osgeo::proj::FileManager::open(pj_ctx*, char const*, osgeo::proj::FileAccess) osgeo::proj::File::read_line(unsigned long, bool&, bool&) osgeo::proj::GenericShiftGrid::~GenericShiftGrid() osgeo::proj::GenericShiftGrid::GenericShiftGrid(std::string const&, int, int, osgeo::proj::ExtentAndRes const&) @@ -293,9 +293,9 @@ osgeo::proj::GenericShiftGrid::gridAt(double, double) const osgeo::proj::GenericShiftGridSet::~GenericShiftGridSet() osgeo::proj::GenericShiftGridSet::GenericShiftGridSet() osgeo::proj::GenericShiftGridSet::gridAt(double, double) const -osgeo::proj::GenericShiftGridSet::open(projCtx_t*, std::string const&) -osgeo::proj::GenericShiftGridSet::reassign_context(projCtx_t*) -osgeo::proj::GenericShiftGridSet::reopen(projCtx_t*) +osgeo::proj::GenericShiftGridSet::open(pj_ctx*, std::string const&) +osgeo::proj::GenericShiftGridSet::reassign_context(pj_ctx*) +osgeo::proj::GenericShiftGridSet::reopen(pj_ctx*) osgeo::proj::Grid::~Grid() osgeo::proj::Grid::Grid(std::string const&, int, int, osgeo::proj::ExtentAndRes const&) osgeo::proj::HorizontalShiftGrid::gridAt(double, double) const @@ -304,9 +304,9 @@ osgeo::proj::HorizontalShiftGrid::HorizontalShiftGrid(std::string const&, int, i osgeo::proj::HorizontalShiftGridSet::gridAt(double, double) const osgeo::proj::HorizontalShiftGridSet::~HorizontalShiftGridSet() osgeo::proj::HorizontalShiftGridSet::HorizontalShiftGridSet() -osgeo::proj::HorizontalShiftGridSet::open(projCtx_t*, std::string const&) -osgeo::proj::HorizontalShiftGridSet::reassign_context(projCtx_t*) -osgeo::proj::HorizontalShiftGridSet::reopen(projCtx_t*) +osgeo::proj::HorizontalShiftGridSet::open(pj_ctx*, std::string const&) +osgeo::proj::HorizontalShiftGridSet::reassign_context(pj_ctx*) +osgeo::proj::HorizontalShiftGridSet::reopen(pj_ctx*) osgeo::proj::internal::ci_equal(std::string const&, char const*) osgeo::proj::internal::ci_equal(std::string const&, std::string const&) osgeo::proj::internal::ci_find(std::string const&, char const*) @@ -351,9 +351,9 @@ osgeo::proj::io::AuthorityFactory::getUnitList() const osgeo::proj::io::AuthorityFactory::identifyBodyFromSemiMajorAxis(double, double) const osgeo::proj::io::AuthorityFactory::listAreaOfUseFromName(std::string const&, bool) const osgeo::proj::io::AuthorityFactory::UnitInfo::UnitInfo() -osgeo::proj::io::createFromUserInput(std::string const&, projCtx_t*) +osgeo::proj::io::createFromUserInput(std::string const&, pj_ctx*) osgeo::proj::io::createFromUserInput(std::string const&, std::shared_ptr const&, bool) -osgeo::proj::io::DatabaseContext::create(std::string const&, std::vector > const&, projCtx_t*) +osgeo::proj::io::DatabaseContext::create(std::string const&, std::vector > const&, pj_ctx*) osgeo::proj::io::DatabaseContext::create(void*) osgeo::proj::io::DatabaseContext::~DatabaseContext() osgeo::proj::io::DatabaseContext::getAuthorities() const @@ -413,7 +413,7 @@ osgeo::proj::io::PROJStringFormatter::setUseApproxTMerc(bool) osgeo::proj::io::PROJStringFormatter::startInversion() osgeo::proj::io::PROJStringFormatter::stopInversion() osgeo::proj::io::PROJStringFormatter::toString() const -osgeo::proj::io::PROJStringParser::attachContext(projCtx_t*) +osgeo::proj::io::PROJStringParser::attachContext(pj_ctx*) osgeo::proj::io::PROJStringParser::attachDatabaseContext(std::shared_ptr const&) osgeo::proj::io::PROJStringParser::createFromPROJString(std::string const&) osgeo::proj::io::PROJStringParser::~PROJStringParser() @@ -734,90 +734,51 @@ osgeo::proj::util::UnsupportedOperationException::~UnsupportedOperationException osgeo::proj::util::UnsupportedOperationException::UnsupportedOperationException(osgeo::proj::util::UnsupportedOperationException const&) osgeo::proj::VerticalShiftGrid::gridAt(double, double) const osgeo::proj::VerticalShiftGridSet::gridAt(double, double) const -osgeo::proj::VerticalShiftGridSet::open(projCtx_t*, std::string const&) -osgeo::proj::VerticalShiftGridSet::reassign_context(projCtx_t*) -osgeo::proj::VerticalShiftGridSet::reopen(projCtx_t*) +osgeo::proj::VerticalShiftGridSet::open(pj_ctx*, std::string const&) +osgeo::proj::VerticalShiftGridSet::reassign_context(pj_ctx*) +osgeo::proj::VerticalShiftGridSet::reopen(pj_ctx*) osgeo::proj::VerticalShiftGridSet::~VerticalShiftGridSet() osgeo::proj::VerticalShiftGridSet::VerticalShiftGridSet() osgeo::proj::VerticalShiftGrid::~VerticalShiftGrid() osgeo::proj::VerticalShiftGrid::VerticalShiftGrid(std::string const&, int, int, osgeo::proj::ExtentAndRes const&) -pj_acquire_lock +pj_acquire_lock() pj_add_type_crs_if_needed(std::string const&) -pj_apply_gridshift pj_approx_2D_trans(PJconsts*, PJ_DIRECTION, PJ_COORD) pj_approx_3D_trans(PJconsts*, PJ_DIRECTION, PJ_COORD) pj_atof(char const*) -pj_calloc pj_chomp(char*) -pj_cleanup_lock -pj_clear_initcache -pj_compare_datums -pj_context_get_grid_cache_filename(projCtx_t*) -pj_context_set_user_writable_directory(projCtx_t*, std::string const&) -pj_ctx_alloc -pj_ctx_fclose -pj_ctx_fgets -pj_ctx_fopen -pj_ctx_fread -pj_ctx_free -pj_ctx_fseek -pj_ctx_ftell -pj_ctx_get_app_data -pj_ctx_get_errno -pj_ctx_get_fileapi -pj_ctx_set_app_data -pj_ctx_set_debug -pj_ctx_set_errno -pj_ctx_set_fileapi -pj_ctx_set_logger -pj_dalloc -pj_datum_transform -pj_dealloc -pj_deallocate_grids -pj_ell_set(projCtx_t*, ARG_list*, double*, double*) -pj_find_file -pj_free -pj_fwd -pj_fwd3d -pj_geocentric_to_geodetic -pj_geodetic_to_geocentric -pj_get_ctx +pj_cleanup_lock() +pj_clear_initcache() +pj_context_get_grid_cache_filename(pj_ctx*) +pj_context_set_user_writable_directory(pj_ctx*, std::string const&) +pj_ell_set(pj_ctx*, ARG_list*, double*, double*) +pj_find_file(pj_ctx*, char const*, char*, unsigned long) +pj_fwd3d(PJ_LPZ, PJconsts*) +pj_fwd(PJ_LP, PJconsts*) +pj_get_ctx(PJconsts*) pj_get_datums_ref() -pj_get_def -pj_get_default_ctx -pj_get_default_fileapi -pj_get_default_searchpaths(projCtx_t*) -pj_get_errno_ref -pj_get_relative_share_proj(projCtx_t*) -pj_get_release -pj_get_spheroid_defn -pj_has_inverse -pj_init -pj_init_ctx -pj_init_plus -pj_init_plus_ctx -pj_inv -pj_inv3d -pj_is_geocent -pj_is_latlong -pj_latlong_from_proj -pj_log -pj_malloc +pj_get_default_ctx() +pj_get_default_searchpaths(pj_ctx*) +pj_get_def(PJconsts*, int) +pj_get_relative_share_proj(pj_ctx*) +pj_get_release() +pj_has_inverse(PJconsts*) +pj_init_ctx(pj_ctx*, int, char**) +pj_init(int, char**) +pj_init_plus(char const*) +pj_init_plus_ctx(pj_ctx*, char const*) +pj_inv3d(PJ_XYZ, PJconsts*) +pj_inv(PJ_XY, PJconsts*) +pj_log(pj_ctx*, int, char const*, ...) pj_mkparam(char const*) -pj_open_lib pj_param_exists(ARG_list*, char const*) -pj_param(projCtx_t*, ARG_list*, char const*) -pj_phi2(projCtx_t*, double, double) -pj_pr_list -pj_release_lock -pj_set_ctx -pj_set_finder -pj_set_searchpath +pj_param(pj_ctx*, ARG_list*, char const*) +pj_phi2(pj_ctx*, double, double) +pj_pr_list(PJconsts*) +pj_release_lock() pj_shrink(char*) -pj_stderr_logger -pj_strdup -pj_strerrno -pj_transform +pj_stderr_logger(void*, int, char const*) +pj_strdup(char const*) proj_alter_id proj_alter_name proj_angular_input @@ -852,7 +813,7 @@ proj_context_set_enable_network proj_context_set_fileapi proj_context_set_file_finder proj_context_set_network_callbacks -proj_context_set(PJconsts*, projCtx_t*) +proj_context_set(PJconsts*, pj_ctx*) proj_context_set_search_paths proj_context_set_sqlite3_vfs_name proj_context_set_url_endpoint -- cgit v1.2.3 From 6bc444c1b0d12dbc1c942e805c4017d7c5c85e07 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 22 Nov 2020 23:52:42 +0100 Subject: Database ESRI: map 2 grids in grid_alternatives --- scripts/build_db_from_esri.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index 2e6f55ec..b55a1411 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -80,8 +80,9 @@ VALUES ('c1hpgn', 'us_noaa_c1hpgn.tif', 'c1hpgn.gsb', 'GTiff', 'hgridshift', 0, NULL, 'https://cdn.proj.org/us_noaa_c1hpgn.tif', 1, 1, NULL), ('c2hpgn', 'us_noaa_c2hpgn.tif', 'c2hpgn.gsb', 'GTiff', 'hgridshift', 0, NULL, 'https://cdn.proj.org/us_noaa_c2hpgn.tif', 1, 1, NULL), ('spain/100800401','es_cat_icgc_100800401.tif','100800401.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_cat_icgc_100800401.tif',1,1,NULL), -('australia/QLD_0900','au_icsm_National_84_02_07_01.tif','National_84_02_07_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_National_84_02_07_01.tif',1,1,NULL) -- From https://www.dnrme.qld.gov.au/__data/assets/pdf_file/0006/105765/gday-21-user-guide.pdf: "Note that the Queensland grid QLD_0900.gsb produces identical results to the National AGD84 grid for the equivalent coverage." -; +('australia/QLD_0900','au_icsm_National_84_02_07_01.tif','National_84_02_07_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_National_84_02_07_01.tif',1,1,NULL), -- From https://www.dnrme.qld.gov.au/__data/assets/pdf_file/0006/105765/gday-21-user-guide.pdf: "Note that the Queensland grid QLD_0900.gsb produces identical results to the National AGD84 grid for the equivalent coverage." +('spain/PENR2009','es_ign_SPED2ETV2.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_ign_SPED2ETV2.tif',1,1,NULL), +('spain/BALR2009','es_ign_SPED2ETV2.tif',NULL,'GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_ign_SPED2ETV2.tif',1,1,NULL); -- 'france/RGNC1991_IGN72GrandeTerre' : we have a 3D geocentric corresponding one: no need for mapping -- 'france/RGNC1991_NEA74Noumea' : we have a 3D geocentric corresponding one: no need for mapping """ -- cgit v1.2.3 From 765faba8984aa1e5f2a91853d18f0453e7bed105 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sun, 22 Nov 2020 23:53:22 +0100 Subject: Remove no longer used build_db_create_ignf.py script --- scripts/build_db_create_ignf.py | 527 ---------------------------------------- 1 file changed, 527 deletions(-) delete mode 100755 scripts/build_db_create_ignf.py (limited to 'scripts') diff --git a/scripts/build_db_create_ignf.py b/scripts/build_db_create_ignf.py deleted file mode 100755 index 97157ec5..00000000 --- a/scripts/build_db_create_ignf.py +++ /dev/null @@ -1,527 +0,0 @@ -#!/usr/bin/env python -############################################################################### -# $Id$ -# -# Project: PROJ -# Purpose: Build SRS and coordinate transform database -# Author: Even Rouault -# -############################################################################### -# Copyright (c) 2018, 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 copy -import json -import os -import sqlite3 -import sys - -if len(sys.argv) != 3: - print('Usage: build_db_create_ignf.py path_to_IGNF_file proj.db') - sys.exit(1) - -def escape_literal(x): - return x.replace("'", "''") - -def find_ellipsoid(cursor, line, d): - for prec in (10,9,8,7,6): - cursor.execute('SELECT code, name FROM ellipsoid WHERE code != 1024 AND semi_major_axis = ? AND (inv_flattening = ? OR (abs(semi_major_axis / (semi_major_axis - semi_minor_axis)) - ?) < 1e-%d)' % prec, (float(d['a']), float(d['rf']), float(d['rf']))) - row = cursor.fetchone() - if prec > 6 and row is None: - continue - assert row, line - ellps_code, ellps_name = row - return ellps_code, ellps_name - -def find_geogcrs_code(line,d): - pm = None - if 'pm' in d: - pm = d['pm'] - assert pm == '2.337229167', pm - - key = { 'a' : d['a'], 'rf' : d['rf'], 'towgs84' : d['towgs84'], 'pm': pm } - key_geog_crs = json.dumps(key) - if 'W84' in code: - geogcrs_code = "WGS84G" - elif 'RGFG95' in code: - geogcrs_code = "RGFG95GEO" - elif 'ETRS89' in code: - geogcrs_code = "ETRS89GEO" - elif 'RGF93' in code: - geogcrs_code = "RGF93G" - elif 'LAMB93' in code: - geogcrs_code = "RGF93G" - elif 'MILLER' in code: - geogcrs_code = "WGS84G" - elif code.startswith('GEOPORTAL'): - geogcrs_code = 'RGF93G' - elif key_geog_crs not in map_geog_crs: - max_count_common = 0 - max_common_code = None - for k in map_geog_crs: - temp = copy.copy(key) - temp['code'] = map_geog_crs[k]['code'] - if temp == json.loads(k): - count_common = 0 - while True: - if len(code) <= count_common: - break - if len(map_geog_crs[k]['code']) <= count_common: - break - if code[count_common] == map_geog_crs[k]['code'][count_common]: - count_common += 1 - else: - break - if count_common > max_count_common: - max_count_common = count_common - max_common_code = map_geog_crs[k]['code'] - assert max_count_common >= 4, (max_common_code, max_count_common, line) - geogcrs_code = max_common_code - else: - geogcrs_code = map_geog_crs[key_geog_crs]['code'] - return geogcrs_code - - -IGNF_file = sys.argv[1] -proj_db = sys.argv[2] - -conn = sqlite3.connect(proj_db) -cursor = conn.cursor() - -all_sql = [] - -geocentric_crs_name_to_datum_code = {} -map_geog_crs = {} - -for line in open(IGNF_file, 'rt').readlines(): - line = line.strip('\n') - if line[0] == '#' or line.startswith(''): - continue - assert line[0] == '<' - code = line[1:line.find('>')] - proj4_string = line[line.find('>')+1:] - #print(code, proj4_string) - tokens = proj4_string.split(' +') - assert tokens[0] == '' - tokens = tokens[1:] - d = {} - for token in tokens: - if token == 'no_defs <>' or token == 'wktext': - continue - pos_equal = token.find('=') - assert pos_equal > 0, line - key = token[0:pos_equal] - value = token[pos_equal+1:] - d[key] = value - assert 'proj' in d, line - assert 'title' in d, line - proj = d['proj'] - - assert 'a' in d - assert 'rf' in d - assert (not 'nadgrids' in d) or d['nadgrids'] in ('null', '@null', 'ntf_r93.gsb,null'), line - assert 'towgs84' in d - - if proj == 'geocent': - - ellps_code, ellps_name = find_ellipsoid(cursor, line, d) - - datum_code = 'DATUM_' + code - - geocentric_crs_name_to_datum_code[d['title']] = datum_code - - sql = """INSERT INTO "geodetic_datum" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','%s','EPSG','8901','EPSG','1262',0);""" % (datum_code, escape_literal(d['title']), ellps_code) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','geocentric');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "geodetic_crs" VALUES('IGNF','%s','%s',NULL,NULL,'geocentric','EPSG','6500','IGNF','%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), datum_code) - all_sql.append(sql) - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4978','helmert_transformation');""" % (code) - #all_sql.append(sql) - - towgs84 = d['towgs84'].split(',') - assert len(towgs84) in (3, 7), towgs84 - x = towgs84[0] - y = towgs84[1] - z = towgs84[2] - if len(towgs84) == 3: - rx = 'NULL' - ry = 'NULL' - rz = 'NULL' - s = 'NULL' - r_uom_auth_name = 'NULL' - r_uom_code = 'NULL' - s_uom_auth_name = 'NULL' - s_uom_code = 'NULL' - method_code = "'1031'" - method_name = "'Geocentric translations (geocentric domain)'" - else: - rx = towgs84[3] - ry = towgs84[4] - rz = towgs84[5] - s = towgs84[6] - r_uom_auth_name = "'EPSG'" - r_uom_code = "'9104'" - s_uom_auth_name = "'EPSG'" - s_uom_code = "'9202'" - method_code = "'1033'" - method_name = "'Position Vector transformation (geocentric domain)'" - - sql = """INSERT INTO "helmert_transformation" VALUES('IGNF','IGNF_%s_TO_EPSG_4978','%s to WGS 84',NULL,NULL,'EPSG',%s,%s,'IGNF','%s','EPSG','4978','EPSG','1262',NULL,%s,%s,%s,'EPSG','9001',%s,%s,%s,%s,%s,%s,%s, %s,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), method_code, method_name, code, x, y, z, rx, ry, rz, r_uom_auth_name, r_uom_code, s, s_uom_auth_name, s_uom_code) - all_sql.append(sql) - - if 'nadgrids' in d and d['nadgrids'] == 'ntf_r93.gsb,null': - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4978_GRID','grid_transformation');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "grid_transformation" VALUES('IGNF','IGNF_%s_TO_EPSG_4978_GRID','%s to WGS 84 (2)',NULL,NULL,'EPSG','9615','NTv2','IGNF','%s','EPSG','4978','EPSG','1262',NULL,'EPSG','8656','Latitude and longitude difference file','ntf_r93.gsb',NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'longlat': - - pm = None - pm_code = "'8901'" # Greenwich - if 'pm' in d: - pm = d['pm'] - assert pm == '2.337229167', pm - pm_code = "'8903'" # Paris - - ellps_code, ellps_name = find_ellipsoid(cursor, line, d) - - if d['title'] in geocentric_crs_name_to_datum_code: - datum_code = geocentric_crs_name_to_datum_code[d['title']] - else: - datum_code = 'DATUM_' + code - sql = """INSERT INTO "geodetic_datum" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','%s','EPSG',%s,'EPSG','1262',0);""" % (datum_code, escape_literal(d['title']), ellps_code, pm_code) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','geographic 2D');""" % (code) - #all_sql.append(sql) - - cs_code = "'6424'" # Long Lat deg - if 'grades' in d['title']: - cs_code = "'6425'" # Long Lat grad - - sql = """INSERT INTO "geodetic_crs" VALUES('IGNF','%s','%s',NULL,NULL,'geographic 2D','EPSG',%s,'IGNF','%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), cs_code, datum_code) - all_sql.append(sql) - - key = { 'a' : d['a'], 'rf' : d['rf'], 'towgs84' : d['towgs84'], 'pm': pm } - if "+towgs84=0.0000,0.0000,0.0000 +a=6378137.0000 +rf=298.2572221010000" in line or code == 'WGS84G': - key['code'] = code - key_geog_crs = json.dumps(key) - assert key_geog_crs not in map_geog_crs, (line, map_geog_crs[key_geog_crs]) - map_geog_crs[ key_geog_crs ] = { 'code': code, 'title': d['title'] } - - if code == 'NTFP': # Grades - assert cs_code == "'6425'" # Long Lat grad - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_NTFP_TO_IGNF_NTFG','other_transformation');""" - #all_sql.append(sql) - - sql = """INSERT INTO "other_transformation" VALUES('IGNF','IGNF_NTFP_TO_IGNF_NTFG','Nouvelle Triangulation Francaise Paris grades to Nouvelle Triangulation Francaise Greenwich degres sexagesimaux',NULL,NULL,'EPSG','9601','Longitude rotation','IGNF','NTFP','IGNF','NTFG','EPSG','1262',0.0,'EPSG','8602','Longitude offset',2.5969213,'EPSG','9105',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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);""" - all_sql.append(sql) - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326','concatenated_operation');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "concatenated_operation" VALUES('IGNF','IGNF_NTFP_TO_EPSG_4326','Nouvelle Triangulation Francaise Paris grades to WGS 84',NULL,NULL,'IGNF','NTFP','EPSG','4326','EPSG','1262',NULL,'IGNF','IGNF_NTFP_TO_IGNF_NTFG','IGNF','IGNF_NTFG_TO_EPSG_4326',NULL,NULL,0);""" - all_sql.append(sql) - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326_GRID','concatenated_operation');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "concatenated_operation" VALUES('IGNF','IGNF_NTFP_TO_EPSG_4326_GRID','Nouvelle Triangulation Francaise Paris grades to WGS 84 (2)',NULL,NULL,'IGNF','NTFP','EPSG','4326','EPSG','1262',NULL,'IGNF','IGNF_NTFP_TO_IGNF_NTFG','IGNF','IGNF_NTFG_TO_EPSG_4326_GRID',NULL,NULL,0);""" - all_sql.append(sql) - - continue - - assert cs_code == "'6424'" # Long Lat deg - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326','helmert_transformation');""" % (code) - #all_sql.append(sql) - - towgs84 = d['towgs84'].split(',') - assert len(towgs84) in (3, 7), towgs84 - x = towgs84[0] - y = towgs84[1] - z = towgs84[2] - if len(towgs84) == 3: - rx = 'NULL' - ry = 'NULL' - rz = 'NULL' - s = 'NULL' - r_uom_auth_name = 'NULL' - r_uom_code = 'NULL' - s_uom_auth_name = 'NULL' - s_uom_code = 'NULL' - method_code = "'9603'" - method_name = "'Geocentric translations (geog2D domain)'" - - else: - rx = towgs84[3] - ry = towgs84[4] - rz = towgs84[5] - s = towgs84[6] - r_uom_auth_name = "'EPSG'" - r_uom_code = "'9104'" - s_uom_auth_name = "'EPSG'" - s_uom_code = "'9202'" - method_code = "'9606'" - method_name = "'Position Vector transformation (geog2D domain)'" - - sql = """INSERT INTO "helmert_transformation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326','%s to WGS 84',NULL,NULL,'EPSG',%s,%s,'IGNF','%s','EPSG','4326','EPSG','1262',NULL,%s,%s,%s,'EPSG','9001',%s,%s,%s,%s,%s,%s,%s, %s,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), method_code, method_name, code, x, y, z, rx, ry, rz, r_uom_auth_name, r_uom_code, s, s_uom_auth_name, s_uom_code) - all_sql.append(sql) - - if 'nadgrids' in d and d['nadgrids'] == 'ntf_r93.gsb,null': - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326_GRID','grid_transformation');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "grid_transformation" VALUES('IGNF','IGNF_%s_TO_EPSG_4326_GRID','%s to WGS 84 (2)',NULL,NULL,'EPSG','9615','NTv2','IGNF','%s','EPSG','4326','EPSG','1262',NULL,'EPSG','8656','Latitude and longitude difference file','ntf_r93.gsb',NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'tmerc': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - assert 'k_0' in d - assert 'lat_0' in d - assert 'lon_0' in d - assert 'units' in d and d['units'] == 'm' - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',%s,'EPSG','9102','EPSG','8802','Longitude of natural origin',%s,'EPSG','9102','EPSG','8805','Scale factor at natural origin',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_0'], d['lon_0'], d['k_0'], d['x_0'], d['y_0']) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'laea': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - assert 'lat_0' in d - assert 'lon_0' in d - assert 'units' in d and d['units'] == 'm' - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','9820','Lambert Azimuthal Equal Area','EPSG','8801','Latitude of natural origin',%s,'EPSG','9102','EPSG','8802','Longitude of natural origin',%s,'EPSG','9102','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_0'], d['lon_0'], d['x_0'], d['y_0']) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'lcc': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - assert 'lat_0' in d - assert 'lat_1' in d - assert 'k_0' in d or 'lat_2' in d, line - assert 'lon_0' in d - assert 'units' in d and d['units'] == 'm' - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - if 'lat_2' in d: - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',%s,'EPSG','9102','EPSG','8822','Longitude of false origin',%s,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',%s,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',%s,'EPSG','9102','EPSG','8826','Easting at false origin',%s,'EPSG','9001','EPSG','8827','Northing at false origin',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_0'], d['lon_0'], d['lat_1'], d['lat_2'], d['x_0'], d['y_0']) - else: - assert d['lat_0'] == d['lat_1'], line - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',%s,'EPSG','9102','EPSG','8802','Longitude of natural origin',%s,'EPSG','9102','EPSG','8805','Scale factor at natural origin',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_0'], d['lon_0'], d['k_0'], d['x_0'], d['y_0']) - - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'eqc': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d, line - assert 'y_0' in d, line - assert 'lat_0' in d, line - assert 'lat_ts' in d, line - assert 'lon_0' in d, line - assert 'units' in d and d['units'] == 'm', line - assert float(d['lat_0']) == 0, line - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','1028','Equidistant Cylindrical','EPSG','8823','Latitude of 1st standard parallel',%s,'EPSG','9102','EPSG','8802','Longitude of natural origin',%s,'EPSG','9102','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_ts'], d['lon_0'], d['x_0'], d['y_0']) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'gstmerc': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - assert 'k_0' in d - assert 'lat_0' in d - assert 'lon_0' in d - assert 'units' in d and d['units'] == 'm' - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262',NULL,NULL,'Gauss Schreiber Transverse Mercator','EPSG','8801','Latitude of natural origin',%s,'EPSG','9102','EPSG','8802','Longitude of natural origin',%s,'EPSG','9102','EPSG','8805','Scale factor at natural origin',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_0'], d['lon_0'], d['k_0'], d['x_0'], d['y_0']) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'stere': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - if 'k' in d or 'k_0' in d: - print('k/k_0 ignored for ' + line) - assert 'lat_0' in d - assert float(d['lat_0']) == -90, line - assert 'lat_ts' in d - assert 'lon_0' in d - assert float(d['lon_0']) == 140, line - assert 'units' in d and d['units'] == 'm' - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262','EPSG','9829','Polar Stereographic (variant B)','EPSG','8832','Latitude of standard parallel',%s,'EPSG','9102','EPSG','8833','Longitude of origin',%s,'EPSG','9102','EPSG','8806','False easting',%s,'EPSG','9001','EPSG','8807','False northing',%s,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);""" % (code, escape_literal(d['title']), d['lat_ts'], d['lon_0'], d['x_0'], d['y_0']) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - # Hardcoding 1025 for coordinate system since the only instance uses it - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','1025','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - elif proj == 'mill': - - geogcrs_code = find_geogcrs_code(line,d) - - assert 'x_0' in d - assert 'y_0' in d - assert 'lon_0' in d - assert 'units' in d and d['units'] == 'm' - assert float(d['x_0']) == 0, d - assert float(d['y_0']) == 0, d - assert float(d['lon_0']) == 0, d - - #sql = """INSERT INTO "coordinate_operation" VALUES('IGNF','CONV_%s','conversion');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "conversion" VALUES('IGNF','CONV_%s','Conversion for %s',NULL,NULL,'EPSG','1262',NULL,NULL,'PROJ mill',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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);""" % (code, escape_literal(d['title'])) - all_sql.append(sql) - - #sql = """INSERT INTO "crs" VALUES('IGNF','%s','projected');""" % (code) - #all_sql.append(sql) - - sql = """INSERT INTO "projected_crs" VALUES('IGNF','%s','%s',NULL,NULL,'EPSG','4499','IGNF','%s','IGNF','CONV_%s','EPSG','1262',NULL,0);""" % (code, escape_literal(d['title']), geogcrs_code, code) - all_sql.append(sql) - - all_sql.append('') - - else: - assert False, line - - -all_sql.append("""INSERT INTO grid_alternatives(original_grid_name, - proj_grid_name, - proj_grid_format, - proj_method, - inverse_direction, - package_name, - url, direct_download, open_license, directory) - VALUES ('ntf_r93.gsb', -- as referenced by the IGNF registry - 'ntf_r93.gsb', - 'NTv2', - 'hgridshift', - 0, - 'proj-datumgrid', - NULL, NULL, NULL, NULL); -""") - -#for k in map_geog_crs: -# print k, map_geog_crs[k] - -script_dir_name = os.path.dirname(os.path.realpath(__file__)) -sql_dir_name = os.path.join(os.path.dirname(script_dir_name), 'data', 'sql') - -f = open(os.path.join(sql_dir_name, 'ignf') + '.sql', 'wb') -f.write("--- This file has been generated by scripts/build_db_create_ignf.py from the PROJ4 IGNF definition file. DO NOT EDIT !\n\n".encode('UTF-8')) -for sql in all_sql: - f.write((sql + '\n').encode('UTF-8')) -f.close() - -- cgit v1.2.3 From 4caf32aedd4da6b1fd1b1ce0e04a1a08dc1e3f33 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 24 Nov 2020 19:16:12 +0100 Subject: Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL as CompoundCRS with a VerticalCRS being an ellipsoidal height, which is not conformant. But needed for LAS 1.4 that only supports WKT1 --- scripts/reference_exported_symbols.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'scripts') diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index 8db49a95..b4576ac1 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -422,7 +422,9 @@ osgeo::proj::io::PROJStringParser::setUsePROJ4InitRules(bool) osgeo::proj::io::PROJStringParser::warningList() const osgeo::proj::io::WKTFormatter::create(dropbox::oxygen::nn > > const&) osgeo::proj::io::WKTFormatter::create(osgeo::proj::io::WKTFormatter::Convention, std::shared_ptr) +osgeo::proj::io::WKTFormatter::isAllowedEllipsoidalHeightAsVerticalCRS() const osgeo::proj::io::WKTFormatter::isStrict() const +osgeo::proj::io::WKTFormatter::setAllowEllipsoidalHeightAsVerticalCRS(bool) osgeo::proj::io::WKTFormatter::setIndentationWidth(int) osgeo::proj::io::WKTFormatter::setMultiLine(bool) osgeo::proj::io::WKTFormatter::setOutputAxis(osgeo::proj::io::WKTFormatter::OutputAxisRule) -- cgit v1.2.3 From f4dc79075c19706dda6e3253c2f224e9df468291 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 30 Nov 2020 01:35:59 +0100 Subject: API cleanup: unexport number of internal symbols, and remove/replace a few unused ones --- scripts/reference_exported_symbols.txt | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'scripts') diff --git a/scripts/reference_exported_symbols.txt b/scripts/reference_exported_symbols.txt index ee734297..167b8a27 100644 --- a/scripts/reference_exported_symbols.txt +++ b/scripts/reference_exported_symbols.txt @@ -743,44 +743,27 @@ osgeo::proj::VerticalShiftGridSet::~VerticalShiftGridSet() osgeo::proj::VerticalShiftGridSet::VerticalShiftGridSet() osgeo::proj::VerticalShiftGrid::~VerticalShiftGrid() osgeo::proj::VerticalShiftGrid::VerticalShiftGrid(std::string const&, int, int, osgeo::proj::ExtentAndRes const&) -pj_acquire_lock() pj_add_type_crs_if_needed(std::string const&) pj_approx_2D_trans(PJconsts*, PJ_DIRECTION, PJ_COORD) pj_approx_3D_trans(PJconsts*, PJ_DIRECTION, PJ_COORD) pj_atof(char const*) pj_chomp(char*) -pj_cleanup_lock() -pj_clear_initcache() pj_context_get_grid_cache_filename(pj_ctx*) pj_context_set_user_writable_directory(pj_ctx*, std::string const&) pj_ell_set(pj_ctx*, ARG_list*, double*, double*) -pj_find_file(pj_ctx*, char const*, char*, unsigned long) -pj_fwd3d(PJ_LPZ, PJconsts*) pj_fwd(PJ_LP, PJconsts*) -pj_get_ctx(PJconsts*) pj_get_datums_ref() pj_get_default_ctx() pj_get_default_searchpaths(pj_ctx*) -pj_get_def(PJconsts*, int) pj_get_relative_share_proj(pj_ctx*) pj_get_release() -pj_has_inverse(PJconsts*) -pj_init_ctx(pj_ctx*, int, char**) -pj_init(int, char**) -pj_init_plus(char const*) -pj_init_plus_ctx(pj_ctx*, char const*) -pj_inv3d(PJ_XYZ, PJconsts*) pj_inv(PJ_XY, PJconsts*) -pj_log(pj_ctx*, int, char const*, ...) pj_mkparam(char const*) pj_param_exists(ARG_list*, char const*) pj_param(pj_ctx*, ARG_list*, char const*) pj_phi2(pj_ctx*, double, double) pj_pr_list(PJconsts*) -pj_release_lock() pj_shrink(char*) -pj_stderr_logger(void*, int, char const*) -pj_strdup(char const*) proj_alter_id proj_alter_name proj_angular_input -- cgit v1.2.3