2015-05-27: IMPORTANT NOTICE! proj.4 bugs are now managed on GitHub. This Trac instance has been made read-only.
Issue tracker is at: https://github.com/OSGeo/proj.4/issues
The source code can be found at: https://github.com/OSGeo/proj.4
The Wiki is at: https://github.com/OSGeo/proj.4/wiki
Old Trac content can be found by scrolling down this page
PROJ.4 - Cartographic Projections Library
Table of Contents
This web page relates to the PROJ.4 Cartographic Projections library originally written by Gerald Evenden then of the USGS.
Download
The current development source is available by anonymous SVN from http://svn.osgeo.org/metacrs/proj/trunk/proj.
The following files are available from the proj ftp directory or http mirror.
- Source Code:
- http://download.osgeo.org/proj/proj-4.9.1.tar.gz: Current source release.
- Datum shift grids:
- proj-datumgrid-1.5.zip: US, Canadian, French and New Zealand datum shift grids - unzip in the nad directory before configuring to add NAD27/NAD83 and NZGD49 datum conversion.
- SwissGrid
- NonFreeGrids
- HarnGrids
- HTDPGrids - NAD83/WGS84 conversion grids based on NOAA/NGS HTDP Model.
- Geocentric Datum of Australia AGD66/AGD84
- Canadian NTv2 grid shift binary for NAD27 <=> NAD83.
- German BeTA2007 DHDN GK3 => ETRS89/UTM
- Great Britain's OSTN02_NTv2: OSGB 1936 => ETRS89
- Austrian Grid for MGI.
- Spanish grids for ED50.
- Portuguese grids for ED50, Lisbon 1890, Lisbon 1937 and Datum 73.
- Brazilian grids for datums Corrego Alegre 1961, Corrego Alegre 1970-72, SAD69 and SAD69(96).
- South African grid (Cape to Hartebeesthoek94 or WGS84).
- Dutch grid (Registration required before download)
- Binaries:
- PostgreSQL RPM Repository: Up2date Proj (and other GIS) RPMs
- proj446_win32_bin.zip: Prebuilt Win32 executables, DLL including NAD27 grid shift files.
- The openSUSE Application:Geo Repository offers current PROJ.4 RPMs for SuSe.
- PROJ.4 in a Debian Package
- PROJ.4 as a pkgsrc package.
- PROJ.4 Ported to the Delphi (Borland C++) environment.
- Legacy:
- PROJ.4.3.3.tar.gz: The last PROJ 4.3 release produced by Gerald Evenden (classic PROJ.4).
- from_kai: A snapshot of everything on the kai.er.usgs.gov/pub/PROJ.4 directory as of March/2000.
Documentation
- OF90-284.pdf (2.7MB): The main users manual for PROJ; however, this dates from PROJ.3 - the addendums proj.4.3.pdf (1MB), proj.4.3.I2.pdf (2MB), and swiss.pdf (78KB) contain important additional information.
- proj, cs2cs, and geod man pages.
- Proj API Reference and source code browser
- FAQ: Frequently Asked Questions and Answers
- General Parameter Notes
- Projections List in the Wiki for a few, particularly new, projections.
- Projections List page on the GeoTIFF site includes information on how to describe many common projections with PROJ.4 command arguments.
- VerticalDatums - working notes on the project to support vertical datums in PROJ.4.
- Gerald Evenden's libproj: includes some updates and documentation for his slimmed down libproj.
Mailing List
A mailing list is available for users and developers of PROJ.4 as well as for discussion of general cartographic projections related issues. Subscription, unsubscription and a web archive can be found at http://lists.maptools.org/mailman/listinfo/proj. The PROJ.4 mailing list is also available by NNTP at news://news.gmane.org/gmane.comp.gis.proj-4.devel and via HTML at http://news.gmane.org/gmane.comp.gis.proj-4.devel.
Bug Tracking
- Submit a new bug report (you need to login with an OSGeo Userid)
- List Open Bugs
- List Open Enhancement Requests
Plans
PROJ.4 is in active use by GRASS GIS, MapServer, PostGIS, Thuban, OGDI, Mapnik, TopoCad, and OGRCoordinateTransformation as well as various other projects.
Since work started on the PROJ.4.4.x series of releases, various bug fixes have been incorporated, and the build system has been overhauled to use autoconf/libtool. Support has also been added for 3 and 7 parameter datum shifts, the PJ* structure now also carries datum information and PJ* can be considered a full coordinate system (geographic coordinate systems are also now supported with the +proj=latlong pseudo-projection). The new cs2cs program performs a similar function to the proj program, but transforming from any one coordinate system to another. The new pj_transform() is used to access the extended coordinate system to coordinate system transformation with datum shifting. Work is underway to improve ThreadSafety.
A mapping file (epsg) has also been introduced mapping most EPSG (http://www.epsg.org/) coordinate systems to PROJ.4 format.
As of May 2008 PROJ.4 has become part of the MetaCRS project, a confederation of coordinate systems related projects and it is hoped MetaCRS will enter incubation as an OSGeo project.
Future plans for PROJ.4 will hopefully include better online documentation, refinement of datum shifting support and extension of the external programming API for greater convenience in handling coordinate systems from applications.
If you are a user of PROJ.4, and/or are interested in contributing please drop me a line and join the mailing list.
License
PROJ.4 has been placed under an MIT license. I believe this to be as close as possible to public domain while satisfying those who say that a copyright notice is required in some countries. The COPYING file read as follows:
All source, data files and other contents of the PROJ.4 package are available under the following terms. Note that the PROJ 4.3 and earlier was "public domain" as is common with US government work, but apparently this is not a well defined legal term in many countries. I am placing everything under the following MIT style license because I believe it is effectively the same as public domain, allowing anyone to use the code as they wish, including making proprietary derivatives.
Though I have put my own name as copyright holder, I don't mean to imply I did the work. Essentially all work was done by Gerald Evenden.
Copyright (c) 2000, Frank Warmerdam Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Related Resources
Documentation
- Geodesic Calculations
- Snyder, 1987: Map projections; a working manual.
- Grids & Datums: Clifford J. Mugnier's columns in PE&RS.
- MapRef: Assorted general information on projections, and related topics.
- NGA Publications on Geodesy.
- Map projections: An introduction to cartography emphasizing map projections: their properties, applications and basic mathematics.
- Paul B. Anderson's Map Projections Site.
- Troy Brant's site about Google Mercator, and tiling scheme.
Language bindings
- PROJ.4 VB Wrappers from Eric G. Miller.
- fPROJ4 - bindings for proj.4 in MySQL
- proj4rb - bindings for proj4 in ruby ('proj4rb' gem)
- http://pypi.python.org/pypi/pyproj/1.9.0 - python interface (wrapper) for proj4
- proj4tcl - bindings for proj4 in tcl (critcl source)
Other projections libraries/software
- PROJ4JS - Javascript projections implementation.
- PROJ4PHP - PHP projections implementation.
- GMT - Generic Mapping Tools, includes reprojection services.
- GCTPC: The other widely used projection package from the USGS.
- Geotrans: a projections and datum shift program from NIMA/NGA.
- GeographicLib: C++ class for projection, geodesic and geoid calculations by Charles Karney.
- JHLabs Java Map Projection Library: Loosely derived from PROJ.4 with similar syntax.
- GeoTools: GeoTools is a Java GIS library that includes sophisticated projections support.
- PCTrans: A Projection/Datum converter for Windows from the Dutch Navy, with most worldwide datums
