diff options
| -rw-r--r-- | src/PJ_ocea.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/PJ_ocea.c b/src/PJ_ocea.c index 8c7bd161..991ed1ef 100644 --- a/src/PJ_ocea.c +++ b/src/PJ_ocea.c @@ -42,19 +42,25 @@ ENTRY0(ocea) P->rok = P->a / P->k0; P->rtk = P->a * P->k0; if ( pj_param(P->ctx, P->params, "talpha").i) { + /*Define Pole of oblique transformation from 1 point & 1 azimuth*/ alpha = pj_param(P->ctx, P->params, "ralpha").f; lonz = pj_param(P->ctx, P->params, "rlonc").f; + /*Equation 9-8 page 80 (http://pubs.usgs.gov/pp/1395/report.pdf)*/ P->singam = atan(-cos(alpha)/(-sin(phi_0) * sin(alpha))) + lonz; + /*Equation 9-7 page 80 (http://pubs.usgs.gov/pp/1395/report.pdf)*/ P->sinphi = asin(cos(phi_0) * sin(alpha)); } else { + /*Define Pole of oblique transformation from 2 points*/ phi_1 = pj_param(P->ctx, P->params, "rlat_1").f; phi_2 = pj_param(P->ctx, P->params, "rlat_2").f; lam_1 = pj_param(P->ctx, P->params, "rlon_1").f; lam_2 = pj_param(P->ctx, P->params, "rlon_2").f; + /*Equation 9-1 page 80 (http://pubs.usgs.gov/pp/1395/report.pdf)*/ P->singam = atan2(cos(phi_1) * sin(phi_2) * cos(lam_1) - sin(phi_1) * cos(phi_2) * cos(lam_2), sin(phi_1) * cos(phi_2) * sin(lam_2) - cos(phi_1) * sin(phi_2) * sin(lam_1) ); + /*Equation 9-2 page 80 (http://pubs.usgs.gov/pp/1395/report.pdf)*/ P->sinphi = atan(-cos(P->singam - lam_1) / tan(phi_1)); } P->lam0 = P->singam + HALFPI; |
