{{Infobox software | name = PROJ | logo = PROJ logo.svg | logo caption = | logo size = | logo alt = | screenshot = <!-- Image name is enough --> | caption = | screenshot size = | screenshot alt = | collapsible = | author = Gerald Evenden | developer = Frank Warmerdam | released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | discontinued = | latest release version = {{wikidata|property|reference|edit|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | programming language = C++, C | operating system = | platform = Cross-platform | size = | language = | language count = <!-- Number only --> | language footnote = | genre = Library | license = MIT | alexa = | website = {{Official URL}} | standard = | AsOf = }}

'''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),<ref name="ofr90284">{{cite book |first=Gerald I. |last=Evenden |title=Cartographic Projection Procedures for the UNIX Environment—A User's Manual |publisher=U.S. Geological Survey |series=Open-File Report 90-284 |orig-year=1990 |date=2003-01-01 |pages=64 |url=http://download.osgeo.org/proj/OF90-284.pdf |accessdate=2015-08-14}}</ref> 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 == The history of PROJ dates back to the late 1970s,<ref name="Kresse Danko 2011 p. 948">{{cite book |last=Kresse |first=W. |last2=Danko |first2=D.M. |title=Springer Handbook of Geographic Information |publisher=Springer Verlag |series=Springer Handbook of Geographic Information |year=2011 |isbn=978-3-540-72678-4 |url=https://books.google.com/books?id=4p1zYJ9BDFAC&pg=PA948 |access-date=5 June 2019 |page=948 |quote=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).}}</ref> and the first release of PROJ was developed by Gerald Evenden in the early 1980s as a Ratfor program.<ref>{{cite book |first=Gerald I. |last=Evenden |date=1983 |title=Forward and inverse cartographic projection procedures |publisher=U.S. Geological Survey |series=Open-File Report 83-625 |pages=76 |url=https://pubs.er.usgs.gov/publication/ofr83625 |accessdate=2015-08-14}}</ref> 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.<ref>{{cite book |first=Gerald I. |last=Evenden |first2=J.M. |last2=Botbol |date=1985 |title=User's manual for MAPGEN (UNIX version); a method of transforming digital cartographic data to a map |publisher=U.S. Geological Survey |series=Open-File Report 85-706 |pages=140 |doi=10.3133/ofr85706}}</ref> The third release of PROJ from 1990, was expanded to support approximately 70 cartographic projections.<ref name="ofr90284" /> 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 [https://dataforsyningen.dk/ SDFI] began development of a [https://proj.org/en/stable/usage/transformation.html 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 [https://gdalbarn.com/ GDAL Barnraising] event in May 2018 collected financial resources to significantly enhance and modernize PROJ by adding support for [https://www.ogc.org/publications/standard/wkt-crs/ 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 == 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.<ref>{{cite web |title=Language bindings |url=https://proj.org/development/bindings.html |website=PROJ 7.0.1 documentation}}</ref> PROJ.4 additionally had bindings for R and Perl.<ref>{{cite web |last1=Urbanek |first1=Simon |title=proj4: A simple interface to the PROJ.4 cartographic projectionslibrary |url=https://cran.r-project.org/package=proj4 |date=2 March 2020}}</ref><ref>{{cite web |title=Geo::Proj4 - metacpan.org |url=https://metacpan.org/pod/Geo::Proj4 |website=metacpan.org}}</ref> * Proj4JS (JavaScript) and Proj4J (Java) are ports of PROJ into different programming languages now managed under MetaCRS.<ref>{{cite web |title=MetaCRS |url=https://trac.osgeo.org/metacrs/wiki |website=trac.osgeo.org}}</ref>

== See also == {{Portal|Free and open-source software}} * GDAL a library that provides a single abstract data model for geospatial data formats which uses PROJ to perform coordinate transformations. * [https://sis.apache.org/ Apache SIS] is a Java library that provides similar capabilities as PROJ, including late-binding transformation support and OGC WKT interpretation.

== References == {{reflist}}

== External links == {{Wikibook}} * {{Official website}}

Category:Geographic coordinate systems Category:Free computer libraries Category:C (programming language) libraries