4

Can someone please help me construct a proj string to offset coordinates?

The detail we have - one coordinate point in a local construction grid, and the corresponding WGS1984 LatLong which we converted to a UTM coordinate (as the desired output projection).

Manually applying this offset in a 3d Modelling package aligns the data set correctly, so we conclude there is no scaling or rotation involved.

So basically - how do we define the local projection in proj so we can apply the offset to all other data sets?

5

The only parameters (AFAIK) that handle any sort of offset in Proj4 are the +x_0 +y_0 false easting and northing parameters. Unfortunately, UTM projections have implicit false eastings and northings that can't be overridden, so you'll need to choose a different projection that is defined for your local area. Then it's just a case of subtracting your local CS offset to the false offsets of the proj4 string.

E.g. The UK's Ordnance Survey projection, OSGB36, normally looks like this:

+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs

If I were to have a local grid who's origin is at Buckingham Palace (528949 179697 in OSGB36 coordinates) I would need to subtract my local origin from the false eastings and northings parameters:

+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=-128949 +y_0=-279697 +ellps=airy +datum=OSGB36 +units=m +no_defs

Running this command (proj4's cs2cs works just as well):

gdaltransform -t_srs "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs" -s_srs "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=-128949 +y_0=-279697 +ellps=airy +datum=OSGB36 +units=m +no_defs"

And entering some local coordinates gives me:

100 100
529049.000000115 179796.99999956 0

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.