PROJ.4

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Datum[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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