Michael Speth y yo estamos arreglando la implementación de PROJ.4 de la proyección cartográfica HEALPix (ver http://trac.osgeo.org/proj/browser/trunk/proj/src/PJ_healpix.c para la implementación actual con errores) y están encontrando algunas dificultades en el caso elipsoidal.
Esta es la cuestión. Hemos implementado la versión esférica de la proyección frontal de HEALPix mediante
FORWARD(s_healpix_forward); /* sphere */
return healpix_sphere(lp, P);
}
y eso funciona bien. Ahora queremos reutilizar healpix_sphere() en la versión elipsoidal de la proyección frontal de HEALPix simplemente sustituyendo latitud lp.phi
con la latitud auténtica y sustituyendo el elipsoide P
con su esfera auténtica. ¿Cuál es la mejor manera de hacer esto en PROJ.4?
Intentamos
FORWARD(e_healpix_forward); /* ellipsoid */
lp.phi = auth_lat(lp.phi, P->e, 0);
P->a = auth_radius(P->a, P->e);
P->e = 0;
return healpix_sphere(lp, P);
}
donde auth_lat() y auth_radius() son nuestras funciones caseras de latitud y radio auténticos. Pero los números que salen no son correctos. Creemos que nuestro intento de cambiar P a su esfera auténtica a través de las asignaciones P->a y P->e está fallando. ¿Algún consejo?
Michael también hizo esta pregunta en el foro de PROJ.4 (http://lists.maptools.org/pipermail/proj/2012-November/006465.html) la semana pasada, pero no ha recibido respuesta.
Gracias por su atención.