2

There are two Coordinate Reference System, say they are wgs84 and crs2(a local crs).

A certain location can be translated from wgs84 to crs2 by official algorithm, and the algorithm is irreversible(Because the algorithm is confidential).

Now we have a lot of locations in crs2, and we want to translate them to wgs84.

We tried to use the grid to make this.

For example, we can generate millions of points in wgs84 which have a certain distance with each other, then they will make up a gird.

Then we translate these points to crs2 one by one by the algorithm. After that, for a given point in crs2, we first find the gird it reside in , and then calculate a approximate location in wgs84.

Like this:

enter image description here

And the precise depend on the distance of the gird, the small the better.

I am just not sure if there is any models or best practices out of box for building the grid and make the reverse calculation as fast as possible?

  • might help us to know what cs1 & cs2 are – Ian Turton Apr 1 '15 at 11:00
  • They are all local crs, seriously they can not be called as crs. – giser Apr 1 '15 at 11:05
  • "There are two Coordinate Reference System" versus "seriously they can not be called as crs." How is the algorithm irreversible? Are you talking about a resampling problem? – Martin F Apr 1 '15 at 14:18
  • I just though that you can take the crs2 as the china mars coordinate system, and crs1 as normal wgs84. – giser Apr 1 '15 at 14:45
  • 1
    This is basically the way that datum shifts with ntv2 grids work (in both directions with the same grid file), but they are developed to exchange between degree coordinates. – AndreJ Apr 2 '15 at 3:55
2
+50

If the transform is unknown, you could use one of the commonly used models that would estimate your transform. If the speed is an issue, you should start with the most simple solutions, check the precision of your model based on the RMSE (you seem to have a large number of points, so you can have a good estimate of the RMSE) and then increase the complexity of your model if necessary.

Because you work in geographic coordinate system, selecting a datum transform should be the most usefull. You can find a selection of equation-based algorithm (geocentric and molodensky) an this page.

Another solution is to convert the grids as if they were planar coordinate systems. This would work if your area of interest is small. You could then start with an affine transform, and if it is not precise enough you can use first or second order polynomials.

  • Does it mean that the brute-force solution I mentioned make no sense? One can always calculate the model(equation)(easy or complex) by limited points? And BTW, I wonder if there is any condition when the gird is necessary? If yes, any common practices to building the gird and calculating? – giser Apr 9 '15 at 12:22
  • My point is that simple models are usually more robust and run faster. The local grid based model would be usefull if you had a complex transform with strong distortions (what you do is called rubber sheeting). In your case, I think that we can assume the crs2 is based on a relatively simple model, except if it is a custom transform based on some attribute (like this map, based on population, where your method would be necessary : dailymail.co.uk/sciencetech/article-1217571/… ) – radouxju Apr 9 '15 at 13:00
  • Ok, I got it, thank you. And in fact, why we use the grid calculation is that the crs2 is complete locally and classified by a third organization, so we do not know if the transformation is Equation based or not. If not, does the modeling solution still work if I choose the parameter as complex as possible? In this case(the wgs84-crs2 is not equation based), it seems that this becomes to a complete mathematics problem: find a polynomials f which meets:crs2xy = f(wgs84xy), then solve the f? – giser Apr 9 '15 at 13:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.