Skip to content

Map out translation process #1

@judgej

Description

@judgej

2015-10-05 11 29 14

The attached sketch shows the process from top left, going clockwise. I started off defining the process for a datum shift alone, then realised much of what happens in the datum shift is dictated by the parameters of the source and destination projections.

Things to note are:

  • The projections will convert to and from a geodetic (lat/lon) point using their forward()/inverse() methods.
  • Datum shifts can only operate on geocentric points, so that conversion needs to be done.
  • If a datum shift is not needed, then converting to geocentric and back again is a wasted operation - just skip that bit.
  • Converting from a projection point to a geodetic point will carry forward the datum with it.
  • Converting from a geodetic point to a projection is a little more ambiguous, as the point will have a datum of its own, and that may not match the datum that the projection uses (i.e. that, in part, defines the projection). What do we do here? Force a datum shift? Or raise an exception?

Another thing that has confused me, that I would like clarified, is where ellipsoids are defined. A projection has a datum and usually an ellipsoid defined in its "def". A datum also has an ellipsoid defined in its parameters. So do the two always agree? Should a projection ellipsoid override a datum's ellipsoid? Or is it listed in the "def" details just as a bit of human-readable information?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions