# PROJ.4
## Datum

You can use the +nadgrids-Parameter to select an existing gridfile or define your own datum with the +towgs84 Parameter to use a 3- or 7-Parameter Transformation. To use the buildin "datums" (or dati?) you can use the +datum-Parameter and select one of the DatumCode in the following list from pj_datums.c (e.g. +datum=NAD27).
| DatumCode | DatumName | SpheroidCode | DatumDefinition |
| carthage | Carthage 1934 Tunisia | clrk80 | towgs84=-263.0,6.0,431.0 |
| GGRS87 | Greek_Geodetic_Reference_System_1987 | GRS80 | towgs84=-199.87,74.79,246.62 |
| hermannskogel | Hermannskogel | bessel | towgs84=653.0,-212.0,449.0 |
| ire65 | Ireland 1965 | mod_airy | towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15 |
| NAD27 | North_American_Datum_1927 | clrk66 | nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat |
| NAD83 | North_American_Datum_1983 | GRS80 | towgs84=0,0,0 |
| nzgd49 | New Zealand Geodetic Datum 1949 | intl | towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 |
| OSGB36 | Airy 1830 | airy | towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894 |
| potsdam | Potsdam Rauenberg 1950 DHDN | bessel | towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 |
| WGS84 | | WGS84 | towgs84=0,0,0 |

## Prime Meridian

To define a Primemeridian for your Projection, you can use the +pm-Parameter with a numeric value (e.g. +pm=5) or use one of the cities in the PrimeMeridianCode column (e.g. +pm=madrid) from the table below - extracted from pj_datums.c
| PrimeMeridianCode | PrimeMeridianDefinition | D | M | S | Hemi |
| athens | 23d42'58.815 E | 23 | 42 | 58.815 | E |
| bern | 7d26'22.5 E | 7 | 26 | 22.5 | E |
| bogota | 74d04'51.3 W | 74 | 04 | 51.3 | W |
| brussels | 4d22'4.71 E | 4 | 22 | 4.71 | E |
| ferro | 17d40'W | 17 | 40 | 0 | W |
| greenwich | 0dE | 0 | 0 | 0 | E |
| jakarta | 106d48'27.79 E | 106 | 48 | 27.79 | E |
| lisbon | 9d07'54.862 W | 9 | 07 | 54.862 | W |
| madrid | 3d41'16.58 W | 3 | 41 | 16.58 | W |
| oslo | 10d43'22.5 E | 10 | 43 | 22.5 | E |
| paris | 2d20'14.025 E | 2 | 20 | 14.025 | E |
| rome | 12d27'8.4 E | 12 | 27 | 8.4 | E |
| stockholm | 18d3'29.8 E | 18 | 3 | 29.8 | E |

## Spheroid

To define a Spheroid (Ellipsoid or Sphere) for your Projection, you can use the +a-, +es-, +e-, +f-, +b- and +rf-Parameters (see Table below), or you can use the +ellps-Parameter (e.g. +ellps=clrk66) with one of the predefined SpheroidCodes from the following table - extracted from pj_ellps.c.
| SpheroidCode | EquatorialAxis | PolarAxis | ReciprocFlattening | SpheroidName |
| airy | 6377563.396 | 6356256.91 | | Airy 1830 |
| andrae | 6377104.43 | | 300 | Andrae 1876 (Den., Iclnd.) |
| APL4.9 | 6378137 | | 298.25 | Appl. Physics. 1965 |
| aust_SA | 6378160 | | 298.25 | Australian Natl & S. Amer. 1969 |
| bessnam | 6377483.865 | | 299.1528128 | Bessel 1841 (Namibia) |
| bessel | 6377397.155 | | 299.1528128 | Bessel 1841 |
| clrk66 | 6378206.4 | 6356583.8 | | Clarke 1866 |
| clrk80 | 6378249.145 | | 293.4663 | Clarke 1880 mod. |
| CPM | 6375738.7 | | 334.29 | Comm. des Poids et Mesures 1799 |
| delmbr | 6376428 | | 311.5 | Delambre 1810 (Belgium) |
| engelis | 6378136.05 | | 298.2566 | Engelis 1985 |
| evrst30 | 6377276.345 | | 300.8017 | Everest 1830 |
| evrst48 | 6377304.063 | | 300.8017 | Everest 1948 |
| evrst56 | 6377301.243 | | 300.8017 | Everest 1956 |
| evrst69 | 6377295.664 | | 300.8017 | Everest 1969 |
| evrstSS | 6377298.556 | | 300.8017 | Everest (Sabah & Sarawak) |
| fschr60 | 6378166 | | 298.3 | Fischer (Mercury Datum) 1960 |
| fschr60m | 6378155 | | 298.3 | Modified Fischer 1960 |
| fschr68 | 6378150 | | 298.3 | Fischer 1968 |
| GRS67 | 6378160 | | 298.247167427 | GRS 67(IUGG 1967) |
| GRS80 | 6378137 | | 298.257222101 | GRS 1980(IUGG, 1980) |
| helmert | 6378200 | | 298.3 | Helmert 1906 |
| hough | 6378270 | | 297 | Hough |
| IAU76 | 6378140 | | 298.257 | IAU 1976 |
| intl | 6378388 | | 297 | International 1909 (Hayford) |
| kaula | 6378163 | | 298.24 | Kaula 1961 |
| krass | 6378245 | | 298.3 | Krassovsky, 1942 |
| lerch | 6378139 | | 298.257 | Lerch 1979 |
| MERIT | 6378137 | | 298.257 | MERIT 1983 |
| modairy | 6377340.189 | 6356034.446 | | Modified Airy |
| mprts | 6397300 | | 191 | Maupertius 1738 |
| newintl | 6378157.5 | 6356772.2 | | New International 1967 |
| NWL9D | 6378145 | | 298.25 | Naval Weapons Lab., 1965 |
| plessis | 6376523 | 6355863 | | Plessis 1817 (France) |
| SEasia | 6378155 | 6356773.3205 | | Southeast Asia |
| SGS85 | 6378136 | | 298.257 | Soviet Geodetic System 85 |
| sphere | 6370997 | 6370997 | | Normal Sphere (r=6370997) |
| walbeck | 6376896 | 6355834.8467 | | Walbeck |
| WGS60 | 6378165 | | 298.3 | WGS 60 |
| WGS66 | 6378145 | | 298.25 | WGS 66 |
| WGS72 | 6378135 | | 298.26 | WGS 72 |
| WGS84 | 6378137 | | 298.257223563 | WGS 84 |

## Units

If you don't set Units, the default is 'm'=Meter. If you want to define other Units for your Projection with the +units- or the +vunits-Parameter, you MUST use one of the UnitCode from the following table - extracted from pj_units.c. But you can overwrite the internal calculation, when you define your own Multiplier to convert map units to 1.0m with the +to_meter- and +vto_meter-Parameter (e.g. to_meter=1.1).
| UnitCode | ToMeter | UnitName | Note |
| ch | 20.1168 | International Chain | |
| cm | 0.01 | Centimeter | |
| dm | 0.1 | Decimeter | |
| fath | 1.8288 | International Fathom | |
| ft | 0.3048 | International Foot | |
| in | 0.0254 | International Inch | |
| ind-ch | 20.11669506 | Indian Chain | |
| ind-ft | 0.30479841 | Indian Foot | |
| ind-yd | 0.91439523 | Indian Yard | |
| km | 1000 | Kilometer | |
| kmi | 1852 | International Nautical Mile | |
| link | 0.201168 | International Link | |
| m | 1 | Meter | |
| mi | 1609.344 | International Statute Mile | |
| mm | 0.001 | Millimeter | |
| us-ch | 20.1168402336805 | U.S. Surveyor's Chain | |
| us-ft | 0.304800609601219 | U.S. Surveyor's Foot | |
| us-in | 0.0254000508001016 | U.S. Surveyor's Inch | 1/39.37 |
| us-mi | 1609.34721869444 | U.S. Surveyor's Statute Mile | |
| us-yd | 0.914401828803658 | U.S. Surveyor's Yard | |
| yd | 0.9144 | International Yard | |

## Errors

If no Error occures, the global int variable 'pj_errno' is set to 0. If trapped errors occures, the value should be one of the ErrNum in the following table - extracted from pj_strerrno.c. All definded Errors are negative to not overlap with C-[Runtime]-Errors. But not all input is checked in all Projections and no try-catch is performed. So calculate with overflows, Infs and NaNs.
If Error occures during Projection, sometimes an error is set, but often the returned Coordinates are set to HUGE_VAL (e.g. PJ_lsat.c, PJ_mod_ster.c). So check your returned Coordinates for HUGE_VAL. HUGE_VAL is a valid double value (NOT NotANumer NaN). HUGE_VAL is defined in math.h and exported from crt as _HUGE = Positive infinity = 1,#INF. If you can not direct access or define HUGE_VAL, then use DBL_MAX defined in float.h as '#define DBL_MAX 1.7976931348623158e+308' and check, if the returned Coordinates are below (e.g. fabs(x) < DBL_MAX).
| ErrNum | ErrDesciption | SinceVer |
| -1 | no arguments in initialization list | 4.3.3 |
| -2 | no options found in 'init' file | 4.3.3 |
| -3 | no colon in init= string | 4.3.3 |
| -4 | projection not named | 4.3.3 |
| -5 | unknown projection id | 4.3.3 |
| -6 | effective eccentricity = 1. | 4.3.3 |
| -7 | unknown unit conversion id | 4.3.3 |
| -8 | invalid boolean param argument | 4.3.3 |
| -9 | unknown elliptical parameter name | 4.3.3 |
| -10 | reciprocal flattening (1/f) = 0 | 4.3.3 |
| -11 | |radius reference latitude| > 90 | 4.3.3 |
| -12 | squared eccentricity < 0 | 4.3.3 |
| -13 | major axis or radius = 0 or not given | 4.3.3 |
| -14 | latitude or longitude exceeded limits | 4.3.3 |
| -15 | invalid x or y | 4.3.3 |
| -16 | improperly formed DMS value | 4.3.3 |
| -17 | non-convergent inverse meridional dist | 4.3.3 |
| -18 | non-convergent inverse phi2 | 4.3.3 |
| -19 | acos/asin: |arg| >1.+1e-14 | 4.3.3 |
| -20 | tolerance condition error | 4.3.3 |
| -21 | conic lat_1 = -lat_2 | 4.3.3 |
| -22 | lat_1 >= 90 | 4.3.3 |
| -23 | lat_1 = 0 | 4.3.3 |
| -24 | lat_ts >= 90 | 4.3.3 |
| -25 | no distance between control points | 4.3.3 |
| -26 | projection not selected to be rotated | 4.3.3 |
| -27 | W <= 0 or M <= 0 | 4.3.3 |
| -28 | last not in 1-5 range | 4.3.3 |
| -29 | path not in range | 4.3.3 |
| -30 | h <= 0 | 4.3.3 |
| -31 | k <= 0 | 4.3.3 |
| -32 | lat_0 = 0 or 90 or alpha = 90 | 4.3.3 |
| -33 | lat_1=lat_2 or lat_1=0 or lat_2=90 | 4.3.3 |
| -34 | elliptical usage required | 4.3.3 |
| -35 | invalid UTM zone number | 4.3.3 |
| -36 | arg(s) out of range for Tcheby eval | 4.3.3 |
| -37 | failed to find projection to be rotated | 4.3.3 |
| -38 | failed to load datum shift file | 4.3.3 |
| -39 | both n & m must be spec'd and > 0 | 4.3.3 |
| -40 | n <= 0, n > 1 or not specified | 4.3.3 |
| -41 | lat_1 or lat_2 not specified | 4.3.3 |
| -42 | |lat_1| == |lat_2| | 4.3.3 |
| -43 | lat_0 is pi/2 from mean lat | 4.3.3 |
| -44 | unparseable coordinate system definition | 4.4.3 |
| -45 | geocentric transformation missing z or ellps | 4.4.8 |
| -46 | unknown prime meridian conversion id | 4.4.9 |
| -47 | illegal axis orientation combination | 4.7.1 |
| -48 | point not within available datum shift grids | 4.7.1 |
| -49 | invalid sweep axis, choose x or y | 4.8.0 |

## Parameters

The Projection is initialised with the functions pj_init, pj_init_ctx, pj_init_plus or pj_init_plus_ctx. These function can handle up to 200 Parameters defining (or NOT) the Projection.
All Parameters are case sensitive (C-Style). So if you want to store all Parameters in a Database-Table as Primary-Key, use a DataType of varchar which is case sensitive (in MsSQL use: 'Create Table tbl_Params(ParamName Varchar(50) Not Null Collate Latin1_General_Bin Primary Key)' ; in MsAccess/Jet4 use DataDefinition-Query with SQL 'Create Table tbl_Params(ParamName Varbinary(100) Not Null Primary Key)').
There is no central *.pdf-, *.doc-, *.ini-, *.def-, *.c. or *.h-File describing all Parameters. You can find the description of some Parameters in 'General Parameters' (http://trac.osgeo.org/proj/wiki/GenParms, and http://proj.maptools.org/gen_parms.html). But the most developer of the Package (a lot), use the build in function pj_param to query their Parameters. The following List is just an extraction of all sourcefiles (Version 4.33++) where the pj_param is used. The Parameters Flagged with CheckedOnInit=1 should be save, because they are evaluated by the init-functions (pj_init, pj_init_ctx, pj_init_plus or pj_init_plus_ctx) and everyone depends on it. All others Parameters could have a Multi-DataType-Multi-Meaning depending on the Projection which is initialised with the +proj-Parameter. For example: +xx=20001231 could be a date, string, long or double in different Projections (see +n- and +south-Paramter below). You even can use your own Parameters like +title=xxx to query it in some derived Softwarepackages.
Every developer can use his/her own style, Datatype and NamingConvention to create Parameters and Variables for his/her Projection Implementation. That is a problem, but maybe the reason for the great success of this Library.
| Param | CheckedOnInit | Usage | Samples | ArgDescription | UsedInFiles |
| A | 0 | 18 | | only called from geod.c | geod_set.c |
| a | 1 | 58 | +a=6378137 | EquatorialRadius ; Semimajor radius of the ellipsoid axis; BUG: No Difference between WGS84 and GRS80 Elli | pj_ell_set.c, pj_init.c, pj_utils.c |
| alpha | 0 | 90 | +alpha=-36d52'11.6315 | double ; Azimuth of initial line ; Used with Oblique Mercator and others | PJ_ocea.c, PJ_omerc.c, PJ_urm5.c |
| aperture | 0 | 16 | +aperture=3 | | PJ_isea.c |
| axis | 1 | 10 | +axis=enu | input coordinate axis orientation ; 3 chars default "enu" (easting, northing, up); e: x=x ; w: x=-x ; n:y=y ; s:y=-y ; u:z=z ; s:z=-z ; see pj_adjust_axis ; chars in "ewnsud" (East West North South Up Down) ; todo check for Bugs with "uuu"; valid shoul | pj_init.c |
| azi | 0 | 44 | +azi=18d54' | | PJ_isea.c, PJ_labrd.c, PJ_nsper.c |
| b | 1 | 76 | +b=6378137 | PolarRadius ; Semiminor radius of the ellipsoid axis ; Sets es = 1 - (b * b) / (a * a) | pj_ell_set.c, pj_init.c, pj_utils.c |
| belgium | 0 | 0 | | | |
| beta | 0 | 0 | +beta=45d | | |
| catalog | 1 | 3 | | grid catalog parameter, and optional date | pj_datum_set.c |
| czech | 0 | 16 | +czech=1 | bool Negate xy signs | PJ_krovak.c |
| date | 1 | 3 | +date=2000-12-31 | date of grid catalog in format "yyyy.fraction" or "yyyy-mm-dd" | pj_datum_set.c |
| datum | 1 | 62 | +datum=NAD27 | Datum name (see proj -ld) ; default PJD_UNKNOWN ; must be in list else err -9: unknown elliptical parameter name | pj_datum_set.c, pj_init.c, pj_utils.c |
| del_A | 0 | 18 | | only called from geod.c | geod_set.c |
| del_S | 0 | 18 | | only called from geod.c | geod_set.c |
| e | 1 | 36 | +e=0 | Eccentricity of the ellipsoid = sqrt(1 - b^2/a^2) = sqrt( f*(2-f) ) ; es = e * e; precedes rf, f, b | pj_ell_set.c |
| ellps | 1 | 58 | +ellps=clrk66 | Ellipsoid name (see proj -le) | pj_ell_set.c, pj_init.c, pj_utils.c |
| es | 1 | 66 | +es=.006768657997291094 | Eccentricity of the ellipsoid squared ; precedes e, rf, f, b; must be >0 | pj_ell_set.c, pj_utils.c |
| f | 1 | 76 | +f=0 | Flattening of the ellipsoid (often presented as an inverse, e.g. 1/298) ; Sets es = f * (2 - f) ; precedes b | pj_ell_set.c, pj_init.c, pj_utils.c |
| gamma | 0 | 10 | +gamma=5.5 | double | PJ_omerc.c |
| geoc | 1 | 18 | +geoc=1 | Geographic coordinates are to be treated as geocentric (geocentric Latitude?) | pj_init.c |
| geoidgrids | 1 | 9 | | vertical datum geoid grids | pj_init.c |
| guam | 0 | 18 | +guam=1 | use Guam elliptical | PJ_aeqd.c |
| h | 0 | 27 | +h=36000000 | Satellite Height | PJ_geos.c, PJ_nsper.c |
| h_0 | 0 | 2 | +h_0=1.0 | | PJ_sch.c |
| init | 1 | 36 | +init=epsg:26711 | +init=<Filename in \nad\>:26711 ; file/key pair; does not override existing parameter value, if datum, ellps or any earth model information is set | pj_init.c |
| inv | 0 | 0 | | The presence of this option selects the inverse projection mode of operation. It is equivalent to executing program invproj. | |
| K | 0 | 0 | | | |
| k | 1 | 48 | +k=1.0 | Scale factor at natural origin (old name) ; must be >0 ; default 1 | pj_init.c, PJ_krovak.c |
| k_0 | 1 | 36 | +k_0=0.9996 | Scale factor at natural origin (new name) first checked ; must be >0 ; Precedes k ; default 1 | pj_init.c |
| lat_0 | 1 | 86 | +lat_0=0 | Latitude of origin | PJ_aeqd.c, pj_init.c, PJ_isea.c, PJ_krovak.c, PJ_lcc.c, PJ_lcca.c |
| lat_1 | 0 | 342 | +lat_1=50 | Latitude of first standard parallel | geod_set.c, PJ_aea.c, PJ_aitoff.c, PJ_bonne.c, PJ_eqdc.c, PJ_imw_p.c, PJ_lagrng.c, PJ_lcc.c, PJ_loxim.c, PJ_ocea.c, PJ_omerc.c, PJ_sconics.c, PJ_tpeqd.c, PJ_wink2.c |
| lat_2 | 0 | 234 | +lat_2=60 | Latitude of second standard parallel | geod_set.c, PJ_aea.c, PJ_eqdc.c, PJ_imw_p.c, PJ_lcc.c, PJ_ocea.c, PJ_omerc.c, PJ_sconics.c, PJ_tpeqd.c |
| lat_b | 0 | 18 | +lat_b=60.0 | | PJ_airy.c |
| lat_t | 0 | 0 | | | |
| lat_ts | 0 | 192 | +lat_ts=33 | Standard Parallel ; Latitude of true scale | PJ_cea.c, PJ_eqc.c, PJ_krovak.c, PJ_merc.c, PJ_rpoly.c, PJ_stere.c, PJ_wag3.c, PJ_wink1.c |
| lon_0 | 1 | 38 | +lon_0=0 | Central meridian ; Longitude of false origin | pj_init.c, PJ_isea.c, PJ_krovak.c |
| lon_1 | 0 | 108 | +lon_1=50 | | geod_set.c, PJ_imw_p.c, PJ_ocea.c, PJ_omerc.c, PJ_tpeqd.c |
| lon_2 | 0 | 72 | +lon_2=50 | | geod_set.c, PJ_ocea.c, PJ_omerc.c, PJ_tpeqd.c |
| lon_wrap | 1 | 23 | +lon_wrap=90.88 | longitude center for wrapping | pj_init.c |
| lonc | 0 | 36 | +lonc=-133d40 | Longitude of projection center ; used with Oblique Mercator and possibly a few others | PJ_ocea.c, PJ_omerc.c |
| lsat | 0 | 18 | +lsat=5 | int LandSat-Number ; see err -28: lsat not in 1-5 range | PJ_lsat.c |
| m | 0 | 36 | +n=0.5 | double | PJ_gn_sinu.c, PJ_oea.c |
| M | 0 | 36 | +M=1 | double see err -27 | PJ_hammer.c |
| mode | 0 | 4 | +mode=plane or +mode=di or +mode=dd or +mode=hex | | PJ_isea.c |
| n | 0 | 126 | +n=0.5 | double; in Foucaut Sinusoidal: 0 < n < 1 ; | PJ_fouc_s.c, PJ_gn_sinu.c, PJ_oea.c, PJ_urm5.c, PJ_urmfps.c |
| n_A | 0 | 18 | | only called from geod.c | geod_set.c |
| n_S | 0 | 18 | | only called from geod.c | geod_set.c |
| nadgrids | 1 | 105 | +nadgrids=conus,ntv1_can.dat ; nadgrids=@null ; nadgrids=ntv1_can.dat | Grid Based Datum Adjustments ; Filename of NTv2 grid file to use for datum transforms | pj_apply_gridshift.c, pj_datum_set.c, pj_transform.c, pj_utils.c |
| no_cut | 0 | 18 | +no_cut=1 | do not cut at hemisphere limit | PJ_airy.c |
| no_defs | 1 | 18 | +no_defs | Does NOT set defaults from \nad\proj_def.dat ; Todo check no_defs "<>" | pj_init.c |
| no_off | 0 | 7 | +no_off=0 | int no_off = 0 | PJ_omerc.c |
| no_rot | 0 | 36 | +no_rot=1 | bool int no_rot | PJ_labrd.c, PJ_omerc.c |
| no_uoff | 0 | 19 | +no_uoff=1 | | PJ_omerc.c |
| north_square | 0 | 3 | +north_square=1 | int north_square in(0 to 3) ; since Version 4.9.0 | PJ_healpix.c |
| npole | 0 | 1 | +npole=1 | only version 4.8.0: now north_square | PJ_healpix.c |
| ns | 0 | 18 | +ns=1 | bool, no skew | PJ_bipc.c |
| o_alpha | 0 | 36 | +o_alpha=1.0 | | PJ_ob_tran.c |
| o_lat_1 | 0 | 18 | +o_lat_1=2.0 | | PJ_ob_tran.c |
| o_lat_2 | 0 | 18 | +o_lat_2=3.0 | | PJ_ob_tran.c |
| o_lat_c | 0 | 18 | +o_lat_c=4.0 | | PJ_ob_tran.c |
| o_lat_p | 0 | 36 | +o_lat_p=45.0 | | PJ_ob_tran.c |
| o_lon_1 | 0 | 18 | +o_lon_1=5.0 | | PJ_ob_tran.c |
| o_lon_2 | 0 | 18 | +o_lon_2=6.0 | | PJ_ob_tran.c |
| o_lon_c | 0 | 18 | +o_lon_c=7.0 | | PJ_ob_tran.c |
| o_lon_p | 0 | 18 | +o_lon_p=-90.0 | | PJ_ob_tran.c |
| o_proj | 0 | 18 | +o_proj=moll | name of projection to be translated ; must be in List else err -37: failed to find projection to be rotated | PJ_ob_tran.c |
| orient | 0 | 4 | +orient=isea or +orient=pole | in ("isea", "pole") | PJ_isea.c |
| over | 1 | 18 | +over=1 | over-ranging flag: Inhibit reduction of longitude range to within ±180° of the central meridian. | pj_init.c |
| p | 0 | 0 | | | |
| path | 0 | 18 | +path=1 | int LandSat-Path-Number(Swat) ; if lsat 1-3: 1 to 251 else 1 to 233 | PJ_lsat.c |
| phdg_0 | 0 | 2 | +phdg_0=1.0 | | PJ_sch.c |
| plat_0 | 0 | 2 | +plat_0=1.0 | | PJ_sch.c |
| plon_0 | 0 | 2 | +plon_0=1.0 | | PJ_sch.c |
| pm | 0 | 36 | +pm=madrid ; pm=5 | Prime Meridian ; Alternate prime meridian (typically a city name) ; Symbolic name, or the longitude of the alternative prime meridian relative to greenwich ; default greenwich | pj_init.c, pj_utils.c |
| proj | 1 | 18 | +proj=merc | Projection name (see proj -l) ; mandantory, else error -4: projection not named ; must be in list else: error -5 unknown projection id | pj_init.c |
| q | 0 | 18 | +q=1 | double q | PJ_urm5.c |
| R | 1 | 66 | +R=6000000 | Semimajor radius a; R takes precedence over a | pj_ell_set.c, pj_utils.c |
| R_A | 1 | 33 | +R_A=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a to Authalic-Sphere / same Area ; Precedes R_V, R_a, R_g, R_h, R_lat_a, R_lat_g | pj_ell_set.c, pj_utils.c |
| R_a | 1 | 33 | +R_a=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere–arithmetic mean ; Precedes R_g, R_h, R_lat_a, R_lat_g | pj_ell_set.c, pj_utils.c |
| R_g | 1 | 18 | +R_g=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere–geometric mean ; Precedes R_h, R_lat_a, R_lat_g | pj_ell_set.c |
| R_h | 1 | 18 | +R_h=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere–harmonic mean ; Precedes R_lat_a, R_lat_g | pj_ell_set.c |
| R_lat_a | 1 | 66 | +R_lat_a=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere–arithmetic mean at latitude ; Precedes R_lat_g | pj_ell_set.c, pj_utils.c |
| R_lat_g | 1 | 48 | +R_lat_g=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere–geometric mean at latitude | pj_ell_set.c, pj_utils.c |
| R_V | 1 | 33 | +R_V=1 | turn ellipsoid into equivalent sphere by setting es = 0 and a that sphere.volume=ellipsoid.volume ; Precedes R_a, R_g, R_h, R_lat_a, R_lat_g | pj_ell_set.c, pj_utils.c |
| rescale | 0 | 4 | +rescale=1 | | PJ_isea.c |
| resolution | 0 | 16 | +resolution=1 | | PJ_isea.c |
| rf | 1 | 46 | +rf=300.8017 | Reciprocal of the ellipsoid flattening term (e.g. 298) ; Sets es = 1/rf * (2 - 1/rf); precedes f, b | pj_ell_set.c, pj_init.c |
| rot | 0 | 0 | | | |
| rot_conv | 0 | 13 | +rot_conv=1 | bool ; up to Version 4.6.1 | PJ_omerc.c |
| S | 0 | 18 | | only called from geod.c | geod_set.c |
| s | 0 | 0 | | | |
| south | 0 | 54 | +south=1 | Denotes southern hemisphere in UTM, Lambert Equal Area Conic, ... | PJ_aea.c, PJ_stere.c, PJ_tmerc.c, proj_etmerc.c |
| south_square | 0 | 3 | +south_square=1 | int south_square in(0 to 3) ; since Version 4.9.0 | PJ_healpix.c |
| spole | 0 | 1 | +spole=1 | only version 4.8.0: now south_square | PJ_healpix.c |
| sweep | 0 | 4 | +sweep=x or +sweep=y | char(1);The sweep angle axis of the viewing instrument. Can be x or y (y is the default). (new in 4.8.0) | PJ_geos.c |
| sym | 0 | 0 | | | |
| syn | 0 | 0 | | | |
| t | 0 | 0 | | | |
| theta | 0 | 18 | +theta=0.5 | double theta | PJ_oea.c |
| tilt | 0 | 18 | +tilt=31.4 | double omega in tpers Tilted perspective | PJ_nsper.c |
| title | 0 | 0 | +title=Lambert III | only in France \nad\IGFN | |
| to | 0 | 0 | | No Values | |
| to_meter | 1 | 18 | +to_meter=1.1 | Multiplier to convert map units to 1.0m ; overwrites to_meter from List Unit | pj_init.c |
| towgs84 | 1 | 62 | +towgs84=-199.87,74.79,246.62 ; towgs84=0,0,4.5,0,0,0.554,0.219 | Datum transformation to WGS84 ; 3 or 7 term datum transform parameters | pj_datum_set.c, pj_utils.c |
| units | 1 | 36 | +units=m | Unit ; meters, US survey feet, etc. (see List Unit) ; must be in list Unit | geod_set.c, pj_init.c |
| vopt | 0 | 0 | | | |
| vto_meter | 1 | 4 | +vto_meter=1.1 | vertical unit to Meter ; overwrites to_meter from List Unit | pj_init.c |
| vunits | 1 | 4 | +vunits=m | vertical unit ; must be in list Unit else err -7: unknown unit conversion id | pj_init.c |
| W | 0 | 54 | +proj=lagrng +lon_0=90w +W=1.4 | double see err -27 | PJ_hammer.c, PJ_lagrng.c |
| westo | 0 | 0 | | | |
| x_0 | 1 | 18 | +x_0=0.0 | False Easting in Meters | pj_init.c |
| y_0 | 1 | 18 | +y_0=0 | False Northing in Meters | pj_init.c |
| zone | 0 | 36 | +zone=11 | UTM zone | PJ_tmerc.c, proj_etmerc.c |

## Projections

SinceVersion means the first version that support the projection, a blank in the field means the projection has not been implemented. This table has been updated to PROJ.4 version 4.9.2.
| ProjectionCode | ProjectionName | InFile | SinceVersion |
| adams_hemi | Adams Hemisphere in a Square | | |
| adams_wsI | Adams World in a Square I | | |
| adams_wsII | Adams World in a Square II | | |
| aea | Albers Equal Area | PJ_aea.c | 4.3.3 (or earlier) |
| aeqd | Azimuthal Equidistant | PJ_aeqd.c | 4.3.3 (or earlier) |
| airy | Airy | PJ_airy.c | 4.3.3 (or earlier) |
| aitoff | Aitoff | PJ_aitoff.c | 4.3.3 (or earlier) |
| alsk | Mod. Stererographics of Alaska | PJ_mod_ster.c | 4.3.3 (or earlier) |
| apian | Apian Globular I | PJ_bacon.c | 4.3.3 (or earlier) |
| apian1 | Apian Globular I | | |
| apian2 | Apian II (Arago) | | |
| ardn_cls | Arden-Close | | |
| arma | Armadillo | | |
| august | August Epicycloidal | PJ_august.c | 4.3.3 (or earlier) |
| bacon | Bacon Globular | PJ_bacon.c | 4.3.3 (or earlier) |
| baker | Baker Dinomic | | |
| baranyi4 | Baranyi IV (Snyder) | | |
| barth | Bartholomew | | |
| bipc | Bipolar conic of western hemisphere | PJ_bipc.c | 4.3.3 (or earlier) |
| boggs | Boggs Eumorphic | PJ_boggs.c | 4.3.3 (or earlier) |
| bonne | Bonne (Werner lat_1=90) | PJ_bonne.c | 4.3.3 (or earlier) |
| braun2 | Braun’s Second (Perspective) | | |
| brny_1 | Baranyi I | | |
| brny_2 | Baranyi II | | |
| brny_3 | Baranyi III | | |
| brny_4 | Baranyi IV | | |
| brny_5 | Baranyi V | | |
| brny_6 | Baranyi VI | | |
| brny_7 | Baranyi VII | | |
| bromley | Bromley | | |
| calcofi | Cal Coop Ocean Fish Invest Lines/Stations | PJ_calcofi.c | 4.9.0 |
| cass | Cassini | PJ_cass.c | 4.3.3 (or earlier) |
| cc | Central Cylindrical | PJ_cc.c | 4.3.3 (or earlier) |
| cea | Equal Area Cylindrical | PJ_cea.c | 4.3.3 (or earlier) |
| chamb | Chamberlin Trimetric | PJ_chamb.c | 4.3.3 (or earlier) |
| collg | Collignon | PJ_collg.c | 4.3.3 (or earlier) |
| crast | Craster Parabolic (Putnins P4) | PJ_crast.c | 4.3.3 (or earlier) |
| cyl_stere | Cylindrical Stereographic | | |
| denoy | Denoyer Semi-Elliptical | PJ_denoy.c | 4.3.3 (or earlier) |
| dummy | Dummy projection | | |
| eck_greif | Eckert-Greifendorff | | |
| eck1 | Eckert I | PJ_eck1.c | 4.3.3 (or earlier) |
| eck2 | Eckert II | PJ_eck2.c | 4.3.3 (or earlier) |
| eck3 | Eckert III | PJ_eck3.c | 4.3.3 (or earlier) |
| eck4 | Eckert IV | PJ_eck4.c | 4.3.3 (or earlier) |
| eck5 | Eckert V | PJ_eck5.c | 4.3.3 (or earlier) |
| eck6 | Eckert VI | PJ_gn_sinu.c | 4.3.3 (or earlier) |
| eisen | Eisenlohr | | |
| eq_moll | Equidistant Mollweide | | |
| eqc | Equidistant Cylindrical (Plate Caree) | PJ_eqc.c | 4.3.3 (or earlier) |
| eqdc | Equidistant Conic | PJ_eqdc.c | 4.3.3 (or earlier) |
| erdi_krusz | Érdi-Krausz | | |
| etmerc | Extended Transverse Mercator | proj_etmerc.c | 4.8.0 |
| euler | Euler | PJ_sconics.c | 4.3.3 (or earlier) |
| fahey | Fahey | PJ_fahey.c | 4.3.3 (or earlier) |
| fc_ar | Canters Correct axis ratio | | |
| fc_gen | Canters General optimization | | |
| fc_pe | Canters Pole length half the length of the equator | | |
| fc_pp | Canters Pointed pole, correct axis ratio | | |
| fouc | Foucaut | PJ_sts.c | 4.3.3 (or earlier) |
| fouc_s | Foucaut Sinusoidal | PJ_fouc_s.c | 4.3.3 (or earlier) |
| four1 | Fournier Globular I | | |
| four2 | Fourtier II | | |
| ftmerc | French Transverse Mercator | | |
| gall | Gall (Gall Stereographic) | PJ_gall.c | 4.3.3 (or earlier) |
| gbtmerc | Gauss-Boaga | | |
| gen_ts | General Sine/Tan | | |
| geocent | Geocentric | pj_geocent.c | 4.4.6 |
| geos | Geostationary Satellite View | PJ_geos.c | 4.4.9 |
| gilbert | Gilbert Two World Perspective | | |
| gins8 | Ginsburg VIII (TsNIIGAiK) | PJ_gins8.c | 4.3.3 (or earlier) |
| gn_sinu | General Sinusoidal Series | PJ_gn_sinu.c | 4.3.3 (or earlier) |
| gnom | Gnomonic | PJ_gnom.c | 4.3.3 (or earlier) |
| goode | Goode Homolosine | PJ_goode.c | 4.3.3 (or earlier) |
| gs48 | Mod. Stererographics of 48 U.S. | PJ_mod_ster.c | 4.3.3 (or earlier) |
| gs50 | Mod. Stererographics of 50 U.S. | PJ_mod_ster.c | 4.3.3 (or earlier) |
| gstmerc | Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion) | PJ_gstmerc.c | 4.6.1 |
| guyou | Guyou | | |
| hammer | Hammer & Eckert-Greifendorff | PJ_hammer.c | 4.3.3 (or earlier) |
| hatano | Hatano Asymmetrical Equal Area | PJ_hatano.c | 4.3.3 (or earlier) |
| healpix | HEALPix | PJ_healpix.c | 4.8.0 |
| hill | Hill Eucyclic | | |
| holzel | Hölzel | | |
| igh | Interrupted Goode Homolosine | PJ_igh.c | 4.8.0 |
| imw_p | Internation Map of the World Polyconic | PJ_imw_p.c | 4.3.3 (or earlier) |
| isea | Icosahedral Snyder Equal Area | PJ_isea.c | 4.8.0 |
| kav5 | Kavraisky V | PJ_sts.c | 4.3.3 (or earlier) |
| kav7 | Kavraisky VII | PJ_eck3.c | 4.3.3 (or earlier) |
| kh_sh | Kharchenko-Shabanova | | |
| krovak | Krovak | PJ_krovak.c | 4.4.6 |
| ktmerc | Swedish Transverse Mercator | | |
| labrd | Laborde | PJ_labrd.c | 4.3.3 (or earlier) |
| laea | Lambert Azimuthal Equal Area | PJ_laea.c | 4.3.3 (or earlier) |
| lagrng | Lagrange | PJ_lagrng.c | 4.3.3 (or earlier) |
| larr | Larrivee | PJ_larr.c | 4.3.3 (or earlier) |
| lask | Laskowski | PJ_lask.c | 4.3.3 (or earlier) |
| latlon | Lat/long (Geodetic alias) | pj_latlong.c | 4.6.0 |
| latlong | Lat/long (Geodetic alias) | pj_latlong.c | 4.4.2 |
| lcc | Lambert Conformal Conic | PJ_lcc.c | 4.3.3 (or earlier) |
| lcca | Lambert Conformal Conic Alternative | PJ_lcca.c | 4.4.6 |
| leac | Lambert Equal Area Conic | PJ_aea.c | 4.3.3 (or earlier) |
| lee_os | Lee Oblated Stereographic | PJ_mod_ster.c | 4.3.3 (or earlier) |
| longlat | Lat/long (Geodetic alias) | pj_latlong.c | 4.4.2 |
| lonlat | Lat/long (Geodetic) | pj_latlong.c | 4.6.0 |
| loxim | Loximuthal | PJ_loxim.c | 4.3.3 (or earlier) |
| lsat | Space oblique for LANDSAT | PJ_lsat.c | 4.3.3 (or earlier) |
| maurer | Maurer | | |
| mayr | Mayr-Tobler | | |
| mb_S3 | McBryde S3 | | |
| mbt_fps | McBryde-Thomas Flat-Pole Sine (No. 2) | PJ_mbt_fps.c | 4.3.3 (or earlier) |
| mbt_s | McBryde-Thomas Flat-Polar Sine | PJ_sts.c | 4.3.3 (or earlier) |
| mbtfpp | McBride-Thomas Flat-Polar Parabolic | PJ_mbtfpp.c | 4.3.3 (or earlier) |
| mbtfpq | McBryde-Thomas Flat-Polar Quartic | PJ_mbtfpq.c | 4.3.3 (or earlier) |
| mbtfps | McBryde-Thomas Flat-Polar Sinusoidal | PJ_gn_sinu.c | 4.3.3 (or earlier) |
| merc | Mercator | PJ_merc.c | 4.3.3 (or earlier) |
| mil_os | Miller Oblated Stereographic | PJ_mod_ster.c | 4.3.3 (or earlier) |
| mill | Miller Cylindrical | PJ_mill.c | 4.3.3 (or earlier) |
| mill_2 | O.M. Miller 2 | | |
| moll | Mollweide | PJ_moll.c | 4.3.3 (or earlier) |
| mpoly | Modified Polyconic | PJ_mpoly.c | removed in version 4.6.0 (supported back to 4.3.3 or earlier) |
| murd1 | Murdoch I | PJ_sconics.c | 4.3.3 (or earlier) |
| murd2 | Murdoch II | PJ_sconics.c | 4.3.3 (or earlier) |
| murd3 | Murdoch III | PJ_sconics.c | 4.3.3 (or earlier) |
| natearth | Natural Earth | PJ_natearth.c | 4.8.0 |
| near_con | Semiconformal | | |
| nell | Nell | PJ_nell.c | 4.3.3 (or earlier) |
| nell_h | Nell-Hammer | PJ_nell_h.c | 4.3.3 (or earlier) |
| nicol | Nicolosi Globular | PJ_nocol.c | 4.3.3 (or earlier) |
| nsper | Near-sided perspective | PJ_nsper.c | 4.3.3 (or earlier) |
| nzmg | New Zealand Map Grid | PJ_nzmg.c | 4.3.3 (or earlier) |
| ob_tran | General Oblique Transformation | PJ_ob_tran.c | 4.3.3 (or earlier) |
| ocea | Oblique Cylindrical Equal Area | PJ_ocea.c | 4.3.3 (or earlier) |
| oea | Oblated Equal Area | PJ_oea.c | 4.3.3 (or earlier) |
| omerc | Oblique Mercator | PJ_omerc.c | 4.3.3 (or earlier) |
| ortel | Ortelius Oval | PJ_bacon.c | 4.3.3 (or earlier) |
| ortho | Orthographic | PJ_ortho.c | 4.3.3 (or earlier) |
| oxford | Oxford Atlas Modified Gall | | |
| pconic | Perspective Conic | PJ_sconics.c | 4.3.3 (or earlier) |
| poly | Polyconic (American) | PJ_poly.c | 4.3.3 (or earlier) |
| psfig:mb P3 | McBryde P3 | | |
| psfig:mb Q3 | McBryde Q3 | | |
| psfig:mb S2 | McBryde S2 | | |
| put2 | Putnins P2 | | |
| putp1 | Putnins P1 | PJ_eck3.c | 4.3.3 (or earlier) |
| putp1p | Putnins P'1 | | |
| putp2 | Putnins P2 | PJ_putp2.c | 4.3.3 (or earlier) |
| putp3 | Putnins P3 | PJ_putp3.c | 4.3.3 (or earlier) |
| putp3p | Putnins P3' | PJ_putp3.c | 4.3.3 (or earlier) |
| putp4 | Putnins P'4 | | |
| putp4p | Putnins P4' | PJ_putp4p.c | 4.3.3 (or earlier) |
| putp5 | Putnins P5 | PJ_putp5.c | 4.3.3 (or earlier) |
| putp5p | Putnins P5' | PJ_putp5.c | 4.3.3 (or earlier) |
| putp6 | Putnins P6 | PJ_putp6.c | 4.3.3 (or earlier) |
| putp6p | Putnins P6' | PJ_putp6.c | 4.3.3 (or earlier) |
| qsc | Quadrilateralized Spherical Cube | PJ_qsc.c | 4.9.1 |
| qua_aut | Quartic Authalic | PJ_sts.c | 4.3.3 (or earlier) |
| rhealpix | rHEALPix | PJ_healpix.c | 4.8.0 |
| robin | Robinson | PJ_robin.c | 4.3.3 (or earlier) |
| rouss | Roussilhe Stereographic | proj_rouss.c | 4.5.0 |
| rpoly | Rectangular Polyconic | PJ_rpoly.c | 4.3.3 (or earlier) |
| s_min_err | Snyder Minimum Error | | |
| sch | Spherical Cross-track Height | PJ_sch.c | 4.9.2 |
| siemon4 | Siemon IV | | |
| sinu | Sinusoidal (Sanson-Flamsteed) | PJ_gn_sinu.c | 4.3.3 (or earlier) |
| somerc | Swiss. Obl. Mercator | PJ_somerc.c | 4.3.3 (or earlier) |
| stere | Stereographic | PJ_stere.c | 4.3.3 (or earlier) |
| sterea | Oblique Stereographic Alternative | PJ_sterea.c | 4.4.9 |
| tcc | Transverse Central Cylindrical | PJ_tcc.c | 4.3.3 (or earlier) |
| tcea | Transverse Cylindrical Equal Area | PJ_tcea.c | 4.3.3 (or earlier) |
| times | Times Atlas | | |
| tissot | Tissot Conic | PJ_sconics.c | 4.3.3 (or earlier) |
| tmerc | Transverse Mercator | PJ_tmerc.c | 4.3.3 (or earlier) |
| tob_g1 | Tobler G1 | | |
| tob_sqr | Tobler’s World in a Square | | |
| tobler_1 | Tobler’s Alternate #1 | | |
| tobler_2 | Tobler’s Alternate #2 | | |
| tpeqd | Two Point Equidistant | PJ_tpeqd.c | 4.3.3 (or earlier) |
| tpers | Tilted perspective | PJ_nsper.c | 4.3.3 (or earlier) |
| ups | Universal Polar Stereographic | PJ_stere.c | 4.3.3 (or earlier) |
| urm_2 | Urmayev Cylindrical II | | |
| urm_3C | Urmayev Cylindrical III | | |
| urm5 | Urmaev V | PJ_urm5.c | 4.3.3 (or earlier) |
| urmfps | Urmaev Flat-Polar Sinusoidal | PJ_urmfps.c | 4.3.3 (or earlier) |
| utm | Universal Transverse Mercator (UTM) | proj_etmerc.c | 4.3.3 (or earlier) |
| vandg | van der Grinten (I) | PJ_vandg.c | 4.3.3 (or earlier) |
| vandg2 | van der Grinten II | PJ_vandg2.c | 4.3.3 (or earlier) |
| vandg3 | van der Grinten III | PJ_vandg2.c | 4.3.3 (or earlier) |
| vandg4 | van der Grinten IV | PJ_vandg4.c | 4.3.3 (or earlier) |
| vitk1 | Vitkovsky I | PJ_sconics.c | 4.3.3 (or earlier) |
| wag1 | Wagner I (Kavraisky VI) | PJ_urmfps.c | 4.3.3 (or earlier) |
| wag2 | Wagner II | PJ_wag2.c | 4.3.3 (or earlier) |
| wag3 | Wagner III | PJ_wag3.c | 4.3.3 (or earlier) |
| wag4 | Wagner IV | PJ_moll.c | 4.3.3 (or earlier) |
| wag5 | Wagner V | PJ_moll.c | 4.3.3 (or earlier) |
| wag6 | Wagner VI | PJ_eck3.c | 4.3.3 (or earlier) |
| wag7 | Wagner VII | PJ_wag7.c | 4.3.3 (or earlier) |
| wag8 | Wagner VIII | | |
| wag9 | Wagner IX (Aitoff-Wagner) | | |
| weren | Werenskiold I | PJ_putp4p.c | 4.3.3 (or earlier) |
| weren2 | Werenskiold II | | |
| weren3 | Werenskiold III | | |
| wink1 | Winkel I | PJ_wink1.c | 4.3.3 (or earlier) |
| wink2 | Winkel II | PJ_wink2.c | 4.3.3 (or earlier) |
| wintri | Winkel Tripel | PJ_aitoff.c | 4.3.3 (or earlier) -- Note: Verify if this is implemented in version 4.3.3, but is in definitely in 4.4.0 |