Nueva versión V8.200606 de la Calculadora UTM <>
Geográficas (descargar)
Versión V6.200508 de la Calculadora UTM <>
Geográficas. El código ha sido depurado. En este
artículo se incluye el código fuente TCL de las
fórmulas utilizadas para las transformaciones de coordenadas.
También se adjuntan dos ficheros de ejemplo con el formato de
coordenadas UTM y Geográficas que utiliza el programa.
El autor es Eduardo Núñez Maderal, Ingeniero
en Geodesia y Cartografía.
Descargar aplicación
Código fuente en TCL de las fórmulas
utilizadas
UTM a GEOGRAFICAS
Estas son las formulas empleadas para la trasformacion: UTM a GEOGRAFICAS.
"proc utmgeo {xutm yutm NH hemis la ilon esc con} {
#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
if {($hemis==-1)} {
set y [expr $yutm-10000000]
} 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-500000)/$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 ;#utilizamos proc CMk
set factor_e [format "%0.12f" $k]
set conv [expr ($co*180)/$Pi]
#Fin de transformacion UTM a GEOGRAFICAS
return
}"
GEOGRAFICAS a UTM
Estas son las formulas empleadas para la trasformacion: GEOGRAFICAS a UTM.
"proc geoutm {longitud latitud slo sla NH xx yy esc con} {
#entrar longitud y latitud con su signo en modo decimal en grados sex.
upvar $xx X ;#devolver Xutm calculado a parametros del proc
upvar $yy Y ;#devolver Yutm calculado a parametros del proc
upvar $esc factor_e ;#devolver factor escala a parametros del proc
upvar $con conv ;#devolver convergencia a parametros del proc
#Parametros elipsoide y constantes
global Pi
global a
global e1
global e2
global Ko
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 {$sla<0} {
set Y [expr 10000000+$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 500000+$x]
#Calculo factor de escala y convergencia de meridianos ############################
CMk $lat_rad $ilo_rad $n co k ;#utilizamos proc CMk
set factor_e [format "%0.12f" $k]
set conv [expr ($co*180)/$Pi]
#fin de trasformacion GEOGRAFICAS a UTM
return
}
"
Ficheros de ejemplo con el formato de coordenadas UTM y
Geográficas que utiliza el programa
Listado de coordenadas UTM
Nº | Xutm(m.) | Yutm(m.) | Factor escala | Nº Huso
--------------------------------------------------------------------
1 737455.4822 4470911.8816 1.000293917339 31
2 741020.8792 4469032.8495 1.000314912003 31
3 742341.6981 4473790.3108 1.000322761625 31
4 261933.7929 4476668.1032 1.000297483408 30
5 267157.9039 4475697.4406 1.000267212949 30
6 272106.0759 4474984.5029 1.000239160129 30
7 275328.0089 4477679.7034 1.000221213938 30
8 278564.2658 4474664.8338 1.000203451781 30
9 284636.8108 4477256.8016 1.000170808502 30
10 286829.1080 4472648.8935 1.000159252592 30
11 284855.5929 4471161.0729 1.000169656119 30
12 283524.5360 4466545.9327 1.000176731003 30
13 286686.2210 4467810.5686 1.000160007695 30
14 257357.2298 4475387.1868 1.000324556190 30
15 257908.3659 4477234.7515 1.000321266356 30
16 260342.9509 4483600.4192 1.000306825879 30
17 260970.5838 4485108.7306 1.000303127005 30
18 266606.9729 4484508.2459 1.000270362588 30
Listado de coordenadas Geográficas
1 5.796019506 +40.354294298
2 5.837244283 +40.336364732
3 5.854580639 +40.378789075
4 -5.805351875 +40.405915560
5 -5.743504194 +40.398657751
6 -5.685007783 +40.393610244
7 -5.648037235 +40.418740024
8 -5.608883255 +40.392474628
9 -5.538282681 +40.417394077
10 -5.510925761 +40.376485983
11 -5.533648398 +40.362588483
12 -5.547744895 +40.320707481
13 -5.510990474 +40.332902978
14 -5.858730709 +40.393069726
15 -5.852947318 +40.409853913
16 -5.826689794 +40.467835562
17 -5.819863696 +40.481587895
18 -5.753223251 +40.477787182
Eduardo Núñez Maderal, 2005 (enmaderal@mfom.es)