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

LLtoUTMUPSObject returns incorrect northing values in southern hemisphere #25

Open
BernardIgiri opened this issue Jan 3, 2019 · 1 comment

Comments

@BernardIgiri
Copy link
Contributor

If you convert -80.00 0.00 to UTM using LLtoUTMUPSObject you end up with a negative northing value which is incorrect. Northing values should always be positive. The unit test misses this since it only checks the easting values.

@ryanc16
Copy link

ryanc16 commented Sep 14, 2024

I also ran into this and was confused. The LLtoUTM(lat, lon) method also has negative northing values. Apparently northing values in the southern hemisphere are negative, unless "false northing" is applied. This just means a constant of 10,000,000 is applied to the northing value for southern hemisphere values. More on this here: https://www.usgs.gov/faqs/why-do-landsat-scenes-southern-hemisphere-display-negative-utm-values

In the Northern Hemisphere, the UTM zone is a positive value or identified as UTM North. In the Southern Hemisphere, the UTM zone is a negative value or identified as UTM South. UTM North scenes in this convention have a false northing value of 0, while UTM South scenes have a false northing of 10,000,000. This false northing value effectively shifts the negative projection Y coordinates to a positive value.

So I don't think what the code is doing is technically wrong, just unexpected and inconsistent compared to other functions within the package provide/use a northing value. And there is no way to configure whether false northing is applied or not. For both you and I this was unexpected behavior.

The way I fixed this in my application was when converting, if the original latitude was < 0, I added 10,000,000 to the utmObj.northing value. This gave me the result I expected, and I verified the output using a different online coordinate converter tool.

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

No branches or pull requests

2 participants