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

Inconsistent results on ppc64le on conda-forge with gcc 12 #3922

Closed
djhoese opened this issue Oct 16, 2023 · 8 comments
Closed

Inconsistent results on ppc64le on conda-forge with gcc 12 #3922

djhoese opened this issue Oct 16, 2023 · 8 comments
Labels

Comments

@djhoese
Copy link
Contributor

djhoese commented Oct 16, 2023

Example of problem

First example works fine. Second transformation does not.

$ echo 0 0 | cs2cs EPSG:3034 +to EPSG:3035
363301.33       546152.98 0.00
$ echo 0 0 | cs2cs EPSG:3034 +to EPSG:3035
363301.33       546152.98 0.00
$ echo 569704.57 4269024.67 | cs2cs EPSG:26915 +to EPSG:26715
589057.58       -3.54 0.00
$ echo 569704.57 4269024.67 | cs2cs EPSG:26915 +to EPSG:26715
569722.40       4268814.27 0.00

Problem description

Reference issue: conda-forge/proj.4-feedstock#137

As mentioned in the many issues related to this on the conda-forge feedstock repositories, there seems to be an issue when some transformations happen, but so far only seems to effect ppc64le systems (perhaps the only little endian platform tested on conda-forge). This was originally discovered with pyproj where ppc64le builds were added, but a single test (yes, just one) would fail with very incorrect results. However, it only seems to happen on the first execution of this command and only with specific CRSes (UTM EPSG codes so far).

Note in the above example how the first non-UTM transformation gives the same results the first and second time. The second transformation with the 26915 and 26715 EPSG codes produces an incorrect result in the first execution and then gives valid result in the second instance.

Note that I've tested this with running a proj command before the cs2cs and cs2cs still has the same behavior. I've also done it with cs2cs with no arguments to show the usage/help message and the same behavior. In the above example running cs2cs with the first transformation also doesn't seem to "initialize" something that the second set of transformations are dependent on.

So far I've only tested this with conda-forge's build system (local docker-based emulated builds) mainly because getting ppc64le emulated builds working is a pain otherwise.

Expected Output

The same result both times:

$ echo 569704.57 4269024.67 | cs2cs EPSG:26915 +to EPSG:26715
569722.40       4268814.27 0.00
$ echo 569704.57 4269024.67 | cs2cs EPSG:26915 +to EPSG:26715
569722.40       4268814.27 0.00

Environment Information

  • PROJ version (proj): Seen with 9.3.0 and 9.2.1. Haven't tested beyond that.
  • Operation System Information: Power PC 64-bit Little Endian (ppc64le)

Installation method

  • conda with conda-forge
@hobu
Copy link
Contributor

hobu commented Oct 16, 2023

Please set PROJ_DEBUG=3 in your environment and provide us the output.

I watched your thread in the feedstock and was wondering if this was just a PROJ_NETWORK or gridshift issue that was caused by mixed up conda environments.

@djhoese
Copy link
Contributor Author

djhoese commented Oct 16, 2023

I'll try out the debug flag (emulated builds take a bit), thanks. For my own reference, pyproj's build's tests force PROJ_NETWORK to ON and it looks like the PROJ activation script also sets it:

if [ -f "${CONDA_PREFIX}/share/proj/copyright_and_licenses.csv" ]; then
  # proj-data is installed because its license was copied over
  export PROJ_NETWORK="OFF"
else
  export PROJ_NETWORK="ON"
fi

as that license file doesn't seem to exist in the latest packages release.

@rouault
Copy link
Member

rouault commented Oct 16, 2023

Note in the above example how the first non-UTM transformation gives the same results the first and second time. The second transformation with the 26915 and 26715 EPSG codes produces an incorrect result in the first execution and then gives valid result in the second instance.

My guess would be that it is not UTM related. EPSG:26915 to EPSG:26715 involves NAD83 to NAD27 and hence grid shift files, whereas EPSG:3034 to EPSG:3035 remains in the ETRS89 datum

@djhoese
Copy link
Contributor Author

djhoese commented Oct 16, 2023

Seeing some questionable warnings in the conda-forge build and I don't want to lose them, so putting them here:

Making absolute symlink relative (lib/libproj.so -> libproj.so.25 :-> libproj.so.25.9.3.0)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
Warning: rpath /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh (removing it)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libkeyutils.a)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libjpeg.a)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libturbojpeg.a)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libncurses++.a)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libncurses++w.a)
WARNING :: Failed to get_static_lib_exports(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_build_env/lib/libbfd.a)
...
WARNING (proj): run-exports library package conda-forge::sqlite-3.43.2-h63c7444_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to `build/ignore_run_exports`)
...
bin/projsync (binary): Patching
lib/libproj.so.25.9.3.0 (binary): Patching
lib/pkgconfig/proj.pc (text): Patching
Importing conda-verify failed.  Please be sure to test your packages.  conda install conda-verify to make this message go away.
WARNING:conda_build.build:Importing conda-verify failed.  Please be sure to test your packages.  conda install conda-verify to make this message go away.

As for the PROJ_DEBUG=3 output.

First run:

+ echo 569704.57 4269024.67
+ cs2cs EPSG:26915 +to EPSG:26715
pj_open_lib(proj.ini): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/proj.ini) - succeeded
pj_open_lib(proj.db): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/proj.db) - succeeded
pj_open_lib(ca_nrc_ntv2_0.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv2_0.tif) - failed
pj_open_lib(ntv2_0.gsb): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv2_0.gsb) - failed
pj_open_lib(ca_nrc_ntv1_can.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv1_can.tif) - failed
pj_open_lib(ntv1_can.dat): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv1_can.dat) - failed
pj_open_lib(us_noaa_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_conus.tif) - failed
pj_open_lib(conus): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/conus) - failed
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
pj_open_lib(ca_nrc_ntv2_0.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv2_0.tif) - failed
pj_open_lib(ntv2_0.gsb): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv2_0.gsb) - failed
Using https://cdn.proj.org/ca_nrc_ntv2_0.tif
pj_open_lib(ca_nrc_ntv1_can.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv1_can.tif) - failed
pj_open_lib(ntv1_can.dat): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv1_can.dat) - failed
Using https://cdn.proj.org/ca_nrc_ntv1_can.tif
pj_open_lib(us_noaa_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_conus.tif) - failed
pj_open_lib(conus): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/conus) - failed
Using https://cdn.proj.org/us_noaa_conus.tif
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
Using https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005eb8c0
pipeline: Pipeline at [0x4000512750]:    step at [0x40005eb8c0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv2_0.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x4000598350
pipeline: Pipeline at [0x4000512750]:    step at [0x4000598350] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40005ebe70
pipeline: Pipeline at [0x4000512750]:    step at [0x40005ebe70] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - proj=unitconvert, 3
pipeline:     xy_in=deg
pipeline:     xy_out=rad
unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
unitconvert: pj_ellipsoid - final:    ellps=GRS80
unitconvert: xy_in unit: Degree
unitconvert: xy_out unit: Radian
pipeline: Pipeline: Step 0 (proj=unitconvert) at 0x40005bf900
pipeline: Pipeline at [0x40005b82f0]:    step at [0x40005bf900] (proj=unitconvert) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (proj=utm) at 0x40005bfc60
pipeline: Pipeline at [0x40005b82f0]:    step at [0x40005bfc60] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
pipeline: pj_ellipsoid - final:    ellps=clrk66
pipeline: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - proj=unitconvert, 3
pipeline:     xy_in=deg
pipeline:     xy_out=rad
unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
unitconvert: pj_ellipsoid - final:    ellps=GRS80
unitconvert: xy_in unit: Degree
unitconvert: xy_out unit: Radian
pipeline: Pipeline: Step 0 (proj=unitconvert) at 0x40005b07e0
pipeline: Pipeline at [0x4000590cb0]:    step at [0x40005b07e0] (proj=unitconvert) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 1 (proj=utm) at 0x40005e1760
pipeline: Pipeline at [0x4000590cb0]:    step at [0x40005e1760] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005a81c0
pipeline: Pipeline at [0x40005e1b40]:    step at [0x40005a81c0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv2_0.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40005d7900
pipeline: Pipeline at [0x40005e1b40]:    step at [0x40005d7900] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40005d7eb0
pipeline: Pipeline at [0x40005e1b40]:    step at [0x40005d7eb0] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005a8d40
pipeline: Pipeline at [0x40004f3980]:    step at [0x40005a8d40] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv1_can.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40005a6010
pipeline: Pipeline at [0x40004f3980]:    step at [0x40005a6010] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40005a65e0
pipeline: Pipeline at [0x40004f3980]:    step at [0x40005a65e0] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005979d0
pipeline: Pipeline at [0x4000503600]:    step at [0x40005979d0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=gridshift
pipeline:     grids=us_noaa_nadcon5_nad27_nad83_1986_conus.tif
gridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
gridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40005a6d10
pipeline: Pipeline at [0x4000503600]:    step at [0x40005a6d10] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40005a70e0
pipeline: Pipeline at [0x4000503600]:    step at [0x40005a70e0] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005c7ab0
pipeline: Pipeline at [0x400059c430]:    step at [0x40005c7ab0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=us_noaa_conus.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40005c7f70
pipeline: Pipeline at [0x400059c430]:    step at [0x40005c7f70] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x4000596550
pipeline: Pipeline at [0x400059c430]:    step at [0x4000596550] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40005ecdd0
pipeline: Pipeline at [0x4000596d60]:    step at [0x40005ecdd0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 1 (proj=utm) at 0x40005c11a0
pipeline: Pipeline at [0x4000596d60]:    step at [0x40005c11a0] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
Using coordinate operation Inverse of UTM zone 15N + Inverse of NAD27 to NAD83 (7) + UTM zone 15N
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
Using https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif
Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.
589057.58       -3.54 0.00

Second run (good output):

+ echo 569704.57 4269024.67
+ cs2cs EPSG:26915 +to EPSG:26715
pj_open_lib(proj.ini): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/proj.ini) - succeeded
pj_open_lib(proj.db): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/proj.db) - succeeded
pj_open_lib(ca_nrc_ntv2_0.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv2_0.tif) - failed
pj_open_lib(ntv2_0.gsb): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv2_0.gsb) - failed
pj_open_lib(ca_nrc_ntv1_can.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv1_can.tif) - failed
pj_open_lib(ntv1_can.dat): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv1_can.dat) - failed
pj_open_lib(us_noaa_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_conus.tif) - failed
pj_open_lib(conus): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/conus) - failed
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
pj_open_lib(ca_nrc_ntv2_0.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv2_0.tif) - failed
pj_open_lib(ntv2_0.gsb): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv2_0.gsb) - failed
Using https://cdn.proj.org/ca_nrc_ntv2_0.tif
pj_open_lib(ca_nrc_ntv1_can.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ca_nrc_ntv1_can.tif) - failed
pj_open_lib(ntv1_can.dat): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/ntv1_can.dat) - failed
Using https://cdn.proj.org/ca_nrc_ntv1_can.tif
pj_open_lib(us_noaa_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_conus.tif) - failed
pj_open_lib(conus): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/conus) - failed
Using https://cdn.proj.org/us_noaa_conus.tif
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
Using https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004cdce0
pipeline: Pipeline at [0x400049a890]:    step at [0x40004cdce0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv2_0.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40004ce040
pipeline: Pipeline at [0x400049a890]:    step at [0x40004ce040] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40004c2680
pipeline: Pipeline at [0x400049a890]:    step at [0x40004c2680] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - proj=unitconvert, 3
pipeline:     xy_in=deg
pipeline:     xy_out=rad
unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
unitconvert: pj_ellipsoid - final:    ellps=GRS80
unitconvert: xy_in unit: Degree
unitconvert: xy_out unit: Radian
pipeline: Pipeline: Step 0 (proj=unitconvert) at 0x40004e9c80
pipeline: Pipeline at [0x40004ce8c0]:    step at [0x40004e9c80] (proj=unitconvert) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (proj=utm) at 0x40004e9fe0
pipeline: Pipeline at [0x40004ce8c0]:    step at [0x40004e9fe0] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
pipeline: pj_ellipsoid - final:    ellps=clrk66
pipeline: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - proj=unitconvert, 3
pipeline:     xy_in=deg
pipeline:     xy_out=rad
unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
unitconvert: pj_ellipsoid - final:    ellps=GRS80
unitconvert: xy_in unit: Degree
unitconvert: xy_out unit: Radian
pipeline: Pipeline: Step 0 (proj=unitconvert) at 0x40004eb7d0
pipeline: Pipeline at [0x40004e9470]:    step at [0x40004eb7d0] (proj=unitconvert) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 1 (proj=utm) at 0x40004ea600
pipeline: Pipeline at [0x40004e9470]:    step at [0x40004ea600] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004f21f0
pipeline: Pipeline at [0x40004f13d0]:    step at [0x40004f21f0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv2_0.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40004f2880
pipeline: Pipeline at [0x40004f13d0]:    step at [0x40004f2880] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40004f2e30
pipeline: Pipeline at [0x40004f13d0]:    step at [0x40004f2e30] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004a20c0
pipeline: Pipeline at [0x40004f0c80]:    step at [0x40004a20c0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=ca_nrc_ntv1_can.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40004a2770
pipeline: Pipeline at [0x40004f0c80]:    step at [0x40004a2770] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40004a2d30
pipeline: Pipeline at [0x40004f0c80]:    step at [0x40004a2d30] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004a4a50
pipeline: Pipeline at [0x40004a3b60]:    step at [0x40004a4a50] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=gridshift
pipeline:     grids=us_noaa_nadcon5_nad27_nad83_1986_conus.tif
gridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
gridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40004a4fe0
pipeline: Pipeline at [0x40004a3b60]:    step at [0x40004a4fe0] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40004a5580
pipeline: Pipeline at [0x40004a3b60]:    step at [0x40004a5580] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004a71f0
pipeline: Pipeline at [0x40004a6130]:    step at [0x40004a71f0] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - inv, 3
pipeline:     proj=hgridshift
pipeline:     grids=us_noaa_conus.tif
hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
hgridshift: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 1 (inv) at 0x40004a7870
pipeline: Pipeline at [0x40004a6130]:    step at [0x40004a7870] (inv) done
pipeline: Pipeline: Building arg list for step no. 2
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 2 (proj=utm) at 0x40004a7e70
pipeline: Pipeline at [0x40004a6130]:    step at [0x40004a7e70] (proj=utm) done
pipeline: Pipeline: 3 steps built. Determining i/o characteristics
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    ellps=GRS80
pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
pipeline: pj_ellipsoid - final:    
pipeline: Pipeline: Building arg list for step no. 0
pipeline: Pipeline: init - inv, 4
pipeline:     proj=utm
pipeline:     zone=15
pipeline:     ellps=GRS80
utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0
utm: pj_ellipsoid - final:    ellps=GRS80
pipeline: Pipeline: Step 0 (inv) at 0x40004a9510
pipeline: Pipeline at [0x40004a8500]:    step at [0x40004a9510] (inv) done
pipeline: Pipeline: Building arg list for step no. 1
pipeline: Pipeline: init - proj=utm, 3
pipeline:     zone=15
pipeline:     ellps=clrk66
utm: pj_ellipsoid - final: a=6378206.400 f=1/294.979, errno=0
utm: pj_ellipsoid - final:    ellps=clrk66
pipeline: Pipeline: Step 1 (proj=utm) at 0x40004a9aa0
pipeline: Pipeline at [0x40004a8500]:    step at [0x40004a9aa0] (proj=utm) done
pipeline: Pipeline: 2 steps built. Determining i/o characteristics
Using coordinate operation Inverse of UTM zone 15N + Inverse of NAD27 to NAD83 (7) + UTM zone 15N
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
Using https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif
569722.40       4268814.27 0.00

So the seemingly important part from the first run:

Using coordinate operation Inverse of UTM zone 15N + Inverse of NAD27 to NAD83 (7) + UTM zone 15N
pj_open_lib(us_noaa_nadcon5_nad27_nad83_1986_conus.tif): call fopen(/home/conda/feedstock_root/build_artifacts/proj_1697483711760/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/proj/us_noaa_nadcon5_nad27_nad83_1986_conus.tif) - failed
Using https://cdn.proj.org/us_noaa_nadcon5_nad27_nad83_1986_conus.tif
Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.

But the second one, which also failed to get the .tif, doesn't say anything about "Using first approximaton".

rouault added a commit to rouault/PROJ that referenced this issue Oct 16, 2023
rouault added a commit to rouault/PROJ that referenced this issue Oct 16, 2023
@rouault
Copy link
Member

rouault commented Oct 16, 2023

@djhoese My bet would be that the issue comes from some bug in the emulation. Trying to run native ppc64le in #3923 with Travis-CI and adding the problematic test case

@rouault
Copy link
Member

rouault commented Oct 16, 2023

the added test case works fine on native ppc64le (https://app.travis-ci.com/github/OSGeo/PROJ/jobs/611673341), which strongly reinforces my hypothesis of an emulation bug

@djhoese
Copy link
Contributor Author

djhoese commented Oct 17, 2023

@rouault I'm still seeing the invalid results on travis and I think it is running natively. You can find the CI jobs here:

conda-forge/proj.4-feedstock#139

And I'll repeat the output from my comment there:

363301.33	546152.98 0.00

363301.33	546152.98 0.00

589057.58	-3.54 0.00

569722.40	4268814.27 0.00

569722.40	4268814.27 0.00

The first two lines are the transformation with 3034/3035. The next two are the echo | cs2cs version of the 26915/26715 transformation (different results) and the last one is echo | proj | cs2cs.

@djhoese
Copy link
Contributor Author

djhoese commented Oct 19, 2023

As mentioned in the referenced conda-forge pull request, this seems to have come down to gcc 12 being used. gcc 11 (used in PROJ's builds, including #3923) seems to work fine. In the conda-forge PR I also got gcc 13 to work just fine. I'll see if conda-forge will accept that change. Meanwhile I was hoping a PROJ no-network friendly version of the test in #3923 could be merged in PROJ's tests to catch this if/when PROJ starts using gcc 12 in builds in the future.

@djhoese djhoese changed the title Inconsistent results on ppc64le on conda-forge Inconsistent results on ppc64le on conda-forge with gcc 12 Oct 19, 2023
@rouault rouault closed this as completed Dec 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants