Breves instrucciones para transformar coordenadas UTM a GEOGRÁFICAS con el software CALCULADORA UTM (DAR CLICK AQUÍ PARA DESCARGAR)

Proyección Universal Transversa de Mercator - UTM

El programa de paso de coordenadas Geográficas a U.T.M. y viceversa, se basa
en las ecuaciones de transformación deducidas para el desarrollo transverso cilíndrico
terrestre de Mercator, tomando como referencia un elipsoide de revolución y dividiendo
la Tierra en 60 husos iguales de 6 grados cada uno.

El origen de latitudes es el ecuador y el de longitudes es el meridiano por Greenwich.
La transformación de coordenadas es válida para las zonas del globo terrestre comprendidas
entre longitudes de 0º a 180º Este y Oeste de Greenwich, y latitudes de 0º a 84º 30' Norte
y 0º a 80º 30' Sur. Las zonas polares serán cubiertas con otras proyecciones.

VENTANA DEL PROGRAMA
Para todos los casos:
Las unidades para longitud y latitud son grados sexagesimales en modo decimal.
Las unidades para las UTM y cartesianas X, Y, Z, son en metros.
Los valores decimales, al entrar datos,son precedidos de un punto (no de coma)
El cálculo de altitudes es en metros (para ventana y para ficheros).


--> UTM a geográficas:
Introducir coordenadas X e Y UTM en metros, y el número de huso en el que están las coordenadas.
También debemos indicar el hemisferio en el que están las coordenadas.

--> Geográficas a UTM:
Introducir latitud y longitud en grados sexagesimales, ya sea en modo decimal o modo
grados minutos y segundos(gms) separados por espacios. Estos datos se introducen sin signo.
Seguidamente seleccionamos el hemisferio Norte/Sur y la longitud W/E (Oeste/Este).

El cálculo de huso es automático pero tenemos la opción de forzar este cálculo activando la opción
correspondiente en el menú Configurar. Una vez activado, introducimos nuevo huso en "a Huso->",
así podemos calcular las geográficas a utm en un huso diferente al que corresponden.
Esto se hace con el fin de ampliar un huso de 6º, ya que por motivos particulares podemos estar
trabajando en área común a dos husos y para trabajar se hace mejor si pasamos todas las UTM a un mismo huso.

Si tenemos activado el cálculo de Altitudes (menú Configurar), podemos transformar altitudes elipsoidales(h)
en ortométricas(H), de manera que en la ventana de usuario se activan las entradas correspondientes,
a continuación de las coordenadas Utm y de las Geográficas. En ambos casos podemos indicar qué tipo de
altitud tenemos (pinchando en H ó h se despliega menú con opciones) y qué es lo que queremos obtener,
de forma que si por ejemplo, seleccionamos H en las Utm y h, en las Geográficas y hacemos el paso de
Utm a Geográficas, obtendremos la altitud elipsoidal correspondiente a la Ortométrica introducida en las Utm.
Hay que tener en cuenta que los cálculos de altitudes son válidos únicamente para los sistemas ETRS89, WGS84
y GRS80, para el resto de sistemas en programa avisa de que no es posible el cálculo.

UTILIDADES
--> Cambio de Huso Utm:
Podemos transformar las UTM introducidas a otro Huso diferente activando la opción correspondiente en el
menú Configurar. Una vez activado, introducimos nuevo huso en "a Huso->". Esta operación, se realiza con las
mismas fórmulas de transformación utilizadas entre UTM<>GEO.

--> Geográficas/Utm a cartesianas xyz:
Podemos utilizar coordenadas cartesianas (Sistema de Coordenadas Espacial en el elipsoide) para
ver las geográficas en este sistema xyz, o para introducir datos directamente desde este sistema.
Las unidades de los valores xyz son en metros.

--> Geográficas/Utm(Sist1) a Geográficas/Utm(Sist2):
Nos permite pasar coordenadas de un sistema de referencia a otro, es decir, un cambio de Datum.
En el botón que realiza esta tarea aparecen los dos sistemas implicados y la dirección del cálculo.
Los dos sistemas deben estar previamente definidos en el programa a través del Menú Sistema_Ref.
Para que este botón aparezca al inicio de la aplicación, es necesario que se localice el fichero
en el mismo directorio.
El fichero se puede descargar en la página del CNIG: www.cnig.es, en el apartado Descargas/Herramientas.
Esta herramienta está preparada para funcionar en el territorio español (excepto canarias)
pero se puede sustituir el fichero sped2et.gsb por otro propio y aplicar a la zona en concreto.
El formato del fichero es NTV2 (Canadian National Transformation Version 2).

MENÚS DEL PROGRAMA

**Menú Archivo**
Contiene diferentes opciones para trasformar listados de coordenadas contenidos en ficheros.
Transformaciones entre UTM/GEO/XYZ:
Se abre la aplicación para trasformar un fichero de coordenadas de entrada a uno de salida
entre las diferentes opciones mostradas.
Formatos de los ficheros de entrada (ficheros de texto .txt):

- UTM:
<1 ó -1>(Norte ó Sur, respectivamente).

- Geográficas(modo dec):
<+-longitud> <+-latitud> (+/- si Este/Oeste y +/- si Norte/Sur)
y si queremos fijar el número de huso donde queremos calcular:
<+-longitud> <+-latitud>
de esta manera forzaremos el cálculo con el huso introducido.

- Geográficas(modo gms):
<+-long_grado> <+-lat_grado>
(+/- para E/W y +/- para N/S)
y de la misma manera añadimos el valor si queremos forzar el calculo en
un huso diferente.

- XYZ:

Nota: cuando trasformamos de Utm a Utm se entiende que es para realizar un cambio de huso
de las coordenadas Utm de entrada, por lo que dentro del proceso el programa pide el nuevo
huso para las coordenadas de salida.
En el caso de tener activada la opción de Cálculo de Altitudes (menú configurar), en
la ventana inicial también podremos elegir la altitud de entrada para las coordenadas
de partida y la altitud que queremos para las coordenadas resultado. Hay que tener en
cuenta que el cálculo de altitudes sólo es válido para los sistemas ETRS89, WGS84 y GRS80.
Para el resto de los sistemas, si calculamos altitudes, el resultado será -9999.


Cargar rejilla...
Se utiliza para cargar una rejilla de cambio de Datum diferente a la que se
carga por defecto, siempre con formato NTV2.
ED50<->ETRS89
Transformar coordenadas entre estos dos sistemas de referencia utilizando
un archivo de rejilla calculada en el IGN-españa. La rejilla del archivo
contiene nodos espaciados a intervalos regulares en latitud y longitud.
Cada nodo contiene información del desplazamiento de coordenadas geodésicas
entre ambos sistemas junto con su precisión.
Si algún punto se calcula fuera de la rejilla, devuelve valores nulos.

En el menú Archivo se puede seleccionar un archivo rejilla diferente al cargado.


En el menú ayuda podemos ver la información de rejilla utilizada.

Referencia:
PASO DIRECTO E INVERSO ETRS89<>ED50
(A) JAVIER G.MATESANZ
AREA DE CARTOGRAFÍA
INSTITUTO GEOGRÁFICO NACIONAL



Ejemplos de formatos utilizados:

Ejemplo de formato para pasar de Utm a Geográficas ó Utm a Utm(cambioHuso):

1 262544.518 4470911.879 30 1
2 258979.121 4469032.846 30 1
..............................
Ejemplo de formato para pasar de Geográficas(dec) a Utm:

1 -5.796019506 +40.354294292
2 -5.837244282 +40.336364723
..............................
Ejemplo de formato para pasar de Geográficas(gms) a Utm:

1 -5 30 30 +40 15 20
2 -5 31 30 +40 15 21
..............................
Ejemplo de formato para pasar de Geográficas(gms) a Utm forzando el Huso:

1 -5 30 30 +40 15 20 31
2 -5 31 30 +40 15 21 31
...........(de la misma manera en modo )
Ejemplo de formato para pasar de XYZ a Utm/Geográficas:

1 4842663.4896 -491559.9173 4108112.5868
2 4843590.8174 -495175.2149 4106595.1492
..............................

En caso de tener el Geoide activado para transformar altitudes, el número de datos
por fila en los ficheros de Utm o Geográficas será uno más, el de la altura(H ó h):

Ejemplo de formato para pasar de Geográficas(dec) a UTM pasando de
alturas (h) a Ortométricas(H):
1 -5.796019506 +40.354294292 1050
2 -5.837244282 +40.336364723 935
..............................
Resultado:
1 262555.2752 4470834.6882 994.7800 30
2 258990.0387 4468955.7073 879.8263 30
..............................
Ejemplo de formato para pasar de UTM(ETRS89) con (h) a UTM(ED50) con (H):

1 665663.654 4198841.229 1540.631 30 1
2 665951.381 4198840.617 1538.994 30 1
..............................
Resultado:
1 665774.5868 4199048.8624 1490.3461 30 1
2 666062.3146 4199048.2522 1488.7144 30 1
..............................

Nota sobre altitudes: El programa por defecto asocia altitudes geodésicas (h) con las coordenadas
Geográficas (Lat-Long ó XYZ) y altitudes ortométricas (H) a las coordenadas en la proyección Utm.
Pero el usuario podrá modificar esto en la ventana inicial que se muestra para elegir el tipo de
coordenadas de transformación así como el tipo de altitudes de entrada-salida.

**Menú Sistema Ref**
Elegimos el elipsoide de referencia para los cálculos.
Tenemos la opción de añadir configuraciones de forma permanente o temporal, modificando
un nombre, el radio principal del elipsoide y el denominador del aplanamiento.
En el caso de guardar de forma permanente, el programa escribe la información en un
fichero para cargarlo al arrancar de nuevo el programa.
Para saber en cualquier momento los parámetros básicos del sistema seleccionado, hacemos click
sobre la etiqueta donde aparece el nombre del sistema, en la parte inferior de la ventana.


**Menú Configurar**

Activar cambio de Huso
Activamos o no la posibilidad de calcular una transformación de cambio de Huso para las coordenadas
Utm que introducimos. Los cálculos se realizan con la misma formulación utilizada para paso utm<>geo.

Calcular altitudes(h<>H)
Activamos o no el Geoide IBERGEO95, para trasformar entre altitudes elipsoidales(h) en los sistemas de
referencia ETRS89/WGS84/GRS80 y altitudes Ortométricas(H) sobre el nivel del mar.

A la hora de transformar altitudes de un fichero, el programa pregunta al inicio, junto con los
tipos de coordenadas entrada-salida que queremos, las altitudes de entrada-salida cómo que queremos
transformarlas (entre elipsoidales y ortométricas)

Formato de Salida:
Configuramos los decimales con que queremos ver los datos en pantalla. Realmente los cálculos
se realizan internamente con la precisión máxima posible (17 dígitos).

Podemos configurar algunos parámetros del formato de salida de los ficheros como el caracter separador,
o incluir la cabecera del fichero o el factor de escala para los ficheros de salida Utm.


**Menú Ayuda**
Datos del autor, versión, breve ayuda, mostrar consola y mostrar fórmulas UTM-GEO
Consola: para usuario con conocimientos de lenguaje Tcl, escribiendo ListaProcs
se muestran los procedimientos utilizados y se pueden utilizar a través de
esta consola.

Nota: si se produce algún comportamiento anormal de la aplicación es recomendable
eliminar la información de registro: Esto lo podemos hacer desde el Menú Ayuda. Al eliminar
la información de registro, la próxima vez que arranque la aplicación se cargarán los valores
originales configurados por defecto.

Errores: esta es una herramienta de libre distribución, no tiene fines comerciales. Pueden surgir
errores inesperados no detectados en fase de desarrollo. El autor agradece de antemano cualquier reporte
de la incidencia o incidencias ocurridas para ir mejorando este programa.
-------------------------------------------------------------------------------------------------------------------------------
Lenguaje de programación Tcl-tk (J. Ousterhout)
Ejecutable construido con Freewrap (D. LaBelle)

Versión 9.200710
Eduardo Núñez Maderal, 2002

 

#########PROCEDIMIENTOS EN Tcl para la transformación ######################## #SE INCLUYEN PROCS RELATIVOS A TRANSFORMACIÓN UTM <-> GEOGRAFICAS # U-001 ###################################################################### proc utmgeo {xutm yutm NH hemis la ilon esc con} { 	#Paso de UTM a Geográficas 	#entrar x,y en metros y devuelve lat e incremento de long en sexagesimal 	upvar $la lat 		;#devolver el valor de latitud a parametros del proc 	upvar $ilon ilo		;#devolver el incremento de long a parametros del proc 	upvar $esc factor_e	;#devolver el factor de escala a parametros del proc 	upvar $con conv		;#devolver el valor de convergencia a parametros del proc 	#parámetros principales elipsoide y constantes 	global a		 	global e1 	global e2 	global Pi 	global apla 	global Ko Yo Xo  	if {($hemis==-1)} { 		set y [expr $yutm-$Yo] 	} else { 		set y $yutm 	} 	#Calculo de arco de meridiano: 	#Radio polar 	set c [expr $a/(1-$apla)] 	#Segundo aplanamiento 	set apla2 [expr $apla/(2-$apla)] 	#Radio de la esfera rectificante ###################################################### 		set r [expr ($a*(1+pow($apla2,2)/4))/(1+$apla2)] 		set V0 [expr ((((16384*$e2-11025)/64*$e2+175)/4*$e2-45)/16*$e2+3)/4*$e2] 		set V2 [expr (((-20464721/120*$e2+19413)/8*$e2-1477)/32*$e2+21)/32*pow($e2,2)] 		set V4 [expr ((4737141/28*$e2-17121)/32*$e2+151)/192*pow($e2,3)] 		set V6 [expr (-427277/35*$e2+1097)/1024*pow($e2,4)] 		set w [expr $y/($Ko*$r)] 		set la2 [expr $w+(sin($w)*cos($w))*($V0+$V2*pow(cos($w),2)+$V4*pow(cos($w),4)+$V6*pow(cos($w),6))]  	#Calculo de radios principales######################################################### 	radios $a $e1 $la2 N ro 	set n1 [expr sqrt($e2)*cos($la2)] 	set x [expr ($xutm-$Xo)/$Ko]  	#Aplicar formula desarrollo Taylor #################################################### 	#Calculo de latitud 	set lat_rad [expr $la2-(pow($x,2)/(2*pow($N,2)))*tan($la2)*(1+pow($n1,2))+(pow($x,4)/(24  	*pow($N,4)))*tan($la2)*(5+3*pow(tan($la2),2)+6*pow($n1,2)    -6*pow(tan($la2),2)*pow($n1,2)-3*pow($n1,4) -9*pow(tan($la2),2)*pow($n1,4))-(pow($x,6)    /(720*pow($N,6)))*tan($la2)*(61-90*pow(tan($la2),2) +45*pow(tan($la2),4)+107*pow($n1,2)-162     *pow(tan($la2),2)*pow($n1,2)-45*pow(tan($la2),4) *pow($n1,2))]  	set lat [expr $lat_rad*180/$Pi] 	#Calculo de longitud 	set ilo_rad [expr ($x/($N*cos($la2)))-(pow($x,3) /(6*pow($N,3)*cos($la2)))*(1+2*pow(tan($la2),2)  	+pow($n1,2))+(pow($x,5)/(120*pow($N,5)*cos($la2)))     *(5+28*pow(tan($la2),2)+24*pow(tan($la2),4)+6 *pow($n1,2)+8*pow(tan($la2),2)*pow($n1,2))]  	set ilo [expr $ilo_rad*180/$Pi]  	#Calculo factor de escala y convergencia de meridianos 	CMk $lat_rad $ilo_rad $n1 co k 	set factor_e [format "%0.12f" $k] 	set conv [expr ($co*180)/$Pi] 	#Fin de transformacion UTM a GEOGRAFICAS 	return } # U-001 ###################################################################### # U-002 ###################################################################### proc geoutm {longitud latitud hemisferio NH xx yy esc con} { 	#procedimiento de Geográficas a UTM 	#entrar longitud y latitud con su signo en modo decimal en grados sex. 	upvar $xx X 	upvar $yy Y 	upvar $esc factor_e 	upvar $con conv 	global Pi 	global a 	global e1 	global e2 	global Ko Xo Yo  	set lo $longitud 	set lat_rad [expr $latitud*$Pi/180.0] 	 	set ilo [expr $lo-6*($NH-30.5)]; set ilo_rad [expr ($ilo*$Pi)/180.0] 	 	#calculo de arco de meridiano en el elipsoide################################### 	set B [expr $a*(1-$e1)*((1+3/4.0*$e1+ 45/64.0*pow($e1,2)+175/256.0*pow($e1,3))  	*$lat_rad-1/2.0*(3/4.0*$e1+15/16.0*pow($e1,2) +525/512.0*pow($e1,3))*sin(2*$lat_rad)+1/4.0  	*(15/64.0*pow($e1,2)+105/256.0*pow($e1,3)) *sin(4*$lat_rad)-1/6.0*(35/512.0*pow($e1,3)) *sin(6*$lat_rad))]  	radios $a $e1 $lat_rad N ro 	set n [expr sqrt($e2)*cos($lat_rad)]  	#calculo de coordenada "y" ###################################################### 	set y [expr $B+pow($ilo_rad,2)/2.0*$N *pow(cos($lat_rad),2)*tan($lat_rad) +pow($ilo_rad,4)/24.0*$N*pow(cos($lat_rad),4)  	*tan($lat_rad)*(5-tan($lat_rad)*tan($lat_rad)+9 *$n*$n+4*pow($n,4))+pow($ilo_rad,6)/720.0  	*$N*pow(cos($lat_rad),6)*tan($lat_rad)*(61-58 *pow(tan($lat_rad),2)+pow(tan($lat_rad),4)+270 *$n*$n-330*pow(tan($lat_rad),2)*$n*$n)]  	#aplicar factor reduccion deformacion lineal y comprobar si estamos en latitud Sur 	set Y [expr $Ko*$y] 	if {$hemisferio<0} { 		set Y [expr $Yo+$Y] 	} 	#calculo de coordenada "x" ####################################################### 	set x [expr $ilo_rad*$N*cos($lat_rad) +pow($ilo_rad,3)/6.0*$N*pow(cos($lat_rad),3)  	*(1-pow(tan($lat_rad),2)+$n*$n)+pow($ilo_rad,5) /120.0*$N*pow(cos($lat_rad),5)*(5-18  	*pow(tan($lat_rad),2)+pow(tan($lat_rad),4)+14*$n *$n-58*pow(tan($lat_rad),2)*$n*$n)]  	set x [expr $x*$Ko] 	set X [expr $Xo+$x]  	#Calculo factor de escala y convergencia de meridianos ############################ 	CMk $lat_rad $ilo_rad $n co k 	set factor_e [format "%0.12f" $k] 	set conv [expr ($co*180)/$Pi] 	 	#fin de trasformacion GEOGRAFICAS a UTM 	return } # U-002 ###################################################################### # U-003 ###################################################################### proc CMk {latrad ilorad n co k} { 	#procedimiento de convergencia y factor de escala en UTM 	upvar $co conv_rad 	upvar $k factor_e 	global Ko  	set conv_rad [expr $ilorad*sin($latrad)+(pow($ilorad,3)/3) *sin($latrad)*pow(cos($latrad),2)*(1+3*pow($n,2)+2  	*pow($n,4))+(pow($ilorad,5)/15)*sin($latrad) *pow(cos($latrad),4)*(2-pow(tan($latrad),2))]  	set factor_e [expr $Ko*(1+pow($ilorad,2)/2.0 *pow(cos($latrad),2)*(1+pow($n,2)))] } # U-003 ######################################################################  Info rejilla: sped2et.gsb  DATOS DE REJILLA ED50    <-->ETRS89  
NUM_OREC = 11
NUM_SREC = 11
NUM_FILE = 2
GS_TYPE = SECONDS
VERSION = 01012003
SYSTEM_F = ED50
SYSTEM_T = ETRS89
MAJOR_F = 6378388.0
MINOR_F = 6335508.2022000002
MAJOR_T = 6378137.0
MINOR_T = 6335439.3270800002 Rejilla(1): SUB_NAME = PEN+BAL PARENT = NONE CREATED = 10012003 UPDATED = 10012003 S_LAT = 35 33 20.00000 N N_LAT = 44 26 40.00000 N E_LONG = 4 9 0.00000 E W_LONG = 10 11 0.00000 W LAT_INC = 200.0'' LONG_INC = 200.0'' GS_COUNT = 41699 Rejilla(2): SUB_NAME = BALE PARENT = NONE CREATED = 01022005 UPDATED = 01022005 S_LAT = 38 0 0.00000 N N_LAT = 40 47 30.00000 N W_LONG = 0 50 0.00000 E LAT_INC = 150.0'' LONG_INC = 150.0'' GS_COUNT = 6324

Información del Geoide utilizado

- Latitud Máxima: 43.95ºN
- Latitud Mínima: 35.50ºN
- Longitud Máxima: 4.292ºE
- Longitud Mínima: 9.50º W

Geoide KIBERGEO95