[postgis-users] Failing ST_Transform with Ross Ice Shelf polygon
Marco Boeringa
marco at boeringa.demon.nl
Wed Nov 8 04:30:46 PST 2023
Paul,
Do you want me to log an issue for this in the PostGIS OSGeo issue
tracker, including the reproducible case I already posted in the mails?
Marco
Op 7-11-2023 om 20:58 schreef Paul Ramsey:
> If you nudged it first, the -180s might end up back where they below.
>
> P
>
>> On Nov 7, 2023, at 11:57 AM, Brent Wood <Brent.Wood at niwa.co.nz> wrote:
>>
>> Hi guys,
>>
>> What happens if the dataset is converted to 0-360 with
>> ST_ShiftLongitude() then back again to +-180?
>>
>> I'd expect that to come up with the +-180 standardised on one or the
>> other, rather than having a dataset with both.
>>
>> It is a shame that more recent versions of proj don't support 0-360
>> longitudes, as that would fix the issue in the Ross Sea (but only by
>> moving it 180deg...)
>>
>>
>> Brent Wood
>>
>> Principal Technician, Fisheries
>> NIWA
>> DDI: +64 (4) 3860529
>> ------------------------------------------------------------------------
>> *From:*postgis-users <postgis-users-bounces at lists.osgeo.org> on
>> behalf of Paul Ramsey via postgis-users <postgis-users at lists.osgeo.org>
>> *Sent:*Wednesday, November 8, 2023 08:39
>> *To:*Marco Boeringa <marco at boeringa.demon.nl>
>> *Cc:*Paul Ramsey <pramsey at cleverelephant.ca>; PostGIS Users
>> Discussion <postgis-users at lists.osgeo.org>
>> *Subject:*Re: [postgis-users] Failing ST_Transform with Ross Ice
>> Shelf polygon
>> Hm, the current logic of the nudge would probably still not help your
>> case, since your problem is both the coordinate being slightly out of
>> bounds and also the change in sign. The nudge would move
>> -180.0000000004 to -180, but it wouldn’t flip the sign.
>>
>>> On Nov 7, 2023, at 11:36 AM, Marco Boeringa
>>> <marco at boeringa.demon.nl> wrote:
>>>
>>> Sounds interesting. I think many users of PostGIS would be really
>>> glad to see something like this implemented if it could reasonably
>>> be done. Haven't tried the double cast via geography yet, but seems
>>> fun thing to check and see the result.
>>> Op 7-11-2023 om 20:31 schreef Paul Ramsey:
>>>> All that said…
>>>>
>>>> It would be possible to “fix” this, but it’s a scary black box.
>>>> We already nudge geodetics back into place when casting from
>>>> geometry to geography (interesting workaround, take your
>>>> reprojected result and do a ::geography::geometry on it)
>>>>
>>>> https://github.com/postgis/postgis/blob/42f04a29effdd9e8280c7aba17420ba306fc73f4/liblwgeom/lwgeodetic.c#L3351
>>>> <https://github.com/postgis/postgis/blob/42f04a29effdd9e8280c7aba17420ba306fc73f4/liblwgeom/lwgeodetic.c#L3351>
>>>>
>>>> For systems that we know are geodetics (and with modern proj we
>>>> generally know that) we could apply the nudge to the outputs. It
>>>> would make things slower (more logic) but it would only change
>>>> those cases where the coordinates are in fact out of bounds by a
>>>> very small amount.
>>>>
>>>> P.
>>>>
>>>>> On Nov 7, 2023, at 11:22 AM, Paul
>>>>> Ramsey<pramsey at cleverelephant.ca>
>>>>> <mailto:pramsey at cleverelephant.ca>wrote:
>>>>>
>>>>> Nope.
>>>>>
>>>>> It can be quite reasonably argued that the answer is correct, and
>>>>> the problem is treating EPSG:4326 (a geodetic coordinate system
>>>>> with angular units) as if it was a planar system with cartesian
>>>>> units (spoiler: it is not that). In angular units, -180.0000000004
>>>>> is ridiculously close to 180.0. You aren’t complaining about the
>>>>> other coordinates, like where 175.123456789 is coming through as
>>>>> 175.123456788. Why not? It’s the same error! :)
>>>>>
>>>>> I don’t know what it is about the math going through that fun CRS
>>>>> that is causing roundoff or even if it’s particularly large (I
>>>>> don’t think it is), but it is not at all unique to that system.
>>>>> You can generate data that is progressively offset from the
>>>>> original data doing nothing more exotic than going back and forth
>>>>> from WGS83 to UTM over and over and over.
>>>>>
>>>>> ATB,
>>>>>
>>>>> P
>>>>>
>>>>>> On Nov 7, 2023, at 11:16 AM, Marco
>>>>>> Boeringa<marco at boeringa.demon.nl>
>>>>>> <mailto:marco at boeringa.demon.nl>wrote:
>>>>>>
>>>>>> Thanks Paul,
>>>>>> But is there a more definitive solution in PostGIS / PROJ on the
>>>>>> horizon in terms of future development? No one expects a
>>>>>> perfectly valid geometry that just happens to hit the projection
>>>>>> boundary of WGS1984 to come out garbled by doing a transform and
>>>>>> back-transform to the original CRS. I realize there may be
>>>>>> technical challenges here, but this will undoubtedly keep coming
>>>>>> up many times in the future, and likely has in the past, by other
>>>>>> confused non-expert users of PostGIS if nothing changes. It is
>>>>>> really counter-intuitive to need to use stuff like ST_SnapToGrid,
>>>>>> ST_ReducePrecision or ST_WrapX to "fix" something that goes right
>>>>>> for 99.999% of all other data. It also makes any needed code more
>>>>>> convoluted.
>>>>>> Yes, well, I know, storing data in WGS 1984 geometry may not be
>>>>>> best practice with this kind of globe spanning data, but it works
>>>>>> for most cases and I already cast to geography a lot to do stuff
>>>>>> where geography is really needed.
>>>>>> Marco
>>>>>> Op 7-11-2023 om 19:02 schreef Paul Ramsey:
>>>>>>>
>>>>>>>
>>>>>>>> On Nov 6, 2023, at 3:39 PM, Paul
>>>>>>>> Ramsey<pramsey at cleverelephant.ca>
>>>>>>>> <mailto:pramsey at cleverelephant.ca>wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Nov 6, 2023, at 3:33 PM, Marco
>>>>>>>>> Boeringa<marco at boeringa.demon.nl>
>>>>>>>>> <mailto:marco at boeringa.demon.nl>wrote:
>>>>>>>>>
>>>>>>>>> Well, yes indeed that is what is happening, 180 came out of
>>>>>>>>> the reprojection steps as -180. Full output geometry below. Is
>>>>>>>>> there any way to prevent this behavior?
>>>>>>>>> Marco
>>>>>>>>
>>>>>>>> Not really… Either snap to grid or reduce precision
>>>>>>>>
>>>>>>>> https://postgis.net/docs/ST_ReducePrecision.html
>>>>>>>> <https://postgis.net/docs/ST_ReducePrecision.html>
>>>>>>>> https://postgis.net/docs/ST_SnapToGrid.html
>>>>>>>> <https://postgis.net/docs/ST_SnapToGrid.html>
>>>>>>>>
>>>>>>>> will get you back onto the dividing line (note that it is
>>>>>>>> at -180.00000000000014), but that won’t help in flipping -180
>>>>>>>> to 180. For your particular case, applying
>>>>>>>>
>>>>>>>> https://postgis.net/docs/ST_ShiftLongitude.html
>>>>>>>> <https://postgis.net/docs/ST_ShiftLongitude.html>
>>>>>>>>
>>>>>>>> will fix it, I think, though not in generality
>>>>>>>
>>>>>>> I think using
>>>>>>>
>>>>>>> https://postgis.net/docs/ST_WrapX.html
>>>>>>> <https://postgis.net/docs/ST_WrapX.html>
>>>>>>>
>>>>>>> would allow a more general purpose solution. At least one you
>>>>>>> have more control over.
>>>>>>>
>>>>>>> P
>>>>>>>
>>>>>>>>
>>>>>>>> P
>>>>>>>
>>>>>
>>>>
>>
>> <https://www.niwa.co.nz/> Brent Wood
>> Principal Technician - GIS and Spatial Data Management
>> Programme Leader - Environmental Information Delivery
>> +64-4-386-0529
>>
>> National Institute of Water & Atmospheric Research Ltd (NIWA)
>> 301 Evans Bay Parade Hataitai Wellington New Zealand
>> *Connect with NIWA:*niwa.co.nz <https://www.niwa.co.nz/>Facebook
>> <https://www.facebook.com/nzniwa>LinkedIn
>> <https://www.linkedin.com/company/niwa>Twitter
>> <https://twitter.com/niwa_nz>Instagram
>> <https://www.instagram.com/niwa_science>YouTube
>> <https://www.youtube.com/channel/UCJ-j3MLMg1H59Ak2UaNLL3A>
>>
>> To ensure compliance with legal requirements and to maintain cyber
>> security standards, NIWA's IT systems are subject to ongoing
>> monitoring, activity logging and auditing. This monitoring and
>> auditing service may be provided by third parties. Such third parties
>> can access information transmitted to, processed by and stored on
>> NIWA's IT systems.
>> Note: This email is intended solely for the use of the addressee and
>> may contain information that is confidential or subject to legal
>> professional privilege. If you receive this email in error please
>> immediately notify the sender and delete the email.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20231108/1f78d7e3/attachment.htm>
More information about the postgis-users
mailing list