2

I have a data with an unknown coordinate system. The coordinates has 10 digits left of the decimal. Its unit is equivalent to about a cm. The data is for Tehran(Iran), boundaries of Tehran are about 35.54 to 35.84 N and 51.19 to 51.84 E in decimal degrees. The boundaries in this coordinate system are 1499559806.00 to 1496487278.00 N and 604413102.00 to 609510913.00 E.

AndreJ
  • 76,698
  • 5
  • 86
  • 162

2 Answers2

1

Checking http://twcc.fr/en/#, accepting that centimetres would have to be interpreted as metres.

Closest was in some of the Costa Rican systems - http://twcc.fr/en/?sc=CR%253ANS&dc=EPSG%253A2195&wgs84=62.88418515856389%252C31.505380207507326&z=8&mt=terrain - but the coordinates are in Afghanistan.

0

Since there does not seem to be an official CRS, this is my best try:

Calculate the extent in UTM 39N and local units:

59:33 km vs 5097811:3072528 units

So centimeters might be a good guess.

Calculate the center coordinates in degrees and local units:

51.515°E 35.69°N vs X=606962008 Y=1498023542

Build a custom tmerc projection on that point. The false Easting and Northing must be in meters for proj.4:

+proj=tmerc +lat_0=35.69 +lon_0=51.515 +x_0=6069620.08 +y_0=14980235.42 +k=1 +ellps=WGS84 +units=cm +no_defs

Load the degree data in WGS84 (green) and local units data in the custom CRS (red):

enter image description here

Offsets are up to 4 km, so let's improve the centimeter guess:

59000/5097811 = 0.011574 units per meter
33000/3072528 = 0.010740 units per meter

So we can use an average value of 0.011157 units per meter as +to_meter value. False Easting and Northing have to be multiplied by it to get meters:

 606962008 * 0.011157 =  6771875 m
1498023542 * 0.011157 = 16713449 m

The improved proj.4 string is now:

+proj=tmerc +lat_0=35.69 +lon_0=51.515 +x_0=6771875 +y_0=16713449 +k=1 +ellps=WGS84 +to_meter=0.011157 +no_defs

and the offset is less than 1 km:

enter image description here

If you have vector data, you can use the QGIS Vector Bender plugin to stretch the data to the real points.

AndreJ
  • 76,698
  • 5
  • 86
  • 162