Jump to content

PROJ

From Wikipedia, the free encyclopedia
PROJ
Original author(s)Gerald Evenden
Developer(s)Frank Warmerdam
Stable release
9.6.0[1] Edit this on Wikidata / 15 March 2025; 35 days ago (15 March 2025)
Repository
Written inC++, C
PlatformCross-platform
TypeLibrary
LicenseMIT
Websiteproj.org Edit this at Wikidata

PROJ (formerly PROJ.4) is a C/C++ library for performing conversions between cartographic projections. The library is based on the work of Gerald (Jerry) Evenden at the United States Geological Survey (USGS),[2] but since 2019-11-26 is an Open Source Geospatial Foundation (OSGeo) project maintained by the PROJ Project Steering Committee (PSC). The library also ships with executables for performing these transformations from the command line.

History

[edit]

The history of PROJ dates back to the late 1970s,[3] and the first release of PROJ was developed by Gerald Evenden in the early 1980s as a Ratfor program.[4] It was based on the General Cartographic Transformation Package or GCTP, which consisted of Fortran subroutines that could be used to project geographic data. The second release of PROJ from 1985 was rewritten in C to run on UNIX systems.[5] The third release of PROJ from 1990, was expanded to support approximately 70 cartographic projections.[2] Evenden further developed a fourth release in 1994, named PROJ.4. The last version maintained by Evenden was 4.3, released on September 24, 1995.

After over four years of inactivity, Frank Warmerdam of GDAL updated and released version 4.4 on March 21, 2000, which he eventually evolved to include support for WGS84-based early-bound coordinate transformations. As of May 2008, PROJ became part of the MetaCRS project, a confederation of coordinate systems related projects under incubation with OSGeo.

In 2016, Thomas Knudsen from the Denmark SDFI began development of a geodetic transformation engine within PROJ, which evolved to become the PROJ 5.0 release in 2018, thus removing version four (".4") from the name. After the 5.0 release, the GDAL Barnraising event in May 2018 collected financial resources to significantly enhance and modernize PROJ by adding support for OGC WKT, refactoring the internal databases PROJ used to compute coordinate transformation pathways, switching PROJ to a late-binding coordinate transformation model, and completing PROJ's evolution from a cartographic projection library to a geodetic transformation engine. With the acquisition of the proj.org domain name in June 2019, the project officially renamed itself back to PROJ (or PRøJ).

Ports

[edit]

The string format that PROJ uses to describe coordinate systems and transformations, proj string or proj.4 string, is widely used beyond PROJ proper. A wide variety of ports or bindings in other programming languages have been developed.

  • Bindings based on the PROJ library (libproj) exist for Python, Ruby, Rust, Golang, Julia, TCL, MySQL, Excel, Visual Basic, and Fortran.[6] PROJ.4 additionally had bindings for R and Perl.[7][8]
  • Proj4JS (JavaScript) and Proj4J (Java) are ports of PROJ into different programming languages now managed under MetaCRS.[9]

See also

[edit]
  • GDAL a library that provides a single abstract data model for geospatial data formats which uses PROJ to perform coordinate transformations.
  • Apache SIS is a Java library that provides similar capabilities as PROJ, including late-binding transformation support and OGC WKT interpretation.

References

[edit]
  1. ^ "Release 9.6.0". 15 March 2025. Retrieved 27 March 2025.
  2. ^ a b Evenden, Gerald I. (2003-01-01) [1990]. Cartographic Projection Procedures for the UNIX Environment—A User's Manual (PDF). Open-File Report 90-284. U.S. Geological Survey. p. 64. Retrieved 2015-08-14.
  3. ^ Kresse, W.; Danko, D.M. (2011). Springer Handbook of Geographic Information. Springer Handbook of Geographic Information. Springer Verlag. p. 948. ISBN 978-3-540-72678-4. Retrieved 5 June 2019. PROJ and CS-Map are coordinate reference system and coordinate transformation libraries. ... The history of PROJ.4 starts in the late 1970s, when Gerald Evenden was involved in the development of map plotting software, at the Atlantic Geology branch of the United States Geological Survey (USGS).
  4. ^ Evenden, Gerald I. (1983). Forward and inverse cartographic projection procedures. Open-File Report 83-625. U.S. Geological Survey. p. 76. Retrieved 2015-08-14.
  5. ^ Evenden, Gerald I.; Botbol, J.M. (1985). User's manual for MAPGEN (UNIX version); a method of transforming digital cartographic data to a map. Open-File Report 85-706. U.S. Geological Survey. p. 140. doi:10.3133/ofr85706.
  6. ^ "Language bindings". PROJ 7.0.1 documentation.
  7. ^ Urbanek, Simon (2 March 2020). "proj4: A simple interface to the PROJ.4 cartographic projectionslibrary".
  8. ^ "Geo::Proj4 - metacpan.org". metacpan.org.
  9. ^ "MetaCRS". trac.osgeo.org.
[edit]