NTv2 bicubic method could benefit from better error catching in 'edge' cases.

Open
#170 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
tooling

Research direction

Start with GeodePy.ntv2reader.ntv2_bicubic() and compare its results with the NTv2 bilinear method near every grid extent. Use the attached error examples to reproduce the binary-read and computation failures. Done means edge-case interpolation no longer reads outside the binary file or produces incorrect shifts, while the documented rare extent exceptions may remain.

Written by the indexing model from the issue text.

Description

GeodePy.ntv2reader.ntv2_bicubic() demonstrate errors of various severity when interpolating within 1 grid node of the grid extents.
A comparison against the NTv2 bilinear method is a good way to identify such issues (differences are much larger than elsewhere in same region).

Examples are provided in the attached document GeodePy Issue170 Ntv2 bicubic error examples (1pg)

Issues include:

  • binary file read errors occur within 54 arcsec (i.e. grid spacing) of southern extent of first grid, and northern extent of last grid
    • i.e. trying to read outside of the binary file
  • computation errors occur within 54 arcsec (i.e. grid spacing) of all extents, likely reading incorrectly from neighbouring part of binary file
    • some shifts differ by centimetres, others by kilometres)
  • Note only: Coordinates directly on Western extents are occasionally returned as 'outside of grid extents’
    Note only: Coordinates directly on Northern extents are always returned as 'outside of grid extents’
    These exceptions COULD be handled (use just those grid nodes available) but the use-cases are rare. Ok to leave as is.
Dominant language
Python
Stars
117
Forks
50
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from GeoscienceAustralia/GeodePy

All issues in GeoscienceAustralia/GeodePy

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.