2

We have a number of custom local coordinate systems at work.

I'm trying to create a well known text coordinate system for each of them however I'm stuck on how to define these systems they .

Some variables i'm aware of. centre of latitude longitdue -27 22 27.1954, 153 10 46.5722 (lat,long) GDA94 Zone56 centre 517760.037, 6972102.441 (E,N).

We set this coordinate to 3800.192,3129.572 then rotate the file about it by -57.975833 and scale it by 1.000400336 (this is a cad move rotate scale operation not a re-projection as such)

The only thing I've come close to getting a similar result has been a stereographic coordinate system ... but this scales in all directions? We require a cylinder type operation as our area of work is more rectangular and it will give greater accuracy along the centre of work. Can anyone help me define a WKT coordinate system for my proect?

updated wkt code ... im not sure on how to define the rest of the coordinate system help?

FITTED_CS["FIG",
      PARAM_MT["Affine", 
               PARAMETER["elt_0_0", 3800.192],
                                 PARAMETER["elt_0_1", 3129.572],
                                 PARAMETER["elt_1_0", -0.53027691844514246],
                                 PARAMETER["elt_1_1", 0.84782450410702548],
                                 PARAMETER["elt_2_0", 0.84782450410702548],
                                 PARAMETER["elt_2_1", 0.53027691844514246]
                                 <need long lat of swing point somewhere?>
              ],

what is exported from my software ...

PROJCS["FIG",
 GEOGCS["FIG",
  DATUM["D_EPSG:6283",
     SPHEROID["EPSG_7019",6378137,298.257222096042]
    ],
    PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]
 ],
 PROJECTION["CSMAP:54"],
 PARAMETER["Central_Meridian",0],
 PARAMETER["Latitude_Of_Origin",-27.3742209444444],
 PARAMETER["Scale_Factor",1.000400336],
 PARAMETER["False_Easting",0],
 PARAMETER["False_Northing",0],
 PARAMETER["A0",3800.192],
 PARAMETER["A1",-0.53027691844514246],
 PARAMETER["A2",0.84782450410702548],
 PARAMETER["B0",3129.572],
 PARAMETER["B1",0.84782450410702548],
 PARAMETER["B2",0.53027691844514246],
 UNIT["Meter",1]
]
4
  • Further Info Added
    – Jamo
    Commented Nov 11, 2010 at 1:52
  • updated wkt code ... the paramaters above give me the correct roatation however when exporting from my software it exports bad wkt or unknown second wkt is what is exported
    – Jamo
    Commented Nov 11, 2010 at 22:54
  • 1
    Hi Jamo ... I may have some downtime today; thought I'd ask a clarifying question or two in case I had the time to really expand my answer. So ... to clarify: Your project starts with data in a GDA Zone 56 projection, then you are recentering, scaling, and rotating this data (presumably into a CAD system); then modifying it, adding building drawings/site plans/whatever... and you want to know how to properly georeference the result. Is that more or less right? :)
    – Dan S.
    Commented Nov 12, 2010 at 17:12
  • Yes that is pretty much the process. The issue is we have been using this coordinate system for some time but it has never been defined as such. Being able to define the Coordinate system and be able to geo-recitfy to and from gda94 to our local grid (engineering grid) would be great. I'm sorry for my lack of knowledge on the subject.
    – Jamo
    Commented Nov 14, 2010 at 23:51

2 Answers 2

6

I'm not a master of how coordinate systems are defined. However, your "move rotate scale" constitute what's known as an affine transform, and you can describe these in WKT using a a "FITTED_CS" coordinate system and a PARAM_MT["Affine", ...] for the affine matrix parameters.

The documentation is too sparse and my time too short to figure it all out, but if I understand what you want, the result will look sort of like:

FITTED_CS["Some sort of name here",
          PARAM_MT["Affine", 
                   PARAMETER["num_row",3]
                   <... rest of affine trans here ...>
                  ],
          <The underlying GDA Zone56 spatial reference WKT goes here...>
         ]

I believe -- the documentation sucks! (or I suck at turning it up!) -- that the affine transformation is represented by a homogenous matrix, as described here: http://en.wikipedia.org/wiki/Transformation_matrix#Affine_transformations

The values in the matrix would then be given by something like: ("elt_X_Y" being the pattern. Or maybe it's "elt_Y_X.")

PARAMETER["elt_0_0", 10.0],
PARAMETER["elt_0_1", 0.0]

It's a Simple Matter Of Math to go from your description ("move here, scale this much, rotate by x") to a matrix -- each step can be turned into a matrix of its own, then you can derive a matrix that represents all steps at once by multiplying them together. Note that you want the transformation from work coordinates to the underlying coordinate system, not the other way around.

Possibly this was helpful in your quest. Hopefully someone can point at better documentation.

A final caveat!: I've no idea how well supported FITTED_CS actually is by GIS software. It's in the standard, however! ;)

3
  • I belive this is the sort of transformation I require, but for the life of me I can't get my head around the matrix
    – Jamo
    Commented Nov 11, 2010 at 1:23
  • They're complicated beasts! The wikipedia subsection I linked gives examples of moving (by tx and ty) and rotating by theta; if you scroll up there's a matrix for scaling. (It's missing the 3rd row and column, which should read 0 0 1 across and down.) Once you have built matrices for each individual operation, you get the final transformation matrix by multiplying them together. Order matters, since moving then rotating isn't the same as rotating then moving! Here's a tutorial google found (for Flash, but the same concepts): senocular.com/flash/tutorials/transformmatrix.
    – Dan S.
    Commented Nov 11, 2010 at 1:56
  • I've confirmed with a surveyor here about this coordinate system. however he cannot supply me with the correct parmaters ... I would have thought the sine and cosine of -57.975833 plugged into it would give me the right rotation.... but I am wrong.
    – Jamo
    Commented Nov 11, 2010 at 21:46
0

I was thinking you should start with a state plane system and modify. using a lambert conformal system should be most like the cad system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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