Version 1 (modified by warmerdam, 5 years ago)

--

PJ_INIT(3U)                                                        PJ_INIT(3U)



NAME
       pj_init - initialize cartographic projection
       pj_init_plus  -  initialize cartographic projec‐
       tion
       pj_fwd - forward cartographic projection
       pj_inv - inverse cartographic projection
       pj_transform - transform between coordinate sys‐
       tems
       pj_free - de-initialize projection

SYNOPSIS
       #include <proj_api.h>

       projPJ pj_init(int argc, char **argv)

       projPJ pj_init_plus(const char *defn)

       projUV pj_fwd(projUV val, projPJ proj)

       projUV pj_inv(projUV val, projPJ proj)

       int pj_transform(projPJ src_cs, projPJ dst_cs, long point_count,
                        double *x, double *y, double *z)

       void pj_free(projPJ proj)


DESCRIPTION
       Procedure pj_init selects and initializes a car‐
       tographic projection with its  argument  control
       parameters.   Argc  is the number of elements in
       the array of control strings argv that each con‐
       tain individual cartographic control keyword as‐
       signments (+ proj  arguments).   The  list  must
       contain at least the proj=projection and Earth’s
       radius or elliptical parameters.   If  the  ini‐
       tialization  of  the  projection is successful a
       valid address is returned otherwise a NULL  val‐
       ue.

       The  pj_init_plus function operates similarly to
       pj_init but takes a single string containing the
       definition,  with each parameter prefixed with a
       plus  sign.   For  example  "+proj=utm  +zone=11
       +ellps=WGS84".

       Once  initialization is performed either forward
       or inverse projections can be performed with the
       returned  value  of pj_init used as the argument
       proj.  The argument structure  projUV  values  u
       and  v contain respective longitude and latitude
       or x and y.  Latitude and longitude are in radi‐
       ans.  If a projection operation fails, both ele‐
       ments of projUV are set to HUGE_VAL (defined  in
       math.h).

       Note:  all  projections have a forward mode, but
       some do not have an inverse projection.  If  the
       projection  does  not have an inverse the projPJ
       structure element inv will be NULL.

       The pj_transform function may be used to  trans‐
       form  points between the two provided coordinate
       systems.  In addition to converting between car‐
       tographic  projection coordinates and geographic
       coordinates, this function also  takes  care  of
       datum  shifts if possible between the source and
       destination coordinate  system.   Unlike  pj_fwd
       and  pj_inv it is also allowable for the coordi‐
       nate system definitions (PJ *) to be  geographic
       coordinate  systems  (defined as +proj=latlong).
       The x, y and z arrays contain the  input  values
       of  the points, and are replaced with the output
       values.  The function returns zero  on  success,
       or  the error number (also in pj_errno) on fail‐
       ure.

       Memory associated with  the  projection  may  be
       freed with pj_free.

EXAMPLE
       The  following program reads latitude and longi‐
       tude values in decimal degress, performs  Merca‐
       tor  projection with a Clarke 1866 ellipsoid and
       a 33° latitude of true scale and prints the pro‐
       jected cartesian values in meters:

       #include <proj_api.h>

       main(int argc, char **argv) {
            char *args[] = { "proj=merc", "ellps=clrk66", "lat_ts=33" };
            projUV p;
            projPJ pj;

            if (!(pj = pj_init(3, args)))
               exit(1);
            while (scanf("%lf %lf", &p.v, &p.u) == 2) {
               p.u *= DEG_TO_RAD;
               p.v *= DEG_TO_RAD;
               p = pj_fwd(p, pj);
               printf("%.2f\t%.2f\n", p.u, p.v);
            }
            exit(0);
       }

LIBRARY
       libproj.a  -  library of projections and support
       procedures

SEE ALSO
       proj(1U),
       Cartographic Projection Procedures for the  UNIX
       Environment—A  User’s  Manual,  (Evenden,  1990,
       Open-file report 90-284).

HOME PAGE
       http://www.remotesensing.org/proj




                              2001/04/05 Rel. 4.4                  PJ_INIT(3U)