WKT for Tokyo Coordinate System To WGS84 Conversion
29 May 2007GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]
When converting latitude-longitude coordinate from Tokyo CS to WGS84, this WKT is missing the so-called "Bursa-Wolf Parameter", usually defined in the WKT using "TOWGS84[...]" expression. For example, the following code in Java (using GeoTools 2.2.0) throws an exception saying something like: "Missing Bursa-Wolf something.."
CoordinateReferenceSystem tokyo = crsFactory.createFromWKT("GEOGCS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4301\"]]");
CoordinateReferenceSystem wgs84 = crsFactory.createFromWKT("GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]");
CoordinateOperationFactory coFactory = FactoryFinder.getCoordinateOperationFactory(null);
CoordinateOperation op = coFactory.createOperation(tokyo, wgs84);
MathTransform trans = op.getMathTransform();
...
To fix this problem, simply add following Bursa-Wolf expression to the Tokyo CS's WKT:
TOWGS84[-148,507,685,0,0,0,0]
So that it looks something like:
"GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]"