Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding NZGD2000 deformation model (versions 2000-01-01 to 2018-07-01) #22

Merged
merged 4 commits into from
May 29, 2020

Conversation

ccrook
Copy link
Contributor

@ccrook ccrook commented May 29, 2020

This pull request adds the files implementing 7 versions of the NZGD2000 deformation model.
This deformation models is used to transform NZGD2000 with ITRF96 (the underlying ITRF for the New Zealand datum).

@rouault rouault added this to the 1.1.0 milestone May 29, 2020
@rouault rouault merged commit 6dd0bcd into OSGeo:master May 29, 2020
rouault added a commit to rouault/PROJ that referenced this pull request May 29, 2020
…abase

Related to OSGeo/PROJ-data#22

An entry is added in the ``other_transformation`` table, using a raw PROJ
string. Later, once the deformation model has been registered in EPSG, we'll
have to add code to map the EPSG transformation method and parameters to
+proj=defmodel

In the meantime, this works pretty well:

```
$ src/projinfo -s EPSG:4959 -t EPSG:7907
Candidate operations found: 1
-------------------------------------
Operation No. 1:

PROJ:NZGD2000-20180701, NZGD2000 to ITRF96 deformation model, unknown accuracy, New Zealand

PROJ string:
+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg

WKT2:2019 string:
COORDINATEOPERATION["NZGD2000 to ITRF96 deformation model",
    VERSION["20180701"],
    SOURCECRS[
        GEOGCRS["NZGD2000",
            DATUM["New Zealand Geodetic Datum 2000",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",4959]]],
    TARGETCRS[
        GEOGCRS["ITRF96",
            DATUM["International Terrestrial Reference Frame 1996",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",7907]]],
    METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"],
    USAGE[
        SCOPE["unknown"],
        AREA["New Zealand"],
        BBOX[-55.95,160.6,-25.88,-171.2]],
    ID["PROJ","NZGD2000-20180701"],
    REMARK["New Zealand Deformation Model. Defines the secular model (National Deformation Model) and patches for significant deformation events since 2000"]]
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cct -d 8 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg
 -40.99999402   172.99999938    0.00130333     2016.5000
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cs2cs -f "%.8f" EPSG:4959 EPSG:7907
-40.99999402	172.99999938 0.00130333 2016.5
```
rouault added a commit to rouault/PROJ that referenced this pull request May 30, 2020
…abase

Related to OSGeo/PROJ-data#22

An entry is added in the ``other_transformation`` table, using a raw PROJ
string. Later, once the deformation model has been registered in EPSG, we'll
have to add code to map the EPSG transformation method and parameters to
+proj=defmodel

In the meantime, this works pretty well:

```
$ src/projinfo -s EPSG:4959 -t EPSG:7907
Candidate operations found: 1
-------------------------------------
Operation No. 1:

PROJ:NZGD2000-20180701, NZGD2000 to ITRF96 deformation model, unknown accuracy, New Zealand

PROJ string:
+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg

WKT2:2019 string:
COORDINATEOPERATION["NZGD2000 to ITRF96 deformation model",
    VERSION["20180701"],
    SOURCECRS[
        GEOGCRS["NZGD2000",
            DATUM["New Zealand Geodetic Datum 2000",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",4959]]],
    TARGETCRS[
        GEOGCRS["ITRF96",
            DATUM["International Terrestrial Reference Frame 1996",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",7907]]],
    METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"],
    USAGE[
        SCOPE["unknown"],
        AREA["New Zealand"],
        BBOX[-55.95,160.6,-25.88,-171.2]],
    ID["PROJ","NZGD2000-20180701"],
    REMARK["New Zealand Deformation Model. Defines the secular model (National Deformation Model) and patches for significant deformation events since 2000"]]
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cct -d 8 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg
 -40.99999402   172.99999938    0.00130333     2016.5000
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cs2cs -f "%.8f" EPSG:4959 EPSG:7907
-40.99999402	172.99999938 0.00130333 2016.5
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants