#see supported projections short version: cs2cs -lp #see supported projections long version: cs2cs -lP #see supported parameters for certain projection (example: UTM) cs2cs -l=utm cs2cs -l=tmerc cs2cs -l=lcc #see supported ellipsoids: cs2cs -le #see supported map units: cs2cs -lu #see built-in map datums: cs2cs -ld #see built-in prime meridians (A prime meridian may be declared indicating # the offset between the prime meridian of the declared coordinate system and # that of greenwich): cs2cs -lm
East North Elevation 1667267.26 5104155.74 531.9
For 'cs2cs' you first need to find the related EPSG (European Petroleum Survey Group) numbers. There is a file containing several thousand projection definitions:
nedit /usr/local/share/proj/epsg -> search EPSG number of "Monte Mario (Rome) / Italy zone 1" ==> 26591 -> Monte Cimirlo, Trentino is in UTM zone 32N. So we search the EPSG number of "WGS 84 / UTM zone 32N" ==> 32632 -> Monte Cimirlo, Trentino is in UTM zone 32N. So we search the EPSG number of "ED50 / UTM zone 32N" ==> 23032
Additionally you need the datum transformation parameters (because they are missing for unknown reasons in the EPSG file). You can find many European datums at: http://crs.ifag.de and also buy them from IGM.
#3 parm: Molodensky transformation GB to UTM/WGS84
#defined with "towgs84" parameter: x, y, z - shift only, parameters are in meters
#
# - skipped as 3 parameter datum transformation is not very precise.
#7 parm: Helmert transformation GB to UTM/WGS84
#defined with "towgs84" parameter: x, y, z, scale x, scale y, scale z, rotation
# parameters are in meters, rotation
# We have two datums available:
# * IGM Datum for Trieste, borrowed from http://remotesensing.org/lists/proj_archive/msg00485.html :
# +towgs84=-85.88,-28.85,+49.67,-1.003,-2.383,-1.808,-27.82
# * Peninsular Datum from crs.ifag.de: +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68
#
#The reprojection requires 2 steps: GB -> LatLong -> UTM
echo "1667267.26 5104155.74 531.9" | cs2cs -v +init=epsg:26591 \
+towgs84=-85.88,-28.85,+49.67,-1.003,-2.383,-1.808,-27.82 \
+to +proj=latlong +pm=rome
11d9'46.103"E 46d4'7.746"N 735.593
echo "11d9'46.103E 46d4'7.746N 735.593" | cs2cs -v +proj=latlong \
+to +init=epsg:32632
667261.93 5103967.78 735.59
#The same procedure in one step:
echo "1667267.26 5104155.74 531.9" | cs2cs -v +init=epsg:26591 \
+towgs84=-85.88,-28.85,+49.67,-1.003,-2.383,-1.808,-27.82 \
+to +proj=latlong +pm=rome | cs2cs -v +proj=latlong \
+to +init=epsg:32632
667261.93 5103967.78 735.59
# ... this are the UTM/WGS84 coordinates.
#Now similar for UTM/ED50:
echo "1667267.26 5104155.74 531.9" | cs2cs -v +init=epsg:26591 \
+towgs84=-85.88,-28.85,+49.67,-1.003,-2.383,-1.808,-27.82 \
+to +proj=latlong +pm=rome | cs2cs -v +proj=latlong \
+to +init=epsg:23032
667269.74 5104064.48 735.59
# ... this are the UTM/ED50 coordinates.
Other Example: transforming from LatLong to UTM/WGS84:
echo "11d7'58.87328E 46d5'8.89033N 429.782" |cs2cs -v +proj=latlong +datum=WGS84 \
+to +init=epsg:32632
664907.82 5105792.64 429.78
# ... this are the resulting UTM/WGS84 coordinates.
LOCATION: new name (e.g. latlong | gbovest | utm32) MAPSET: username (your user name) DATABASE: don't change (already points to 'grassdata') Continue with ESC-ENTER