Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30b6e69ac1 | ||
|
|
e37c81729a | ||
|
|
9719626fc5 | ||
|
|
ff5f3b166a | ||
|
|
da62929788 | ||
|
|
6f4f4e131f | ||
|
|
d3463f1435 | ||
|
|
9669eff676 | ||
|
|
20c61b37aa | ||
|
|
db4a625dca | ||
|
|
43e1cfe336 | ||
|
|
f6c51f6e9f | ||
|
|
5d07e2e689 | ||
|
|
1e730948fe | ||
|
|
bcd4ac4441 | ||
|
|
46cb2512a5 | ||
|
|
fe2605eb2f | ||
|
|
95fa250ce9 | ||
|
|
7f48d80289 | ||
|
|
7c69c3aa44 | ||
|
|
cb258bc70d | ||
|
|
73802200d2 | ||
|
|
fecbbae427 | ||
|
|
b11b76c4d1 | ||
|
|
9c381624cd | ||
|
|
6e3bb0dfc9 | ||
|
|
8b0ea2e182 | ||
|
|
5224d8350d | ||
|
|
6eac68f682 | ||
|
|
54ea7524f3 | ||
|
|
f7284d37a8 | ||
|
|
3320ed884b | ||
|
|
bdc0bc6480 | ||
|
|
334395bea0 | ||
|
|
7b92e89450 | ||
|
|
2b3b06d8d1 | ||
|
|
47410920e0 | ||
|
|
27be1f0c29 | ||
|
|
875a485fa5 | ||
|
|
4c2da03c22 | ||
|
|
c62e0fec07 | ||
|
|
89a5f5918d | ||
|
|
ad3e44134f | ||
|
|
38f218da43 | ||
|
|
35a343fb30 | ||
|
|
5fb1688f1d | ||
|
|
1facc74a54 | ||
|
|
9baec73c01 | ||
|
|
994217540f | ||
|
|
5e9c999b5d | ||
|
|
f00f01dd11 | ||
|
|
403c18c507 | ||
|
|
11b3248919 | ||
|
|
23d50be12e | ||
|
|
ee6a519fc5 | ||
|
|
76735470c9 | ||
|
|
bf6a413739 | ||
|
|
a42e1bab90 | ||
|
|
4dddaaa482 | ||
|
|
dbe5f772c0 | ||
|
|
be567d8bbe | ||
|
|
daeddc86ea | ||
|
|
082e8484a1 | ||
|
|
cc427d4fdd | ||
|
|
860eb9ecee | ||
|
|
4e6daa43fd | ||
|
|
f570b9f702 | ||
|
|
b0e38e6e03 | ||
|
|
279f7573cf | ||
|
|
06602365d6 | ||
|
|
1f670e8ee5 | ||
|
|
589e01ea78 | ||
|
|
92de8aa956 | ||
|
|
2beb416e24 | ||
|
|
72e6dbab11 | ||
|
|
65fd97da33 | ||
|
|
f9a967c9f8 | ||
|
|
1ddece0683 | ||
|
|
389f5619fe | ||
|
|
17cd2d0ddd | ||
|
|
863fa4aa75 | ||
|
|
ff8032df3f | ||
|
|
82ae265466 | ||
|
|
0caf671083 | ||
|
|
b31692e678 | ||
|
|
294228ebbd | ||
|
|
76f4c9776e | ||
|
|
6106b16701 | ||
|
|
23dc37959f | ||
|
|
afeffdb734 | ||
|
|
7cd00d0b2c | ||
|
|
df8df3bc1b | ||
|
|
0f2922e1bb | ||
|
|
d24521611e | ||
|
|
bd00bf31b5 | ||
|
|
b3dcb78bef | ||
|
|
64a7e2ec1a | ||
|
|
24922a0146 | ||
|
|
21eaf1e305 | ||
|
|
553c96329f | ||
|
|
495a84cb21 | ||
|
|
92762140d7 | ||
|
|
af74bc1954 | ||
|
|
9ac24b04a6 | ||
|
|
548823527b | ||
|
|
36bb10c0d4 | ||
|
|
72de8f757c | ||
|
|
5106abdd64 | ||
|
|
c0a118f46d | ||
|
|
93a42eb2d9 | ||
|
|
d33156974b | ||
|
|
dc01f9c4ff | ||
|
|
e04c6a6c64 | ||
|
|
ab34bf583e | ||
|
|
a29c310785 | ||
|
|
aaad5eb851 | ||
|
|
bf9f3470b7 | ||
|
|
3b0008a353 | ||
|
|
0ab04d4c7d | ||
|
|
f939fb7f29 | ||
|
|
19b1a160ef | ||
|
|
16c00d783f | ||
|
|
44b6fc36d7 | ||
|
|
618d905ee6 | ||
|
|
224577966b | ||
|
|
35b7aa6073 | ||
|
|
09419f0895 | ||
|
|
91b1f4d952 | ||
|
|
eda031a714 | ||
|
|
a871ac530b | ||
|
|
aa110d8785 | ||
|
|
584e97a70b | ||
|
|
2b06a219b9 | ||
|
|
f64db67b02 | ||
|
|
c714f1e6e3 | ||
|
|
435e752fad | ||
|
|
f0b6dcd4f9 | ||
|
|
1b2b98a393 | ||
|
|
7ffc601575 | ||
|
|
202de09be0 | ||
|
|
5de9fe397e | ||
|
|
92de07cc7f | ||
|
|
3f97f63a94 | ||
|
|
744021af84 | ||
|
|
0c97ca4fb6 | ||
|
|
1b2d6e5118 | ||
|
|
c4d97b407c | ||
|
|
f6bcc680f7 | ||
|
|
cac2dd1309 | ||
|
|
c7588b02cd | ||
|
|
ef0d659014 | ||
|
|
53e67739ff | ||
|
|
992edc5846 | ||
|
|
303df3071f | ||
|
|
4c1621747c | ||
|
|
274e16027b | ||
|
|
85ec28f5ab | ||
|
|
4d31e759f6 | ||
|
|
93868c1a08 | ||
|
|
fd5caa1879 | ||
|
|
9f99f305db | ||
|
|
882376e2c4 | ||
|
|
069e46384f | ||
|
|
b9051b8b74 | ||
|
|
e3c1e923d0 | ||
|
|
bc8cbd8276 | ||
|
|
707dd9ff80 | ||
|
|
7b3b638b6f | ||
|
|
e5169f9af1 | ||
|
|
c76f17f63c | ||
|
|
f3d54fa0be | ||
|
|
9b553e227a | ||
|
|
e372d23d9b | ||
|
|
a7bdb77d57 | ||
|
|
e4a2a492f3 | ||
|
|
5cecc48556 | ||
|
|
ea3c7e84eb | ||
|
|
c530dad029 | ||
|
|
08f394ea30 | ||
|
|
847423fe42 | ||
|
|
19cda6a061 |
@@ -1,94 +0,0 @@
|
||||
name: Docker
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# adapted from https://raw.githubusercontent.com/stefanprodan/podinfo/master/.github/workflows/release.yml
|
||||
#
|
||||
jobs:
|
||||
containers:
|
||||
name: ${{ matrix.container }} Container
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
container: ["proj","proj-docs"]
|
||||
dockerfile: ["./Dockerfile", "./docs/docbuild/Dockerfile"]
|
||||
exclude:
|
||||
- container: "proj"
|
||||
dockerfile: "./docs/docbuild/Dockerfile"
|
||||
- container: "proj-docs"
|
||||
dockerfile: "./Dockerfile"
|
||||
env:
|
||||
# Only push proj-docs package for master
|
||||
PUSH_PACKAGES: ${{ github.repository_owner == 'OSGeo' && github.event_name != 'pull_request' && (matrix.container == 'proj' || (matrix.container == 'proj-docs' && github.ref_name == 'master')) }}
|
||||
CONTAINER: ${{ matrix.container }}
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Lint
|
||||
id: lint
|
||||
run: |
|
||||
echo "are we pushing packages" ${{ env.PUSH_PACKAGES }}
|
||||
echo "event_name" ${{ github.event_name }}
|
||||
echo "ref" ${{ github.ref }}
|
||||
- name: Setup Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
version: latest
|
||||
- if: ${{ env.PUSH_PACKAGES == 'true' }}
|
||||
name: Login to GitHub Container Registry
|
||||
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@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Prepare
|
||||
id: prep
|
||||
run: |
|
||||
VERSION=sha-${GITHUB_SHA::8}
|
||||
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
||||
VERSION=${GITHUB_REF/refs\/tags\//}
|
||||
fi
|
||||
echo "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@v6
|
||||
with:
|
||||
push: ${{ env.PUSH_PACKAGES == 'true' }}
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
file: ${{ matrix.dockerfile }}
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
docker.io/osgeo/${{ matrix.container }}:${{ steps.prep.outputs.VERSION }}
|
||||
docker.io/osgeo/${{ matrix.container }}:latest
|
||||
ghcr.io/osgeo/${{ matrix.container }}:${{ steps.prep.outputs.VERSION }}
|
||||
ghcr.io/osgeo/${{ matrix.container }}:latest
|
||||
labels: |
|
||||
org.opencontainers.image.title=${{ github.event.repository.name }}
|
||||
org.opencontainers.image.description=${{ github.event.repository.description }}
|
||||
org.opencontainers.image.source=${{ github.event.repository.html_url }}
|
||||
org.opencontainers.image.url=${{ github.event.repository.html_url }}
|
||||
org.opencontainers.image.revision=${{ github.sha }}
|
||||
org.opencontainers.image.version=${{ steps.prep.outputs.VERSION }}
|
||||
org.opencontainers.image.created=${{ steps.prep.outputs.BUILD_DATE }}
|
||||
+1
-1
@@ -153,7 +153,7 @@ message(STATUS "Configuring PROJ:")
|
||||
#PROJ version information
|
||||
################################################################################
|
||||
include(ProjVersion)
|
||||
proj_version(MAJOR 9 MINOR 7 PATCH 0)
|
||||
proj_version(MAJOR 9 MINOR 7 PATCH 1)
|
||||
set(PROJ_SOVERSION 25)
|
||||
set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}")
|
||||
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
# PROJ Release Notes
|
||||
|
||||
## 9.7.1
|
||||
|
||||
### Updates
|
||||
|
||||
* Enable transformations_czechia.sql (#4578)
|
||||
|
||||
* Update to EPSG v12.029 (#4586)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* `createOperations()`: fix compound to compound when vertical CRS definition is equivalent but not strictly identical (#4579)
|
||||
|
||||
* `createOperations()`: fix compound to compound when horizontal CRS of … (#4582)
|
||||
|
||||
* `projinfo`: make it honour `-k crs` (#4592)
|
||||
|
||||
* `proj_clone()`: fix insufficient propagation of `FORCE_OVER=YES` (#4595)
|
||||
|
||||
* `BoundCRS::identify`: fix creation of an invalid BoundCRS (that can cause later crashes) for CRS based on 'NTF (Paris)' (#4601)
|
||||
|
||||
* WKT/PROJJSON datum ensemble import: allow no members (#4615)
|
||||
|
||||
|
||||
## 9.7.0
|
||||
|
||||
### Updates
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in")
|
||||
set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db")
|
||||
include(sql_filelist.cmake)
|
||||
|
||||
set(PROJ_DB_SQL_EXPECTED_MD5 "9f7dcabfc3c8a70ef301bba9af749406")
|
||||
set(PROJ_DB_SQL_EXPECTED_MD5 "f6a88a01020b8abf364ff2d27271ae60")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJ_DB}
|
||||
|
||||
+208
-12
@@ -779,6 +779,8 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1422','NATRF2022','EPSG
|
||||
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1407','EUREF89','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1403','NKG_ETRF14','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1424','SVD2024','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1225','CR-SIRGAS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1428','CR14','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');
|
||||
@@ -6745,12 +6747,12 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5938','WGS 84 / EPSG Gre
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5939','WGS 84 / EPSG Norway PS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5940','WGS 84 / EPSG Russia PS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5930','WGS 84 / EPSG Arctic B5','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5973','ETRS89 / UTM zone 33 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5975','ETRS89 / UTM zone 35 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5974','ETRS89 / UTM zone 34 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5976','ETRS89 / UTM zone 36 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5972','ETRS89 / UTM zone 32 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5971','ETRS89 / UTM zone 31 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5973','ETRS89 / UTM zone 33N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5975','ETRS89 / UTM zone 35N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5974','ETRS89 / UTM zone 34N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5976','ETRS89 / UTM zone 36N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5972','ETRS89 / UTM zone 32N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5971','ETRS89 / UTM zone 31N + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6050','GR96 / EPSG Arctic 1-25','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6051','GR96 / EPSG Arctic 2-18','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6052','GR96 / EPSG Arctic 2-20','EPSG');
|
||||
@@ -6829,12 +6831,12 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6104','NAD83(CSRS) / EPS
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6141','CING11','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4723','Grand Cayman 1959','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','4726','Little Cayman 1961','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6171','ETRS89 / UTM zone 31 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6172','ETRS89 / UTM zone 32 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6173','ETRS89 / UTM zone 33 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6174','ETRS89 / UTM zone 34 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6175','ETRS89 / UTM zone 35 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6176','ETRS89 / UTM zone 36 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6171','ETRS89 / UTM zone 31N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6172','ETRS89 / UTM zone 32N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6173','ETRS89 / UTM zone 33N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6174','ETRS89 / UTM zone 34N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6175','ETRS89 / UTM zone 35N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6176','ETRS89 / UTM zone 36N + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5710','BE_OOST / UNCOR','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5710','Oostende height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','6057','GR96 / EPSG Arctic 4-22','EPSG');
|
||||
@@ -8155,6 +8157,200 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10924','CSRN2025 (NAD83
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10873','EUREF89','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10874','EUREF89','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10875','EUREF89','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5105','ETRS89 / NTM zone 5','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5106','ETRS89 / NTM zone 6','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5107','ETRS89 / NTM zone 7','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5108','ETRS89 / NTM zone 8','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5109','ETRS89 / NTM zone 9','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5110','ETRS89 / NTM zone 10','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5111','ETRS89 / NTM zone 11','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5112','ETRS89 / NTM zone 12','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5113','ETRS89 / NTM zone 13','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5114','ETRS89 / NTM zone 14','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5115','ETRS89 / NTM zone 15','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5116','ETRS89 / NTM zone 16','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5117','ETRS89 / NTM zone 17','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5118','ETRS89 / NTM zone 18','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5119','ETRS89 / NTM zone 19','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5120','ETRS89 / NTM zone 20','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5121','ETRS89 / NTM zone 21','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5122','ETRS89 / NTM zone 22','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5123','ETRS89 / NTM zone 23','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5124','ETRS89 / NTM zone 24','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5125','ETRS89 / NTM zone 25','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5126','ETRS89 / NTM zone 26','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5127','ETRS89 / NTM zone 27','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5128','ETRS89 / NTM zone 28','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5129','ETRS89 / NTM zone 29','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5130','ETRS89 / NTM zone 30','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6144','ETRS89 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5942','ETRS89 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','20001','ETRS89 + SVD2006 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9883','ETRS89 + CD Norway depth','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5105','EUREF89 / NTM zone 5','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5106','EUREF89 / NTM zone 6','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5107','EUREF89 / NTM zone 7','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5108','EUREF89 / NTM zone 8','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5109','EUREF89 / NTM zone 9','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5110','EUREF89 / NTM zone 10','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5111','EUREF89 / NTM zone 11','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5112','EUREF89 / NTM zone 12','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5113','EUREF89 / NTM zone 13','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5114','EUREF89 / NTM zone 14','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5115','EUREF89 / NTM zone 15','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5116','EUREF89 / NTM zone 16','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5117','EUREF89 / NTM zone 17','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5118','EUREF89 / NTM zone 18','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5119','EUREF89 / NTM zone 19','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5120','EUREF89 / NTM zone 20','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5121','EUREF89 / NTM zone 21','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5122','EUREF89 / NTM zone 22','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5123','EUREF89 / NTM zone 23','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5124','EUREF89 / NTM zone 24','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5125','EUREF89 / NTM zone 25','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5126','EUREF89 / NTM zone 26','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5127','EUREF89 / NTM zone 27','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5128','EUREF89 / NTM zone 28','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5129','EUREF89 / NTM zone 29','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5130','EUREF89 / NTM zone 30','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11012','EUREF89 / UTM zone 30 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11013','EUREF89 / UTM zone 31 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11014','EUREF89 / UTM zone 32 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11015','EUREF89 / UTM zone 33 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11016','EUREF89 / UTM zone 34 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11017','EUREF89 / UTM zone 35 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11018','EUREF89 / UTM zone 36 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11019','EUREF89 / UTM zone 37 (N-E)','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11020','EUREF89 / UTM zone 30','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11021','EUREF89 / UTM zone 31','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11022','EUREF89 / UTM zone 32','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11023','EUREF89 / UTM zone 33','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11024','EUREF89 / UTM zone 34','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11025','EUREF89 / UTM zone 35','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11026','EUREF89 / UTM zone 36','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','20001','EUREF89 + SVD2006 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','11000','EUREF89 + SVD2024 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6145','ETRS89 / NTM zone 5 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6145','EUREF89 / NTM zone 5 + NN54','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5945','EUREF89 / NTM zone 5 + NN2000','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6146','ETRS89 / NTM zone 6 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6147','ETRS89 / NTM zone 7 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6146','EUREF89 / NTM zone 6 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5946','EUREF89 / NTM zone 6 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5947','EUREF89 / NTM zone 7 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6148','ETRS89 / NTM zone 8 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5948','EUREF89 / NTM zone 8 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6149','ETRS89 / NTM zone 9 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6149','EUREF89 / NTM zone 9 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5949','EUREF89 / NTM zone 9 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6150','ETRS89 / NTM zone 10 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6150','EUREF89 / NTM zone 10 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5950','EUREF89 / NTM zone 10 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6151','ETRS89 / NTM zone 11 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6151','EUREF89 / NTM zone 11 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5951','EUREF89 / NTM zone 11 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6152','ETRS89 / NTM zone 12 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6152','EUREF89 / NTM zone 12 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5952','EUREF89 / NTM zone 12 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6153','ETRS89 / NTM zone 13 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6153','EUREF89 / NTM zone 13 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5953','EUREF89 / NTM zone 13 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6154','ETRS89 / NTM zone 14 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6154','EUREF89 / NTM zone 14 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5954','EUREF89 / NTM zone 14 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6155','ETRS89 / NTM zone 15 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6155','EUREF89 / NTM zone 15 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5955','EUREF89 / NTM zone 15 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6156','ETRS89 / NTM zone 16 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6156','EUREF89 / NTM zone 16 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5956','EUREF89 / NTM zone 16 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6157','ETRS89 / NTM zone 17 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6157','EUREF89 / NTM zone 17 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5957','EUREF89 / NTM zone 17 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6158','ETRS89 / NTM zone 18 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6158','EUREF89 / NTM zone 18 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6159','ETRS89 / NTM zone 19 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6159','EUREF89 / NTM zone 19 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5959','EUREF89 / NTM zone 19 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6160','ETRS89 / NTM zone 20 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6160','EUREF89 / NTM zone 20 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5960','EUREF89 / NTM zone 20 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6161','ETRS89 / NTM zone 21 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6161','EUREF89 / NTM zone 21 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5961','EUREF89 / NTM zone 21 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6162','ETRS89 / NTM zone 22 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6163','ETRS89 / NTM zone 23 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6163','EUREF89 / NTM zone 23 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5963','EUREF89 / NTM zone 23 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6164','ETRS89 / NTM zone 24 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6164','EUREF89 / NTM zone 24 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5964','EUREF89 / NTM zone 24 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6165','ETRS89 / NTM zone 25 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6165','EUREF89 / NTM zone 25 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5965','EUREF89 / NTM zone 25 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6166','ETRS89 / NTM zone 26 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6166','EUREF89 / NTM zone 26 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5966','EUREF89 / NTM zone 26 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6167','ETRS89 / NTM zone 27 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6167','EUREF89 / NTM zone 27 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5967','EUREF89 / NTM zone 27 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6168','ETRS89 / NTM zone 28 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6168','EUREF89 / NTM zone 28 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5968','EUREF89 / NTM zone 28 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6169','ETRS89 / NTM zone 29 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6169','EUREF89 / NTM zone 29 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5969','EUREF89 / NTM zone 29 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6170','ETRS89 / NTM zone 30 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6170','EUREF89 / NTM zone 30 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5970','EUREF89 / NTM zone 30 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5958','EUREF89 / NTM zone 18 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6162','EUREF89 / NTM zone 22 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5962','EUREF89 / NTM zone 22 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8905','CR-SIRGAS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8906','CR-SIRGAS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','8907','CR-SIRGAS','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8908','CR-SIRGAS / CRTM05','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','8912','CR-SIRGAS / CRTM05 + DACR52 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8909','CR-SIRGAS / UTM zone 16N','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','8910','CR-SIRGAS / UTM zone 17N','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','11041','CR19','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','11042','CR19','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11027','EUREF89 / UTM zone 37','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5971','EUREF89 / UTM zone 31 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5972','EUREF89 / UTM zone 32 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5973','EUREF89 / UTM zone 33 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5974','EUREF89 / UTM zone 34 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5975','EUREF89 / UTM zone 35 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5976','EUREF89 / UTM zone 36 + NN2000 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6171','EUREF89 / UTM zone 31 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6172','EUREF89 / UTM zone 32 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6173','EUREF89 / UTM zone 33 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6174','EUREF89 / UTM zone 34 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6175','EUREF89 / UTM zone 35 + NN54 height','EPSG');
|
||||
INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6176','EUREF89 / UTM zone 36 + NN54 height','EPSG');
|
||||
|
||||
+70
-68
@@ -74,137 +74,137 @@ INSERT INTO "compound_crs" VALUES('EPSG','5856','SWEREF99 21 45 + RH2000 height'
|
||||
INSERT INTO "usage" VALUES('EPSG','4291','compound_crs','EPSG','5856','EPSG','2843','EPSG','1142');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5857','SWEREF99 23 15 + RH2000 height',NULL,'EPSG','3018','EPSG','5613',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4292','compound_crs','EPSG','5857','EPSG','2844','EPSG','1142');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89 + NN2000 height',NULL,'EPSG','4258','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89-NOR [EUREF89] + NN2000 height',NULL,'EPSG','10875','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4346','compound_crs','EPSG','5942','EPSG','1352','EPSG','1027');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height',NULL,'EPSG','5105','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89-NOR [EUREF89] / NTM zone 5 + NN2000 height',NULL,'EPSG','5105','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4347','compound_crs','EPSG','5945','EPSG','3636','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height',NULL,'EPSG','5106','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89-NOR [EUREF89] / NTM zone 6 + NN2000 height',NULL,'EPSG','5106','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4348','compound_crs','EPSG','5946','EPSG','3639','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height',NULL,'EPSG','5107','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89-NOR [EUREF89] / NTM zone 7 + NN2000 height',NULL,'EPSG','5107','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4349','compound_crs','EPSG','5947','EPSG','3647','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height',NULL,'EPSG','5108','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89-NOR [EUREF89] / NTM zone 8 + NN2000 height',NULL,'EPSG','5108','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4350','compound_crs','EPSG','5948','EPSG','3648','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height',NULL,'EPSG','5109','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89-NOR [EUREF89] / NTM zone 9 + NN2000 height',NULL,'EPSG','5109','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4351','compound_crs','EPSG','5949','EPSG','3649','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height',NULL,'EPSG','5110','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89-NOR [EUREF89] / NTM zone 10 + NN2000 height',NULL,'EPSG','5110','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4352','compound_crs','EPSG','5950','EPSG','3650','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height',NULL,'EPSG','5111','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89-NOR [EUREF89] / NTM zone 11 + NN2000 height',NULL,'EPSG','5111','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4353','compound_crs','EPSG','5951','EPSG','3651','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height',NULL,'EPSG','5112','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89-NOR [EUREF89] / NTM zone 12 + NN2000 height',NULL,'EPSG','5112','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4354','compound_crs','EPSG','5952','EPSG','3653','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height',NULL,'EPSG','5113','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89-NOR [EUREF89 / NTM zone 13 + NN2000 height',NULL,'EPSG','5113','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4355','compound_crs','EPSG','5953','EPSG','3654','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height',NULL,'EPSG','5114','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89-NOR [EUREF89] / NTM zone 14 + NN2000 height',NULL,'EPSG','5114','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4356','compound_crs','EPSG','5954','EPSG','3655','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height',NULL,'EPSG','5115','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89-NOR [EUREF89] / NTM zone 15 + NN2000 height',NULL,'EPSG','5115','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4357','compound_crs','EPSG','5955','EPSG','3656','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height',NULL,'EPSG','5116','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89-NOR [EUREF89] / NTM zone 16 + NN2000 height',NULL,'EPSG','5116','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4358','compound_crs','EPSG','5956','EPSG','3657','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height',NULL,'EPSG','5117','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89-NOR [EUREF89] / NTM zone 17 + NN2000 height',NULL,'EPSG','5117','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4359','compound_crs','EPSG','5957','EPSG','3658','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height',NULL,'EPSG','5118','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89-NOR [EUREF89] / NTM zone 18 + NN2000 height',NULL,'EPSG','5118','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4360','compound_crs','EPSG','5958','EPSG','3660','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height',NULL,'EPSG','5119','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89-NOR [EUREF89] / NTM zone 19 + NN2000 height',NULL,'EPSG','5119','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4361','compound_crs','EPSG','5959','EPSG','3661','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height',NULL,'EPSG','5120','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89-NOR [EUREF89] / NTM zone 20 + NN2000 height',NULL,'EPSG','5120','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4362','compound_crs','EPSG','5960','EPSG','3662','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height',NULL,'EPSG','5121','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89-NOR [EUREF89] / NTM zone 21 + NN2000 height',NULL,'EPSG','5121','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4363','compound_crs','EPSG','5961','EPSG','3663','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height',NULL,'EPSG','5122','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89-NOR [EUREF89] / NTM zone 22 + NN2000 height',NULL,'EPSG','5122','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4364','compound_crs','EPSG','5962','EPSG','3665','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height',NULL,'EPSG','5123','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89-NOR [EUREF89] / NTM zone 23 + NN2000 height',NULL,'EPSG','5123','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4365','compound_crs','EPSG','5963','EPSG','3667','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height',NULL,'EPSG','5124','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89-NOR [EUREF89] / NTM zone 24 + NN2000 height',NULL,'EPSG','5124','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4366','compound_crs','EPSG','5964','EPSG','3668','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height',NULL,'EPSG','5125','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89-NOR [EUREF89] / NTM zone 25 + NN2000 height',NULL,'EPSG','5125','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4367','compound_crs','EPSG','5965','EPSG','3669','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height',NULL,'EPSG','5126','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89-NOR [EUREF89] / NTM zone 26 + NN2000 height',NULL,'EPSG','5126','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4368','compound_crs','EPSG','5966','EPSG','3671','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height',NULL,'EPSG','5127','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89-NOR [EUREF89] / NTM zone 27 + NN2000 height',NULL,'EPSG','5127','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4369','compound_crs','EPSG','5967','EPSG','3672','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height',NULL,'EPSG','5128','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89-NOR [EUREF89] / NTM zone 28 + NN2000 height',NULL,'EPSG','5128','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4370','compound_crs','EPSG','5968','EPSG','3673','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height',NULL,'EPSG','5129','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89-NOR [EUREF89] / NTM zone 29 + NN2000 height',NULL,'EPSG','5129','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4371','compound_crs','EPSG','5969','EPSG','3674','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height',NULL,'EPSG','5130','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89-NOR [EUREF89] / NTM zone 30 + NN2000 height',NULL,'EPSG','5130','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4372','compound_crs','EPSG','5970','EPSG','3676','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5971','ETRS89 / UTM zone 31N + NN2000 height',NULL,'EPSG','25831','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5971','ETRS89-NOR [EUREF89] / UTM zone 31N + NN2000 height',NULL,'EPSG','11021','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4373','compound_crs','EPSG','5971','EPSG','3636','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5972','ETRS89 / UTM zone 32N + NN2000 height',NULL,'EPSG','25832','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5972','ETRS89-NOR [EUREF89] / UTM zone 32N + NN2000 height',NULL,'EPSG','11022','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4374','compound_crs','EPSG','5972','EPSG','4066','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5973','ETRS89 / UTM zone 33N + NN2000 height',NULL,'EPSG','25833','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5973','ETRS89-NOR [EUREF89] / UTM zone 33N + NN2000 height',NULL,'EPSG','11023','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4375','compound_crs','EPSG','5973','EPSG','4067','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5974','ETRS89 / UTM zone 34N + NN2000 height',NULL,'EPSG','25834','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5974','ETRS89-NOR [EUREF89] / UTM zone 34N + NN2000 height',NULL,'EPSG','11024','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4376','compound_crs','EPSG','5974','EPSG','4068','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5975','ETRS89 / UTM zone 35N + NN2000 height',NULL,'EPSG','25835','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5975','ETRS89-NOR [EUREF89] / UTM zone 35N + NN2000 height',NULL,'EPSG','11025','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4377','compound_crs','EPSG','5975','EPSG','4069','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5976','ETRS89 / UTM zone 36N + NN2000 height',NULL,'EPSG','25836','EPSG','5941',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','5976','ETRS89-NOR [EUREF89] / UTM zone 36N + NN2000 height',NULL,'EPSG','11026','EPSG','5941',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4378','compound_crs','EPSG','5976','EPSG','3676','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89 + NN54 height',NULL,'EPSG','4258','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89-NOR [EUREF89] + NN54 height',NULL,'EPSG','10875','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4464','compound_crs','EPSG','6144','EPSG','1352','EPSG','1027');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89 / NTM zone 5 + NN54 height',NULL,'EPSG','5105','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89-NOR [EUREF89] / NTM zone 5 + NN54 height',NULL,'EPSG','5105','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4465','compound_crs','EPSG','6145','EPSG','3636','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89 / NTM zone 6 + NN54 height',NULL,'EPSG','5106','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89-NOR [EUREF89] / NTM zone 6 + NN54 height',NULL,'EPSG','5106','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4466','compound_crs','EPSG','6146','EPSG','3639','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89 / NTM zone 7 + NN54 height',NULL,'EPSG','5107','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89-NOR [EUREF89] / NTM zone 7 + NN54 height',NULL,'EPSG','5107','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4467','compound_crs','EPSG','6147','EPSG','3647','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89 / NTM zone 8 + NN54 height',NULL,'EPSG','5108','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89-NOR [EUREF89] / NTM zone 8 + NN54 height',NULL,'EPSG','5108','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4468','compound_crs','EPSG','6148','EPSG','3648','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89 / NTM zone 9 + NN54 height',NULL,'EPSG','5109','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89-NOR [EUREF89] / NTM zone 9 + NN54 height',NULL,'EPSG','5109','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4469','compound_crs','EPSG','6149','EPSG','3649','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89 / NTM zone 10 + NN54 height',NULL,'EPSG','5110','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89-NOR [EUREF89] / NTM zone 10 + NN54 height',NULL,'EPSG','5110','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4470','compound_crs','EPSG','6150','EPSG','3650','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89 / NTM zone 11 + NN54 height',NULL,'EPSG','5111','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89-NOR [EUREF89] / NTM zone 11 + NN54 height',NULL,'EPSG','5111','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4471','compound_crs','EPSG','6151','EPSG','3651','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89 / NTM zone 12 + NN54 height',NULL,'EPSG','5112','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89-NOR [EUREF89] / NTM zone 12 + NN54 height',NULL,'EPSG','5112','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4472','compound_crs','EPSG','6152','EPSG','3653','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89 / NTM zone 13 + NN54 height',NULL,'EPSG','5113','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89-NOR [EUREF89] / NTM zone 13 + NN54 height',NULL,'EPSG','5113','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4473','compound_crs','EPSG','6153','EPSG','3654','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89 / NTM zone 14 + NN54 height',NULL,'EPSG','5114','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89-NOR [EUREF89] / NTM zone 14 + NN54 height',NULL,'EPSG','5114','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4474','compound_crs','EPSG','6154','EPSG','3655','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89 / NTM zone 15 + NN54 height',NULL,'EPSG','5115','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89-NOR [EUREF89] / NTM zone 15 + NN54 height',NULL,'EPSG','5115','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4475','compound_crs','EPSG','6155','EPSG','3656','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89 / NTM zone 16 + NN54 height',NULL,'EPSG','5116','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89-NOR [EUREF89] / NTM zone 16 + NN54 height',NULL,'EPSG','5116','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4476','compound_crs','EPSG','6156','EPSG','3657','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89 / NTM zone 17 + NN54 height',NULL,'EPSG','5117','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89-NOR [EUREF89] / NTM zone 17 + NN54 height',NULL,'EPSG','5117','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4477','compound_crs','EPSG','6157','EPSG','3658','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89 / NTM zone 18 + NN54 height',NULL,'EPSG','5118','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89-NOR [EUREF89] / NTM zone 18 + NN54 height',NULL,'EPSG','5118','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4478','compound_crs','EPSG','6158','EPSG','3660','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89 / NTM zone 19 + NN54 height',NULL,'EPSG','5119','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89-NOR [EUREF89] / NTM zone 19 + NN54 height',NULL,'EPSG','5119','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4479','compound_crs','EPSG','6159','EPSG','3661','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89 / NTM zone 20 + NN54 height',NULL,'EPSG','5120','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89-NOR [EUREF89] / NTM zone 20 + NN54 height',NULL,'EPSG','5120','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4480','compound_crs','EPSG','6160','EPSG','3662','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89 / NTM zone 21 + NN54 height',NULL,'EPSG','5121','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89-NOR [EUREF89] / NTM zone 21 + NN54 height',NULL,'EPSG','5121','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4481','compound_crs','EPSG','6161','EPSG','3663','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89 / NTM zone 22 + NN54 height',NULL,'EPSG','5122','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89-NOR [EUREF89] / NTM zone 22 + NN54 height',NULL,'EPSG','5122','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4482','compound_crs','EPSG','6162','EPSG','3665','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89 / NTM zone 23 + NN54 height',NULL,'EPSG','5123','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89-NOR [EUREF89] / NTM zone 23 + NN54 height',NULL,'EPSG','5123','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4483','compound_crs','EPSG','6163','EPSG','3667','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89 / NTM zone 24 + NN54 height',NULL,'EPSG','5124','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89-NOR [EUREF89] / NTM zone 24 + NN54 height',NULL,'EPSG','5124','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4484','compound_crs','EPSG','6164','EPSG','3668','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89 / NTM zone 25 + NN54 height',NULL,'EPSG','5125','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89-NOR [EUREF89] / NTM zone 25 + NN54 height',NULL,'EPSG','5125','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4485','compound_crs','EPSG','6165','EPSG','3669','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89 / NTM zone 26 + NN54 height',NULL,'EPSG','5126','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89-NOR [EUREF89] / NTM zone 26 + NN54 height',NULL,'EPSG','5126','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4486','compound_crs','EPSG','6166','EPSG','3671','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89 / NTM zone 27 + NN54 height',NULL,'EPSG','5127','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89-NOR [EUREF89] / NTM zone 27 + NN54 height',NULL,'EPSG','5127','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4487','compound_crs','EPSG','6167','EPSG','3672','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89 / NTM zone 28 + NN54 height',NULL,'EPSG','5128','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89-NOR [EUREF89] / NTM zone 28 + NN54 height',NULL,'EPSG','5128','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4488','compound_crs','EPSG','6168','EPSG','3673','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89 / NTM zone 29 + NN54 height',NULL,'EPSG','5129','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89-NOR [EUREF89] / NTM zone 29 + NN54 height',NULL,'EPSG','5129','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4489','compound_crs','EPSG','6169','EPSG','3674','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89 / NTM zone 30 + NN54 height',NULL,'EPSG','5130','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89-NOR [EUREF89] / NTM zone 30 + NN54 height',NULL,'EPSG','5130','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4490','compound_crs','EPSG','6170','EPSG','3676','EPSG','1029');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6171','ETRS89 / UTM zone 31N + NN54 height',NULL,'EPSG','25831','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6171','ETRS89-NOR [EUREF89] / UTM zone 31N + NN54 height',NULL,'EPSG','11021','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4491','compound_crs','EPSG','6171','EPSG','3636','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6172','ETRS89 / UTM zone 32N + NN54 height',NULL,'EPSG','25832','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6172','ETRS89-NOR [EUREF89] / UTM zone 32N + NN54 height',NULL,'EPSG','11022','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4492','compound_crs','EPSG','6172','EPSG','4066','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6173','ETRS89 / UTM zone 33N + NN54 height',NULL,'EPSG','25833','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6173','ETRS89-NOR [EUREF89] / UTM zone 33N + NN54 height',NULL,'EPSG','11023','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4493','compound_crs','EPSG','6173','EPSG','4067','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6174','ETRS89 / UTM zone 34N + NN54 height',NULL,'EPSG','25834','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6174','ETRS89-NOR [EUREF89] / UTM zone 34N + NN54 height',NULL,'EPSG','11024','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4494','compound_crs','EPSG','6174','EPSG','4068','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6175','ETRS89 / UTM zone 35N + NN54 height',NULL,'EPSG','25835','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6175','ETRS89-NOR [EUREF89] / UTM zone 35N + NN54 height',NULL,'EPSG','11025','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4495','compound_crs','EPSG','6175','EPSG','4069','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6176','ETRS89 / UTM zone 36N + NN54 height',NULL,'EPSG','25836','EPSG','5776',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6176','ETRS89-NOR [EUREF89] / UTM zone 36N + NN54 height',NULL,'EPSG','11026','EPSG','5776',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4496','compound_crs','EPSG','6176','EPSG','3676','EPSG','1153');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','6190','BD72 / Belgian Lambert 72 + Ostend height',NULL,'EPSG','31370','EPSG','5710',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4507','compound_crs','EPSG','6190','EPSG','1347','EPSG','1142');
|
||||
@@ -552,7 +552,7 @@ INSERT INTO "compound_crs" VALUES('EPSG','8814','NAD83 / Missouri Central + NAVD
|
||||
INSERT INTO "usage" VALUES('EPSG','5993','compound_crs','EPSG','8814','EPSG','2218','EPSG','1142');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','8815','NAD83 / Missouri West + NAVD88 height',NULL,'EPSG','26998','EPSG','5703',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','5994','compound_crs','EPSG','8815','EPSG','2220','EPSG','1142');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','8912','CR-SIRGAS / CRTM05 + DACR52 height',NULL,'EPSG','8908','EPSG','8911',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','8912','CR-SIRGAS epoch 2014.59 / CRTM05 + DACR52 height',NULL,'EPSG','8908','EPSG','8911',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6028','compound_crs','EPSG','8912','EPSG','3232','EPSG','1142');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','9286','ETRS89 + NAP height',NULL,'EPSG','4258','EPSG','5709',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14121','compound_crs','EPSG','9286','EPSG','1172','EPSG','1026');
|
||||
@@ -722,7 +722,7 @@ INSERT INTO "compound_crs" VALUES('EPSG','9870','MRH21 Grid + ODN height',NULL,'
|
||||
INSERT INTO "usage" VALUES('EPSG','16942','compound_crs','EPSG','9870','EPSG','4652','EPSG','1141');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','9881','MOLDOR11 Grid + ODN height',NULL,'EPSG','9880','EPSG','5701',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16985','compound_crs','EPSG','9881','EPSG','4655','EPSG','1141');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','9883','ETRS89 + CD Norway depth',NULL,'EPSG','4258','EPSG','9672',0);
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','9883','ETRS89-NOR [EUREF89] + CD Norway depth',NULL,'EPSG','10875','EPSG','9672',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16974','compound_crs','EPSG','9883','EPSG','4656','EPSG','1198');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','9897','LUREF / Luxembourg TM + NG95 height',NULL,'EPSG','2169','EPSG','5774',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','17304','compound_crs','EPSG','9897','EPSG','1146','EPSG','1029');
|
||||
@@ -930,6 +930,8 @@ INSERT INTO "compound_crs" VALUES('EPSG','10920','CSRN2025 (NAD83 2011) + COH88
|
||||
INSERT INTO "usage" VALUES('EPSG','23574','compound_crs','EPSG','10920','EPSG','1375','EPSG','1270');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','11000','ETRS89-NOR [EUREF89] + SVD2024 height',NULL,'EPSG','10875','EPSG','10999',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24134','compound_crs','EPSG','11000','EPSG','4831','EPSG','1270');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','11158','RGM23 + IGN 2023 Mayotte height',NULL,'EPSG','10671','EPSG','11157',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24603','compound_crs','EPSG','11158','EPSG','3340','EPSG','1270');
|
||||
INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89-NOR [EUREF89] + SVD2006 height',NULL,'EPSG','10875','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);
|
||||
|
||||
@@ -3797,4 +3797,12 @@ INSERT INTO "extent" VALUES('EPSG','4818','Kazakhstan - 72°E to 78°E','Kazakhs
|
||||
INSERT INTO "extent" VALUES('EPSG','4819','Kazakhstan - 78°E to 84°E','Kazakhstan - 78°E to 84°E.',42.19,53.18,78.0,84.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4820','Kazakhstan - east of 84°E','Kazakhstan - east of 84°E.',46.82,50.7,84.0,87.35,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4821','USA - Gulf central planning area deep water','United States (USA) - central Gulf of Mexico outer continental shelf (GoM OCS) planning area, deep water portion.',25.58,29.35,-93.38,-86.53,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4823','Norway - west of 0°E','Norway including Svalbard - west of 0°E.',63.47,80.49,-3.35,0.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4824','Norway - 0°E to 6°E','Norway including Svalbard between 0°E and 6°E, onshore and offshore.',56.08,82.45,0.0,6.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4825','Norway - 6°E to 12°E','Norway including Svalbard south of 84°N between 6°E and 12°E, onshore and offshore.',56.88,84.0,5.99,12.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4826','Norway - 12°E to 18°E','Norway including Svalbard south of 84°N between 12°E and 18°E, onshore and offshore.',59.88,84.0,12.0,18.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4827','Norway - 18°E to 24°E','Norway including Svalbard south of 84°N between 18°E and 24°E, onshore and offshore.',68.04,84.0,18.0,24.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4828','Norway - 24°E to 30°E','Norway including Svalbard south of 84°N between 24°E and 30°E, onshore and offshore.',68.58,84.0,23.99,30.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4829','Norway - 30°E to 36°E','Norway including Svalbard south of 84°N between 30°E and 36°E, onshore and offshore.',69.46,84.0,30.0,36.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4830','Norway - east of 36°E','Norway including Svalbard - east of 36°E.',72.99,79.07,36.0,38.0,0);
|
||||
INSERT INTO "extent" VALUES('EPSG','4831','Svalbard','Svalbard including Bear Island.',74.3208,81.8504,6.49005,33.50985,0);
|
||||
|
||||
@@ -1812,11 +1812,11 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','8901','RGWF96 (lon-lat)',NULL,'geograp
|
||||
INSERT INTO "usage" VALUES('EPSG','6017','geodetic_crs','EPSG','8901','EPSG','1255','EPSG','1189');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8902','RGWF96 (lon-lat)',NULL,'geographic 2D','EPSG','6424','EPSG','1223',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6018','geodetic_crs','EPSG','8902','EPSG','1255','EPSG','1189');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8905','CR-SIRGAS',NULL,'geocentric','EPSG','6500','EPSG','1225',NULL,0);
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8905','CR-SIRGAS epoch 2014.59',NULL,'geocentric','EPSG','6500','EPSG','1225',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6021','geodetic_crs','EPSG','8905','EPSG','1074','EPSG','1027');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8906','CR-SIRGAS',NULL,'geographic 3D','EPSG','6423','EPSG','1225',NULL,0);
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8906','CR-SIRGAS epoch 2014.59',NULL,'geographic 3D','EPSG','6423','EPSG','1225',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6022','geodetic_crs','EPSG','8906','EPSG','1074','EPSG','1027');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8907','CR-SIRGAS',NULL,'geographic 2D','EPSG','6422','EPSG','1225',NULL,0);
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8907','CR-SIRGAS epoch 2014.59',NULL,'geographic 2D','EPSG','6422','EPSG','1225',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6023','geodetic_crs','EPSG','8907','EPSG','1074','EPSG','1183');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','8915','SIRGAS-CON DGF00P01',NULL,'geocentric','EPSG','6500','EPSG','1227',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6029','geodetic_crs','EPSG','8915','EPSG','4530','EPSG','1027');
|
||||
@@ -2442,6 +2442,12 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','10967','NATRF2022',NULL,'geographic 3D
|
||||
INSERT INTO "usage" VALUES('EPSG','23624','geodetic_crs','EPSG','10967','EPSG','4803','EPSG','1027');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','10968','NATRF2022',NULL,'geographic 2D','EPSG','6422','EPSG','1422',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23625','geodetic_crs','EPSG','10968','EPSG','4803','EPSG','1183');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','11041','CR-SIRGAS epoch 2019.24',NULL,'geocentric','EPSG','6500','EPSG','1428',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24176','geodetic_crs','EPSG','11041','EPSG','1074','EPSG','1027');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','11042','CR-SIRGAS epoch 2019.24',NULL,'geographic 3D','EPSG','6423','EPSG','1428',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24178','geodetic_crs','EPSG','11042','EPSG','1074','EPSG','1027');
|
||||
INSERT INTO "geodetic_crs" VALUES('EPSG','11043','CR-SIRGAS epoch 2019.24',NULL,'geographic 2D','EPSG','6422','EPSG','1428',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24179','geodetic_crs','EPSG','11043','EPSG','1074','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);
|
||||
|
||||
@@ -240,7 +240,7 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1221','North American Datum of 1983
|
||||
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,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,NULL,0);
|
||||
INSERT INTO "geodetic_datum" VALUES('EPSG','1225','CR-SIRGAS epoch 2014.59',NULL,'EPSG','7019','EPSG','8901','2018-04-17',NULL,NULL,NULL,2014.59,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,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','13279','geodetic_datum','EPSG','1227','EPSG','4530','EPSG','1027');
|
||||
@@ -484,6 +484,8 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1420','Greenland Reference 1996 (199
|
||||
INSERT INTO "usage" VALUES('EPSG','23616','geodetic_datum','EPSG','1420','EPSG','1107','EPSG','1027');
|
||||
INSERT INTO "geodetic_datum" VALUES('EPSG','1422','North American Terrestrial Reference Frame of 2022',NULL,'EPSG','7019','EPSG','8901','2025-06-16',NULL,NULL,NULL,2020.0,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23622','geodetic_datum','EPSG','1422','EPSG','4803','EPSG','1027');
|
||||
INSERT INTO "geodetic_datum" VALUES('EPSG','1428','CR-SIRGAS epoch 2019.24',NULL,'EPSG','7019','EPSG','8901','2020-09-04',NULL,NULL,NULL,2019.24,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24187','geodetic_datum','EPSG','1428','EPSG','1074','EPSG','1027');
|
||||
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,NULL,1);
|
||||
|
||||
@@ -104,6 +104,7 @@ VALUES
|
||||
|
||||
-- cz_cuzk - ČÚZK
|
||||
('CR2005_GTX.gtx','cz_cuzk_CR-2005.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/cz_cuzk_CR-2005.tif',1,1,NULL),
|
||||
('cz_cuzk_table_-y-x_3_v1710.tif','cz_cuzk_table_-y-x_3_v1710.tif',NULL,'GTiff','gridshift',0,NULL,'https://cdn.proj.org/cz_cuzk_table_-y-x_3_v1710.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),
|
||||
@@ -223,6 +224,7 @@ VALUES
|
||||
('ggg00.txt','fr_ign_ggg00v2.tif','ggg00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00v2.tif',1,1,NULL),
|
||||
('ggguy00.txt','fr_ign_ggguy15.tif','ggguy15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggguy15.tif',1,1,NULL),
|
||||
('ggm00.txt','fr_ign_ggm00v2.tif','ggm00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggm00v2.tif',1,1,NULL),
|
||||
('GGM23V2.tac','fr_ign_ggm23v2.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggm23v2.tif',1,1,NULL),
|
||||
('GGSPM06v1.mnt','fr_ign_ggspm06v1.tif','ggspm06v1.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggspm06v1.tif',1,1,NULL),
|
||||
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_CGVD2013RGSPM06.tif','fr_ign_CGVD2013RGSPM06.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_CGVD2013RGSPM06.tif',1,1,NULL),
|
||||
('NOT-YET-IN-GRID-TRANSFORMATION-fr_ign_ggpf02-Maiao.tif','fr_ign_ggpf02-Maiao.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggpf02-Maiao.tif',1,1,NULL),
|
||||
|
||||
@@ -891,9 +891,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9467','GDA94 to GDA94 + AHD hei
|
||||
INSERT INTO "usage" VALUES('EPSG','14147','grid_transformation','EPSG','9467','EPSG','2575','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9483','Canada velocity grid v7','File initially published with name cvg70.cvb, later renamed to NAD83v70VG.gvb with no change of content. Replaces Canada velocity grid v6 (code 8676). Replaced by Canada velocity grid v8 (code 10707). Although the interpolation CRS is given as NAD83(CSRS)v7 (also known as NAD83(CSRS) 2010), any version of NAD83(CSRS) may be used for grid interpolation without significant error.','EPSG','1141','Point motion (geog3D domain) using NEU velocity grid (NTv2_Vel)','EPSG','8254','EPSG','8254',0.01,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','8255','NRC-Can cvg7.0',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14214','grid_transformation','EPSG','9483','EPSG','4754','EPSG','1131');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9484','ETRS89 to NN54 height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + NN54 height (1) (code 9594).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5776',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2008',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9484','ETRS89-NOR [EUREF89] to NN54 height (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN54 height (1) (code 9594).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5776',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2008',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14374','grid_transformation','EPSG','9484','EPSG','1352','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9485','ETRS89 to NN2000 height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + NN2000 height (1) (code 9593).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5941',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2018',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9485','ETRS89-NOR [EUREF89] to NN2000 height (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN2000 height (1) (code 9593).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5941',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2018',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14376','grid_transformation','EPSG','9485','EPSG','1352','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9496','MGI 1901 to SRB-ETRS89 (9)','','EPSG','9615','NTv2','EPSG','3906','EPSG','8685',0.03,'EPSG','8656','Latitude and longitude difference file','MGI1901_TO_SRBETRS89_NTv2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'RGZ-Srb 0.1m 2020',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14226','grid_transformation','EPSG','9496','EPSG','4543','EPSG','1185');
|
||||
@@ -977,9 +977,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9591','ETRS89 to ETRS89 + Malin
|
||||
INSERT INTO "usage" VALUES('EPSG','15081','grid_transformation','EPSG','9591','EPSG','1305','EPSG','1270');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9592','ETRS89 to ETRS89 + Belfast height (2)','Reversible alternative to ETRS89 to Belfast height (2) (code 7958).','EPSG','1096','Geog3D to Geog2D+GravityRelatedHeight (OSGM15-Ire)','EPSG','4937','EPSG','9450',0.014,'EPSG','8666','Geoid (height correction) model file','OSGM15_Belfast.gri',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','OS-UK NI 2015',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14504','grid_transformation','EPSG','9592','EPSG','2530','EPSG','1270');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9593','ETRS89 to ETRS89 + NN2000 height (1)','Reversible alternative to ETRS89 to NN2000 height (1) (code 9485).','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5942',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2018',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9593','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN2000 height (1)','Reversible alternative to ETRS89-NOR [EUREF89] to NN2000 height (1) (code 9485). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5942',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2018',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14465','grid_transformation','EPSG','9593','EPSG','1352','EPSG','1270');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9594','ETRS89 to ETRS89 + NN54 height (1)','Reversible alternative to ETRS89 to NN54 height (1) (code 9484).','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','6144',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2008',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9594','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN54 height (1)','Reversible alternative to ETRS89-NOR [EUREF89] to NN54 height (1) (code 9484). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','6144',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2008',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14464','grid_transformation','EPSG','9594','EPSG','1352','EPSG','1270');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9595','NAD83(2011) to NAD83(2011) + NAVD88 height (3)','Reversible alternative to NAD83(2011) to NAVD88 height (3) (code 9229). Uses Geoid18 hybrid model. Replaces 12B model. See information source for further information.','EPSG','1135','Geog3D to Geog2D+GravityRelatedHeight (NGS bin)','EPSG','6319','EPSG','6349',0.015,'EPSG','8666','Geoid (height correction) model file','g2018u0.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','6318','NGS-US Conus 18',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','14853','grid_transformation','EPSG','9595','EPSG','1323','EPSG','1270');
|
||||
@@ -1183,9 +1183,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,NULL,NULL,NULL,NULL,NULL,NULL,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). 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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9884','ETRS89-NOR [EUREF89] to CD Norway depth (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1) (code 9885). Replaced by ETRS89-NOR [EUREF89] to CD Norway depth (2) (model "CD Norway 2021b", code 10130).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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). 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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','9885','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (1) (code 9884). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (model "CD Norway 2021b", code 10133). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','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,NULL,NULL,NULL,NULL,NULL,NULL,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');
|
||||
@@ -1483,9 +1483,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021b',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10130','ETRS89-NOR [EUREF89] 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-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (code 10133).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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 (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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021b',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10133','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (2) (code 10130). Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1) (code 9885). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3) (code 10505). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','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,NULL,NULL,NULL,NULL,NULL,NULL,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');
|
||||
@@ -1611,17 +1611,17 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10493','ETRS89 to DVR90(2023) h
|
||||
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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023a',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10504','ETRS89-NOR [EUREF89] 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','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023a',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10505','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (3) (CT code 10504). Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (model 2021b, CT code 10133). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (4) (model 2023b, CT code 10510). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','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,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023b',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10509','ETRS89-NOR [EUREF89] to CD Norway depth (4)','Replaces ETRS89-NOR [EUREF89] 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-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (code 10510).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023b',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10510','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (4)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (4) (code 10509). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3) (code 10133). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','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)','Equal to HT2_1997 hybrid geoid model minus CGG2013a geoid model (CT 9983 minus CT 10111). Specified interpolation CRS is NAD83(CSRS)v3, but NAD83(CSRS)v2 or any later realization may be used without error. See also CT 10617 from CGVD28(v2.0) height.','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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,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');
|
||||
@@ -1826,7 +1826,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10841','RGAF09 to IGN 1988 SM h
|
||||
INSERT INTO "usage" VALUES('EPSG','23621','grid_transformation','EPSG','10841','EPSG','2890','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10850','ETRS89 to EWR3-IRF (1)','In conjunction with the EWR3-TM map projection (code 9765) applied to EWR3-IRF (code 10849), emulates the EWR3 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009 CORS) defines EWR3-IRF hence is errorless. In 2024 the EWR2 Grid (ETRS89 / EWR2 SnakeGrid) was extended eastwards as the EWR3 Grid (ETRS89 / EWR3 SnakeGrid). To the west of Bedford the EWR2 Grid is an exact subset of the EWR3 Grid; over this extent the EWR3 Grid replaces the EWR2 Grid. The EWR2 emulation file TN15-ETRS89-to-EWR2-IRF.gsb (CT code 9764) is a subset of this EWR3 emulation file TN15-ETRS89-to-EWR3-IRF.gsb; west of Bedford the content of the two files is identical.','EPSG','9615','NTv2','EPSG','4258','EPSG','10849',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-EWR3-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr EWR3 OSNet2009',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','22765','grid_transformation','EPSG','10850','EPSG','4799','EPSG','1141');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10854','ETRS89 to NGO 1948 (2)','','EPSG','1145','Geographic2D Offsets by TIN Interpolation (JSON)','EPSG','4258','EPSG','4273',0.1,'EPSG','1064','TIN offset file','no_kv_ETRS89NO_NGO48_TIN.json',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor',0);
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10854','ETRS89-NOR [EUREF89] to NGO 1948 (2)','','EPSG','1145','Geographic2D Offsets by TIN Interpolation (JSON)','EPSG','10875','EPSG','4273',0.1,'EPSG','1064','TIN offset file','no_kv_ETRS89NO_NGO48_TIN.json',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','22776','grid_transformation','EPSG','10854','EPSG','1352','EPSG','1031');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','10855','ETRS89/DREF91/2016 to GNTRANS2016 height (1)','Defines GNTRANS2016 height. The same geoid model is used to derive approximate DHHN2016 heights.','EPSG','1082','Geographic3D to GravityRelatedHeight (txt)','EPSG','10283','EPSG','9927',0.02,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'DB-Deu 2016',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','22778','grid_transformation','EPSG','10855','EPSG','3339','EPSG','1133');
|
||||
@@ -1860,6 +1860,12 @@ INSERT INTO "grid_transformation" VALUES('EPSG','11003','ETRS89-NOR [EUREF89] to
|
||||
INSERT INTO "usage" VALUES('EPSG','24138','grid_transformation','EPSG','11003','EPSG','4831','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','11004','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + SVD2024 height (1)','Reversible alternative to ETRS89-NOR [EUREF89] to SVD2024 height (1) (code 11003). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','11000',1.0,'EPSG','8666','Geoid (height correction) model file','Href_Svalbard_EUREF89_EGG2015_2024.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','NMA-Sjm SV 2024',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24140','grid_transformation','EPSG','11004','EPSG','4831','EPSG','1270');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','11156','NN54 height to NN2000 height (1)','','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','5776','EPSG','5941',0.03,'EPSG','8732','Vertical offset file','NNTrans2018B.gtx',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2018',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24564','grid_transformation','EPSG','11156','EPSG','1352','EPSG','1059');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','11159','RGM23 to IGN 2023 Mayotte height (1)','For reversible alternative to this transformation see RGM23 to RGM23 + IGN 2023 Mayotte height (1) (code 11160).','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','10670','EPSG','11157',0.1,'EPSG','8666','Geoid (height correction) model file','GGM23V2.tac',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Myt 2023',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24616','grid_transformation','EPSG','11159','EPSG','3340','EPSG','1133');
|
||||
INSERT INTO "grid_transformation" VALUES('EPSG','11160','RGM23 to RGM23 + IGN 2023 Mayotte height (1)','Reversible alternative to RGM23 to IGN 2023 Mayotte height (1) (code 11159).','EPSG','1095','Geog3D to Geog2D+GravityRelatedHeight (IGN2009)','EPSG','10670','EPSG','11158',0.1,'EPSG','8666','Geoid (height correction) model file','GGM23V2.tac',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10671','IGN-Myt 2023',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24621','grid_transformation','EPSG','11160','EPSG','3340','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,NULL,NULL,NULL,NULL,NULL,NULL,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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1);
|
||||
|
||||
@@ -823,7 +823,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1651','NTF to ETRS89 (1)','T
|
||||
INSERT INTO "usage" VALUES('EPSG','8572','helmert_transformation','EPSG','1651','EPSG','3694','EPSG','1042');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','1652','BD72 to ETRS89 (1)','May be taken as approximate transformation BD72 to WGS 84 - see code 1609.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4313','EPSG','4258',1.0,-99.1,53.3,-112.5,'EPSG','9001',0.419,-0.83,1.885,'EPSG','9104',-1.0,'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);
|
||||
INSERT INTO "usage" VALUES('EPSG','8573','helmert_transformation','EPSG','1652','EPSG','1347','EPSG','1041');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','1653','NGO 1948 to ETRS89 (1)','May be taken as approximate transformation NGO 1948 to WGS 84 - see code 1654.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','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,'SKV-Nor',0);
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','1653','NGO 1948 to ETRS89-NOR [EUREF89] (1)','May be taken as approximate transformation NGO 1948 to WGS 84 - see code 1654.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','EPSG','10875',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,'SKV-Nor',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','8574','helmert_transformation','EPSG','1653','EPSG','1352','EPSG','1043');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','1654','NGO 1948 to WGS 84 (1)','Parameter values from NGO 1948 to ETRS89 (1) (code 1653). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','EPSG','4326',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,'EPSG-Nor',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','8575','helmert_transformation','EPSG','1654','EPSG','1352','EPSG','1252');
|
||||
@@ -2469,9 +2469,9 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9703','ETRF2000-PL to ETRS89
|
||||
INSERT INTO "usage" VALUES('EPSG','15011','helmert_transformation','EPSG','9703','EPSG','1192','EPSG','1161');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9743','PN68 to WGS 84 (1)','Determined at 1 satellite station. Accuracy +/- 25m in each axis. Unclear from information source whether the source CRS is PN68 or PN84 - see also CT code 15815. Given the accuracy, can be considered to apply to either.','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,'DMA-Esp Canary',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15321','helmert_transformation','EPSG','9743','EPSG','3873','EPSG','1160');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9751','CR05 to CR-SIRGAS (1)','Derived at 16 stations. Transformation is valid at epoch 2014.59 but accuracy will deteriorate due to tectonic deformation. May be taken as an approximate transformation to ITRF08 / IGb08 / WGS 84 - see code 9752.','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,'IGN-Cri 2014',0);
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9751','CR05 to CR-SIRGAS epoch 2014.59 (1)','Derived at 16 stations. Transformation is valid at epoch 2014.59 but accuracy will deteriorate due to tectonic deformation. Note that the rotation convention (coordinate frame) differs from that used in the transformation from CR-SIRGAS epoch 2019.24 to CR-SIRGAS epoch 2014.59 (code 11044). May be taken as an approximate transformation to ITRF08 / IGb08 / WGS 84 - see code 9752.','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,'IGN-Cri 2014',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15596','helmert_transformation','EPSG','9751','EPSG','1074','EPSG','1035');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9752','CR05 to WGS 84 (2)','Parameter values are from CR05 to CR-SIRGAS (1) (code 9751) assuming that CR-SIRGAS (ITRF08 (IGb08)@2014.59) is equivalent to WGS 84 within the accuracy of the transformation.','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,'IGN-Cri 2014',0);
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9752','CR05 to WGS 84 (2)','Parameter values are from CR05 to CR-SIRGAS epoch 2014.59 (1) (code 9751) assuming that CR-SIRGAS (ITRF08 (IGb08)@2014.59) is equivalent to WGS 84 within the accuracy of the transformation.','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,'IGN-Cri 2014',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','15832','helmert_transformation','EPSG','9752','EPSG','1074','EPSG','1252');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','9756','WGS 84 (G1762) to WGS 84 (G2139) (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7664','EPSG','9753',0.01,0.0058,-0.0064,0.007,'EPSG','9001',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,'NGA-Wld 2021.0',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','16692','helmert_transformation','EPSG','9756','EPSG','1262','EPSG','1027');
|
||||
@@ -2751,10 +2751,18 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10848','ITRF2014 to LibRef21
|
||||
INSERT INTO "usage" VALUES('EPSG','22773','helmert_transformation','EPSG','10848','EPSG','1142','EPSG','1027');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10853','ITRF2020 to PNG94 (1)','Transformation derived by inversion of seven site velocities within the transformation coverage area. Transformation accuracy at 2σ is 0.15 m between 1994.0 and 2035.0 for locations within Papuan Foreland. Transformation precision degrades in plate margin deforming zone (PFTB) near plate boundary with NGH and Woodlark plates. Transformation not valid outside stated extent.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','9988','EPSG','5544',0.15,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',1.3242,1.2788,1.1675,'EPSG','1032',0.0,'EPSG','1030',1994.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'OSG-Png',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','22777','helmert_transformation','EPSG','10853','EPSG','4800','EPSG','1027');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10888','ETRF2014 to ETRF2000 (1)','Derived from concatenation of ETRF2014 to ITRF2014 (CT code 8880, with direction reversed) reduced to epoch 2000.00 and ITRF2014 to ETRF2000 (CT code 8405) reduced to epoch 2000.00. 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','8401','EPSG','7930',0.01,53.7,51.2,-55.1,'EPSG','1025',-0.044,-0.451,-0.242,'EPSG','1031',1.02,'EPSG','1028',0.1,0.1,-1.9,'EPSG','1027',-0.004,-0.041,-0.022,'EPSG','1032',0.11,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IOGP-Eur 2000',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24547','helmert_transformation','EPSG','10888','EPSG','1298','EPSG','1296');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10889','ETRF97 to ETRF2000 (1)','Derived from concatenation of ETRF97 to ITRF97 (CT code 7939, with direction reversed) reduced to epoch 2000.00 and ITRF97 to ETRF2000 (CT code 7949) reduced to epoch 2000.00. 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','7928','EPSG','7930',0.01,6.3,5.7,23.7,'EPSG','1025',-1.309,-0.11,-16.622,'EPSG','1031',-1.58,'EPSG','1028',0.0,0.6,1.4,'EPSG','1027',-0.119,-0.01,-0.162,'EPSG','1032',-0.01,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IOGP-Eur 2000',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24548','helmert_transformation','EPSG','10889','EPSG','1298','EPSG','1296');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10905','ETRS89/DREF91/2016 to Asse 2025 + Asse 2025 height (1)','3-dimensional transformation defining the horizontal and vertical CRSs for the Asse mining area.','EPSG','1149','Coordinate Frame rotation (geog3D to compound)','EPSG','10283','EPSG','10904',0.04,-646.6552,-165.0859,-437.6858,'EPSG','9001',4.77773,-0.39139,-1.07485,'EPSG','9104',2.0025,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BGE-Deu Asse',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23490','helmert_transformation','EPSG','10905','EPSG','4805','EPSG','1144');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10907','ETRF96 to ETRF2000 (1)','Derived from concatenation of ETRF96 to ITRF96 (CT code 7938, with direction reversed) reduced to epoch 2000.00 and ITRF96 to ETRF2000 (CT code 7948) reduced to epoch 2000.00. 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','7926','EPSG','7930',0.01,6.3,5.7,23.7,'EPSG','1025',-1.309,-0.11,-1.622,'EPSG','1031',-1.58,'EPSG','1028',0.0,0.6,1.4,'EPSG','1027',-0.119,-0.01,-0.162,'EPSG','1032',-0.01,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'EUREF-Eur 2000',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24502','helmert_transformation','EPSG','10907','EPSG','1298','EPSG','1296');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10930','CSRN2025.0 (NAD83 2011) to WGS 84 (1)','For many purposes CSRN2025.0 (NAD83 2011) can be considered to be coincident with WGS 84. This approximation ignores the ~2.2m offset of CSRN2025.0 (NAD83 2011) from the geocentre, the low accuracy of the WGS 84 ensemble and the application of tectonic plate motion to WGS 84 data.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10910','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,'EPSG-Usa CA',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23227','helmert_transformation','EPSG','10930','EPSG','1375','EPSG','1252');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10935','ETRF93 to ETRF2000 (1)','Derived from concatenation of ETRF93 to ITRF93 (CT code 7936, with direction reversed) reduced to epoch 2000.00 and ITRF93 to ETRF2000 (CT code 7946) reduced to epoch 2000.00. 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','7922','EPSG','7930',0.01,57.1,-6.1,1.1,'EPSG','1025',-0.919,-1.71,-1.042,'EPSG','1031',-2.07,'EPSG','1028',2.9,0.2,0.6,'EPSG','1027',-0.129,-0.1,-0.192,'EPSG','1032',-0.01,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'EUREF-Eur 2000',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24549','helmert_transformation','EPSG','10935','EPSG','1298','EPSG','1296');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10953','CSRN2025 (ITRF2020) to CSRN2025 (NAD83 2011) (1)','Parameter values derived from time-dependent transformation ITRF2020 to NAD83(2011) (CT code 10334) reduced to the CSRN2025 (ITRF2020) and CSRN2025 (NAD83 2011) common anchor epoch 2025.00. Defines CSRN2025 (NAD83 2011).','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','10950','EPSG','10908',0.0,1015.75,-1920.11,-559.77,'EPSG','1025',27.78143,-11.78187,10.16211,'EPSG','1031',-1.13124,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SOPAC-Usa CA',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23567','helmert_transformation','EPSG','10953','EPSG','1375','EPSG','1027');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10960','ITRF2020 to GR96(2021) (1)','Derived from the IGS20 coordinates at epoch 2021.6164 of 7 stations including the four passive stations used to define GR96(1996). Validated at 26 other stations.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','9988','EPSG','10957',0.1,-0.30031,-1.17512,-0.30654,'EPSG','9001',0.041614,-0.026303,-0.011214,'EPSG','9104',-0.01626,'EPSG','9202',0.0,0.0,0.0,'EPSG','1042',4.5e-05,-0.000666,-9.8e-05,'EPSG','1043',0.0,'EPSG','1041',2021.6164,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'KDS-Grl',0);
|
||||
@@ -2769,6 +2777,12 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10965','QazTRF-23 to WGS 84
|
||||
INSERT INTO "usage" VALUES('EPSG','23452','helmert_transformation','EPSG','10965','EPSG','1131','EPSG','1252');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10969','NATRF2022 to WGS 84 (1)','For many purposes NATRF2022 can be considered to be coincident with WGS 84. This approximation ignores the low accuracy of the WGS 84 ensemble and the application of tectonic plate motion to WGS 84 data.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10968','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-N Am',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23509','helmert_transformation','EPSG','10969','EPSG','4803','EPSG','1252');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','10988','ETRF89 to ETRF2000 (1)','Derived from concatenation of ETRF89 to ITRF89 (CT code 7932, with direction reversed) reduced to epoch 2000.00 and ITRF89 to ETRF2000 (CT code 7942) reduced to epoch 2000.00. 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','7914','EPSG','7930',0.01,24.3,10.7,42.7,'EPSG','1025',-0.319,-0.88,-0.962,'EPSG','1031',-5.97,'EPSG','1028',0.0,0.6,1.4,'EPSG','1027',-0.029,-0.08,-0.102,'EPSG','1032',-0.01,'EPSG','1030',2000.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IOGP-Eur 2000',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24505','helmert_transformation','EPSG','10988','EPSG','1298','EPSG','1296');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','11028','ETRS89-NOR [EUREF89] to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10875','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-Nor',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24398','helmert_transformation','EPSG','11028','EPSG','1182','EPSG','1252');
|
||||
INSERT INTO "helmert_transformation" VALUES('EPSG','11044','CR-SIRGAS epoch 2019.24 to CR-SIRGAS epoch 2014.59 (1)','Derived at 45 stations. Note that rotation convention (position vector) differs from that used in the transformation from CR05 to CR-SIRGAS epoch 2014.59 (code 9751).','EPSG','1061','Molodensky-Badekas (PV geocentric domain)','EPSG','11041','EPSG','8905',0.04,-0.0533,0.0136,-0.0707,'EPSG','9001',0.0122,-0.0284,-0.0037,'EPSG','9104',0.0209,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,629134.9009,-6249130.4704,1101655.6817,'EPSG','9001','IGN-Cri 2020',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24186','helmert_transformation','EPSG','11044','EPSG','1074','EPSG','1035');
|
||||
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);
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1);
|
||||
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 6);
|
||||
|
||||
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v12.022');
|
||||
INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-08-30');
|
||||
INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v12.029');
|
||||
INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-10-03');
|
||||
|
||||
-- The value of ${PROJ_VERSION} is substituted at build time by the actual
|
||||
-- value.
|
||||
@@ -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.23');
|
||||
INSERT INTO "metadata" VALUES('PROJ_DATA.VERSION', '1.24');
|
||||
|
||||
+61
-29
@@ -4273,57 +4273,57 @@ INSERT INTO "projected_crs" VALUES('EPSG','5071','NAD83(HARN) / Conus Albers',NU
|
||||
INSERT INTO "usage" VALUES('EPSG','3813','projected_crs','EPSG','5071','EPSG','1323','EPSG','1109');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5072','NAD83(NSRS2007) / Conus Albers',NULL,'EPSG','4499','EPSG','4759','EPSG','5068',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3814','projected_crs','EPSG','5072','EPSG','1323','EPSG','1109');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5105','ETRS89 / NTM zone 5',NULL,'EPSG','4500','EPSG','4258','EPSG','5135',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5105','ETRS89-NOR [EUREF89] / NTM zone 5',NULL,'EPSG','4500','EPSG','10875','EPSG','5135',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3815','projected_crs','EPSG','5105','EPSG','3636','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5106','ETRS89 / NTM zone 6',NULL,'EPSG','4500','EPSG','4258','EPSG','5136',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5106','ETRS89-NOR [EUREF89] / NTM zone 6',NULL,'EPSG','4500','EPSG','10875','EPSG','5136',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3816','projected_crs','EPSG','5106','EPSG','3639','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5107','ETRS89 / NTM zone 7',NULL,'EPSG','4500','EPSG','4258','EPSG','5137',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5107','ETRS89-NOR [EUREF89] / NTM zone 7',NULL,'EPSG','4500','EPSG','10875','EPSG','5137',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3817','projected_crs','EPSG','5107','EPSG','3647','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5108','ETRS89 / NTM zone 8',NULL,'EPSG','4500','EPSG','4258','EPSG','5138',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5108','ETRS89-NOR [EUREF89] / NTM zone 8',NULL,'EPSG','4500','EPSG','10875','EPSG','5138',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3818','projected_crs','EPSG','5108','EPSG','3648','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5109','ETRS89 / NTM zone 9',NULL,'EPSG','4500','EPSG','4258','EPSG','5139',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5109','ETRS89-NOR [EUREF89] / NTM zone 9',NULL,'EPSG','4500','EPSG','10875','EPSG','5139',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3819','projected_crs','EPSG','5109','EPSG','3649','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5110','ETRS89 / NTM zone 10',NULL,'EPSG','4500','EPSG','4258','EPSG','5140',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5110','ETRS89-NOR [EUREF89] / NTM zone 10',NULL,'EPSG','4500','EPSG','10875','EPSG','5140',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3820','projected_crs','EPSG','5110','EPSG','3650','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5111','ETRS89 / NTM zone 11',NULL,'EPSG','4500','EPSG','4258','EPSG','5141',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5111','ETRS89-NOR [EUREF89] / NTM zone 11',NULL,'EPSG','4500','EPSG','10875','EPSG','5141',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3821','projected_crs','EPSG','5111','EPSG','3651','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5112','ETRS89 / NTM zone 12',NULL,'EPSG','4500','EPSG','4258','EPSG','5142',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5112','ETRS89-NOR [EUREF89] / NTM zone 12',NULL,'EPSG','4500','EPSG','10875','EPSG','5142',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3822','projected_crs','EPSG','5112','EPSG','3653','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5113','ETRS89 / NTM zone 13',NULL,'EPSG','4500','EPSG','4258','EPSG','5143',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5113','ETRS89-NOR [EUREF89] / NTM zone 13',NULL,'EPSG','4500','EPSG','10875','EPSG','5143',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3823','projected_crs','EPSG','5113','EPSG','3654','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5114','ETRS89 / NTM zone 14',NULL,'EPSG','4500','EPSG','4258','EPSG','5144',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5114','ETRS89-NOR [EUREF89] / NTM zone 14',NULL,'EPSG','4500','EPSG','10875','EPSG','5144',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3824','projected_crs','EPSG','5114','EPSG','3655','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5115','ETRS89 / NTM zone 15',NULL,'EPSG','4500','EPSG','4258','EPSG','5145',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5115','ETRS89-NOR [EUREF89] / NTM zone 15',NULL,'EPSG','4500','EPSG','10875','EPSG','5145',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3825','projected_crs','EPSG','5115','EPSG','3656','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5116','ETRS89 / NTM zone 16',NULL,'EPSG','4500','EPSG','4258','EPSG','5146',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5116','ETRS89-NOR [EUREF89] / NTM zone 16',NULL,'EPSG','4500','EPSG','10875','EPSG','5146',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3826','projected_crs','EPSG','5116','EPSG','3657','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5117','ETRS89 / NTM zone 17',NULL,'EPSG','4500','EPSG','4258','EPSG','5147',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5117','ETRS89-NOR [EUREF89] / NTM zone 17',NULL,'EPSG','4500','EPSG','10875','EPSG','5147',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3827','projected_crs','EPSG','5117','EPSG','3658','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5118','ETRS89 / NTM zone 18',NULL,'EPSG','4500','EPSG','4258','EPSG','5148',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5118','ETRS89-NOR [EUREF89] / NTM zone 18',NULL,'EPSG','4500','EPSG','10875','EPSG','5148',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3828','projected_crs','EPSG','5118','EPSG','3660','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5119','ETRS89 / NTM zone 19',NULL,'EPSG','4500','EPSG','4258','EPSG','5149',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5119','ETRS89-NOR [EUREF89] / NTM zone 19',NULL,'EPSG','4500','EPSG','10875','EPSG','5149',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3829','projected_crs','EPSG','5119','EPSG','3661','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5120','ETRS89 / NTM zone 20',NULL,'EPSG','4500','EPSG','4258','EPSG','5150',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5120','ETRS89-NOR [EUREF89] / NTM zone 20',NULL,'EPSG','4500','EPSG','10875','EPSG','5150',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3830','projected_crs','EPSG','5120','EPSG','3662','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5121','ETRS89 / NTM zone 21',NULL,'EPSG','4500','EPSG','4258','EPSG','5151',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5121','ETRS89-NOR [EUREF89] / NTM zone 21',NULL,'EPSG','4500','EPSG','10875','EPSG','5151',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3831','projected_crs','EPSG','5121','EPSG','3663','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5122','ETRS89 / NTM zone 22',NULL,'EPSG','4500','EPSG','4258','EPSG','5152',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5122','ETRS89-NOR [EUREF89] / NTM zone 22',NULL,'EPSG','4500','EPSG','10875','EPSG','5152',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3832','projected_crs','EPSG','5122','EPSG','3665','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5123','ETRS89 / NTM zone 23',NULL,'EPSG','4500','EPSG','4258','EPSG','5153',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5123','ETRS89-NOR [EUREF89] / NTM zone 23',NULL,'EPSG','4500','EPSG','10875','EPSG','5153',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3833','projected_crs','EPSG','5123','EPSG','3667','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5124','ETRS89 / NTM zone 24',NULL,'EPSG','4500','EPSG','4258','EPSG','5154',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5124','ETRS89-NOR [EUREF89] / NTM zone 24',NULL,'EPSG','4500','EPSG','10875','EPSG','5154',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3834','projected_crs','EPSG','5124','EPSG','3668','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5125','ETRS89 / NTM zone 25',NULL,'EPSG','4500','EPSG','4258','EPSG','5155',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5125','ETRS89-NOR [EUREF89] / NTM zone 25',NULL,'EPSG','4500','EPSG','10875','EPSG','5155',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3835','projected_crs','EPSG','5125','EPSG','3669','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5126','ETRS89 / NTM zone 26',NULL,'EPSG','4500','EPSG','4258','EPSG','5156',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5126','ETRS89-NOR [EUREF89] / NTM zone 26',NULL,'EPSG','4500','EPSG','10875','EPSG','5156',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3836','projected_crs','EPSG','5126','EPSG','3671','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5127','ETRS89 / NTM zone 27',NULL,'EPSG','4500','EPSG','4258','EPSG','5157',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5127','ETRS89-NOR [EUREF89] / NTM zone 27',NULL,'EPSG','4500','EPSG','10875','EPSG','5157',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3837','projected_crs','EPSG','5127','EPSG','3672','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5128','ETRS89 / NTM zone 28',NULL,'EPSG','4500','EPSG','4258','EPSG','5158',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5128','ETRS89-NOR [EUREF89] / NTM zone 28',NULL,'EPSG','4500','EPSG','10875','EPSG','5158',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3838','projected_crs','EPSG','5128','EPSG','3673','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5129','ETRS89 / NTM zone 29',NULL,'EPSG','4500','EPSG','4258','EPSG','5159',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5129','ETRS89-NOR [EUREF89] / NTM zone 29',NULL,'EPSG','4500','EPSG','10875','EPSG','5159',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3839','projected_crs','EPSG','5129','EPSG','3674','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5130','ETRS89 / NTM zone 30',NULL,'EPSG','4500','EPSG','4258','EPSG','5160',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5130','ETRS89-NOR [EUREF89] / NTM zone 30',NULL,'EPSG','4500','EPSG','10875','EPSG','5160',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3840','projected_crs','EPSG','5130','EPSG','3676','EPSG','1029');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','5167','Korean 1985 / East Sea Belt',NULL,'EPSG','4530','EPSG','4162','EPSG','5049',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','3842','projected_crs','EPSG','5167','EPSG','3720','EPSG','1092');
|
||||
@@ -7140,11 +7140,11 @@ INSERT INTO "projected_crs" VALUES('EPSG','8859','WGS 84 / Equal Earth Asia-Paci
|
||||
INSERT INTO "usage" VALUES('EPSG','6009','projected_crs','EPSG','8859','EPSG','4523','EPSG','1224');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8903','RGWF96 / UTM zone 1S',NULL,'EPSG','4400','EPSG','8900','EPSG','16101',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6019','projected_crs','EPSG','8903','EPSG','1255','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8908','CR-SIRGAS / CRTM05',NULL,'EPSG','4400','EPSG','8907','EPSG','5366',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8908','CR-SIRGAS epoch 2014.59 / CRTM05',NULL,'EPSG','4400','EPSG','8907','EPSG','5366',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6024','projected_crs','EPSG','8908','EPSG','3232','EPSG','1092');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8909','CR-SIRGAS / UTM zone 16N',NULL,'EPSG','4400','EPSG','8907','EPSG','16016',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8909','CR-SIRGAS epoch 2014.59 / UTM zone 16N',NULL,'EPSG','4400','EPSG','8907','EPSG','16016',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6025','projected_crs','EPSG','8909','EPSG','4532','EPSG','1136');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8910','CR-SIRGAS / UTM zone 17N',NULL,'EPSG','4400','EPSG','8907','EPSG','16017',NULL,0);
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8910','CR-SIRGAS epoch 2014.59 / UTM zone 17N',NULL,'EPSG','4400','EPSG','8907','EPSG','16017',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6026','projected_crs','EPSG','8910','EPSG','4531','EPSG','1136');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','8950','SIRGAS-Chile 2010 / UTM zone 18S',NULL,'EPSG','4400','EPSG','8949','EPSG','16118',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','6064','projected_crs','EPSG','8950','EPSG','3829','EPSG','1142');
|
||||
@@ -7702,6 +7702,38 @@ INSERT INTO "projected_crs" VALUES('EPSG','10986','NATRF2022 / Gulf East Central
|
||||
INSERT INTO "usage" VALUES('EPSG','23682','projected_crs','EPSG','10986','EPSG','4812','EPSG','1294');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','10987','NATRF2022 / Gulf East (ft)',NULL,'EPSG','4495','EPSG','10968','EPSG','10978',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','23683','projected_crs','EPSG','10987','EPSG','2174','EPSG','1294');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11012','ETRS89-NOR [EUREF89] / UTM zone 30N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16030',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24106','projected_crs','EPSG','11012','EPSG','4823','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11013','ETRS89-NOR [EUREF89] / UTM zone 31N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16031',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24107','projected_crs','EPSG','11013','EPSG','4824','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11014','ETRS89-NOR [EUREF89] / UTM zone 32N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16032',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24108','projected_crs','EPSG','11014','EPSG','4825','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11015','ETRS89-NOR [EUREF89] / UTM zone 33N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16033',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24109','projected_crs','EPSG','11015','EPSG','4826','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11016','ETRS89-NOR [EUREF89] / UTM zone 34N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16034',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24110','projected_crs','EPSG','11016','EPSG','4827','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11017','ETRS89-NOR [EUREF89] / UTM zone 35N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16035',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24111','projected_crs','EPSG','11017','EPSG','4828','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11018','ETRS89-NOR [EUREF89] / UTM zone 36N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16036',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24112','projected_crs','EPSG','11018','EPSG','4829','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11019','ETRS89-NOR [EUREF89] / UTM zone 37N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16037',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24113','projected_crs','EPSG','11019','EPSG','4830','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11020','ETRS89-NOR [EUREF89] / UTM zone 30N',NULL,'EPSG','4400','EPSG','10875','EPSG','16030',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24114','projected_crs','EPSG','11020','EPSG','4823','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11021','ETRS89-NOR [EUREF89] / UTM zone 31N',NULL,'EPSG','4400','EPSG','10875','EPSG','16031',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24115','projected_crs','EPSG','11021','EPSG','4824','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11022','ETRS89-NOR [EUREF89] / UTM zone 32N',NULL,'EPSG','4400','EPSG','10875','EPSG','16032',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24117','projected_crs','EPSG','11022','EPSG','4825','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11023','ETRS89-NOR [EUREF89] / UTM zone 33N',NULL,'EPSG','4400','EPSG','10875','EPSG','16033',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24118','projected_crs','EPSG','11023','EPSG','4826','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11024','ETRS89-NOR [EUREF89] / UTM zone 34N',NULL,'EPSG','4400','EPSG','10875','EPSG','16034',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24119','projected_crs','EPSG','11024','EPSG','4827','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11025','ETRS89-NOR [EUREF89] / UTM zone 35N',NULL,'EPSG','4400','EPSG','10875','EPSG','16035',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24120','projected_crs','EPSG','11025','EPSG','4828','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11026','ETRS89-NOR [EUREF89] / UTM zone 36N',NULL,'EPSG','4400','EPSG','10875','EPSG','16036',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24121','projected_crs','EPSG','11026','EPSG','4829','EPSG','1142');
|
||||
INSERT INTO "projected_crs" VALUES('EPSG','11027','ETRS89-NOR [EUREF89] / UTM zone 37N',NULL,'EPSG','4400','EPSG','10875','EPSG','16037',NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24396','projected_crs','EPSG','11027','EPSG','4830','EPSG','1142');
|
||||
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);
|
||||
|
||||
@@ -272,3 +272,4 @@ INSERT INTO "scope" VALUES('EPSG','1292','Crop inventory mapping.',0);
|
||||
INSERT INTO "scope" VALUES('EPSG','1293','Engineering survey and topographic mapping related to the Woodsmith mine project.',0);
|
||||
INSERT INTO "scope" VALUES('EPSG','1294','Emulation of SPCS27.',0);
|
||||
INSERT INTO "scope" VALUES('EPSG','1295','Geodesy. Active GNSS network / Continuously Operating Reference Station (CORS) network.',0);
|
||||
INSERT INTO "scope" VALUES('EPSG','1296','Merging of spatial data referenced to different national realizations of ETRS89 at the sub-decimetre level of accuracy.',0);
|
||||
|
||||
@@ -270,8 +270,6 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9955','grid_tran
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9956','grid_transformation','EPSG','9958','EPSG',0);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9957','grid_transformation','EPSG','9959','EPSG',0);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5891','grid_transformation','EPSG','9910','EPSG',1);
|
||||
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('helmert_transformation','EPSG','9020','helmert_transformation','EPSG','10139','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9021','helmert_transformation','EPSG','10140','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9022','helmert_transformation','EPSG','10141','EPSG',1);
|
||||
@@ -296,10 +294,6 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10491','grid_tra
|
||||
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','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);
|
||||
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);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10558','grid_transformation','EPSG','10562','EPSG',0);
|
||||
@@ -356,3 +350,9 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9634','grid_tran
|
||||
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15900','helmert_transformation','EPSG','10961','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15957','helmert_transformation','EPSG','10962','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15899','helmert_transformation','EPSG','10963','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9884','grid_transformation','EPSG','10130','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10504','grid_transformation','EPSG','10509','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9885','grid_transformation','EPSG','10133','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10505','grid_transformation','EPSG','10510','EPSG',1);
|
||||
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_transformation','EPSG','10504','EPSG',1);
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
-- 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',
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif',
|
||||
'PROJ','PROJString',
|
||||
'+proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif',
|
||||
'+proj=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.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,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');
|
||||
@@ -20,10 +16,10 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N_USAGE','other_tran
|
||||
|
||||
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',
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif',
|
||||
'PROJ','PROJString',
|
||||
'+proj=pipeline ' ||
|
||||
'+step +proj=gridshift +grids=cz_cuzk_table_yx_3_v1710_east_north.tif ' ||
|
||||
'+step +proj=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
@@ -32,11 +28,11 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_TO_S_JTSK05_USAGE','other_transfor
|
||||
|
||||
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',
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif',
|
||||
'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=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.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,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');
|
||||
@@ -44,11 +40,11 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_TO_S_JTSK05_E_N_USAGE','other_transfor
|
||||
|
||||
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',
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif',
|
||||
'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=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
@@ -60,21 +56,21 @@ UPDATE other_transformation SET accuracy = 0.1 WHERE name = 'S-JTSK to S-JTSK/05
|
||||
|
||||
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','reverse');
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif','EPSG','4156','EPSG','5228',NULL,NULL,0);
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',1,'EPSG','5510','forward');
|
||||
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','forward');
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',3,'EPSG','5512','forward');
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',3,'EPSG','5512','reverse');
|
||||
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 recommends 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
|
||||
-- 3) S-JTSK/05 / Modified Krovak to S-JTSK / Krovak using (reverse) grid table_-y-x_3_v1710.tif
|
||||
-- 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);
|
||||
'Transformation based on grid table_-y-x_3_v1710.tif','EPSG','4258','EPSG','5514',NULL,NULL,0);
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',1,'EPSG','5226','reverse');
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',2,'EPSG','5512','forward');
|
||||
INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',3,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N','reverse');
|
||||
@@ -142,10 +138,10 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_E_N_BALTIC_HEIGHT_USAGE','compound_crs
|
||||
|
||||
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 ',
|
||||
'Transformation based on grids CR-2005.gtx and table_-y-x_3_v1710.tif ',
|
||||
'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 +inv +proj=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
@@ -157,10 +153,10 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_BALTIC_HEIGHT_USAGE','compound_crs','P
|
||||
|
||||
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 ',
|
||||
'Transformation based on grids CR-2005.gtx and table_-y-x_3_v1710.tif ',
|
||||
'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 +inv +proj=gridshift +grids=cz_cuzk_table_-y-x_3_v1710.tif ' ||
|
||||
'+step +proj=axisswap +order=-2,-1', -- East North --> Southing Westing
|
||||
'EPSG','4937','PROJ','S_JTSK_BALTIC_HEIGHT',
|
||||
0.05, -- guessed...
|
||||
@@ -237,7 +237,7 @@ INSERT INTO "usage" VALUES('EPSG','4234','vertical_crs','EPSG','5791','EPSG','13
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','5792','Danger 1950 height',NULL,'EPSG','6499','EPSG','5190',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4235','vertical_crs','EPSG','5792','EPSG','3299','EPSG','1179');
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','5793','Mayotte 1950 height',NULL,'EPSG','6499','EPSG','5191',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4236','vertical_crs','EPSG','5793','EPSG','3340','EPSG','1179');
|
||||
INSERT INTO "usage" VALUES('EPSG','4236','vertical_crs','EPSG','5793','EPSG','3340','EPSG','1178');
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','5794','Martinique 1955 height',NULL,'EPSG','6499','EPSG','5192',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','4237','vertical_crs','EPSG','5794','EPSG','3276','EPSG','1178');
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','5795','Guadeloupe 1951 height',NULL,'EPSG','6499','EPSG','5193',0);
|
||||
@@ -532,6 +532,8 @@ INSERT INTO "vertical_crs" VALUES('EPSG','10918','COH88 2025 (NAVD88) height',NU
|
||||
INSERT INTO "usage" VALUES('EPSG','23576','vertical_crs','EPSG','10918','EPSG','1375','EPSG','1178');
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','10999','SVD2024 height',NULL,'EPSG','6499','EPSG','1424',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24133','vertical_crs','EPSG','10999','EPSG','4831','EPSG','1180');
|
||||
INSERT INTO "vertical_crs" VALUES('EPSG','11157','IGN 2023 Mayotte height',NULL,'EPSG','6499','EPSG','1443',0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24641','vertical_crs','EPSG','11157','EPSG','3340','EPSG','1178');
|
||||
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);
|
||||
|
||||
@@ -290,6 +290,8 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1416','Derived California Orthometri
|
||||
INSERT INTO "usage" VALUES('EPSG','23577','vertical_datum','EPSG','1416','EPSG','1375','EPSG','1180');
|
||||
INSERT INTO "vertical_datum" VALUES('EPSG','1424','Svalbard vertical datum 2024',NULL,'2025-01-01',NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24132','vertical_datum','EPSG','1424','EPSG','4831','EPSG','1180');
|
||||
INSERT INTO "vertical_datum" VALUES('EPSG','1443','IGN 2023 Mayotte',NULL,'2025-03-14',NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO "usage" VALUES('EPSG','24610','vertical_datum','EPSG','1443','EPSG','3340','EPSG','1178');
|
||||
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,NULL,0);
|
||||
|
||||
@@ -56,8 +56,7 @@ list(APPEND SQL_FILES
|
||||
"${SQL_DIR}/nkg.sql"
|
||||
"${SQL_DIR}/iau.sql"
|
||||
"${SQL_DIR}/nrcan.sql"
|
||||
# Below file not yet integrated to unclear licensing of referenced grid file
|
||||
# "${SQL_DIR}/transformations_czechia_extra.sql"
|
||||
"${SQL_DIR}/transformations_czechia.sql"
|
||||
"${SQL_DIR}/grid_alternatives.sql"
|
||||
"${SQL_DIR}/grid_alternatives_generated_noaa.sql"
|
||||
"${SQL_DIR}/nadcon5_concatenated_operations.sql"
|
||||
|
||||
+5
-5
@@ -23,15 +23,15 @@ title = "PROJ coordinate transformation software library"
|
||||
author = "PROJ contributors"
|
||||
|
||||
# The major project version, used as the replacement for |version|
|
||||
version = "9.6"
|
||||
version = "9.7"
|
||||
|
||||
# The full project version, used as the replacement for |release|
|
||||
release = "9.7.0-dev"
|
||||
release = "9.7.1"
|
||||
|
||||
# PROJ-data version
|
||||
data_version = "1.22"
|
||||
data_version = "1.24"
|
||||
|
||||
today_date = date.today() # or use a specific date
|
||||
today_date = date(2025, 1, 12) # or use a specific date
|
||||
today_fmt = "%d %b %Y"
|
||||
|
||||
copyright = "1983-{}, PROJ contributors".format(today_date.year)
|
||||
@@ -135,7 +135,7 @@ html_context = {
|
||||
"theme_vcs_pageview_mode": "edit",
|
||||
"github_user": "OSGeo",
|
||||
"github_repo": "PROJ",
|
||||
"github_version": "master",
|
||||
"github_version": "9.7",
|
||||
"conf_py_path": "/docs/source/",
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ Download
|
||||
Current Release
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
* **2025-09-15** `proj-9.7.0.tar.gz`_ (`md5`_)
|
||||
* **2025-09-15** `proj-data-1.23.tar.gz`_
|
||||
* **2025-12-01** `proj-9.7.1.tar.gz`_ (`md5`_)
|
||||
* **2025-12-01** `proj-data-1.24.tar.gz`_
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -40,6 +40,7 @@ Current Release
|
||||
Past Releases
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
* **2025-09-15** `proj-9.7.0.tar.gz`_
|
||||
* **2025-06-06** `proj-9.6.2.tar.gz`_
|
||||
* **2025-06-02** `proj-9.6.1.tar.gz`_
|
||||
* **2025-03-15** `proj-9.6.0.tar.gz`_
|
||||
@@ -83,6 +84,7 @@ Past Releases
|
||||
* **2015-09-13** `proj-4.9.2.tar.gz`_
|
||||
* **2015-03-04** `proj-4.9.1.tar.gz`_
|
||||
|
||||
* **2025-09-15** `proj-data-1.23.tar.gz`_
|
||||
* **2025-06-02** `proj-data-1.22.tar.gz`_
|
||||
* **2025-03-15** `proj-data-1.21.tar.gz`_
|
||||
* **2024-12-01** `proj-data-1.20.tar.gz`_
|
||||
@@ -127,7 +129,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.7.0.tar.gz.md5
|
||||
.. _`md5`: https://download.osgeo.org/proj/proj-9.7.1.tar.gz.md5
|
||||
.. _`proj-9.7.1.tar.gz`: https://download.osgeo.org/proj/proj-9.7.1.tar.gz
|
||||
.. _`proj-9.7.0.tar.gz`: https://download.osgeo.org/proj/proj-9.7.0.tar.gz
|
||||
.. _`proj-9.6.2.tar.gz`: https://download.osgeo.org/proj/proj-9.6.2.tar.gz
|
||||
.. _`proj-9.6.1.tar.gz`: https://download.osgeo.org/proj/proj-9.6.1.tar.gz
|
||||
@@ -173,6 +176,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.24.tar.gz`: https://download.osgeo.org/proj/proj-data-1.24.tar.gz
|
||||
.. _`proj-data-1.23.tar.gz`: https://download.osgeo.org/proj/proj-data-1.23.tar.gz
|
||||
.. _`proj-data-1.22.tar.gz`: https://download.osgeo.org/proj/proj-data-1.22.tar.gz
|
||||
.. _`proj-data-1.21.tar.gz`: https://download.osgeo.org/proj/proj-data-1.21.tar.gz
|
||||
|
||||
+32
-4
@@ -3,6 +3,34 @@
|
||||
News
|
||||
###############################################################################
|
||||
|
||||
9.7.1
|
||||
++++++++++++++++++++
|
||||
*December 1st 2025*
|
||||
|
||||
Updates
|
||||
-------
|
||||
|
||||
* Enable `transformations_czechia.sql` (`#4578 <https://github.com/OSGeo/PROJ/issues/4578>`_)
|
||||
|
||||
* Update to EPSG v12.029 (`#4586 <https://github.com/OSGeo/PROJ/issues/4586>`_)
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
* :cpp:func:`createOperations()`: fix compound to compound when vertical CRS definition is equivalent but not strictly identical (`#4579 <https://github.com/OSGeo/PROJ/issues/4579>`_)
|
||||
|
||||
* :cpp:func:`createOperations()`: fix compound to compound when horizontal CRS of … (`#4582 <https://github.com/OSGeo/PROJ/issues/4582>`_)
|
||||
|
||||
* :program:`projinfo`: make it honour `-k crs` (`#4592 <https://github.com/OSGeo/PROJ/issues/4592>`_)
|
||||
|
||||
* :c:func:`proj_clone()`: fix insufficient propagation of `FORCE_OVER=YES` (`#4595 <https://github.com/OSGeo/PROJ/issues/4595>`_)
|
||||
|
||||
* :cpp:func:`BoundCRS::identify`: fix creation of an invalid BoundCRS (that can cause later crashes) for CRS based on 'NTF (Paris)' (`#4601 <https://github.com/OSGeo/PROJ/issues/4601>`_)
|
||||
|
||||
* WKT/PROJJSON datum ensemble import: allow no members (`#4615 <https://github.com/OSGeo/PROJ/issues/4615>`_)
|
||||
|
||||
|
||||
|
||||
9.7.0
|
||||
++++++++++++++++++++
|
||||
*September 15th 2025*
|
||||
@@ -24,7 +52,7 @@ Updates
|
||||
|
||||
* WKT importer: better error message when ``BBOX`` is invalid (e.g south_lat > north_lat) (`#4525 <https://github.com/OSGeo/PROJ/issues/4525>`_)
|
||||
|
||||
* Added :c:func:`proj_geod_direct` for PJ trasformation object (`#4532 <https://github.com/OSGeo/PROJ/issues/4532>`_)
|
||||
* Added :c:func:`proj_geod_direct` for PJ transformation object (`#4532 <https://github.com/OSGeo/PROJ/issues/4532>`_)
|
||||
|
||||
* Support exporting Mercator (Spherical) on a sphere as ``Mercator_1SP`` in WKT1 (`#4555 <https://github.com/OSGeo/PROJ/issues/4555>`_)
|
||||
|
||||
@@ -38,11 +66,11 @@ Bug Fixes
|
||||
|
||||
* :c:func:`proj_trans_bounds()`: fix 9.6.2 regression when going from long/lat crossing antimeridian to projected (`#4526 <https://github.com/OSGeo/PROJ/issues/4526>`_)
|
||||
|
||||
* opt_parse: avoid potential heap-buffer-overflow when parsing non-ASCII characters (affect :program:`cct`` and :program:`gie`) (`#4530 <https://github.com/OSGeo/PROJ/issues/4530>`_)
|
||||
* opt_parse: avoid potential heap-buffer-overflow when parsing non-ASCII characters (affect :program:`cct` and :program:`gie`) (`#4530 <https://github.com/OSGeo/PROJ/issues/4530>`_)
|
||||
|
||||
* :program:`gie`: fix memory leak on non existing input file (`#4531 <https://github.com/OSGeo/PROJ/issues/4531>`_)
|
||||
|
||||
* Database: referene ``nl_nsgi_nllat2018.tif`` and ``nl_nsgi_bongeo2004.tif`` grids (`#4534 <https://github.com/OSGeo/PROJ/issues/4534>`_)
|
||||
* Database: reference ``nl_nsgi_nllat2018.tif`` and ``nl_nsgi_bongeo2004.tif`` grids (`#4534 <https://github.com/OSGeo/PROJ/issues/4534>`_)
|
||||
|
||||
* Fixes related to WKT import/export of ``DerivedGeodetic/GeographicCRS`` (`#4536 <https://github.com/OSGeo/PROJ/issues/4536>`_)
|
||||
|
||||
@@ -53,7 +81,7 @@ Bug Fixes
|
||||
* :cpp:func:`createOperations()`: fix a case involving 2 CompoundCRS, one with TOWGS84, and the 2
|
||||
verticalCRS differing by units (`#4552 <https://github.com/OSGeo/PROJ/issues/4552>`_)
|
||||
|
||||
* On SQLite query error, show first the error msg than the sql query (`#4553 <https://github.com/OSGeo/PROJ/issues/4553>`_)
|
||||
* On SQLite query error, show first the error message than the sql query (`#4553 <https://github.com/OSGeo/PROJ/issues/4553>`_)
|
||||
|
||||
* Allow geodesic inverse for meridional points on prolate ellipsoid (`#4560 <https://github.com/OSGeo/PROJ/issues/4560>`_)
|
||||
|
||||
|
||||
+54
-34
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "CCT" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
cct \- Coordinate Conversion and Transformation
|
||||
.SH SYNOPSIS
|
||||
@@ -54,18 +54,18 @@ a proj\-string,
|
||||
.IP \(bu 2
|
||||
a WKT string,
|
||||
.IP \(bu 2
|
||||
an object code (like \(dqEPSG:1671\(dq \(dqurn:ogc:def:coordinateOperation:EPSG::1671\(dq),
|
||||
an object code (like "EPSG:1671" "urn:ogc:def:coordinateOperation:EPSG::1671"),
|
||||
.IP \(bu 2
|
||||
an object name. e.g. \(dqITRF2014 to ETRF2014 (1)\(dq. In that case as
|
||||
an object name. e.g. "ITRF2014 to ETRF2014 (1)". In that case as
|
||||
uniqueness is not guaranteed, heuristics are applied to determine the appropriate best match.
|
||||
.IP \(bu 2
|
||||
a OGC URN combining references for concatenated operations
|
||||
(e.g. \(dq\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP\(dq)
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \X'tty: link https://proj.org/schemas/v0.4/projjson.schema.json'\fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP\X'tty: link'
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP
|
||||
.UNINDENT
|
||||
.sp
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
\fBNOTE:\fP
|
||||
@@ -90,7 +90,7 @@ file referenced by the {object_reference} must contain a valid
|
||||
{object_definition}.
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -113,7 +113,7 @@ Specify input columns for (up to) 4 input parameters. Defaults to 1,2,3,4.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-d <n>
|
||||
Added in version 5.2.0.
|
||||
New in version 5.2.0.
|
||||
|
||||
.sp
|
||||
Specify the number of decimals to round to in the output.
|
||||
@@ -141,7 +141,7 @@ Specify a fixed observation \fIheight\fP to be used for all input data.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-s <n>, \-\-skip\-lines=<n>
|
||||
Added in version 5.1.0.
|
||||
New in version 5.1.0.
|
||||
|
||||
.sp
|
||||
Skip the first \fIn\fP lines of input. This applies to any kind of input, whether
|
||||
@@ -165,7 +165,7 @@ Usage varies with operation.
|
||||
\fI\%cct\fP is an acronym meaning \fICoordinate Conversion and Transformation\fP\&.
|
||||
.sp
|
||||
The acronym refers to definitions given in the OGC 08\-015r2/ISO\-19111
|
||||
standard \(dqGeographical Information \-\- Spatial Referencing by Coordinates\(dq,
|
||||
standard "Geographical Information \-\- Spatial Referencing by Coordinates",
|
||||
which defines two different classes of \fIcoordinate operations\fP:
|
||||
.sp
|
||||
\fICoordinate Conversions\fP, which are coordinate operations where input
|
||||
@@ -176,7 +176,7 @@ cartesian coordinates) and
|
||||
input and output datums differ (e.g. change of reference frame).
|
||||
.SH USE OF REMOTE GRIDS
|
||||
.sp
|
||||
Added in version 7.0.0.
|
||||
New in version 7.0.0.
|
||||
|
||||
.sp
|
||||
If the \fI\%PROJ_NETWORK\fP environment variable is set to \fBON\fP,
|
||||
@@ -193,9 +193,11 @@ the following script
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
echo 12 55 0 0 | cct +proj=utm +zone=32 +ellps=GRS80
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -204,9 +206,11 @@ Hence, the command
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
echo 12 55 | cct \-z0 \-t0 +proj=utm +zone=32 +ellps=GRS80
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -214,9 +218,11 @@ Should give results comparable to the classic \fI\%proj\fP command
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
echo 12 55 | proj +proj=utm +zone=32 +ellps=GRS80
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -226,9 +232,11 @@ Convert geographical input to UTM zone 32 on the GRS80 ellipsoid:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cct +proj=utm +ellps=GRS80 +zone=32
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -238,9 +246,11 @@ Roundtrip accuracy check for the case above:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cct +proj=pipeline +ellps=GRS80 +zone=32 +step +proj=utm +step +proj=utm +inv
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -250,9 +260,11 @@ As (2) but specify input columns for longitude, latitude, height and time:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cct \-c 5,2,1,4 +proj=utm +ellps=GRS80 +zone=32
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -263,9 +275,11 @@ input:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cct \-t 0 \-z 0 +proj=utm +ellps=GRS80 +zone=32
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -276,10 +290,12 @@ stream:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
$ echo 12 56 100 2018.0 auxiliary data | cct +proj=merc
|
||||
1335833.8895 7522963.2411 100.0000 2018.0000 auxiliary data
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -289,10 +305,12 @@ Coordinate operation referenced through its code
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
$ echo 3541657.3778 948984.2343 5201383.5231 2020.5 | cct EPSG:8366
|
||||
3541657.9112 948983.7503 5201383.2482 2020.5000
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -302,10 +320,12 @@ Coordinate operation referenced through its name
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
$ echo 3541657.3778 948984.2343 5201383.5231 2020.5 | cct \(dqITRF2014 to ETRF2014 (1)\(dq
|
||||
.nf
|
||||
.ft C
|
||||
$ echo 3541657.3778 948984.2343 5201383.5231 2020.5 | cct "ITRF2014 to ETRF2014 (1)"
|
||||
3541657.9112 948983.7503 5201383.2482 2020.5000
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH BACKGROUND
|
||||
@@ -337,11 +357,11 @@ Hence, in honour of \fIcct\fP (the geodesist) this is \fI\%cct\fP (the program).
|
||||
\fBproj(1)\fP, \fBcs2cs(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Thomas Knudsen
|
||||
.SH COPYRIGHT
|
||||
|
||||
+71
-51
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "CS2CS" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
cs2cs \- Cartographic coordinate system filter
|
||||
.SH SYNOPSIS
|
||||
@@ -54,32 +54,32 @@ a proj\-string,
|
||||
.IP \(bu 2
|
||||
a WKT string,
|
||||
.IP \(bu 2
|
||||
an object code (like \(dqEPSG:4326\(dq, \(dqurn:ogc:def:crs:EPSG::4326\(dq,
|
||||
\(dqurn:ogc:def:coordinateOperation:EPSG::1671\(dq),
|
||||
an object code (like "EPSG:4326", "urn:ogc:def:crs:EPSG::4326",
|
||||
"urn:ogc:def:coordinateOperation:EPSG::1671"),
|
||||
.IP \(bu 2
|
||||
an Object name. e.g \(dqWGS 84\(dq, \(dqWGS 84 / UTM zone 31N\(dq. In that case as
|
||||
an Object name. e.g "WGS 84", "WGS 84 / UTM zone 31N". In that case as
|
||||
uniqueness is not guaranteed, heuristics are applied to determine the appropriate best match.
|
||||
.IP \(bu 2
|
||||
a CRS name and a coordinate epoch, separated with \(aq@\(aq. For example \(dq\X'tty: link mailto:ITRF2014@2025.0'\fI\%ITRF2014@2025.0\fP\X'tty: link'\(dq. (\fIadded in 9.2\fP)
|
||||
a CRS name and a coordinate epoch, separated with \(aq@\(aq. For example "\fI\%ITRF2014@2025.0\fP". (\fIadded in 9.2\fP)
|
||||
.IP \(bu 2
|
||||
a OGC URN combining references for compound coordinate reference systems
|
||||
(e.g \(dq\fI\%urn:ogc:def:crs,crs:EPSG::2393,crs:EPSG::5717\fP\(dq or custom abbreviated
|
||||
syntax \(dqEPSG:2393+5717\(dq),
|
||||
(e.g "\fI\%urn:ogc:def:crs,crs:EPSG::2393,crs:EPSG::5717\fP" or custom abbreviated
|
||||
syntax "EPSG:2393+5717"),
|
||||
.IP \(bu 2
|
||||
a OGC URN combining references for references for projected or derived CRSs
|
||||
e.g. for Projected 3D CRS \(dqUTM zone 31N / WGS 84 (3D)\(dq:
|
||||
\(dq\fI\%urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031\fP\(dq
|
||||
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
|
||||
a OGC URN combining references for concatenated operations
|
||||
(e.g. \(dq\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP\(dq)
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \X'tty: link https://proj.org/schemas/v0.4/projjson.schema.json'\fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP\X'tty: link' (\fIadded in 6.2\fP)
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
.IP \(bu 2
|
||||
a compound CRS made from two object names separated with \(dq + \(dq. e.g. \(dqWGS 84 + EGM96 height\(dq (\fIadded in 7.1\fP)
|
||||
a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (\fIadded in 7.1\fP)
|
||||
.UNINDENT
|
||||
.sp
|
||||
Added in version 6.0.0.
|
||||
New in version 6.0.0.
|
||||
|
||||
.sp
|
||||
\fBNOTE:\fP
|
||||
@@ -115,7 +115,7 @@ ASCII input only. (# is the default value).
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-d <n>
|
||||
Added in version 5.2.0.
|
||||
New in version 5.2.0.
|
||||
|
||||
.sp
|
||||
Specify the number of decimals to round to in the output.
|
||||
@@ -189,7 +189,7 @@ third.
|
||||
Where \fIformat\fP is a printf format string to control the form of the output values.
|
||||
For inverse projections, the output will be in degrees when this option is
|
||||
employed. If a format is specified for inverse projection the output data
|
||||
will be in decimal degrees. The default format is \fB\(dq%.2f\(dq\fP for forward
|
||||
will be in decimal degrees. The default format is \fB"%.2f"\fP for forward
|
||||
projection and DMS for inverse.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -214,19 +214,19 @@ the program to be printed prior to input data.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-area <name_or_code>
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
Specify an area of interest to restrict the results when researching
|
||||
coordinate operations between 2 CRS. The area of interest can be specified either
|
||||
as a name (e.g \(dqDenmark \- onshore\(dq) or a AUTHORITY:CODE (EPSG:3237)
|
||||
as a name (e.g "Denmark \- onshore") or a AUTHORITY:CODE (EPSG:3237)
|
||||
.sp
|
||||
This option is mutually exclusive with \fI\%\-\-bbox\fP\&.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-bbox <west_long,south_lat,east_long,north_lat>
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
Specify an area of interest to restrict the results when researching
|
||||
@@ -240,7 +240,7 @@ unspecified geographic CRS.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-only\-best[=yes|=no]
|
||||
Added in version 9.2.0.
|
||||
New in version 9.2.0.
|
||||
|
||||
.sp
|
||||
Force \fIcs2cs\fP to only use the best transformation known by PROJ.
|
||||
@@ -259,7 +259,7 @@ when specified overrides such default value).
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-no\-ballpark
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
Disallow any coordinate operation that is, or contains, a
|
||||
@@ -268,7 +268,7 @@ Disallow any coordinate operation that is, or contains, a
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-accuracy <accuracy>
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
Sets the minimum desired accuracy for candidate coordinate operations.
|
||||
@@ -276,7 +276,7 @@ Sets the minimum desired accuracy for candidate coordinate operations.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-authority <name>
|
||||
Added in version 8.0.0.
|
||||
New in version 8.0.0.
|
||||
|
||||
.sp
|
||||
This option can be used to restrict the authority of coordinate operations
|
||||
@@ -293,10 +293,10 @@ This option is mutually exclusive with \fI\%\-\-bbox\fP\&.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-3d
|
||||
Added in version 9.1.
|
||||
New in version 9.1.
|
||||
|
||||
.sp
|
||||
\(dqPromote\(dq 2D CRS(s) to their 3D version, where the vertical axis is the
|
||||
"Promote" 2D CRS(s) to their 3D version, where the vertical axis is the
|
||||
ellipsoidal height in metres, using the ellipsoid of the base geodetic CRS.
|
||||
Depending on PROJ versions and the exact nature of the CRS involved,
|
||||
especially before PROJ 9.1, a mix of 2D and 3D CRS could lead to 2D or 3D
|
||||
@@ -306,7 +306,7 @@ transformation to possibly happen.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-s_epoch
|
||||
Added in version 9.4.
|
||||
New in version 9.4.
|
||||
|
||||
.sp
|
||||
Epoch of coordinates in the source CRS, as decimal year.
|
||||
@@ -315,7 +315,7 @@ Only applies to a dynamic CRS.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-t_epoch
|
||||
Added in version 9.4.
|
||||
New in version 9.4.
|
||||
|
||||
.sp
|
||||
Epoch of coordinates in the target CRS, as decimal year.
|
||||
@@ -360,7 +360,7 @@ places), while projected (cartesian) coordinates will be in linear
|
||||
(meter, feet) units.
|
||||
.SS Use of remote grids
|
||||
.sp
|
||||
Added in version 7.0.0.
|
||||
New in version 7.0.0.
|
||||
|
||||
.sp
|
||||
If the \fI\%PROJ_NETWORK\fP environment variable is set to \fBON\fP,
|
||||
@@ -375,13 +375,15 @@ The following script
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cs2cs +proj=latlong +datum=NAD83 +to +proj=utm +zone=10 +datum=NAD27 \-r <<EOF
|
||||
45°15\(aq33.1\(dq 111.5W
|
||||
45°15\(aq33.1" 111.5W
|
||||
45d15.551666667N \-111d30
|
||||
+45.25919444444 111d30\(aq000w
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -392,9 +394,11 @@ The x\-y output data will appear as three lines of:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
1402285.93 5076292.58 0.00
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -407,9 +411,11 @@ Assuming the above mentioned grid is \fInot\fP available,
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
echo \-111.5 45.25919444444 | cs2cs \-\-only\-best +proj=latlong +datum=NAD83 +to +proj=utm +zone=10 +datum=NAD27
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -417,10 +423,12 @@ would return:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
Attempt to use coordinate operation axis order change (2D) + Inverse of NAD27 to NAD83 (7) + axis order change (2D) + UTM zone 10N failed. Grid us_noaa_nadcon5_nad27_nad83_1986_conus.tif is not available. Consult https://proj.org/resource_files.html for guidance.
|
||||
* * inf
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -428,9 +436,11 @@ Otherwise, if you don\(aqt have the grid available and you don\(aqt specify \fI\
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
echo \-111.5 45.25919444444 | cs2cs \-\-only\-best +proj=latlong +datum=NAD83 +to +proj=utm +zone=10 +datum=NAD27
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -438,9 +448,11 @@ would return:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
1402224.57 5076275.42 0.00
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -452,11 +464,13 @@ Transforming from WGS 84 latitude/longitude (in that order) to UTM Zone 31N/WGS
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
cs2cs EPSG:4326 EPSG:32631 <<EOF
|
||||
45N 2E
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -464,9 +478,11 @@ outputs
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
421184.70 4983436.77 0.00
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SS Using EPSG CRS names
|
||||
@@ -476,9 +492,11 @@ UTM Zone 31N/WGS 84 with WGS84 ellipsoidal height
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
echo 45 2 0 | cs2cs \(dqWGS 84 + EGM96 height\(dq \(dqWGS 84 / UTM zone 31N\(dq \-\-3d
|
||||
.EE
|
||||
.nf
|
||||
.ft C
|
||||
echo 45 2 0 | cs2cs "WGS 84 + EGM96 height" "WGS 84 / UTM zone 31N" \-\-3d
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -486,9 +504,11 @@ outputs
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
421184.70 4983436.77 50.69
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -504,11 +524,11 @@ locally or use networking capabilities mentioned above.
|
||||
\fBproj(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Frank Warmerdam
|
||||
.SH COPYRIGHT
|
||||
|
||||
+28
-20
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "GEOD" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
geod \- Geodesic computations
|
||||
.SH SYNOPSIS
|
||||
@@ -92,7 +92,7 @@ geographic coordinate and azimuth values. The default mode is DMS.
|
||||
.TP
|
||||
.B \-F <format>
|
||||
Where \fIformat\fP is a printf format string to control the output form of the distance
|
||||
value. The default mode is \fB\(dq%.3f\(dq\fP\&.
|
||||
value. The default mode is \fB"%.3f"\fP\&.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
@@ -141,7 +141,7 @@ azimuthal data must be in decimal degrees or DMS format and
|
||||
input distance data must be in units consistent with the ellipsoid
|
||||
major axis or sphere radius units. The latitude must lie
|
||||
in the range [\-90d,90d]. Output geographic coordinates and azimuths will be
|
||||
in DMS (if the \fI\%\-f\fP switch is not employed) to 0.001\(dq with trailing,
|
||||
in DMS (if the \fI\%\-f\fP switch is not employed) to 0.001" with trailing,
|
||||
zero\-valued minute\-second fields deleted. Output distance
|
||||
data will be in the same units as the ellipsoid or sphere
|
||||
radius.
|
||||
@@ -173,11 +173,13 @@ statute miles from Boston, MA, to Portland, OR:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
geod +ellps=clrk66 \-I +units=us\-mi <<EOF
|
||||
42d15\(aqN 71d07\(aqW 45d31\(aqN 123d41\(aqW
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -185,9 +187,11 @@ which gives the results:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
\-66d31\(aq50.141\(dq 75d39\(aq13.083\(dq 2587.504
|
||||
.EE
|
||||
.nf
|
||||
.ft C
|
||||
\-66d31\(aq50.141" 75d39\(aq13.083" 2587.504
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -199,11 +203,13 @@ and determine Portland\(aqs location by azimuth and distance:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
geod +ellps=clrk66 +units=us\-mi <<EOF
|
||||
42d15\(aqN 71d07\(aqW \-66d31\(aq50.141\(dq 2587.504
|
||||
42d15\(aqN 71d07\(aqW \-66d31\(aq50.141" 2587.504
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -211,9 +217,11 @@ which gives:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
45d31\(aq0.003\(dqN 123d40\(aq59.985\(dqW 75d39\(aq13.094\(dq
|
||||
.EE
|
||||
.nf
|
||||
.ft C
|
||||
45d31\(aq0.003"N 123d40\(aq59.985"W 75d39\(aq13.094"
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -230,23 +238,23 @@ precision of the Portland location.
|
||||
.SH FURTHER READING
|
||||
.INDENT 0.0
|
||||
.IP 1. 3
|
||||
\X'tty: link https://geographiclib.sourceforge.io'\fI\%GeographicLib\fP\X'tty: link'\&.
|
||||
\fI\%GeographicLib\fP\&.
|
||||
.IP 2. 3
|
||||
C. F. F. Karney, \X'tty: link https://doi.org/10.1007/s00190-012-0578-z'\fI\%Algorithms for Geodesics\fP\X'tty: link', J. Geodesy \fB87\fP(1), 43–55 (2013);
|
||||
\X'tty: link https://geographiclib.sourceforge.io/geod-addenda.html'\fI\%addenda\fP\X'tty: link'\&.
|
||||
C. F. F. Karney, \fI\%Algorithms for Geodesics\fP, J. Geodesy \fB87\fP(1), 43–55 (2013);
|
||||
\fI\%addenda\fP\&.
|
||||
.IP 3. 3
|
||||
\X'tty: link https://geographiclib.sourceforge.io/geodesic-papers/biblio.html'\fI\%A geodesic bibliography\fP\X'tty: link'\&.
|
||||
\fI\%A geodesic bibliography\fP\&.
|
||||
.UNINDENT
|
||||
.SH SEE ALSO
|
||||
.sp
|
||||
\fBproj(1)\fP, \fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgie(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Charles Karney
|
||||
.SH COPYRIGHT
|
||||
|
||||
+69
-39
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "GIE" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
gie \- The Geospatial Integrity Investigation Environment
|
||||
.SH SYNOPSIS
|
||||
@@ -89,7 +89,8 @@ like:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
<gie>
|
||||
|
||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||
@@ -101,7 +102,8 @@ accept 12 55
|
||||
expect 691_875.632_14 6_098_907.825_05
|
||||
|
||||
</gie>
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -133,9 +135,11 @@ Run all tests in a file with all debug information turned on
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
gie \-vvvv corner\-cases.gie
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -145,9 +149,11 @@ Run all tests in several files
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
gie foo bar
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH GIE COMMAND LANGUAGE
|
||||
@@ -158,7 +164,8 @@ Define a PROJ operation to test. Example:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=utm zone=32 ellps=GRS80
|
||||
# test 4D function
|
||||
accept 12 55 0 0
|
||||
@@ -167,7 +174,8 @@ expect 691875.63214 6098907.82501 0 0
|
||||
# test 2D function
|
||||
accept 12 56
|
||||
expect 687071.4391 6210141.3267
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -208,11 +216,13 @@ pipeline is constructed.
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=pipeline step
|
||||
proj=urm5 n=0.5 inv
|
||||
expect failure pjd_err_malformed_pipeline
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -229,7 +239,8 @@ accurate within a few meters. \fI\%tolerance\fP should
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=merc
|
||||
# test coordinate as returned by \(ga\(ga\(gaecho 12 55 | proj +proj=merc\(ga\(ga
|
||||
tolerance 1 cm
|
||||
@@ -242,7 +253,8 @@ expect 1335833.89 7326837.72
|
||||
tolerance 100 m
|
||||
accept 12 55
|
||||
expect 1335883.89 7326837.72
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -264,11 +276,13 @@ Example with the default 100 iterations and the default tolerance:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=merc
|
||||
accept 12 55
|
||||
roundtrip
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -276,11 +290,13 @@ Example with count and default tolerance:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=merc
|
||||
accept 12 55
|
||||
roundtrip 10000
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -288,11 +304,13 @@ Example with count and tolerance:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=merc
|
||||
accept 12 55
|
||||
roundtrip 10000 5 mm
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -306,7 +324,8 @@ pipeline returns the same results in both directions.
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=pipeline zone=32 step
|
||||
proj=utm ellps=GRS80 step
|
||||
proj=utm ellps=GRS80 inv
|
||||
@@ -319,11 +338,12 @@ expect 12 55 0 0
|
||||
|
||||
direction inverse
|
||||
expect 12 55 0 0
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
The default direction is \(dqforward\(dq.
|
||||
The default direction is "forward".
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
@@ -334,13 +354,15 @@ available. Below is an example of that situation.
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
operation proj=hgridshift +grids=nzgd2kgrid0005.gsb ellps=GRS80
|
||||
tolerance 1 mm
|
||||
ignore pjd_err_failed_to_load_grid
|
||||
accept 172.999892181021551 \-45.001620431954613
|
||||
expect 173 \-45
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -362,14 +384,16 @@ Add user defined text to the output stream. See the example below.
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
<gie>
|
||||
echo ** Mercator projection tests **
|
||||
operation +proj=merc
|
||||
accept 0 0
|
||||
expect 0 0
|
||||
</gie>
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -377,14 +401,16 @@ which returns
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||
Reading file \(aqtest.gie\(aq
|
||||
** Mercator projection test **
|
||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||
total: 1 tests succeeded, 0 tests skipped, 0 tests failed.
|
||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
@@ -397,7 +423,8 @@ relevant for debugging when writing new test cases.
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
<gie>
|
||||
operation proj=merc
|
||||
accept 0 0
|
||||
@@ -406,13 +433,14 @@ skip
|
||||
accept 0 1
|
||||
expect 0 110579.9
|
||||
</gie>
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH STRICT MODE
|
||||
.sp
|
||||
Added in version 7.1.
|
||||
New in version 7.1.
|
||||
|
||||
.sp
|
||||
A stricter variant of normal gie syntax can be used by wrapping gie commands
|
||||
@@ -425,11 +453,12 @@ end with the space character followed by backslash to mark the continuation.
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
<gie\-strict>
|
||||
# This is a comment. The following line with multiple repeated characters too
|
||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||
# A command on several lines must use \(dq \e\(dq continuation
|
||||
# A command on several lines must use " \e" continuation
|
||||
operation proj=hgridshift +grids=nzgd2kgrid0005.gsb \e
|
||||
ellps=GRS80
|
||||
tolerance 1 mm
|
||||
@@ -437,15 +466,16 @@ ignore pjd_err_failed_to_load_grid
|
||||
accept 172.999892181021551 \-45.001620431954613
|
||||
expect 173 \-45
|
||||
</gie\-strict>
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH BACKGROUND
|
||||
.sp
|
||||
More importantly than being an acronym for \(dqGeospatial Integrity Investigation
|
||||
Environment\(dq, gie were also the initials, user id, and USGS email address of
|
||||
More importantly than being an acronym for "Geospatial Integrity Investigation
|
||||
Environment", gie were also the initials, user id, and USGS email address of
|
||||
Gerald Ian Evenden (1935\-\-2016), the geospatial visionary, who, already in the
|
||||
1980s, started what was to become the PROJ of today.
|
||||
.sp
|
||||
@@ -467,7 +497,7 @@ call like \fBhypot(x,y)\fP\&.
|
||||
.sp
|
||||
While today, we may have more formally well defined metadata systems (most
|
||||
prominent the OGC WKT2 representation), nothing comes close being as easily
|
||||
readable (\(dqhuman compatible\(dq) as Gerald\(aqs key\-value system. This system in
|
||||
readable ("human compatible") as Gerald\(aqs key\-value system. This system in
|
||||
particular, and the PROJ system in general, was Gerald\(aqs great gift to anyone
|
||||
using and/or communicating about geodata.
|
||||
.sp
|
||||
@@ -481,11 +511,11 @@ So in honour, and hopefully also in the spirit, of Gerald Ian Evenden
|
||||
\fBproj(1)\fP, \fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Thomas Knudsen
|
||||
.SH COPYRIGHT
|
||||
|
||||
+28
-20
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "PROJ" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
proj \- Cartographic projection filter
|
||||
.SH SYNOPSIS
|
||||
@@ -61,7 +61,7 @@ and allows bypassing formatting operations.
|
||||
.B \-d <n>
|
||||
.UNINDENT
|
||||
.sp
|
||||
Added in version 5.2.0: Specify the number of decimals to round to in the output.
|
||||
New in version 5.2.0: Specify the number of decimals to round to in the output.
|
||||
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
@@ -163,7 +163,7 @@ reciprocal value of \fImult\fP is employed.
|
||||
.B \-f <format>
|
||||
Where \fIformat\fP is a printf format string to control the form of the output values.
|
||||
For inverse projections, the output will be in degrees when this option is
|
||||
employed. The default format is \fB\(dq%.2f\(dq\fP for forward projection and DMS for
|
||||
employed. The default format is \fB"%.2f"\fP for forward projection and DMS for
|
||||
inverse.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -201,8 +201,8 @@ projection has been established from either the run\-line or the contents of
|
||||
default directory for a file reference without an absolute path. This is
|
||||
also used for supporting files like datum shift files.
|
||||
.sp
|
||||
Added in version 9.3.0: \fI{crs}\fP is one of the possibilities accepted by :c:\fBproj_create()\fP, provided it
|
||||
expresses a projected CRS, like a WKT string, an object code (like \(dqEPSG:32632\(dq)
|
||||
New in version 9.3.0: \fI{crs}\fP is one of the possibilities accepted by :c:\fBproj_create()\fP, provided it
|
||||
expresses a projected CRS, like a WKT string, an object code (like "EPSG:32632")
|
||||
a PROJJSON string, etc.
|
||||
The projection computed will be those of the map projection implied by
|
||||
the transformation from the base geographic CRS of the projected CRS to the projected CRS.
|
||||
@@ -218,7 +218,7 @@ portions of the input line are appended to the output line.
|
||||
Input geographic data (longitude and latitude) must be in DMS or decimal degrees format and input
|
||||
cartesian data must be in units consistent with the ellipsoid major axis or
|
||||
sphere radius units. Output geographic coordinates will be in DMS (if the
|
||||
\fB\-w\fP switch is not employed) and precise to 0.001\(dq with trailing, zero\-valued
|
||||
\fB\-w\fP switch is not employed) and precise to 0.001" with trailing, zero\-valued
|
||||
minute\-second fields deleted.
|
||||
.SH EXAMPLE
|
||||
.sp
|
||||
@@ -226,13 +226,15 @@ The following script
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
proj +proj=utm +zone=12 \-r <<EOF
|
||||
45d15\(aq33.1\(dq 111.5W
|
||||
45d15\(aq33.1" 111.5W
|
||||
45d15.551666667N \-111d30
|
||||
+45.25919444444 111d30\(aq000w
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -244,9 +246,11 @@ data will appear as three lines of:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
460770.43 5011865.86
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -254,21 +258,24 @@ This other example
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
proj EPSG:6421 \-V <<EOF
|
||||
\-120 35.8
|
||||
EOF
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Will perform the projection of the coordinates in \(dqNAD83(2011) / California zone 4\(dq
|
||||
(\fIEPSG:6421\fP) into its geographic system, \(dqNAD83(2011)\(dq, showing the expanded annotated listing.
|
||||
Will perform the projection of the coordinates in "NAD83(2011) / California zone 4"
|
||||
(\fIEPSG:6421\fP) into its geographic system, "NAD83(2011)", showing the expanded annotated listing.
|
||||
The output will appear as:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
#Lambert Conformal Conic
|
||||
# Conic, Sph&Ell
|
||||
# lat_1= and lat_2= or lat_0, k_0=
|
||||
@@ -287,9 +294,10 @@ Parallel scale (k) : 1.00004382 ( 0.004382 % error )
|
||||
Areal scale (s): 1.00008765 ( 0.008765 % error )
|
||||
Angular distortion (w): 0.000
|
||||
Meridian/Parallel angle: 90.00000
|
||||
Convergence : \-0d35\(aq47.714\(dq [ \-0.59658715 ]
|
||||
Convergence : \-0d35\(aq47.714" [ \-0.59658715 ]
|
||||
Max\-min (Tissot axis a\-b) scale error: 1.00004 1.00004
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH OTHER PROGRAMS
|
||||
@@ -305,11 +313,11 @@ support for datum translation.
|
||||
\fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBprojinfo(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Gerald I. Evenden
|
||||
.SH COPYRIGHT
|
||||
|
||||
+187
-163
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "PROJINFO" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
projinfo \- Geodetic object and coordinate operation queries
|
||||
.SH SYNOPSIS
|
||||
@@ -70,39 +70,39 @@ a proj\-string,
|
||||
.IP \(bu 2
|
||||
a WKT string,
|
||||
.IP \(bu 2
|
||||
an object code (like \(dqEPSG:4326\(dq, \(dqurn:ogc:def:crs:EPSG::4326\(dq,
|
||||
\(dqurn:ogc:def:coordinateOperation:EPSG::1671\(dq),
|
||||
an object code (like "EPSG:4326", "urn:ogc:def:crs:EPSG::4326",
|
||||
"urn:ogc:def:coordinateOperation:EPSG::1671"),
|
||||
.IP \(bu 2
|
||||
an Object name. e.g \(dqWGS 84\(dq, \(dqWGS 84 / UTM zone 31N\(dq. In that case as
|
||||
an Object name. e.g "WGS 84", "WGS 84 / UTM zone 31N". In that case as
|
||||
uniqueness is not guaranteed, heuristics are applied to determine the appropriate best match.
|
||||
.IP \(bu 2
|
||||
a CRS name and a coordinate epoch, separated with \(aq@\(aq. For example \(dq\X'tty: link mailto:ITRF2014@2025.0'\fI\%ITRF2014@2025.0\fP\X'tty: link'\(dq. (\fIadded in 9.2\fP)
|
||||
a CRS name and a coordinate epoch, separated with \(aq@\(aq. For example "\fI\%ITRF2014@2025.0\fP". (\fIadded in 9.2\fP)
|
||||
.IP \(bu 2
|
||||
a OGC URN combining references for compound coordinate reference systems
|
||||
(e.g \(dq\fI\%urn:ogc:def:crs,crs:EPSG::2393,crs:EPSG::5717\fP\(dq or custom abbreviated
|
||||
syntax \(dqEPSG:2393+5717\(dq),
|
||||
(e.g "\fI\%urn:ogc:def:crs,crs:EPSG::2393,crs:EPSG::5717\fP" or custom abbreviated
|
||||
syntax "EPSG:2393+5717"),
|
||||
.IP \(bu 2
|
||||
a OGC URN combining references for references for projected or derived CRSs
|
||||
e.g. for Projected 3D CRS \(dqUTM zone 31N / WGS 84 (3D)\(dq:
|
||||
\(dq\fI\%urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031\fP\(dq
|
||||
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. \(dq\fI\%urn:ogc:def:CoordinateMetadata:NRCAN::NAD83_CSRS_1997_MTM11_HT2_1997\fP\(dq
|
||||
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. \(dq\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP\(dq)
|
||||
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
|
||||
.IP \(bu 2
|
||||
a PROJJSON string. The jsonschema is at \X'tty: link https://proj.org/schemas/v0.4/projjson.schema.json'\fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP\X'tty: link' (\fIadded in 6.2\fP)
|
||||
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.4/projjson.schema.json\fP (\fIadded in 6.2\fP)
|
||||
.IP \(bu 2
|
||||
a compound CRS made from two object names separated with \(dq + \(dq. e.g. \(dqWGS 84 + EGM96 height\(dq (\fIadded in 7.1\fP)
|
||||
a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (\fIadded in 7.1\fP)
|
||||
.UNINDENT
|
||||
.sp
|
||||
{object_reference} is a filename preceded by the \(aq@\(aq character. The
|
||||
file referenced by the {object_reference} must contain a valid
|
||||
{object_definition}.
|
||||
.sp
|
||||
The usage of \(dq{srs_def} {srs_def}\(dq is equivalent to \(dq\-s {srs_def} \-t {srs_def}\(dq (\fIadded in 9.5\fP).
|
||||
The usage of "{srs_def} {srs_def}" is equivalent to "\-s {srs_def} \-t {srs_def}" (\fIadded in 9.5\fP).
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH DESCRIPTION
|
||||
@@ -114,7 +114,7 @@ or PROJJSON string).
|
||||
.sp
|
||||
It can also be used to query coordinate operations available between two CRS.
|
||||
.sp
|
||||
The program is named with some reference to the GDAL \X'tty: link https://gdal.org/programs/gdalsrsinfo.html'\fI\%gdalsrsinfo\fP\X'tty: link' utility that offers
|
||||
The program is named with some reference to the GDAL \fI\%gdalsrsinfo\fP utility that offers
|
||||
partly similar services.
|
||||
.sp
|
||||
The following control parameters can appear in any order:
|
||||
@@ -182,7 +182,7 @@ potentially compatible of being piped in other utilities.
|
||||
.B \-\-area name_or_code
|
||||
Specify an area of interest to restrict the results when researching
|
||||
coordinate operations between 2 CRS. The area of interest can be specified either
|
||||
as a name (e.g \(dqDenmark \- onshore\(dq) or a AUTHORITY:CODE (EPSG:3237)
|
||||
as a name (e.g "Denmark \- onshore") or a AUTHORITY:CODE (EPSG:3237)
|
||||
This option is exclusive of \fI\%\-\-bbox\fP\&.
|
||||
.sp
|
||||
\fBNOTE:\fP
|
||||
@@ -318,7 +318,7 @@ only used for coordinate operation computation
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-hide\-ballpark
|
||||
Added in version 7.1.
|
||||
New in version 7.1.
|
||||
|
||||
.sp
|
||||
Hides any coordinate operation that is, or contains, a
|
||||
@@ -334,7 +334,7 @@ only used for coordinate operation computation
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-accuracy {accuracy}
|
||||
Added in version 8.0.
|
||||
New in version 8.0.
|
||||
|
||||
.sp
|
||||
Sets the minimum desired accuracy for returned coordinate operations.
|
||||
@@ -349,7 +349,7 @@ only used for coordinate operation computation
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-allow\-ellipsoidal\-height\-as\-vertical\-crs
|
||||
Added in version 8.0.
|
||||
New in version 8.0.
|
||||
|
||||
.sp
|
||||
Allows exporting a geographic or projected 3D CRS as a compound CRS whose
|
||||
@@ -410,7 +410,7 @@ with a likelihood of 70% to EPSG:32631
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-dump\-db\-structure
|
||||
Added in version 8.1.
|
||||
New in version 8.1.
|
||||
|
||||
.sp
|
||||
Outputs the sequence of SQL statements to create a new empty valid auxiliary
|
||||
@@ -421,7 +421,7 @@ definition of the object as SQL statements will be appended.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-list\-crs [list\-crs\-filter]
|
||||
Added in version 8.1.
|
||||
New in version 8.1.
|
||||
|
||||
.sp
|
||||
Outputs a list (authority name:code and CRS name) of the filtered CRSs from the database.
|
||||
@@ -431,15 +431,15 @@ geographic,geographic_2d,geographic_3d,vertical,projected,compound.
|
||||
Affected by options \fI\%\-\-authority\fP, \fI\%\-\-area\fP, \fI\%\-\-bbox\fP and \fI\%\-\-spatial\-test\fP
|
||||
.sp
|
||||
A visual alternative is the webpage
|
||||
\X'tty: link https://crs-explorer.proj.org/?all=true'\fI\%CRS Explorer\fP\X'tty: link' .
|
||||
\fI\%CRS Explorer\fP .
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-3d
|
||||
Added in version 6.3.
|
||||
New in version 6.3.
|
||||
|
||||
.sp
|
||||
\(dqPromote\(dq 2D CRS(s) to their 3D version, where the vertical axis is the
|
||||
"Promote" 2D CRS(s) to their 3D version, where the vertical axis is the
|
||||
ellipsoidal height in metres, using the ellipsoid of the base geodetic CRS.
|
||||
Depending on PROJ versions and the exact nature of the CRS involved,
|
||||
especially before PROJ 9.1, a mix of 2D and 3D CRS could lead to 2D or 3D
|
||||
@@ -449,7 +449,7 @@ transformation to possibly happen.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-output\-id=AUTH:NAME
|
||||
Added in version 8.1.
|
||||
New in version 8.1.
|
||||
|
||||
.sp
|
||||
Identifier to assign to the object (for SQL output).
|
||||
@@ -458,7 +458,7 @@ It is strongly recommended that new objects should not be added in common
|
||||
registries, such as \fBEPSG\fP, \fBESRI\fP, \fBIAU\fP, etc.
|
||||
Users should use a custom authority name instead. If a new object should be
|
||||
added to the official EPSG registry, users are invited to follow the
|
||||
procedure explained at \X'tty: link https://epsg.org/dataset-change-requests.html'\fI\%https://epsg.org/dataset\-change\-requests.html\fP\X'tty: link'\&.
|
||||
procedure explained at \fI\%https://epsg.org/dataset\-change\-requests.html\fP\&.
|
||||
.sp
|
||||
Combined with \fI\%\-\-dump\-db\-structure\fP, users can create
|
||||
auxiliary databases, instead of directly modifying the main \fBproj.db\fP database.
|
||||
@@ -483,7 +483,7 @@ indented lines by default.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-searchpaths
|
||||
Added in version 7.0.
|
||||
New in version 7.0.
|
||||
|
||||
.sp
|
||||
Output the directories into which PROJ resources will be looked for
|
||||
@@ -493,7 +493,7 @@ that will override them.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-remote\-data
|
||||
Added in version 7.0.
|
||||
New in version 7.0.
|
||||
|
||||
.sp
|
||||
Display information regarding if \fI\%Network capabilities\fP is enabled, and the
|
||||
@@ -502,7 +502,7 @@ related URL.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-s_epoch
|
||||
Added in version 9.4.
|
||||
New in version 9.4.
|
||||
|
||||
.sp
|
||||
Epoch of coordinates in the source CRS, as decimal year.
|
||||
@@ -511,7 +511,7 @@ Only applies to a dynamic CRS.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-t_epoch
|
||||
Added in version 9.4.
|
||||
New in version 9.4.
|
||||
|
||||
.sp
|
||||
Epoch of coordinates in the target CRS, as decimal year.
|
||||
@@ -525,9 +525,11 @@ Query the CRS object corresponding to EPSG:4326
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
projinfo EPSG:4326
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -535,30 +537,32 @@ Output:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
PROJ.4 string:
|
||||
+proj=longlat +datum=WGS84 +no_defs +type=crs
|
||||
|
||||
WKT2:2019 string:
|
||||
GEOGCRS[\(dqWGS 84\(dq,
|
||||
DATUM[\(dqWorld Geodetic System 1984\(dq,
|
||||
ELLIPSOID[\(dqWGS 84\(dq,6378137,298.257223563,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]]],
|
||||
PRIMEM[\(dqGreenwich\(dq,0,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
GEOGCRS["WGS 84",
|
||||
DATUM["World Geodetic System 1984",
|
||||
ELLIPSOID["WGS 84",6378137,298.257223563,
|
||||
LENGTHUNIT["metre",1]]],
|
||||
PRIMEM["Greenwich",0,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
CS[ellipsoidal,2],
|
||||
AXIS[\(dqgeodetic latitude (Lat)\(dq,north,
|
||||
AXIS["geodetic latitude (Lat)",north,
|
||||
ORDER[1],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
AXIS[\(dqgeodetic longitude (Lon)\(dq,east,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
AXIS["geodetic longitude (Lon)",east,
|
||||
ORDER[2],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
USAGE[
|
||||
SCOPE[\(dqunknown\(dq],
|
||||
AREA[\(dqWorld\(dq],
|
||||
SCOPE["unknown"],
|
||||
AREA["World"],
|
||||
BBOX[\-90,\-180,90,180]],
|
||||
ID[\(dqEPSG\(dq,4326]]
|
||||
.EE
|
||||
ID["EPSG",4326]]
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -569,9 +573,11 @@ and NAD83 (designed with its EPSG code 4269) within an area of interest
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
projinfo \-s NAD27 \-t EPSG:4269 \-\-area \(dqUSA \- Missouri\(dq
|
||||
.EE
|
||||
.nf
|
||||
.ft C
|
||||
projinfo \-s NAD27 \-t EPSG:4269 \-\-area "USA \- Missouri"
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -579,7 +585,8 @@ Output:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
DERIVED_FROM(EPSG):1241, NAD27 to NAD83 (1), 0.15 m, USA \- CONUS including EEZ
|
||||
|
||||
PROJ string:
|
||||
@@ -588,44 +595,45 @@ PROJ string:
|
||||
+step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
|
||||
|
||||
WKT2:2019 string:
|
||||
COORDINATEOPERATION[\(dqNAD27 to NAD83 (1)\(dq,
|
||||
COORDINATEOPERATION["NAD27 to NAD83 (1)",
|
||||
SOURCECRS[
|
||||
GEOGCRS[\(dqNAD27\(dq,
|
||||
DATUM[\(dqNorth American Datum 1927\(dq,
|
||||
ELLIPSOID[\(dqClarke 1866\(dq,6378206.4,294.978698213898,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]]],
|
||||
PRIMEM[\(dqGreenwich\(dq,0,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
GEOGCRS["NAD27",
|
||||
DATUM["North American Datum 1927",
|
||||
ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
|
||||
LENGTHUNIT["metre",1]]],
|
||||
PRIMEM["Greenwich",0,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
CS[ellipsoidal,2],
|
||||
AXIS[\(dqgeodetic latitude (Lat)\(dq,north,
|
||||
AXIS["geodetic latitude (Lat)",north,
|
||||
ORDER[1],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
AXIS[\(dqgeodetic longitude (Lon)\(dq,east,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
AXIS["geodetic longitude (Lon)",east,
|
||||
ORDER[2],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]]]],
|
||||
ANGLEUNIT["degree",0.0174532925199433]]]],
|
||||
TARGETCRS[
|
||||
GEOGCRS[\(dqNAD83\(dq,
|
||||
DATUM[\(dqNorth American Datum 1983\(dq,
|
||||
ELLIPSOID[\(dqGRS 1980\(dq,6378137,298.257222101,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]]],
|
||||
PRIMEM[\(dqGreenwich\(dq,0,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
GEOGCRS["NAD83",
|
||||
DATUM["North American Datum 1983",
|
||||
ELLIPSOID["GRS 1980",6378137,298.257222101,
|
||||
LENGTHUNIT["metre",1]]],
|
||||
PRIMEM["Greenwich",0,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
CS[ellipsoidal,2],
|
||||
AXIS[\(dqgeodetic latitude (Lat)\(dq,north,
|
||||
AXIS["geodetic latitude (Lat)",north,
|
||||
ORDER[1],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
AXIS[\(dqgeodetic longitude (Lon)\(dq,east,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
AXIS["geodetic longitude (Lon)",east,
|
||||
ORDER[2],
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]]]],
|
||||
METHOD[\(dqCTABLE2\(dq],
|
||||
PARAMETERFILE[\(dqLatitude and longitude difference file\(dq,\(dqconus\(dq],
|
||||
ANGLEUNIT["degree",0.0174532925199433]]]],
|
||||
METHOD["CTABLE2"],
|
||||
PARAMETERFILE["Latitude and longitude difference file","conus"],
|
||||
OPERATIONACCURACY[0.15],
|
||||
USAGE[
|
||||
SCOPE[\(dqunknown\(dq],
|
||||
AREA[\(dqUSA \- CONUS including EEZ\(dq],
|
||||
SCOPE["unknown"],
|
||||
AREA["USA \- CONUS including EEZ"],
|
||||
BBOX[23.81,\-129.17,49.38,\-65.69]],
|
||||
ID[\(dqDERIVED_FROM(EPSG)\(dq,1241]]
|
||||
.EE
|
||||
ID["DERIVED_FROM(EPSG)",1241]]
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -635,9 +643,11 @@ Export an object as a PROJJSON string
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
projinfo GDA94 \-o PROJJSON \-q
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -645,49 +655,51 @@ Output:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
{
|
||||
\(dqtype\(dq: \(dqGeographicCRS\(dq,
|
||||
\(dqname\(dq: \(dqGDA94\(dq,
|
||||
\(dqdatum\(dq: {
|
||||
\(dqtype\(dq: \(dqGeodeticReferenceFrame\(dq,
|
||||
\(dqname\(dq: \(dqGeocentric Datum of Australia 1994\(dq,
|
||||
\(dqellipsoid\(dq: {
|
||||
\(dqname\(dq: \(dqGRS 1980\(dq,
|
||||
\(dqsemi_major_axis\(dq: 6378137,
|
||||
\(dqinverse_flattening\(dq: 298.257222101
|
||||
"type": "GeographicCRS",
|
||||
"name": "GDA94",
|
||||
"datum": {
|
||||
"type": "GeodeticReferenceFrame",
|
||||
"name": "Geocentric Datum of Australia 1994",
|
||||
"ellipsoid": {
|
||||
"name": "GRS 1980",
|
||||
"semi_major_axis": 6378137,
|
||||
"inverse_flattening": 298.257222101
|
||||
}
|
||||
},
|
||||
\(dqcoordinate_system\(dq: {
|
||||
\(dqsubtype\(dq: \(dqellipsoidal\(dq,
|
||||
\(dqaxis\(dq: [
|
||||
"coordinate_system": {
|
||||
"subtype": "ellipsoidal",
|
||||
"axis": [
|
||||
{
|
||||
\(dqname\(dq: \(dqGeodetic latitude\(dq,
|
||||
\(dqabbreviation\(dq: \(dqLat\(dq,
|
||||
\(dqdirection\(dq: \(dqnorth\(dq,
|
||||
\(dqunit\(dq: \(dqdegree\(dq
|
||||
"name": "Geodetic latitude",
|
||||
"abbreviation": "Lat",
|
||||
"direction": "north",
|
||||
"unit": "degree"
|
||||
},
|
||||
{
|
||||
\(dqname\(dq: \(dqGeodetic longitude\(dq,
|
||||
\(dqabbreviation\(dq: \(dqLon\(dq,
|
||||
\(dqdirection\(dq: \(dqeast\(dq,
|
||||
\(dqunit\(dq: \(dqdegree\(dq
|
||||
"name": "Geodetic longitude",
|
||||
"abbreviation": "Lon",
|
||||
"direction": "east",
|
||||
"unit": "degree"
|
||||
}
|
||||
]
|
||||
},
|
||||
\(dqarea\(dq: \(dqAustralia \- GDA\(dq,
|
||||
\(dqbbox\(dq: {
|
||||
\(dqsouth_latitude\(dq: \-60.56,
|
||||
\(dqwest_longitude\(dq: 93.41,
|
||||
\(dqnorth_latitude\(dq: \-8.47,
|
||||
\(dqeast_longitude\(dq: 173.35
|
||||
"area": "Australia \- GDA",
|
||||
"bbox": {
|
||||
"south_latitude": \-60.56,
|
||||
"west_longitude": 93.41,
|
||||
"north_latitude": \-8.47,
|
||||
"east_longitude": 173.35
|
||||
},
|
||||
\(dqid\(dq: {
|
||||
\(dqauthority\(dq: \(dqEPSG\(dq,
|
||||
\(dqcode\(dq: 4283
|
||||
"id": {
|
||||
"authority": "EPSG",
|
||||
"code": 4283
|
||||
}
|
||||
}
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -697,20 +709,22 @@ Exporting the SQL statements to insert a new CRS in an auxiliary database.
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
# Get the SQL statements for a custom CRS
|
||||
projinfo \(dq+proj=merc +lat_ts=5 +datum=WGS84 +type=crs +title=my_crs\(dq \-\-output\-id HOBU:MY_CRS \-o SQL \-q > my_crs.sql
|
||||
projinfo "+proj=merc +lat_ts=5 +datum=WGS84 +type=crs +title=my_crs" \-\-output\-id HOBU:MY_CRS \-o SQL \-q > my_crs.sql
|
||||
cat my_crs.sql
|
||||
|
||||
# Initialize an auxiliary database with the schema of the reference database
|
||||
echo \(dq.schema\(dq | sqlite3 /path/to/proj.db | sqlite3 aux.db
|
||||
echo ".schema" | sqlite3 /path/to/proj.db | sqlite3 aux.db
|
||||
|
||||
# Append the content of the definition of HOBU:MY_CRS
|
||||
sqlite3 aux.db < my_crs.db
|
||||
|
||||
# Check that everything works OK
|
||||
projinfo \-\-aux\-db\-path aux.db HOBU:MY_CRS
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -718,13 +732,15 @@ or more simply:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
# Create an auxiliary database with the definition of a custom CRS.
|
||||
projinfo \(dq+proj=merc +lat_ts=5 +datum=WGS84 +type=crs +title=my_crs\(dq \-\-output\-id HOBU:MY_CRS \-\-dump\-db\-structure | sqlite3 aux.db
|
||||
projinfo "+proj=merc +lat_ts=5 +datum=WGS84 +type=crs +title=my_crs" \-\-output\-id HOBU:MY_CRS \-\-dump\-db\-structure | sqlite3 aux.db
|
||||
|
||||
# Check that everything works OK
|
||||
projinfo \-\-aux\-db\-path aux.db HOBU:MY_CRS
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -732,63 +748,67 @@ Output:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
INSERT INTO geodetic_crs VALUES(\(aqHOBU\(aq,\(aqGEODETIC_CRS_MY_CRS\(aq,\(aqunknown\(aq,\(aq\(aq,\(aqgeographic 2D\(aq,\(aqEPSG\(aq,\(aq6424\(aq,\(aqEPSG\(aq,\(aq6326\(aq,NULL,0);
|
||||
INSERT INTO usage VALUES(\(aqHOBU\(aq,\(aqUSAGE_GEODETIC_CRS_MY_CRS\(aq,\(aqgeodetic_crs\(aq,\(aqHOBU\(aq,\(aqGEODETIC_CRS_MY_CRS\(aq,\(aqPROJ\(aq,\(aqEXTENT_UNKNOWN\(aq,\(aqPROJ\(aq,\(aqSCOPE_UNKNOWN\(aq);
|
||||
INSERT INTO conversion VALUES(\(aqHOBU\(aq,\(aqCONVERSION_MY_CRS\(aq,\(aqunknown\(aq,\(aq\(aq,\(aqEPSG\(aq,\(aq9805\(aq,\(aqMercator (variant B)\(aq,\(aqEPSG\(aq,\(aq8823\(aq,\(aqLatitude of 1st standard parallel\(aq,5,\(aqEPSG\(aq,\(aq9122\(aq,\(aqEPSG\(aq,\(aq8802\(aq,\(aqLongitude of natural origin\(aq,0,\(aqEPSG\(aq,\(aq9122\(aq,\(aqEPSG\(aq,\(aq8806\(aq,\(aqFalse easting\(aq,0,\(aqEPSG\(aq,\(aq9001\(aq,\(aqEPSG\(aq,\(aq8807\(aq,\(aqFalse northing\(aq,0,\(aqEPSG\(aq,\(aq9001\(aq,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
|
||||
INSERT INTO usage VALUES(\(aqHOBU\(aq,\(aqUSAGE_CONVERSION_MY_CRS\(aq,\(aqconversion\(aq,\(aqHOBU\(aq,\(aqCONVERSION_MY_CRS\(aq,\(aqPROJ\(aq,\(aqEXTENT_UNKNOWN\(aq,\(aqPROJ\(aq,\(aqSCOPE_UNKNOWN\(aq);
|
||||
INSERT INTO projected_crs VALUES(\(aqHOBU\(aq,\(aqMY_CRS\(aq,\(aqmy_crs\(aq,\(aq\(aq,\(aqEPSG\(aq,\(aq4400\(aq,\(aqHOBU\(aq,\(aqGEODETIC_CRS_MY_CRS\(aq,\(aqHOBU\(aq,\(aqCONVERSION_MY_CRS\(aq,NULL,0);
|
||||
INSERT INTO usage VALUES(\(aqHOBU\(aq,\(aqUSAGE_PROJECTED_CRS_MY_CRS\(aq,\(aqprojected_crs\(aq,\(aqHOBU\(aq,\(aqMY_CRS\(aq,\(aqPROJ\(aq,\(aqEXTENT_UNKNOWN\(aq,\(aqPROJ\(aq,\(aqSCOPE_UNKNOWN\(aq);
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
PROJ.4 string:
|
||||
+proj=merc +lat_ts=5 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs
|
||||
|
||||
WKT2:2019 string:
|
||||
PROJCRS[\(dqmy_crs\(dq,
|
||||
BASEGEOGCRS[\(dqunknown\(dq,
|
||||
ENSEMBLE[\(dqWorld Geodetic System 1984 ensemble\(dq,
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (Transit)\(dq],
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (G730)\(dq],
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (G873)\(dq],
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (G1150)\(dq],
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (G1674)\(dq],
|
||||
MEMBER[\(dqWorld Geodetic System 1984 (G1762)\(dq],
|
||||
ELLIPSOID[\(dqWGS 84\(dq,6378137,298.257223563,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]],
|
||||
PROJCRS["my_crs",
|
||||
BASEGEOGCRS["unknown",
|
||||
ENSEMBLE["World Geodetic System 1984 ensemble",
|
||||
MEMBER["World Geodetic System 1984 (Transit)"],
|
||||
MEMBER["World Geodetic System 1984 (G730)"],
|
||||
MEMBER["World Geodetic System 1984 (G873)"],
|
||||
MEMBER["World Geodetic System 1984 (G1150)"],
|
||||
MEMBER["World Geodetic System 1984 (G1674)"],
|
||||
MEMBER["World Geodetic System 1984 (G1762)"],
|
||||
ELLIPSOID["WGS 84",6378137,298.257223563,
|
||||
LENGTHUNIT["metre",1]],
|
||||
ENSEMBLEACCURACY[2.0]],
|
||||
PRIMEM[\(dqGreenwich\(dq,0,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433]],
|
||||
ID[\(dqHOBU\(dq,\(dqGEODETIC_CRS_MY_CRS\(dq]],
|
||||
CONVERSION[\(dqunknown\(dq,
|
||||
METHOD[\(dqMercator (variant B)\(dq,
|
||||
ID[\(dqEPSG\(dq,9805]],
|
||||
PARAMETER[\(dqLatitude of 1st standard parallel\(dq,5,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433],
|
||||
ID[\(dqEPSG\(dq,8823]],
|
||||
PARAMETER[\(dqLongitude of natural origin\(dq,0,
|
||||
ANGLEUNIT[\(dqdegree\(dq,0.0174532925199433],
|
||||
ID[\(dqEPSG\(dq,8802]],
|
||||
PARAMETER[\(dqFalse easting\(dq,0,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1],
|
||||
ID[\(dqEPSG\(dq,8806]],
|
||||
PARAMETER[\(dqFalse northing\(dq,0,
|
||||
LENGTHUNIT[\(dqmetre\(dq,1],
|
||||
ID[\(dqEPSG\(dq,8807]]],
|
||||
PRIMEM["Greenwich",0,
|
||||
ANGLEUNIT["degree",0.0174532925199433]],
|
||||
ID["HOBU","GEODETIC_CRS_MY_CRS"]],
|
||||
CONVERSION["unknown",
|
||||
METHOD["Mercator (variant B)",
|
||||
ID["EPSG",9805]],
|
||||
PARAMETER["Latitude of 1st standard parallel",5,
|
||||
ANGLEUNIT["degree",0.0174532925199433],
|
||||
ID["EPSG",8823]],
|
||||
PARAMETER["Longitude of natural origin",0,
|
||||
ANGLEUNIT["degree",0.0174532925199433],
|
||||
ID["EPSG",8802]],
|
||||
PARAMETER["False easting",0,
|
||||
LENGTHUNIT["metre",1],
|
||||
ID["EPSG",8806]],
|
||||
PARAMETER["False northing",0,
|
||||
LENGTHUNIT["metre",1],
|
||||
ID["EPSG",8807]]],
|
||||
CS[Cartesian,2],
|
||||
AXIS[\(dq(E)\(dq,east,
|
||||
AXIS["(E)",east,
|
||||
ORDER[1],
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]],
|
||||
AXIS[\(dq(N)\(dq,north,
|
||||
LENGTHUNIT["metre",1]],
|
||||
AXIS["(N)",north,
|
||||
ORDER[2],
|
||||
LENGTHUNIT[\(dqmetre\(dq,1]],
|
||||
ID[\(dqHOBU\(dq,\(dqMY_CRS\(dq]]
|
||||
.EE
|
||||
LENGTHUNIT["metre",1]],
|
||||
ID["HOBU","MY_CRS"]]
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -798,9 +818,11 @@ Get the WKT representation of EPSG:25832 in the WKT1:GDAL output format and on a
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
projinfo \-o WKT1:GDAL \-\-single\-line EPSG:25832
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
@@ -808,10 +830,12 @@ Output:
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
WKT1:GDAL string:
|
||||
PROJCS[\(dqETRS89 / UTM zone 32N\(dq,GEOGCS[\(dqETRS89\(dq,DATUM[\(dqEuropean_Terrestrial_Reference_System_1989\(dq,SPHEROID[\(dqGRS 1980\(dq,6378137,298.257222101,AUTHORITY[\(dqEPSG\(dq,\(dq7019\(dq]],AUTHORITY[\(dqEPSG\(dq,\(dq6258\(dq]],PRIMEM[\(dqGreenwich\(dq,0,AUTHORITY[\(dqEPSG\(dq,\(dq8901\(dq]],UNIT[\(dqdegree\(dq,0.0174532925199433,AUTHORITY[\(dqEPSG\(dq,\(dq9122\(dq]],AUTHORITY[\(dqEPSG\(dq,\(dq4258\(dq]],PROJECTION[\(dqTransverse_Mercator\(dq],PARAMETER[\(dqlatitude_of_origin\(dq,0],PARAMETER[\(dqcentral_meridian\(dq,9],PARAMETER[\(dqscale_factor\(dq,0.9996],PARAMETER[\(dqfalse_easting\(dq,500000],PARAMETER[\(dqfalse_northing\(dq,0],UNIT[\(dqmetre\(dq,1,AUTHORITY[\(dqEPSG\(dq,\(dq9001\(dq]],AXIS[\(dqEasting\(dq,EAST],AXIS[\(dqNorthing\(dq,NORTH],AUTHORITY[\(dqEPSG\(dq,\(dq25832\(dq]]
|
||||
.EE
|
||||
PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","25832"]]
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH SEE ALSO
|
||||
@@ -819,11 +843,11 @@ PROJCS[\(dqETRS89 / UTM zone 32N\(dq,GEOGCS[\(dqETRS89\(dq,DATUM[\(dqEuropean_Te
|
||||
\fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBproj(1)\fP, \fBprojsync(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Even Rouault
|
||||
.SH COPYRIGHT
|
||||
|
||||
+14
-10
@@ -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" "08 Sep 2025" "9.6" "PROJ"
|
||||
.TH "PROJSYNC" "1" "01 Dec 2025" "9.7" "PROJ"
|
||||
.SH NAME
|
||||
projsync \- Downloading tool of resource files
|
||||
.SH SYNOPSIS
|
||||
@@ -145,7 +145,7 @@ Quiet mode
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-verbose
|
||||
Added in version 8.1.
|
||||
New in version 8.1.
|
||||
|
||||
.sp
|
||||
Verbose mode (more than default)
|
||||
@@ -163,7 +163,7 @@ List file names, with the source_id and area_of_use properties.
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-\-no\-version\-filtering
|
||||
Added in version 8.1.
|
||||
New in version 8.1.
|
||||
|
||||
.sp
|
||||
By default, projsync only downloads files that are compatible of
|
||||
@@ -186,9 +186,11 @@ Download all resource files
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
projsync \-\-all
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
@@ -198,9 +200,11 @@ Download resource files covering specified point and attributed to an agency
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.EX
|
||||
.nf
|
||||
.ft C
|
||||
projsync \-\-source\-id fr_ign \-\-bbox 2,49,2,49
|
||||
.EE
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH SEE ALSO
|
||||
@@ -208,13 +212,13 @@ projsync \-\-source\-id fr_ign \-\-bbox 2,49,2,49
|
||||
\fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBproj(1)\fP, \fBprojinfo(1)\fP
|
||||
.SH BUGS
|
||||
.sp
|
||||
A list of known bugs can be found at \X'tty: link https://github.com/OSGeo/PROJ/issues'\fI\%https://github.com/OSGeo/PROJ/issues\fP\X'tty: link'
|
||||
A list of known bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
|
||||
where new bug reports can be submitted to.
|
||||
Bugs specific to resource files should be submitted to
|
||||
\X'tty: link https://github.com/OSGeo/PROJ-data/issues'\fI\%https://github.com/OSGeo/PROJ\-data/issues\fP\X'tty: link'
|
||||
\fI\%https://github.com/OSGeo/PROJ\-data/issues\fP
|
||||
.SH HOME PAGE
|
||||
.sp
|
||||
\X'tty: link https://proj.org/'\fI\%https://proj.org/\fP\X'tty: link'
|
||||
\fI\%https://proj.org/\fP
|
||||
.SH AUTHOR
|
||||
Even Rouault
|
||||
.SH COPYRIGHT
|
||||
|
||||
@@ -178,7 +178,9 @@ double proj_strtod(const char *str, char **endptr) {
|
||||
if ((0 == *p) || nullptr == strchr("0123456789eE.", *p) || isspace(*p)) {
|
||||
if (endptr)
|
||||
*endptr = const_cast<char *>(p);
|
||||
return sign == -1 ? -0 : 0;
|
||||
if (sign == -1)
|
||||
return -number;
|
||||
return number;
|
||||
}
|
||||
|
||||
/* Now expect a (potentially zero-length) string of digits */
|
||||
|
||||
+64
-7
@@ -346,7 +346,7 @@ static BaseObjectNNPtr buildObject(
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (dbContext && !kind.empty() && kind != "crs" &&
|
||||
} else if (dbContext && !kind.empty() && kind != "crs_preferred" &&
|
||||
l_user_string.find(':') == std::string::npos) {
|
||||
std::vector<AuthorityFactory::ObjectType> allowedTypes;
|
||||
if (kind == "operation")
|
||||
@@ -360,6 +360,8 @@ static BaseObjectNNPtr buildObject(
|
||||
else if (kind == "ensemble")
|
||||
allowedTypes.push_back(
|
||||
AuthorityFactory::ObjectType::DATUM_ENSEMBLE);
|
||||
else if (kind == "crs")
|
||||
allowedTypes.push_back(AuthorityFactory::ObjectType::CRS);
|
||||
constexpr size_t limitResultCount = 10;
|
||||
auto factory = AuthorityFactory::create(NN_NO_CHECK(dbContext),
|
||||
std::string());
|
||||
@@ -406,6 +408,61 @@ static BaseObjectNNPtr buildObject(
|
||||
} else {
|
||||
obj =
|
||||
createFromUserInput(l_user_string, dbContext).as_nullable();
|
||||
if (kind == "crs_preferred" &&
|
||||
dynamic_cast<CRS *>(obj.get()) == nullptr) {
|
||||
auto factory = AuthorityFactory::create(
|
||||
NN_NO_CHECK(dbContext), std::string());
|
||||
auto res = factory->createObjectsFromName(
|
||||
l_user_string, {AuthorityFactory::ObjectType::CRS},
|
||||
/* approximateMatch = */ false,
|
||||
/* limitResultCount = */ 2);
|
||||
if (res.size() == 1) {
|
||||
obj = res.front().as_nullable();
|
||||
} else if (res.empty()) {
|
||||
res = factory->createObjectsFromName(
|
||||
l_user_string, {AuthorityFactory::ObjectType::CRS},
|
||||
/* approximateMatch = */ true,
|
||||
/* limitResultCount = */ 2);
|
||||
if (res.size() == 1) {
|
||||
obj = res.front().as_nullable();
|
||||
} else {
|
||||
bool severalCandidates = false;
|
||||
BaseObjectPtr objCandidate;
|
||||
for (const auto &l_obj : res) {
|
||||
if (Identifier::isEquivalentName(
|
||||
l_obj->nameStr().c_str(),
|
||||
l_user_string.c_str())) {
|
||||
if (objCandidate) {
|
||||
severalCandidates = true;
|
||||
break;
|
||||
} else {
|
||||
objCandidate = l_obj.as_nullable();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (severalCandidates) {
|
||||
std::string msg(
|
||||
"several objects matching this name: ");
|
||||
bool first = true;
|
||||
for (const auto &l_obj : res) {
|
||||
if (msg.size() > 200) {
|
||||
msg += ", ...";
|
||||
break;
|
||||
}
|
||||
if (!first) {
|
||||
msg += ", ";
|
||||
}
|
||||
first = false;
|
||||
msg += l_obj->nameStr();
|
||||
}
|
||||
std::cerr << context << ": " << msg
|
||||
<< std::endl;
|
||||
std::exit(1);
|
||||
} else if (objCandidate)
|
||||
obj = objCandidate;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
@@ -880,9 +937,9 @@ static void outputOperations(
|
||||
bool showSuperseded, bool promoteTo3D, bool normalizeAxisOrder,
|
||||
double minimumAccuracy, const OutputOptions &outputOpt, bool summary) {
|
||||
auto sourceObj = buildObject(
|
||||
dbContext, sourceCRSStr, sourceEpoch, "crs", "source CRS", false,
|
||||
CoordinateOperationContext::IntermediateCRSUse::NEVER, promoteTo3D,
|
||||
normalizeAxisOrder, outputOpt.quiet);
|
||||
dbContext, sourceCRSStr, sourceEpoch, "crs_preferred", "source CRS",
|
||||
false, CoordinateOperationContext::IntermediateCRSUse::NEVER,
|
||||
promoteTo3D, normalizeAxisOrder, outputOpt.quiet);
|
||||
auto sourceCRS = nn_dynamic_pointer_cast<CRS>(sourceObj);
|
||||
CoordinateMetadataPtr sourceCoordinateMetadata;
|
||||
if (!sourceCRS) {
|
||||
@@ -901,9 +958,9 @@ static void outputOperations(
|
||||
}
|
||||
|
||||
auto targetObj = buildObject(
|
||||
dbContext, targetCRSStr, targetEpoch, "crs", "target CRS", false,
|
||||
CoordinateOperationContext::IntermediateCRSUse::NEVER, promoteTo3D,
|
||||
normalizeAxisOrder, outputOpt.quiet);
|
||||
dbContext, targetCRSStr, targetEpoch, "crs_preferred", "target CRS",
|
||||
false, CoordinateOperationContext::IntermediateCRSUse::NEVER,
|
||||
promoteTo3D, normalizeAxisOrder, outputOpt.quiet);
|
||||
auto targetCRS = nn_dynamic_pointer_cast<CRS>(targetObj);
|
||||
CoordinateMetadataPtr targetCoordinateMetadata;
|
||||
if (!targetCRS) {
|
||||
|
||||
@@ -557,12 +557,14 @@ PJ *proj_clone(PJ_CONTEXT *ctx, const PJ *obj) {
|
||||
newPj->descr = "Set of coordinate operations";
|
||||
newPj->ctx = ctx;
|
||||
newPj->copyStateFrom(*obj);
|
||||
ctx->forceOver = obj->over != 0;
|
||||
const int old_debug_level = ctx->debug_level;
|
||||
ctx->debug_level = PJ_LOG_NONE;
|
||||
for (const auto &altOp : obj->alternativeCoordinateOperations) {
|
||||
newPj->alternativeCoordinateOperations.emplace_back(
|
||||
PJCoordOperation(ctx, altOp));
|
||||
}
|
||||
ctx->forceOver = false;
|
||||
ctx->debug_level = old_debug_level;
|
||||
}
|
||||
return newPj;
|
||||
@@ -570,7 +572,9 @@ PJ *proj_clone(PJ_CONTEXT *ctx, const PJ *obj) {
|
||||
return nullptr;
|
||||
}
|
||||
try {
|
||||
ctx->forceOver = obj->over != 0;
|
||||
PJ *newPj = pj_obj_create(ctx, NN_NO_CHECK(obj->iso_obj));
|
||||
ctx->forceOver = false;
|
||||
if (newPj) {
|
||||
newPj->copyStateFrom(*obj);
|
||||
}
|
||||
|
||||
+94
-11
@@ -2250,9 +2250,15 @@ void GeodeticCRS::_exportToWKT(io::WKTFormatter *formatter) const {
|
||||
}
|
||||
}
|
||||
if (l_esri_name.empty()) {
|
||||
l_esri_name = io::WKTFormatter::morphNameToESRI(l_name);
|
||||
if (!starts_with(l_esri_name, "GCS_")) {
|
||||
l_esri_name = "GCS_" + l_esri_name;
|
||||
// For now, there's no ESRI alias for this CRS. Fallback to
|
||||
// ETRS89
|
||||
if (l_name == "ETRS89-NOR [EUREF89]") {
|
||||
l_esri_name = "GCS_ETRS_1989";
|
||||
} else {
|
||||
l_esri_name = io::WKTFormatter::morphNameToESRI(l_name);
|
||||
if (!starts_with(l_esri_name, "GCS_")) {
|
||||
l_esri_name = "GCS_" + l_esri_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3169,10 +3175,10 @@ bool GeographicCRS::_isEquivalentTo(
|
||||
}
|
||||
|
||||
const auto standardCriterion = getStandardCriterion(criterion);
|
||||
const auto otherGeogCRS = dynamic_cast<const GeographicCRS *>(other);
|
||||
if (GeodeticCRS::_isEquivalentToNoTypeCheck(other, standardCriterion,
|
||||
dbContext)) {
|
||||
// Make sure GeoPackage "Undefined geographic SRS" != EPSG:4326
|
||||
const auto otherGeogCRS = dynamic_cast<const GeographicCRS *>(other);
|
||||
if ((nameStr() == "Undefined geographic SRS" ||
|
||||
otherGeogCRS->nameStr() == "Undefined geographic SRS") &&
|
||||
otherGeogCRS->nameStr() != nameStr()) {
|
||||
@@ -3180,6 +3186,39 @@ bool GeographicCRS::_isEquivalentTo(
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// In EPSG v12.025, Norway projected systems based on ETRS89 (EPSG:4258)
|
||||
// have swiched to use ETRS89-NOR [EUREF89] (EPSG:10875). There's no way
|
||||
// from the current content of the database to infer both CRS are equivalent
|
||||
if (criterion != util::IComparable::Criterion::STRICT) {
|
||||
if (((nameStr() == "ETRS89" &&
|
||||
otherGeogCRS->nameStr() == "ETRS89-NOR [EUREF89]") ||
|
||||
(nameStr() == "ETRS89-NOR [EUREF89]" &&
|
||||
otherGeogCRS->nameStr() == "ETRS89")) &&
|
||||
ellipsoid()->_isEquivalentTo(otherGeogCRS->ellipsoid().get(),
|
||||
criterion) &&
|
||||
datumNonNull(dbContext)->primeMeridian()->_isEquivalentTo(
|
||||
otherGeogCRS->datumNonNull(dbContext)->primeMeridian().get(),
|
||||
criterion)) {
|
||||
auto thisCS = coordinateSystem();
|
||||
auto otherCS = otherGeogCRS->coordinateSystem();
|
||||
if (thisCS->_isEquivalentTo(otherCS.get(), criterion)) {
|
||||
return true;
|
||||
} else if (criterion == util::IComparable::Criterion::
|
||||
EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS) {
|
||||
const auto &otherAxisList = otherCS->axisList();
|
||||
return thisCS->axisList().size() == 2 &&
|
||||
otherAxisList.size() == 2 &&
|
||||
thisCS->_isEquivalentTo(
|
||||
cs::EllipsoidalCS::create(util::PropertyMap(),
|
||||
otherAxisList[1],
|
||||
otherAxisList[0])
|
||||
.get(),
|
||||
criterion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (criterion !=
|
||||
util::IComparable::Criterion::EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS) {
|
||||
return false;
|
||||
@@ -6238,13 +6277,57 @@ BoundCRS::_identify(const io::AuthorityFactoryPtr &authorityFactory) const {
|
||||
refTransf.get(),
|
||||
util::IComparable::Criterion::EQUIVALENT,
|
||||
dbContext)) {
|
||||
resMatchOfTransfToWGS84.emplace_back(
|
||||
create(candidateBaseCRS, d->hubCRS_,
|
||||
NN_NO_CHECK(util::nn_dynamic_pointer_cast<
|
||||
operation::Transformation>(op))),
|
||||
pair.second);
|
||||
foundOp = true;
|
||||
break;
|
||||
auto transf = util::nn_dynamic_pointer_cast<
|
||||
operation::Transformation>(op);
|
||||
if (transf) {
|
||||
resMatchOfTransfToWGS84.emplace_back(
|
||||
create(candidateBaseCRS, d->hubCRS_,
|
||||
NN_NO_CHECK(transf)),
|
||||
pair.second);
|
||||
foundOp = true;
|
||||
break;
|
||||
} else {
|
||||
auto concatenated = dynamic_cast<
|
||||
const operation::ConcatenatedOperation *>(
|
||||
op.get());
|
||||
if (concatenated) {
|
||||
// Case for EPSG:4807 / "NTF (Paris)" that is
|
||||
// made of a longitude rotation followed by a
|
||||
// Helmert The prime meridian shift will be
|
||||
// accounted elsewhere
|
||||
const auto &subops = concatenated->operations();
|
||||
if (subops.size() == 2) {
|
||||
auto firstOpIsTransformation = dynamic_cast<
|
||||
const operation::Transformation *>(
|
||||
subops[0].get());
|
||||
auto firstOpIsConversion = dynamic_cast<
|
||||
const operation::Conversion *>(
|
||||
subops[0].get());
|
||||
if ((firstOpIsTransformation &&
|
||||
firstOpIsTransformation
|
||||
->isLongitudeRotation()) ||
|
||||
(dynamic_cast<DerivedCRS *>(
|
||||
candidateBaseCRS.get()) &&
|
||||
firstOpIsConversion)) {
|
||||
transf = util::nn_dynamic_pointer_cast<
|
||||
operation::Transformation>(
|
||||
subops[1]);
|
||||
if (transf &&
|
||||
!starts_with(transf->nameStr(),
|
||||
"Ballpark geo")) {
|
||||
resMatchOfTransfToWGS84
|
||||
.emplace_back(
|
||||
create(candidateBaseCRS,
|
||||
d->hubCRS_,
|
||||
NN_NO_CHECK(transf)),
|
||||
pair.second);
|
||||
foundOp = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!foundOp) {
|
||||
|
||||
@@ -1398,9 +1398,15 @@ void GeodeticReferenceFrame::_exportToWKT(
|
||||
.size() == 1;
|
||||
}
|
||||
if (!aliasFound) {
|
||||
l_name = io::WKTFormatter::morphNameToESRI(l_name);
|
||||
if (!starts_with(l_name, "D_")) {
|
||||
l_name = "D_" + l_name;
|
||||
// For now, there's no ESRI alias for this CRS. Fallback to
|
||||
// ETRS89
|
||||
if (l_name == "ETRS89-NOR [EUREF89]") {
|
||||
l_name = "D_ETRS_1989";
|
||||
} else {
|
||||
l_name = io::WKTFormatter::morphNameToESRI(l_name);
|
||||
if (!starts_with(l_name, "D_")) {
|
||||
l_name = "D_" + l_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+133
-56
@@ -2546,6 +2546,8 @@ WKTParser::Private::buildDatumEnsemble(const WKTNodeNNPtr &node,
|
||||
ThrowMissing(WKTConstants::ELLIPSOID);
|
||||
}
|
||||
|
||||
auto properties = buildProperties(node);
|
||||
|
||||
std::vector<DatumNNPtr> datums;
|
||||
for (const auto &subNode : nodeP->children()) {
|
||||
if (ci_equal(subNode->GP()->value(), WKTConstants::MEMBER)) {
|
||||
@@ -2565,6 +2567,31 @@ WKTParser::Private::buildDatumEnsemble(const WKTNodeNNPtr &node,
|
||||
}
|
||||
}
|
||||
|
||||
if (datums.empty() && !nodeP->children().empty()) {
|
||||
auto name = stripQuotes(nodeP->children()[0]);
|
||||
if (dbContext_) {
|
||||
auto authFactory = AuthorityFactory::create(NN_NO_CHECK(dbContext_),
|
||||
std::string());
|
||||
auto res = authFactory->createObjectsFromName(
|
||||
name, {AuthorityFactory::ObjectType::DATUM_ENSEMBLE}, true, 1);
|
||||
if (res.size() == 1) {
|
||||
auto datumEnsemble =
|
||||
dynamic_cast<const DatumEnsemble *>(res.front().get());
|
||||
if (datumEnsemble) {
|
||||
datums = datumEnsemble->datums();
|
||||
}
|
||||
} else {
|
||||
throw ParsingException(
|
||||
"No entry for datum ensemble '" + name +
|
||||
"' in database, and no explicit member specified");
|
||||
}
|
||||
} else {
|
||||
throw ParsingException("Datum ensemble '" + name +
|
||||
"' has no explicit member specified and no "
|
||||
"connection to database");
|
||||
}
|
||||
}
|
||||
|
||||
auto &accuracyNode = nodeP->lookForChild(WKTConstants::ENSEMBLEACCURACY);
|
||||
auto &accuracyNodeChildren = accuracyNode->GP()->children();
|
||||
if (accuracyNodeChildren.empty()) {
|
||||
@@ -2574,7 +2601,7 @@ WKTParser::Private::buildDatumEnsemble(const WKTNodeNNPtr &node,
|
||||
PositionalAccuracy::create(accuracyNodeChildren[0]->GP()->value());
|
||||
|
||||
try {
|
||||
return DatumEnsemble::create(buildProperties(node), datums, accuracy);
|
||||
return DatumEnsemble::create(properties, datums, accuracy);
|
||||
} catch (const util::Exception &e) {
|
||||
throw buildRethrow(__FUNCTION__, e);
|
||||
}
|
||||
@@ -4549,7 +4576,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) {
|
||||
ThrowMissing(WKTConstants::CS_);
|
||||
}
|
||||
|
||||
const std::string projCRSName = stripQuotes(nodeP->children()[0]);
|
||||
std::string projCRSName = stripQuotes(nodeP->children()[0]);
|
||||
|
||||
auto cs = [this, &projCRSName, &nodeP, &csNode, &node, &nodeValue,
|
||||
&conversionNode]() -> CoordinateSystemNNPtr {
|
||||
@@ -4654,6 +4681,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) {
|
||||
}
|
||||
}
|
||||
|
||||
projCRSName = officialName;
|
||||
props.set(IdentifiedObject::NAME_KEY, officialName);
|
||||
}
|
||||
}
|
||||
@@ -4764,6 +4792,27 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) {
|
||||
ThrowNotExpectedCSType(CartesianCS::WKT2_TYPE);
|
||||
}
|
||||
|
||||
// In EPSG v12.025, Norway projected systems based on ETRS89 (EPSG:4258)
|
||||
// have swiched to use ETRS89-NOR [EUREF89] (EPSG:10875). There's no way
|
||||
// from the current content of the database to infer both CRS are equivalent
|
||||
if (starts_with(projCRSName, "ETRS89 / NTM zone")) {
|
||||
projCRSName = "ETRS89-NOR [EUREF89] / NTM zone" +
|
||||
projCRSName.substr(strlen("ETRS89 / NTM zone"));
|
||||
props.set(IdentifiedObject::NAME_KEY, projCRSName);
|
||||
}
|
||||
if (dbContext_ &&
|
||||
starts_with(projCRSName, "ETRS89-NOR [EUREF89] / NTM zone") &&
|
||||
baseGeodCRS->nameStr() == "ETRS89" &&
|
||||
util::isOfExactType<GeographicCRS>(*(baseGeodCRS.get())) &&
|
||||
baseGeodCRS->coordinateSystem()->axisList().size() == 2) {
|
||||
auto factoryCRS_EPSG =
|
||||
AuthorityFactory::create(NN_NO_CHECK(dbContext_), Identifier::EPSG);
|
||||
try {
|
||||
baseGeodCRS = factoryCRS_EPSG->createGeodeticCRS("10875");
|
||||
} catch (const std::exception &) {
|
||||
}
|
||||
}
|
||||
|
||||
if (cartesianCS->axisList().size() == 3 &&
|
||||
baseGeodCRS->coordinateSystem()->axisList().size() == 2) {
|
||||
baseGeodCRS = NN_NO_CHECK(util::nn_dynamic_pointer_cast<GeodeticCRS>(
|
||||
@@ -7082,70 +7131,98 @@ CoordinateSystemNNPtr JSONParser::buildCS(const json &j) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
DatumEnsembleNNPtr JSONParser::buildDatumEnsemble(const json &j) {
|
||||
auto membersJ = getArray(j, "members");
|
||||
std::vector<DatumNNPtr> datums;
|
||||
const bool hasEllipsoid(j.contains("ellipsoid"));
|
||||
for (const auto &memberJ : membersJ) {
|
||||
if (!memberJ.is_object()) {
|
||||
throw ParsingException(
|
||||
"Unexpected type for value of a \"members\" member");
|
||||
}
|
||||
auto datumName(getName(memberJ));
|
||||
bool datumAdded = false;
|
||||
if (dbContext_ && memberJ.contains("id")) {
|
||||
auto id = getObject(memberJ, "id");
|
||||
auto authority = getString(id, "authority");
|
||||
auto authFactory =
|
||||
AuthorityFactory::create(NN_NO_CHECK(dbContext_), authority);
|
||||
auto code = id["code"];
|
||||
std::string codeStr;
|
||||
if (code.is_string()) {
|
||||
codeStr = code.get<std::string>();
|
||||
} else if (code.is_number_integer()) {
|
||||
codeStr = internal::toString(code.get<int>());
|
||||
} else {
|
||||
throw ParsingException("Unexpected type for value of \"code\"");
|
||||
if (j.contains("members")) {
|
||||
auto membersJ = getArray(j, "members");
|
||||
const bool hasEllipsoid(j.contains("ellipsoid"));
|
||||
for (const auto &memberJ : membersJ) {
|
||||
if (!memberJ.is_object()) {
|
||||
throw ParsingException(
|
||||
"Unexpected type for value of a \"members\" member");
|
||||
}
|
||||
try {
|
||||
datums.push_back(authFactory->createDatum(codeStr));
|
||||
datumAdded = true;
|
||||
} catch (const std::exception &) {
|
||||
// Silently ignore, as this isn't necessary an error.
|
||||
// If an older PROJ version parses a DatumEnsemble object of
|
||||
// a more recent PROJ version where the datum ensemble got
|
||||
// a new member, it might be unknown from the older PROJ.
|
||||
auto datumName(getName(memberJ));
|
||||
bool datumAdded = false;
|
||||
if (dbContext_ && memberJ.contains("id")) {
|
||||
auto id = getObject(memberJ, "id");
|
||||
auto authority = getString(id, "authority");
|
||||
auto authFactory = AuthorityFactory::create(
|
||||
NN_NO_CHECK(dbContext_), authority);
|
||||
auto code = id["code"];
|
||||
std::string codeStr;
|
||||
if (code.is_string()) {
|
||||
codeStr = code.get<std::string>();
|
||||
} else if (code.is_number_integer()) {
|
||||
codeStr = internal::toString(code.get<int>());
|
||||
} else {
|
||||
throw ParsingException(
|
||||
"Unexpected type for value of \"code\"");
|
||||
}
|
||||
try {
|
||||
datums.push_back(authFactory->createDatum(codeStr));
|
||||
datumAdded = true;
|
||||
} catch (const std::exception &) {
|
||||
// Silently ignore, as this isn't necessary an error.
|
||||
// If an older PROJ version parses a DatumEnsemble object of
|
||||
// a more recent PROJ version where the datum ensemble got
|
||||
// a new member, it might be unknown from the older PROJ.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (dbContext_ && !datumAdded) {
|
||||
if (dbContext_ && !datumAdded) {
|
||||
auto authFactory = AuthorityFactory::create(
|
||||
NN_NO_CHECK(dbContext_), std::string());
|
||||
auto list = authFactory->createObjectsFromName(
|
||||
datumName, {AuthorityFactory::ObjectType::DATUM},
|
||||
false /* approximate=false*/);
|
||||
if (!list.empty()) {
|
||||
auto datum =
|
||||
util::nn_dynamic_pointer_cast<Datum>(list.front());
|
||||
if (!datum)
|
||||
throw ParsingException(
|
||||
"DatumEnsemble member is not a datum");
|
||||
datums.push_back(NN_NO_CHECK(datum));
|
||||
datumAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!datumAdded) {
|
||||
// Fallback if no db match
|
||||
if (hasEllipsoid) {
|
||||
datums.emplace_back(GeodeticReferenceFrame::create(
|
||||
buildProperties(memberJ),
|
||||
buildEllipsoid(getObject(j, "ellipsoid")),
|
||||
optional<std::string>(), PrimeMeridian::GREENWICH));
|
||||
} else {
|
||||
datums.emplace_back(VerticalReferenceFrame::create(
|
||||
buildProperties(memberJ)));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
auto name = getString(j, "name");
|
||||
if (dbContext_) {
|
||||
auto authFactory = AuthorityFactory::create(NN_NO_CHECK(dbContext_),
|
||||
std::string());
|
||||
auto list = authFactory->createObjectsFromName(
|
||||
datumName, {AuthorityFactory::ObjectType::DATUM},
|
||||
false /* approximate=false*/);
|
||||
if (!list.empty()) {
|
||||
auto datum = util::nn_dynamic_pointer_cast<Datum>(list.front());
|
||||
if (!datum)
|
||||
throw ParsingException(
|
||||
"DatumEnsemble member is not a datum");
|
||||
datums.push_back(NN_NO_CHECK(datum));
|
||||
datumAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!datumAdded) {
|
||||
// Fallback if no db match
|
||||
if (hasEllipsoid) {
|
||||
datums.emplace_back(GeodeticReferenceFrame::create(
|
||||
buildProperties(memberJ),
|
||||
buildEllipsoid(getObject(j, "ellipsoid")),
|
||||
optional<std::string>(), PrimeMeridian::GREENWICH));
|
||||
auto res = authFactory->createObjectsFromName(
|
||||
name, {AuthorityFactory::ObjectType::DATUM_ENSEMBLE}, true, 1);
|
||||
if (res.size() == 1) {
|
||||
auto datumEnsemble =
|
||||
dynamic_cast<const DatumEnsemble *>(res.front().get());
|
||||
if (datumEnsemble) {
|
||||
datums = datumEnsemble->datums();
|
||||
}
|
||||
} else {
|
||||
datums.emplace_back(
|
||||
VerticalReferenceFrame::create(buildProperties(memberJ)));
|
||||
throw ParsingException(
|
||||
"No entry for datum ensemble '" + name +
|
||||
"' in database, and no explicit member specified");
|
||||
}
|
||||
} else {
|
||||
throw ParsingException("Datum ensemble '" + name +
|
||||
"' has no explicit member specified and no "
|
||||
"connection to database");
|
||||
}
|
||||
}
|
||||
|
||||
return DatumEnsemble::create(
|
||||
buildProperties(j), datums,
|
||||
PositionalAccuracy::create(getString(j, "accuracy")));
|
||||
|
||||
@@ -3714,7 +3714,8 @@ CoordinateOperationFactory::Private::createOperations(
|
||||
}
|
||||
|
||||
if (dynamic_cast<const crs::EngineeringCRS *>(sourceCRS.get()) &&
|
||||
sourceCRS->_isEquivalentTo(targetCRS.get())) {
|
||||
sourceCRS->_isEquivalentTo(targetCRS.get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
std::string name("Identity transformation from ");
|
||||
name += sourceCRS->nameStr();
|
||||
name += " to ";
|
||||
@@ -3845,7 +3846,9 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase(
|
||||
if (pmoDst.size() == pmoSrc.size()) {
|
||||
bool ok = true;
|
||||
for (size_t i = 0; i < pmoSrc.size(); ++i) {
|
||||
if (pmoSrc[i]->_isEquivalentTo(pmoDst[i].get())) {
|
||||
if (pmoSrc[i]->_isEquivalentTo(
|
||||
pmoDst[i].get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
auto pmo = pmoSrc[i]->cloneWithEpochs(*sourceEpoch,
|
||||
*targetEpoch);
|
||||
std::vector<operation::CoordinateOperationNNPtr> ops;
|
||||
@@ -4075,12 +4078,27 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase(
|
||||
}
|
||||
}
|
||||
|
||||
if ((res.empty() || tooSmallAreas) &&
|
||||
!context.inCreateOperationsWithDatumPivotAntiRecursion &&
|
||||
bool allRequiresPerCoordinateInputTime = false;
|
||||
for (const auto &op : res) {
|
||||
allRequiresPerCoordinateInputTime =
|
||||
op->requiresPerCoordinateInputTime();
|
||||
if (!allRequiresPerCoordinateInputTime) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!context.inCreateOperationsWithDatumPivotAntiRecursion &&
|
||||
!resFindDirectNonEmptyBeforeFiltering && geodSrc && geodDst &&
|
||||
!sameGeodeticDatum && context.context->getIntermediateCRS().empty() &&
|
||||
context.context->getAllowUseIntermediateCRS() !=
|
||||
CoordinateOperationContext::IntermediateCRSUse::NEVER) {
|
||||
CoordinateOperationContext::IntermediateCRSUse::NEVER &&
|
||||
(res.empty() || tooSmallAreas ||
|
||||
// If all coordinate operations are time-dependent and none of the
|
||||
// source or target CRS are dynamic, try through an intermediate CRS
|
||||
// (we go here between ETRS89 and ETRS89-NO that would otherwise only
|
||||
// use NKG time-dependent transformations)
|
||||
(allRequiresPerCoordinateInputTime && !geodSrc->isDynamic() &&
|
||||
!geodDst->isDynamic()))) {
|
||||
// Currently triggered by "IG05/12 Intermediate CRS" to ITRF2014
|
||||
|
||||
std::set<std::string> oSetNames;
|
||||
@@ -4089,6 +4107,7 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase(
|
||||
oSetNames.insert(op->nameStr());
|
||||
}
|
||||
}
|
||||
|
||||
auto resWithIntermediate = findsOpsInRegistryWithIntermediate(
|
||||
sourceCRS, targetCRS, context, true);
|
||||
if (tooSmallAreas && !res.empty()) {
|
||||
@@ -6337,7 +6356,13 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog(
|
||||
const bool srcAndTargetGeogAreSame =
|
||||
componentsSrc[0]->isEquivalentTo(
|
||||
targetCRS->demoteTo2D(std::string(), dbContext).get(),
|
||||
util::IComparable::Criterion::EQUIVALENT);
|
||||
util::IComparable::Criterion::EQUIVALENT) &&
|
||||
// Kind of a hack for EPSG:4937 to EPSG:9883 to work
|
||||
// properly
|
||||
!((componentsSrc[0]->nameStr() == "ETRS89" &&
|
||||
targetCRS->nameStr() == "ETRS89-NOR [EUREF89]") ||
|
||||
(componentsSrc[0]->nameStr() == "ETRS89-NOR [EUREF89]" &&
|
||||
targetCRS->nameStr() == "ETRS89"));
|
||||
|
||||
// Lambda to add to the set the name of geodetic datum of the
|
||||
// CRS
|
||||
@@ -6607,7 +6632,9 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound(
|
||||
const auto vertSrc = componentsSrc[1]->extractVerticalCRS();
|
||||
const auto vertDst = componentsDst[1]->extractVerticalCRS();
|
||||
if (vertSrc && vertDst &&
|
||||
!componentsSrc[1]->_isEquivalentTo(componentsDst[1].get())) {
|
||||
!componentsSrc[1]->_isEquivalentTo(
|
||||
componentsDst[1].get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
if ((!vertSrc->geoidModel().empty() ||
|
||||
!vertDst->geoidModel().empty()) &&
|
||||
// To be able to use "CGVD28 height to
|
||||
@@ -6928,8 +6955,7 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound(
|
||||
|
||||
auto interpolationCRS =
|
||||
NN_NO_CHECK(std::static_pointer_cast<crs::SingleCRS>(srcGeog));
|
||||
auto interpTransformCRS = verticalTransform->interpolationCRS();
|
||||
if (interpTransformCRS) {
|
||||
if (auto interpTransformCRS = verticalTransform->interpolationCRS()) {
|
||||
auto interpTransformSingleCRS =
|
||||
std::static_pointer_cast<crs::SingleCRS>(interpTransformCRS);
|
||||
if (interpTransformSingleCRS) {
|
||||
@@ -6944,10 +6970,17 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToCompound(
|
||||
dynamic_cast<crs::GeographicCRS *>(
|
||||
compSrc0BoundCrs->hubCRS().get()) &&
|
||||
compSrc0BoundCrs->hubCRS()->_isEquivalentTo(
|
||||
compDst0BoundCrs->hubCRS().get())) {
|
||||
compDst0BoundCrs->hubCRS().get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
interpolationCRS =
|
||||
NN_NO_CHECK(util::nn_dynamic_pointer_cast<crs::SingleCRS>(
|
||||
compSrc0BoundCrs->hubCRS()));
|
||||
} else if (compSrc0BoundCrs && !compDst0BoundCrs &&
|
||||
compSrc0BoundCrs->hubCRS()->_isEquivalentTo(
|
||||
dstGeog.get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
interpolationCRS = NN_NO_CHECK(
|
||||
std::static_pointer_cast<crs::SingleCRS>(dstGeog));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7133,7 +7166,8 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound(
|
||||
const auto compDst0BoundCrsHubAsGeogCRSDatum =
|
||||
compDst0BoundCrsHubAsGeogCRS->datumNonNull(dbContext);
|
||||
if (boundSrcHubAsGeogCRSDatum->_isEquivalentTo(
|
||||
compDst0BoundCrsHubAsGeogCRSDatum.get())) {
|
||||
compDst0BoundCrsHubAsGeogCRSDatum.get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
auto cs = cs::EllipsoidalCS::
|
||||
createLatitudeLongitudeEllipsoidalHeight(
|
||||
common::UnitOfMeasure::DEGREE,
|
||||
@@ -7159,7 +7193,8 @@ void CoordinateOperationFactory::Private::createOperationsBoundToCompound(
|
||||
for (const auto &opDst : geog3DToTargetOps) {
|
||||
if (opSrc->targetCRS() && opDst->sourceCRS() &&
|
||||
!opSrc->targetCRS()->_isEquivalentTo(
|
||||
opDst->sourceCRS().get())) {
|
||||
opDst->sourceCRS().get(),
|
||||
util::IComparable::Criterion::EQUIVALENT)) {
|
||||
// Shouldn't happen normally, but typically
|
||||
// one of them can be 2D and the other 3D
|
||||
// due to above createOperations() not
|
||||
|
||||
@@ -125,8 +125,6 @@ PROJBasedOperationNNPtr PROJBasedOperation::create(
|
||||
if (inverse) {
|
||||
formatter->startInversion();
|
||||
}
|
||||
const bool bRequiresPerCoordinateInputTime =
|
||||
formatter->requiresPerCoordinateInputTime();
|
||||
projExportable->_exportToPROJString(formatter.get());
|
||||
if (inverse) {
|
||||
formatter->stopInversion();
|
||||
@@ -148,7 +146,8 @@ PROJBasedOperationNNPtr PROJBasedOperation::create(
|
||||
op->projStringExportable_ = projExportable.as_nullable();
|
||||
op->inverse_ = inverse;
|
||||
op->setHasBallparkTransformation(hasBallparkTransformation);
|
||||
op->setRequiresPerCoordinateInputTime(bRequiresPerCoordinateInputTime);
|
||||
op->setRequiresPerCoordinateInputTime(
|
||||
formatter->requiresPerCoordinateInputTime());
|
||||
|
||||
return op;
|
||||
}
|
||||
|
||||
+1
-1
@@ -348,7 +348,7 @@ add_custom_target(check_wkt2_grammar_md5 ALL
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DIN_FILE=wkt2_grammar.y"
|
||||
"-DTARGET=generate_wkt2_parser"
|
||||
"-DEXPECTED_MD5SUM=50022470f30e5f95374ee325e3346539"
|
||||
"-DEXPECTED_MD5SUM=0a58cbfb6abd2b23bbb9345e12773348"
|
||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/check_md5sum.cmake"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/wkt2_grammar.y"
|
||||
|
||||
+1
-1
@@ -175,7 +175,7 @@ extern "C" {
|
||||
/* The version numbers should be updated with every release! **/
|
||||
#define PROJ_VERSION_MAJOR 9
|
||||
#define PROJ_VERSION_MINOR 7
|
||||
#define PROJ_VERSION_PATCH 0
|
||||
#define PROJ_VERSION_PATCH 1
|
||||
|
||||
/* Note: the following 3 defines have been introduced in PROJ 8.0.1 */
|
||||
/* Macro to compute a PROJ version number from its components */
|
||||
|
||||
+1
-1
@@ -8,6 +8,6 @@
|
||||
|
||||
char const pj_release[] = "Rel. " STR(PROJ_VERSION_MAJOR) "." STR(
|
||||
PROJ_VERSION_MINOR) "." STR(PROJ_VERSION_PATCH) ", "
|
||||
"September 1st, 2025";
|
||||
"December 1st, 2025";
|
||||
|
||||
const char *pj_get_release() { return pj_release; }
|
||||
|
||||
+1162
-1260
File diff suppressed because it is too large
Load Diff
@@ -854,7 +854,6 @@ datum_ensemble: geodetic_datum_ensemble_without_pm | vertical_datum_ensemble
|
||||
geodetic_datum_ensemble_without_pm: datum_ensemble_keyword
|
||||
left_delimiter
|
||||
datum_ensemble_name
|
||||
wkt_separator datum_ensemble_member
|
||||
datum_ensemble_member_list_ellipsoid_accuracy_identifier_list
|
||||
right_delimiter
|
||||
|
||||
|
||||
@@ -1868,15 +1868,10 @@ tests:
|
||||
+step +proj=axisswap +order=2,1
|
||||
- comment: >
|
||||
Test that ETRF2000 to ETRF2014 only goes through ITRF2000, ITRF2008 or ITRF2014, and not ITRF9x or ITRF>2020
|
||||
args: -s ETRF2000 -t ETRF2014 --3d --summary --authority EPSG
|
||||
args: -s ETRF2005 -t ETRF2014 --3d --summary --authority EPSG
|
||||
out: |
|
||||
Candidate operations found: 6
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2014 to ETRF2000 (1) + ITRF2014 to ETRF2014 (2) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2014 to ETRF2000 (1) + ITRF2014 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2008 to ETRF2000 (1) + ITRF2008 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2005 to ETRF2000 (1) + ITRF2005 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2000 to ETRF2000 (2) + ITRF2000 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
unknown id, Conversion from ETRF2000 (geog3D) to ETRF2000 (geocentric) + Inverse of ITRF2000 to ETRF2000 (1) + ITRF2000 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
Candidate operations found: 1
|
||||
unknown id, Conversion from ETRF2005 (geog3D) to ETRF2005 (geocentric) + Inverse of ITRF2005 to ETRF2005 (1) + ITRF2005 to ETRF2014 (1) + Conversion from ETRF2014 (geocentric) to ETRF2014 (geog3D), 0 m, Europe - onshore and offshore - ETRF extent - approximately 16°W to 33°E and 33°N to 84°N., time-dependent operation
|
||||
- comment: >
|
||||
Test that ETRF2000-PL to ETRF2014 is not negatively affected by https://github.com/OSGeo/PROJ/pull/4364 changes (the current actual result is not golden in any way, using ETRF2000 to ETRF2014 could probably make sense)
|
||||
args: -s ETRF2000-PL -t ETRF2014 --summary
|
||||
@@ -1943,3 +1938,26 @@ tests:
|
||||
out: |
|
||||
Candidate operations found: 1
|
||||
unknown id, Inverse of Saba to WGS 84 (1) + Saba to Saba height (1) + Saba Transverse Mercator 2020, 1.2 m, Bonaire, Sint Eustatius and Saba (BES Islands or Caribbean Netherlands) - Saba - onshore.
|
||||
- comment: Test that 'projinfo EGM2008' by default resolves to the datum
|
||||
args: EGM2008
|
||||
out: |
|
||||
WKT2:2019 string:
|
||||
VDATUM["EGM2008 geoid",
|
||||
ID["EPSG",1027]]
|
||||
- comment: Test that 'projinfo -k crs EGM2008' resolves to the CRS
|
||||
args: -k crs EGM2008
|
||||
out: |
|
||||
PROJ.4 string:
|
||||
+geoidgrids=us_nga_egm08_25.tif +geoid_crs=WGS84 +vunits=m +no_defs +type=crs
|
||||
|
||||
WKT2:2019 string:
|
||||
VERTCRS["EGM2008 height",
|
||||
VDATUM["EGM2008 geoid"],
|
||||
CS[vertical,1],
|
||||
AXIS["gravity-related height (H)",up,
|
||||
LENGTHUNIT["metre",1]],
|
||||
USAGE[
|
||||
SCOPE["Geodesy."],
|
||||
AREA["World."],
|
||||
BBOX[-90,-180,90,180]],
|
||||
ID["EPSG",3855]]
|
||||
|
||||
@@ -1309,6 +1309,10 @@ TEST(gie, proj_create_crs_to_crs_from_pj_force_over) {
|
||||
auto output = proj_trans(P, PJ_FWD, input);
|
||||
auto output_over = proj_trans(P, PJ_FWD, input_over);
|
||||
|
||||
auto P_clone = proj_clone(ctx, P);
|
||||
auto output_clone_over = proj_trans(P_clone, PJ_FWD, input_over);
|
||||
proj_destroy(P_clone);
|
||||
|
||||
auto input_inv = proj_trans(P, PJ_INV, output);
|
||||
auto input_over_inv = proj_trans(P, PJ_INV, output_over);
|
||||
|
||||
@@ -1320,6 +1324,8 @@ TEST(gie, proj_create_crs_to_crs_from_pj_force_over) {
|
||||
EXPECT_NEAR(output.xyz.x, 15584728.711058298, 1e-8);
|
||||
EXPECT_NEAR(output_over.xyz.x, -24490287.974520184, 1e-8);
|
||||
|
||||
EXPECT_EQ(output_clone_over.xyz.x, output_over.xyz.x);
|
||||
|
||||
// The distance from 140 to 180 and -220 to -180 should be pretty much
|
||||
// the same.
|
||||
auto dx_o = fabs(output.xyz.x - 20037508.342789244);
|
||||
|
||||
@@ -5531,6 +5531,38 @@ TEST(crs, boundCRS_identify_db) {
|
||||
EXPECT_EQ(boundCRS->baseCRS()->getEPSGCode(), 4326);
|
||||
EXPECT_EQ(boundCRS->transformation()->method()->getEPSGCode(), 9606);
|
||||
}
|
||||
|
||||
{
|
||||
// BoundCRS where the transformation to WGS84 is actually a concatenated
|
||||
// operation if taking from "NTF (Paris)".
|
||||
auto obj = WKTParser().attachDatabaseContext(dbContext).createFromWKT(
|
||||
"PROJCS[\"NTF (Paris) / Lambert zone II\","
|
||||
"GEOGCS[\"NTF (Paris)\","
|
||||
"DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","
|
||||
"SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,"
|
||||
"AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0,0,0],"
|
||||
"AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.33722917,"
|
||||
"AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796326794897,"
|
||||
"AUTHORITY[\"EPSG\",\"9105\"]],AUTHORITY[\"EPSG\",\"4807\"]],"
|
||||
"PROJECTION[\"Lambert_Conformal_Conic_1SP\"],"
|
||||
"PARAMETER[\"latitude_of_origin\",52],"
|
||||
"PARAMETER[\"central_meridian\",0],"
|
||||
"PARAMETER[\"scale_factor\",0.99987742],"
|
||||
"PARAMETER[\"false_easting\",600000],"
|
||||
"PARAMETER[\"false_northing\",2200000],"
|
||||
"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"
|
||||
"AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27572\"]"
|
||||
"]");
|
||||
auto crs = nn_dynamic_pointer_cast<BoundCRS>(obj);
|
||||
ASSERT_TRUE(crs != nullptr);
|
||||
auto res = crs->identify(factoryEPSG);
|
||||
ASSERT_EQ(res.size(), 1U);
|
||||
auto boundCRS = dynamic_cast<const BoundCRS *>(res.front().first.get());
|
||||
ASSERT_TRUE(boundCRS != nullptr);
|
||||
EXPECT_EQ(boundCRS->baseCRS()->getEPSGCode(), 27572);
|
||||
EXPECT_EQ(boundCRS->transformation()->nameStr(), "NTF to WGS 84 (1)");
|
||||
EXPECT_EQ(res.front().second, 100);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -7747,3 +7779,113 @@ TEST(crs, is_dynamic) {
|
||||
|
||||
EXPECT_FALSE(createCompoundCRS()->isDynamic());
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(crs, norway_ntm) {
|
||||
|
||||
auto dbContext = DatabaseContext::create();
|
||||
auto factory = AuthorityFactory::create(dbContext, "EPSG");
|
||||
// "ETRS89-NOR [EUREF89] / NTM zone 5"
|
||||
auto crs = factory->createCoordinateReferenceSystem("5105");
|
||||
|
||||
auto esri_wkt =
|
||||
"PROJCS[\"ETRS_1989_NTM_Zone_5\",GEOGCS[\"GCS_ETRS_1989\","
|
||||
"DATUM[\"D_ETRS_1989\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],"
|
||||
"PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],"
|
||||
"PROJECTION[\"Transverse_Mercator\"],"
|
||||
"PARAMETER[\"False_Easting\",100000.0],"
|
||||
"PARAMETER[\"False_Northing\",1000000.0],"
|
||||
"PARAMETER[\"Central_Meridian\",5.5],"
|
||||
"PARAMETER[\"Scale_Factor\",1.0],"
|
||||
"PARAMETER[\"Latitude_Of_Origin\",58.0],"
|
||||
"UNIT[\"Meter\",1.0]]";
|
||||
|
||||
// May change in a future version of the ESRI db
|
||||
EXPECT_EQ(
|
||||
crs->exportToWKT(
|
||||
WKTFormatter::create(WKTFormatter::Convention::WKT1_ESRI, dbContext)
|
||||
.get()),
|
||||
esri_wkt);
|
||||
|
||||
{
|
||||
auto obj = createFromUserInput(esri_wkt, dbContext, true);
|
||||
auto crs_from_esri = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
|
||||
ASSERT_TRUE(crs_from_esri != nullptr);
|
||||
|
||||
auto res = crs_from_esri->identify(factory);
|
||||
ASSERT_EQ(res.size(), 1U);
|
||||
EXPECT_EQ(res.front().first.get(), crs.get());
|
||||
EXPECT_EQ(res.front().second, 100);
|
||||
}
|
||||
|
||||
auto wkt2_before_epsg_12_025 =
|
||||
"PROJCRS[\"ETRS89 / NTM zone 5\",\n"
|
||||
" BASEGEOGCRS[\"ETRS89\",\n"
|
||||
" ENSEMBLE[\"European Terrestrial Reference System 1989 "
|
||||
"ensemble\",\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1989\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1990\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1991\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1992\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1993\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1994\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1996\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 1997\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 2000\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 2005\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 2014\"],\n"
|
||||
" MEMBER[\"European Terrestrial Reference Frame 2020\"],\n"
|
||||
" ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" ENSEMBLEACCURACY[0.1]],\n"
|
||||
" PRIMEM[\"Greenwich\",0,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]],\n"
|
||||
" ID[\"EPSG\",4258]],\n"
|
||||
" CONVERSION[\"Norway TM zone 5\",\n"
|
||||
" METHOD[\"Transverse Mercator\",\n"
|
||||
" ID[\"EPSG\",9807]],\n"
|
||||
" PARAMETER[\"Latitude of natural origin\",58,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433],\n"
|
||||
" ID[\"EPSG\",8801]],\n"
|
||||
" PARAMETER[\"Longitude of natural origin\",5.5,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433],\n"
|
||||
" ID[\"EPSG\",8802]],\n"
|
||||
" PARAMETER[\"Scale factor at natural origin\",1,\n"
|
||||
" SCALEUNIT[\"unity\",1],\n"
|
||||
" ID[\"EPSG\",8805]],\n"
|
||||
" PARAMETER[\"False easting\",100000,\n"
|
||||
" LENGTHUNIT[\"metre\",1],\n"
|
||||
" ID[\"EPSG\",8806]],\n"
|
||||
" PARAMETER[\"False northing\",1000000,\n"
|
||||
" LENGTHUNIT[\"metre\",1],\n"
|
||||
" ID[\"EPSG\",8807]]],\n"
|
||||
" CS[Cartesian,2],\n"
|
||||
" AXIS[\"northing (N)\",north,\n"
|
||||
" ORDER[1],\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" AXIS[\"easting (E)\",east,\n"
|
||||
" ORDER[2],\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" USAGE[\n"
|
||||
" SCOPE[\"Engineering survey.\"],\n"
|
||||
" AREA[\"Norway - onshore - west of 6°E.\"],\n"
|
||||
" BBOX[58.32,4.39,62.64,6.01]],\n"
|
||||
" ID[\"EPSG\",5105]]";
|
||||
|
||||
{
|
||||
auto obj =
|
||||
createFromUserInput(wkt2_before_epsg_12_025, dbContext, true);
|
||||
auto crs_from_wkt2 = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
|
||||
ASSERT_TRUE(crs_from_wkt2 != nullptr);
|
||||
EXPECT_TRUE(crs->isEquivalentTo(crs_from_wkt2.get(),
|
||||
IComparable::Criterion::EQUIVALENT));
|
||||
EXPECT_TRUE(crs_from_wkt2->isEquivalentTo(
|
||||
crs.get(), IComparable::Criterion::EQUIVALENT));
|
||||
|
||||
auto res = crs_from_wkt2->identify(factory);
|
||||
ASSERT_EQ(res.size(), 1U);
|
||||
EXPECT_EQ(res.front().first.get(), crs.get());
|
||||
EXPECT_EQ(res.front().second, 100);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,6 +428,62 @@ TEST(wkt_parse, invalid_geogcrs_with_ensemble) {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(wkt_parse, ensemble_without_members) {
|
||||
auto wkt =
|
||||
"GEOGCRS[\"WGS 84\","
|
||||
" ENSEMBLE[\"World Geodetic System 1984 ensemble\","
|
||||
" ELLIPSOID[\"WGS 84\",6378137,298.257223563,"
|
||||
" LENGTHUNIT[\"metre\",1]],"
|
||||
" ENSEMBLEACCURACY[2]],"
|
||||
"CS[ellipsoidal,2],"
|
||||
" AXIS[\"(lat)\",north,ANGLEUNIT[\"degree\",0.0174532925199433]],"
|
||||
" AXIS[\"(lon)\",east,ANGLEUNIT[\"degree\",0.0174532925199433]]"
|
||||
"]";
|
||||
auto obj = WKTParser()
|
||||
.attachDatabaseContext(DatabaseContext::create())
|
||||
.createFromWKT(wkt);
|
||||
auto crs = dynamic_cast<const GeodeticCRS *>(obj.get());
|
||||
ASSERT_TRUE(crs != nullptr);
|
||||
EXPECT_GE(crs->datumEnsemble()->datums().size(), 2U);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(wkt_parse, ensemble_without_members_no_db) {
|
||||
auto wkt =
|
||||
"GEOGCRS[\"WGS 84\","
|
||||
" ENSEMBLE[\"World Geodetic System 1984 ensemble\","
|
||||
" ELLIPSOID[\"WGS 84\",6378137,298.257223563,"
|
||||
" LENGTHUNIT[\"metre\",1]],"
|
||||
" ENSEMBLEACCURACY[2]],"
|
||||
"CS[ellipsoidal,2],"
|
||||
" AXIS[\"(lat)\",north,ANGLEUNIT[\"degree\",0.0174532925199433]],"
|
||||
" AXIS[\"(lon)\",east,ANGLEUNIT[\"degree\",0.0174532925199433]]"
|
||||
"]";
|
||||
EXPECT_THROW(WKTParser().createFromWKT(wkt), ParsingException);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(wkt_parse, ensemble_without_members_unknown_name) {
|
||||
auto wkt =
|
||||
"GEOGCRS[\"WGS 84\","
|
||||
" ENSEMBLE[\"i do not exist\","
|
||||
" ELLIPSOID[\"WGS 84\",6378137,298.257223563,"
|
||||
" LENGTHUNIT[\"metre\",1]],"
|
||||
" ENSEMBLEACCURACY[2]],"
|
||||
"CS[ellipsoidal,2],"
|
||||
" AXIS[\"(lat)\",north,ANGLEUNIT[\"degree\",0.0174532925199433]],"
|
||||
" AXIS[\"(lon)\",east,ANGLEUNIT[\"degree\",0.0174532925199433]]"
|
||||
"]";
|
||||
EXPECT_THROW(WKTParser()
|
||||
.attachDatabaseContext(DatabaseContext::create())
|
||||
.createFromWKT(wkt),
|
||||
ParsingException);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void checkEPSG_4326(GeographicCRSPtr crs, bool latLong = true,
|
||||
bool checkEPSGCodes = true) {
|
||||
if (checkEPSGCodes) {
|
||||
@@ -16970,6 +17026,130 @@ TEST(json_import, datum_ensemble_without_ellipsoid) {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(json_import, ensemble_without_members) {
|
||||
auto json = "{\n"
|
||||
" \"type\": \"GeographicCRS\",\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"datum_ensemble\": {\n"
|
||||
" \"name\": \"World Geodetic System 1984 ensemble\",\n"
|
||||
" \"ellipsoid\": {\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"semi_major_axis\": 6378137,\n"
|
||||
" \"inverse_flattening\": 298.257223563\n"
|
||||
" },\n"
|
||||
" \"accuracy\": \"2.0\",\n"
|
||||
" \"id\": {\n"
|
||||
" \"authority\": \"EPSG\",\n"
|
||||
" \"code\": 6326\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"
|
||||
" }\n"
|
||||
"}";
|
||||
auto obj = createFromUserInput(json, DatabaseContext::create());
|
||||
auto crs = dynamic_cast<const GeodeticCRS *>(obj.get());
|
||||
ASSERT_TRUE(crs != nullptr);
|
||||
EXPECT_GE(crs->datumEnsemble()->datums().size(), 2U);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(json_import, ensemble_without_members_no_db) {
|
||||
auto json = "{\n"
|
||||
" \"type\": \"GeographicCRS\",\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"datum_ensemble\": {\n"
|
||||
" \"name\": \"World Geodetic System 1984 ensemble\",\n"
|
||||
" \"ellipsoid\": {\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"semi_major_axis\": 6378137,\n"
|
||||
" \"inverse_flattening\": 298.257223563\n"
|
||||
" },\n"
|
||||
" \"accuracy\": \"2.0\",\n"
|
||||
" \"id\": {\n"
|
||||
" \"authority\": \"EPSG\",\n"
|
||||
" \"code\": 6326\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"
|
||||
" }\n"
|
||||
"}";
|
||||
EXPECT_THROW(createFromUserInput(json, nullptr), ParsingException);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(json_import, ensemble_without_members_unknown_name) {
|
||||
auto json = "{\n"
|
||||
" \"type\": \"GeographicCRS\",\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"datum_ensemble\": {\n"
|
||||
" \"name\": \"i do not exist\",\n"
|
||||
" \"ellipsoid\": {\n"
|
||||
" \"name\": \"WGS 84\",\n"
|
||||
" \"semi_major_axis\": 6378137,\n"
|
||||
" \"inverse_flattening\": 298.257223563\n"
|
||||
" },\n"
|
||||
" \"accuracy\": \"2.0\",\n"
|
||||
" \"id\": {\n"
|
||||
" \"authority\": \"EPSG\",\n"
|
||||
" \"code\": 6326\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"
|
||||
" }\n"
|
||||
"}";
|
||||
EXPECT_THROW(createFromUserInput(json, DatabaseContext::create()),
|
||||
ParsingException);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(json_import, vertical_crs) {
|
||||
auto json = "{\n"
|
||||
" \"$schema\": \"foo\",\n"
|
||||
|
||||
@@ -1050,58 +1050,72 @@ TEST(operation, geog3DCRS_to_vertCRS_depth_context) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(operation, geog3DCRS_to_geog2DCRS_plus_vertCRS_depth_context) {
|
||||
auto authFactory =
|
||||
AuthorityFactory::create(DatabaseContext::create(), "EPSG");
|
||||
{
|
||||
auto ctxt =
|
||||
CoordinateOperationContext::create(authFactory, nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION);
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
authFactory->createCoordinateReferenceSystem("4937"), // ETRS89
|
||||
authFactory->createCoordinateReferenceSystem("9883"),
|
||||
// ETRS89 + CD Norway deph
|
||||
ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
EXPECT_EQ(list[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 +inv +proj=vgridshift "
|
||||
"+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");
|
||||
}
|
||||
{
|
||||
auto ctxt =
|
||||
CoordinateOperationContext::create(authFactory, nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION);
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
authFactory->createCoordinateReferenceSystem("9883"),
|
||||
// ETRS89 + CD Norway deph
|
||||
authFactory->createCoordinateReferenceSystem("4937"), // ETRS89
|
||||
ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
EXPECT_EQ(list[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=axisswap +order=1,2,-3 "
|
||||
"+step +proj=vgridshift "
|
||||
"+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");
|
||||
}
|
||||
|
||||
const auto test = [](bool allAuthorities, const char *srcCode) {
|
||||
auto authFactoryEPSG =
|
||||
AuthorityFactory::create(DatabaseContext::create(), "EPSG");
|
||||
auto authFactoryOp =
|
||||
allAuthorities ? AuthorityFactory::create(DatabaseContext::create(),
|
||||
std::string())
|
||||
: authFactoryEPSG;
|
||||
{
|
||||
auto ctxt =
|
||||
CoordinateOperationContext::create(authFactoryOp, nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::
|
||||
PARTIAL_INTERSECTION);
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
authFactoryEPSG->createCoordinateReferenceSystem(srcCode),
|
||||
// ETRS89-NOR [EUREF89] + CD Norway deph
|
||||
authFactoryEPSG->createCoordinateReferenceSystem("9883"), ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
EXPECT_EQ(
|
||||
list[0]->exportToPROJString(
|
||||
PROJStringFormatter::create(
|
||||
PROJStringFormatter::Convention::PROJ_5,
|
||||
authFactoryEPSG->databaseContext())
|
||||
.get()),
|
||||
"+proj=pipeline "
|
||||
"+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_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");
|
||||
}
|
||||
{
|
||||
auto ctxt =
|
||||
CoordinateOperationContext::create(authFactoryOp, nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::
|
||||
PARTIAL_INTERSECTION);
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
// ETRS89-NOR [EUREF89] + CD Norway deph
|
||||
authFactoryEPSG->createCoordinateReferenceSystem("9883"),
|
||||
authFactoryEPSG->createCoordinateReferenceSystem(srcCode),
|
||||
ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
EXPECT_EQ(
|
||||
list[0]->exportToPROJString(
|
||||
PROJStringFormatter::create(
|
||||
PROJStringFormatter::Convention::PROJ_5,
|
||||
authFactoryEPSG->databaseContext())
|
||||
.get()),
|
||||
"+proj=pipeline "
|
||||
"+step +proj=axisswap +order=2,1 "
|
||||
"+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_v2023b.tif +multiplier=1 "
|
||||
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
|
||||
"+step +proj=axisswap +order=2,1");
|
||||
}
|
||||
};
|
||||
|
||||
test(false, "4937"); // ETRS89 3D
|
||||
test(true, "4937"); // ETRS89 3D
|
||||
test(false, "10874"); // ETRS89-NOR [EUREF89] 3D
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -6023,6 +6037,267 @@ TEST(operation, compoundCRS_to_compoundCRS_GDA94_AHD_to_GDA2020_AVWS) {
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(operation,
|
||||
compoundCRS_with_horizontal_boundCRS_to_compoundCRS_and_same_vertical) {
|
||||
|
||||
auto dbContext = DatabaseContext::create();
|
||||
auto objSrc = WKTParser().attachDatabaseContext(dbContext).createFromWKT(
|
||||
"COMPOUNDCRS[\"AGD66 / AMG zone 55 + AHD height\",\n"
|
||||
" BOUNDCRS[\n"
|
||||
" SOURCECRS[\n"
|
||||
" PROJCRS[\"AGD66 / AMG zone 55 + AHD height\",\n"
|
||||
" BASEGEOGCRS[\"AGD66\",\n"
|
||||
" DATUM[\"User datum (no grid)\",\n"
|
||||
" ELLIPSOID[\"Australian National "
|
||||
"Spheroid\",6378160,298.25,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\n"
|
||||
" PRIMEM[\"Greenwich\",0,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]]],\n"
|
||||
" CONVERSION[\"Australian Map Grid zone 55\",\n"
|
||||
" METHOD[\"Transverse Mercator\"],\n"
|
||||
" PARAMETER[\"Latitude of natural origin\",0,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]],\n"
|
||||
" PARAMETER[\"Longitude of natural origin\",147,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]],\n"
|
||||
" PARAMETER[\"Scale factor at natural "
|
||||
"origin\",0.9996,\n"
|
||||
" SCALEUNIT[\"unity\",1]],\n"
|
||||
" PARAMETER[\"False easting\",500000,\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" PARAMETER[\"False northing\",10000000,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\n"
|
||||
" CS[Cartesian,2],\n"
|
||||
" AXIS[\"(E)\",east,\n"
|
||||
" ORDER[1],\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" AXIS[\"(N)\",north,\n"
|
||||
" ORDER[2],\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" USAGE[\n"
|
||||
" SCOPE[\"Engineering survey, topographic "
|
||||
"mapping.\"],\n"
|
||||
" AREA[\"Australia - onshore and offshore between "
|
||||
"144°E and 150°E. Papua New Guinea (PNG) - onshore between 144°E and "
|
||||
"150°E.\"],\n"
|
||||
" BBOX[-47.2,144,-1.3,150.01]]]],\n"
|
||||
" TARGETCRS[\n"
|
||||
" GEOGCRS[\"GDA2020\",\n"
|
||||
" DATUM[\"Geocentric Datum of Australia 2020\",\n"
|
||||
" ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\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"
|
||||
" ABRIDGEDTRANSFORMATION[\"User-defined Bursa-Wolf "
|
||||
"Transform\",\n"
|
||||
" METHOD[\"Position Vector transformation (geog2D "
|
||||
"domain)\"],\n"
|
||||
" PARAMETER[\"X-axis translation\",-153.501992013804,\n"
|
||||
" ID[\"EPSG\",8605]],\n"
|
||||
" PARAMETER[\"Y-axis translation\",91.8979603422544,\n"
|
||||
" ID[\"EPSG\",8606]],\n"
|
||||
" PARAMETER[\"Z-axis translation\",-76.7203604254192,\n"
|
||||
" ID[\"EPSG\",8607]],\n"
|
||||
" PARAMETER[\"X-axis rotation\",-11.9539464931016,\n"
|
||||
" ID[\"EPSG\",8608]],\n"
|
||||
" PARAMETER[\"Y-axis rotation\",13.9315768664084,\n"
|
||||
" ID[\"EPSG\",8609]],\n"
|
||||
" PARAMETER[\"Z-axis rotation\",-3.45993996519333,\n"
|
||||
" ID[\"EPSG\",8610]],\n"
|
||||
" PARAMETER[\"Scale difference\",0.999965937122937,\n"
|
||||
" ID[\"EPSG\",8611]]]],\n"
|
||||
" VERTCRS[\"AHD height\",\n"
|
||||
" VDATUM[\"Australian Height Datum\"],\n"
|
||||
" CS[vertical,1],\n"
|
||||
" AXIS[\"gravity-related height (H)\",up,\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" USAGE[\n"
|
||||
" SCOPE[\"Cadastre, engineering surveying applications over "
|
||||
"distances up to 10km.\"],\n"
|
||||
" AREA[\"Australia - Australian Capital Territory, New "
|
||||
"South Wales, Northern Territory, Queensland, South Australia, "
|
||||
"Tasmania, Western Australia and Victoria - onshore. Christmas Island "
|
||||
"- onshore. Cocos and Keeling Islands - onshore.\"],\n"
|
||||
" BBOX[-43.7,96.76,-9.86,153.69]],\n"
|
||||
" ID[\"EPSG\",5711]]]");
|
||||
auto src = nn_dynamic_pointer_cast<CRS>(objSrc);
|
||||
ASSERT_TRUE(src != nullptr);
|
||||
|
||||
// GDA2020 / MGA zone 55 + AHD height
|
||||
auto authFactoryEPSG = AuthorityFactory::create(dbContext, "EPSG");
|
||||
auto dstObj = createFromUserInput("EPSG:7855+5711", dbContext, false);
|
||||
auto dst = nn_dynamic_pointer_cast<CRS>(dstObj);
|
||||
ASSERT_TRUE(dst != nullptr);
|
||||
|
||||
auto ctxt = CoordinateOperationContext::create(
|
||||
AuthorityFactory::create(dbContext, std::string()), nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION);
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
NN_NO_CHECK(src), NN_NO_CHECK(dst), ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
|
||||
EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
|
||||
"+proj=pipeline "
|
||||
"+step +inv +proj=utm +zone=55 +south +ellps=aust_SA "
|
||||
"+step +proj=push +v_3 "
|
||||
"+step +proj=cart +ellps=aust_SA "
|
||||
"+step +proj=helmert +x=-153.501992013804 +y=91.8979603422544 "
|
||||
"+z=-76.7203604254192 +rx=-11.9539464931016 +ry=13.9315768664084 "
|
||||
"+rz=-3.45993996519333 +s=-34.0628770629792 "
|
||||
"+convention=position_vector "
|
||||
"+step +inv +proj=cart +ellps=GRS80 "
|
||||
"+step +proj=pop +v_3 "
|
||||
"+step +proj=utm +zone=55 +south +ellps=GRS80");
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(
|
||||
operation,
|
||||
compoundCRS_with_horizontal_boundCRS_to_compoundCRS_with_derived_vertical) {
|
||||
|
||||
auto dbContext = DatabaseContext::create();
|
||||
auto objSrc = WKTParser().attachDatabaseContext(dbContext).createFromWKT(
|
||||
"COMPOUNDCRS[\"AGD84 / AMG zone 55 + AHD height + local offset\",\n"
|
||||
" BOUNDCRS[\n"
|
||||
" SOURCECRS[\n"
|
||||
" PROJCRS[\"AGD84 / AMG zone 55\",\n"
|
||||
" BASEGEOGCRS[\"AGD84\",\n"
|
||||
" DATUM[\"User datum (no grid)\",\n"
|
||||
" ELLIPSOID[\"Australian National Spheroid\","
|
||||
"6378160,298.25,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\n"
|
||||
" PRIMEM[\"Greenwich\",0,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]]],\n"
|
||||
" CONVERSION[\"Australian Map Grid zone 55\",\n"
|
||||
" METHOD[\"Transverse Mercator\"],\n"
|
||||
" PARAMETER[\"Latitude of natural origin\",0,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]],\n"
|
||||
" PARAMETER[\"Longitude of natural origin\",147,\n"
|
||||
" ANGLEUNIT[\"degree\",0.0174532925199433]],\n"
|
||||
" PARAMETER[\"Scale factor at natural origin\","
|
||||
"0.9996,\n"
|
||||
" SCALEUNIT[\"unity\",1]],\n"
|
||||
" PARAMETER[\"False easting\",500000,\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" PARAMETER[\"False northing\",10000000,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\n"
|
||||
" CS[Cartesian,2],\n"
|
||||
" AXIS[\"(E)\",east,\n"
|
||||
" ORDER[1],\n"
|
||||
" LENGTHUNIT[\"metre\",1]],\n"
|
||||
" AXIS[\"(N)\",north,\n"
|
||||
" ORDER[2],\n"
|
||||
" LENGTHUNIT[\"metre\",1]]]],\n"
|
||||
" TARGETCRS[\n"
|
||||
" GEOGCRS[\"GDA2020\",\n"
|
||||
" DATUM[\"Geocentric Datum of Australia 2020\",\n"
|
||||
" ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\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"
|
||||
" ABRIDGEDTRANSFORMATION[\"User-defined Bursa-Wolf "
|
||||
"Transform\",\n"
|
||||
" METHOD[\"Position Vector transformation (geog2D "
|
||||
"domain)\"],\n"
|
||||
" PARAMETER[\"X-axis translation\",-153.306840928477,\n"
|
||||
" ID[\"EPSG\",8605]],\n"
|
||||
" PARAMETER[\"Y-axis translation\",92.4132660160741,\n"
|
||||
" ID[\"EPSG\",8606]],\n"
|
||||
" PARAMETER[\"Z-axis translation\",-76.481435572882,\n"
|
||||
" ID[\"EPSG\",8607]],\n"
|
||||
" PARAMETER[\"X-axis rotation\",-11.9644937558611,\n"
|
||||
" ID[\"EPSG\",8608]],\n"
|
||||
" PARAMETER[\"Y-axis rotation\",13.9284887447329,\n"
|
||||
" ID[\"EPSG\",8609]],\n"
|
||||
" PARAMETER[\"Z-axis rotation\",-3.44390727325759,\n"
|
||||
" ID[\"EPSG\",8610]],\n"
|
||||
" PARAMETER[\"Scale difference\",0.999965772441661,\n"
|
||||
" ID[\"EPSG\",8611]]]],\n"
|
||||
" VERTCRS[\"AHD height + local offset\",\n"
|
||||
" BASEVERTCRS[\"AHD height\",\n"
|
||||
" VDATUM[\"Australian Height Datum\"]],\n"
|
||||
" DERIVINGCONVERSION[\"vertical offset\",\n"
|
||||
" METHOD[\"PROJ affine\"],\n"
|
||||
" PARAMETER[\"zoff\",1.055,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]],\n"
|
||||
" CS[vertical,1],\n"
|
||||
" AXIS[\"gravity-related height (H)\",up,\n"
|
||||
" LENGTHUNIT[\"metre\",1]]]]");
|
||||
auto src = nn_dynamic_pointer_cast<CRS>(objSrc);
|
||||
ASSERT_TRUE(src != nullptr);
|
||||
|
||||
// GDA2020 / MGA zone 55 + AHD height
|
||||
auto authFactoryEPSG = AuthorityFactory::create(dbContext, "EPSG");
|
||||
auto dstObj = createFromUserInput("EPSG:7855+5711", dbContext, false);
|
||||
auto dst = nn_dynamic_pointer_cast<CRS>(dstObj);
|
||||
ASSERT_TRUE(dst != nullptr);
|
||||
|
||||
auto ctxt = CoordinateOperationContext::create(
|
||||
AuthorityFactory::create(dbContext, std::string()), nullptr, 0.0);
|
||||
ctxt->setSpatialCriterion(
|
||||
CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION);
|
||||
{
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
NN_NO_CHECK(src), NN_NO_CHECK(dst), ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
|
||||
EXPECT_EQ(
|
||||
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
|
||||
"+proj=pipeline "
|
||||
"+step +inv +proj=utm +zone=55 +south +ellps=aust_SA "
|
||||
"+step +proj=push +v_3 "
|
||||
"+step +proj=cart +ellps=aust_SA "
|
||||
"+step +proj=helmert +x=-153.306840928477 "
|
||||
"+y=92.4132660160741 "
|
||||
"+z=-76.481435572882 +rx=-11.9644937558611 "
|
||||
"+ry=13.9284887447329 "
|
||||
"+rz=-3.44390727325759 +s=-34.2275583390395 "
|
||||
"+convention=position_vector "
|
||||
"+step +inv +proj=cart +ellps=GRS80 "
|
||||
"+step +proj=pop +v_3 "
|
||||
"+step +inv +proj=affine +zoff=1.055 "
|
||||
"+step +proj=utm +zone=55 +south +ellps=GRS80");
|
||||
}
|
||||
{
|
||||
auto list = CoordinateOperationFactory::create()->createOperations(
|
||||
NN_NO_CHECK(dst), NN_NO_CHECK(src), ctxt);
|
||||
ASSERT_GE(list.size(), 1U);
|
||||
|
||||
EXPECT_EQ(
|
||||
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
|
||||
"+proj=pipeline "
|
||||
"+step +inv +proj=utm +zone=55 +south +ellps=GRS80 "
|
||||
"+step +proj=affine +zoff=1.055 "
|
||||
"+step +proj=push +v_3 "
|
||||
"+step +proj=cart +ellps=GRS80 "
|
||||
"+step +inv +proj=helmert +x=-153.306840928477 "
|
||||
"+y=92.4132660160741 +z=-76.481435572882 "
|
||||
"+rx=-11.9644937558611 +ry=13.9284887447329 "
|
||||
"+rz=-3.44390727325759 +s=-34.2275583390395 "
|
||||
"+convention=position_vector "
|
||||
"+step +inv +proj=cart +ellps=aust_SA "
|
||||
"+step +proj=pop +v_3 "
|
||||
"+step +proj=utm +zone=55 +south +ellps=aust_SA");
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
TEST(
|
||||
operation,
|
||||
compoundCRS_to_compoundCRS_concatenated_operation_with_two_vert_transformation) {
|
||||
|
||||
Reference in New Issue
Block a user