¿Qué pasos necesito seguir para calcular la longitud y latitud de un píxel específico en una imagen georreferenciada? Por ejemplo, esta imagen http://www.shadedreliefarchive.com/medit_Mideast_africa_copy.html contiene información, archivo .tfw:
1627.32174969982000
0.00000000000000
0.00000000000000
-1627.32174969982000
-4957506.34276705000000
6096922.76188281000000
y archivo .prj:
PROJCS["Lambert Azimuthal Equal-Area",
GEOGCS["GCS_WGS_1984",
DATUM["D_WGS_1984", SPHEROID["WGS_1984", 6378137, 298.257223563]],
PRIMEM["Greenwich", 0],
UNIT["Degree", 0.017453292519943295]],
PROJECTION["Lambert_Azimuthal_Equal_Area"],
PARAMETER["false_easting", 0],
PARAMETER["false_northing", 0],
PARAMETER["latitude_of_origin", 0],
PARAMETER["central_meridian", 20],
PARAMETER["xy_plane_rotation", 0],
UNIT["Meter", 1]]
He creado este fragmento de código en javascript para calcular nuevos valores x1 y y1 para píxeles específicos en la imagen:
var A = 1627.32174969982000,
D = 0.00000000000000,
B = 0.00000000000000,
E = -1627.32174969982000,
C = -4957506.34276705000000,
F = 6096922.76188281000000;
function x1(x, y) { return A*x + B*y + C; }
function y1(x, y) { return D*x + E*y + F; }
¿Qué más debo hacer para obtener la longitud y latitud? Por ejemplo, ¿C, F representan la esquina superior izquierda de la imagen, verdad? Entonces, ¿cómo traduzco C, F para obtener la longitud y latitud?
Quiero hacerlo usando solo javascript, he visto http://proj4js.org/ pero realmente no entiendo qué hacer con los valores que obtengo...
1 votos
¿no necesitas reproyectar la imagen de ráster con un paquete GIS primero?
0 votos
Con suerte no, me gustaría tener una función para convertir posiciones de píxeles en la imagen a posiciones de latitud/longitud y también, de ser posible, la traducción inversa.
0 votos
Solo un comentario: por lo general, las personas usan las coordenadas del centro de píxeles para calcular sus (latitud, longitud). Si eso es lo que quieres hacer, entonces en tu fragmento de código debes primero sumarle 1/2 a cada uno de los valores de x e y (asumiendo que son índices de fila y columna).
0 votos
@whuber, eso suena razonable
1 votos
@whuber @antonj -- solo un apunte de que el archivo .tfw ya incluye un desplazamiento hacia el centro del píxel; agregar otro 1/2 te llevará a la esquina inferior derecha del píxel. (Línea 5 y 6, el "origen" de la transformación afín en el archivo .tfw, son las coordenadas del centro del píxel superior izquierdo, no las coordenadas del borde superior izquierdo del píxel superior izquierdo.)
0 votos
@whuber @antonj - Mi comentario anterior es medio recordado, pero confirmado por el enlace de Wikipedia que proporcioné en mi respuesta. De todas formas, quería añadir que estoy bastante seguro acerca de los centros tfw y de píxeles, pero no al 100% seguro.
0 votos
@Dan Buen punto. Hay dos convenciones en uso (y el software de ESRI las utiliza ambas): una establece el origen en una esquina de la imagen y la otra lo sitúa en el centro de un píxel de la esquina. Además, el formato de los archivos mundiales de ESRI ha cambiado con el tiempo, lo que añade aún más posibilidades de confusión. Sospecho que tienes razón, basándonos en la referencia de Wikipedia, pero un enfoque prudente sería probar el software que uno esté utilizando.