Friday, 11 March 2016

Using customized Coordinate System in ArcGIS Desktop?



I don't know so much about coordinate systems...


In my office we use to deal with spatial data coming from archaeological sites. Each site has its own x-y-z coordinate system (GCS). Three simple ortogonal cartesian axis. In the last years we have been managing this spatial data through GIS software (ArcGIS), without using specific coordinate system (just leave it as "undefined")


I'd like to know if there exisits any GCS designed to deal with such datasets using simple cartesian orthogonal axis, without grid distortions of the typical GCS. In addition, I'd like to know if this system is suitable for using it in an online mapping application.


By the way, we manage 2D (ArcMap) and 3D (ArcScene) environments and work with "mm" as length base unit.


If such a thing doesn't exists, maybe someone knows how to create it.



Answer



Assuming your areas of interest are rather small compared to the globe, you could set up a custom transverse mercator projection.


You have to know the geographic coordinates lat_0 and lon_0 of the origin of your CRS, and the direction of x and y axis:


+proj=tmerc +lat_0=51.4 +lon_0=7 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs


For use with Arcgis, the .prj file should contain:


PROJCS["Transverse_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_unknown",SPHEROID["WGS84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",51.4],PARAMETER["central_meridian",7],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]

If they are not in parallel with North and East directions, a rotation would be necessary by using an oblique mercator projection:


+proj=omerc +lat_0=51.4 +lonc=7 +alpha=-10 +k=1 +x_0=0 +y_0=0 +gamma=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

The .prj file for this projection is:


PROJCS["Hotine_Oblique_Mercator_Azimuth_Center",GEOGCS["GCS_WGS_1984",DATUM["D_unknown",SPHEROID["WGS84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["latitude_of_center",51.4],PARAMETER["longitude_of_center",7],PARAMETER["azimuth",-10],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]

Here are both together (tmerc in blue, and omerc in red):



enter image description here


The lat_0 and lon_0 (or lonc) are the coordinates of your local CRS origin. You have to explore these with a GPS or from other maps. The angle you have to calculate from the coordinates of two known points on your local X-axis.


The only thing that does not work as expected is the millimeter as units. It should work, but does not in current QGIS :-(


http://hub.qgis.org/issues/9414




Update


Current QGIS versions are now able to work with local projections using mm as units.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...