PROJ icon indicating copy to clipboard operation
PROJ copied to clipboard

Transverse Mercator Zoned Grid System (CRS EPSG:32600/32700) not implemented

Open olsen232 opened this issue 11 months ago • 6 comments

In a service I help maintain, users are able to reproject geometries from EPSG:4326 into the CRS of their choice for export. One relatively common cause of error is that users select either EPSG:32600 or EPSG:32700 as the output CRS.

Example of problem

The reprojection EPSG:4326 -> EPSG:32600 (Northern hemisphere) doesn't seem to work at all:

$ cs2cs 'EPSG:4326' 'EPSG:32600'
0 0
*       * inf
10 10
*       * inf
-10 -10
*       * inf

The * * is apparently the default way that cs2cs indicates that an error has occurred.

Similarly for EPSG:32700 (southern hemisphere)

$ cs2cs 'EPSG:4326' 'EPSG:32700'
0 0
*       * inf
10 10
*       * inf
-10 -10
*       * inf

I don't know enough to know if these transforms are supposed to work but broken / misconfigured somehow, or if they are not supposed to work.

Based on this projinfo output, it looks like such a transformation should be possible:

$ projinfo -s EPSG:4326 -t EPSG:32600
Candidate operations found: 1
-------------------------------------
Operation No. 1:

EPSG:16000, UTM grid system (northern hemisphere), 0 m, Northern hemisphere between equator and 84°N, onshore and offshore.

PROJ string:
Error when exporting to PROJ string: Unsupported conversion method: Transverse Mercator Zoned Grid System

WKT2:2019 string:
CONVERSION["UTM grid system (northern hemisphere)",
    METHOD["Transverse Mercator Zoned Grid System",
        ID["EPSG",9824]],
    PARAMETER["Latitude of natural origin",0,
        ANGLEUNIT["degree",0.0174532925199433],
        ID["EPSG",8801]],
    PARAMETER["Initial longitude",-180,
        ANGLEUNIT["degree",0.0174532925199433],
        ID["EPSG",8830]],
    PARAMETER["Zone width",6,
        ANGLEUNIT["degree",0.0174532925199433],
        ID["EPSG",8831]],
    PARAMETER["Scale factor at natural origin",0.9996,
        SCALEUNIT["unity",1],
        ID["EPSG",8805]],
    PARAMETER["False easting",500000,
        LENGTHUNIT["metre",1],
        ID["EPSG",8806]],
    PARAMETER["False northing",0,
        LENGTHUNIT["metre",1],
        ID["EPSG",8807]],
    ID["EPSG",16000]]

Problem description

[this should explain why the current behavior is a problem and why the expected output is a better solution.]

Expected Output

The transform should - as far as I understand - leave the x and y values (mostly?) unchanged, as long as they are in the within the allowable bounds for the CRS - most of the northern hemisphere for EPSG:32600, and most of the southern hemisphere for EPSG:32700

Environment Information

  • PROJ version (proj):
$ projinfo
Rel. 8.2.1, January 1st, 2022

This is the version I get if I apt-get install today.

  • Operation System Information
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian

Installation method

apt-get install proj-bin

olsen232 avatar Jul 12 '23 21:07 olsen232