ArticleslgStudy

computer science

PROJ

PROJ is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand PROJ rather than just read about it. In short: 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), but since 2019-11-26 is an Open Source Geospatial Foundation (OSGeo) project maintained by the PROJ Project Steering Committee (PSC).

PROJ — main illustration
PROJ — illustration

Key takeaways

  • PROJ belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect PROJ to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of PROJ from memory before moving on to harder problems.

Reference excerpt

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), 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, and the first release of PROJ was developed by Gerald Evenden in the early 1980s as a Ratfor program. 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. The third release of PROJ from 1990, was expanded to support approximately 70 cartographic projections. 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 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. PROJ.4 additionally had bindings for R and Perl. Proj4JS (JavaScript) and Proj4J (Java) are ports of PROJ into different programming languages now managed under MetaCRS.

See also

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

External links

Official website

Illustrations

PROJ illustration

Worked examples

Example 1 — a first encounter with PROJ

Start with the simplest possible case. Write down what PROJ claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to PROJ before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about PROJ ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of PROJ

In research
PROJ appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses PROJ in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
PROJ is common in secondary-school and first-year university syllabi. It links to neighbouring topics C (programming language) libraries, Free computer libraries, Geographic coordinate systems, so understanding it makes those chapters shorter.
In everyday life
Look for PROJ outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study PROJ in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what PROJ means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain PROJ out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is PROJ in simple terms?

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), but since 2019-11-26 is an Open Source Geospatial Foundation (OSGeo) project maintained by…

Why does PROJ matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study PROJ?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on PROJ.

Tags

  • C (programming language) libraries
  • Free computer libraries
  • Geographic coordinate systems

Keep exploring