I guess you stumbled over this note on page 53:
subsequent civilian adoption of the systems usually ignores the
zone prefix to easting. Where this is the case the formulas below do
not apply: use the standard TM formula separately for each zone
The formulas on page 54 should only be used if the zone number is written before the false Easting, which is not the case here. So I took only the formulas from p 50ff into Libre Office and got these results:
M0 0
e1 0.0016649922
mue1 0.4772587465
M1 3038553.85538554
T1 0.2701106629
C1 0.0059292372
esq 0.0066822021
D 0.0183352698
phi1 0.4793002154
nue1 6381782.36093598
rho1 6348382.77011411
phirad 0.4792124095 phi 27.4568485565
lamrad 1.4867384817 lam 85.1838402406
which returns the same lat and lon on the Everest ellipsoid as
cs2cs +proj=tmerc +lon_0=84 +lat_0=0 +k=0.9999 +a=6377276.345 +b=6356075.41314024 +x_0=500000 +units=m +towgs84=282,726,254 +no_defs +to +proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=282,726,254 +no_defs -f "%%.6f"<MUTM88.txt >WGS84out.txt
85.183840 27.456849 1230.000000
Transforming to WGS84 returns:
85.181615 27.457128 1188.383496
which is still not exactly what you expected, but more close than your result.
Malaysia uses Cassini projections per state for cadastral mapping. For Kuala Lumpur, the Selangor grid would be the right one. The EPSG registry lists these codes:
3380 GDM2000 / Selangor Grid
4393 Kertau 1968 / Selangor Grid
Unfortunately, both do not fit to your coordinates, and the second has not even found its way into the PROJ.4/GDAL software. Neither does the countrywide projection EPSG:3375 GDM2000 / Peninsula RSO fit.
So lets put up a custom CRS based on EPSG:3380, assuming the reference point is close to the first coordinate:
+proj=cass +lat_0=3.184487 +lon_0=101.718079 +x_0=23463.817 +y_0=-54819.146 +ellps=GRS80 +units=m +no_defs
Creating a grid with this datum, you will see that the origin will be around 101.5°E 3.68°N
, which is, by coincidence, close to the orgin of EPSG:3380 Selangor Grid, omitting the false Easting and Northing of that projection.
After some searching on the internet, you will come across a file named PKPUP3-2009.pdf
In chapter 4.5, you can read that Malaysia has reorganized its local Cassini projections, now setting all False eastings and Northings to zero. The document lists for Selangor the Bukit Asa reference station, with these coordinates:
3° 40' 48.37751" North 101° 30' 24.48130" East
which is equivalent to 3.68010486388889 N 101.506800361111 E in decimal degrees. So the right PROJ.4 string and .prj file content for your coordinate system would be:
+proj=cass +lat_0=3.68010486388889 +lon_0=101.506800361111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs
PROJCS["Cassini",GEOGCS["GCS_GRS 1980(IUGG, 1980)",DATUM["D_unknown",SPHEROID["GRS80",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Cassini"],PARAMETER["latitude_of_origin",3.68010486388889],PARAMETER["central_meridian",101.506800361111],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],PARAMETER["scale_factor",1.0]]
which places your coordinates about 26 meters from your reference point:
![enter image description here](https://i.stack.imgur.com/3VzFf.png)
It seems that neither EPSG nor any GIS software has adopted this new set of local Cassini projections of Malasyia yet. The Surveying Authority makes some mistery about it, partially because they want to get money for the information they provide.
Best Answer
Not the perfect solution, but might take you further:
Malaysia does not use UTM for surveying. The EPSG registry lists several projections valid for West Malaysia, and the Selangor state. You will find further information on malaysian CRS at
http://www.asprs.org/a/resources/grids/04-2009-malaysia.pdf
https://www.jupem.gov.my/wp-includes/files/pekeliling/PKPUP3-2009.pdf
http://eprints.utm.my/3527/1/gdm2000_DSMMKL.pdf
Unfortunately, none of them really fits to your data. So it may be useful to set up your own projection.
You have a reference point in WGS84 degrees (
101.759941 East 3.145241 North
) and local coordinates (106374.634 East 96819.608 North
). Make sure they are in decimal degrees and meters.For statewide surveying, Malaysia uses cassini projections, based on the GDM2000 geographic CRS. So we take the proj.4 definition of Selangor grid
EPSG:3380
:and replace the values of the origin with the known point you have:
You can use this custom projection string with PROJ.4 cs2cs, or all GDAL-based software. The reference point will be matched exactly, others may be offset, depending on the extent of your data.
If you compare a grid of this CRS (in red) with the Selangor grid (in green), you get this picture:
The Selangor grid has its true origin at some point in Kuala Lumpur (next to the Istana Budaya). Your grid has the crossing of 100000m almost on the same spot. So they have just added 100000 on both coordinates to prevent having negative and positive coordinates (a common practice in many surveying systems). So you can just subtract that value from your coordinates, and work with
EPSG:3380
.If you are unsatisfied, you can try the old Kertau 1968 datum as well.
EPSG:4393 Kertau 1968 / Selangor Grid
would be suitable, but is not included in all GDAL packages.The additional false easting and northing of 100000 meters would be the same, since the true origin is almost on the same spot in Kuala Lumpur as for GDM2000.