Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
up vote 2 down vote accepted

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
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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