[PROJ] Could you please explain me why I can't project RDN2008 (EPSG:6706) to ERTF2000 (EPSG:9067) or ITRF2000 (EPGS:8997)

Even Rouault even.rouault at spatialys.com
Tue Jul 19 10:05:24 PDT 2022


Le 19/07/2022 à 18:37, Greg Troxel a écrit :
> Even Rouault <even.rouault at spatialys.com> writes:
>
>> See the manually added records starting at
>> https://github.com/OSGeo/PROJ/blob/5b2d59b68f931303d73e742763309d258f9335d4/data/sql/customizations.sql#L187. "manually"
>> here means "not done in code": an alternative would be to explore the
>> datum ensembles and their members in the database and figure out the
>> null transformation between them. Given the relatively low number of
>> datum ensembles in the EPSG database (essentially only WGS 84 and
>> ETRS89), the manual way is much easier to implement than new code.
> Thank you for the pointer.
>
> I find the word "manual" to be very confusing here.  As I see it, this
> is basically forming a database which is the union of the EPSG database
> and some other entries.  Arguably, these entries or something like them
> should be in the EPSG database, but they aren't for various reasons.
One can see them as implicitly present in the EPSG database from the 
definition of each datum ensemble. It is just that this isn't super 
convenient for PROJ direct use.
>
> I wonder if instead, or probably, we should have transforms from each
> member to the next, as particularly for recent members the accuracy
> statement can be vastly lower.
That could be done, although I'm not sure this would help that much 
compared to having each datum ensemble member <--> datum ensemble 
transformation.
>
>> (to be pedantic we only record transformation from each member of the
>> ensemble to the ensemble, to avoid the combinatory explosion of
>> registering transformations between each member. but PROJ is smart
>> enough to combine 2 (not more) steps to do e.g WGS 84 (G1674) -> WGS
>> 84 (G1762) as WGS 84 (G1674) -> WGS 84 (ensemble) -> WGS 84 (G1762) )
> Is that limitation fundamental?

when you have one intermediate CRS as currently, in SQL, this is a (very 
complicated) self JOIN with the coordinate_operation_view appearing 
twice (and joining with other tables to account for the fact that most 
transformations are defined only between geographic 2D CRS, but the 
transformations we want to do may involve their related geographic 3D or 
geocentric CRS). Potential complexity O(N^2) in the number of coordinate 
operations

(it is actually the union of 4 such self JOIN to take into account that 
the 'left' and 'right' operations must be considered in the forward and 
inverse transformation)

If you allowed 2 intermediate CRS, that would be (really very 
complicated) self JOIN with the coordinate_operation_view appearing 
three times. Potential complexity O(N^3)

etc.

So computation time and code could become very ugly

A potential enhancement to PROJ would be to have a way for it to know 
which intermediate datums must be considered, so it is guided in its 
search, probably by defining "generation of datums" that apply to some 
area (e.g for the US: NAD27, NAD83 (86), NAD83(HARN), NAD83(NSRS2007), 
NAD83(2011))

But the more transformations PROJ chain together, the more questionable 
they are. One hop as done currently probably already covers > 90% of the 
cases.

That said, if we implemented the NADCON5 grids, a more complex logic 
would be needed as they are provided only for successive datums in the 
above mentionned NAD datums, and AFAIR, they recommend chaining them 
when wanting to transform between non immediately consecutive datums.

>   It could be reasonable to go through
> multiple steps from WGS84(TRANSIT) to WGS84(G2139), some of which are
> not null transforms.
Are such non-null transforms between members published somewhere ? 
Anyway, if they existed in its database, PROJ would use them in priority 
compared to chaining WGS84(XXX) -> WGS84(ensemble)->WGS84(YYYY)
>    Anyway we can avoid traversing an ensemble to
> solve a requested transform seems better as there is an intrinsic loss
> of accuracy from ensembles where we pause at "we don't really know what
> frame the data is in".

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the PROJ mailing list