Docs in progress for ‘QGIS testing’. Visit https://docs.qgis.org/2.18 for QGIS 2.18 docs and translations.

Working with Projections

QGIS allows users to define a global and project-wide CRS (coordinate reference system) for layers without a pre-defined CRS. It also allows the user to define custom coordinate reference systems and supports on-the-fly (OTF) projection of vector and raster layers. All of these features allow the user to display layers with different CRSs and have them overlay properly.

Overview of Projection Support

QGIS has support for approximately 2,700 known CRSs. Definitions for each CRS are stored in a SQLite database that is installed with QGIS. Normally, you do not need to manipulate the database directly. In fact, doing so may cause projection support to fail. Custom CRSs are stored in a user database. See section Custom Coordinate Reference System for information on managing your custom coordinate reference systems.

The CRSs available in QGIS are based on those defined by the European Petroleum Search Group (EPSG) and the Institut Geographique National de France (IGNF) and are largely abstracted from the spatial reference tables used in GDAL. EPSG identifiers are present in the database and can be used to specify a CRS in QGIS.

In order to use OTF projection, either your data must contain information about its coordinate reference system or you will need to define a global, layer or project-wide CRS. For PostGIS layers, QGIS uses the spatial reference identifier that was specified when the layer was created. For data supported by OGR, QGIS relies on the presence of a recognized means of specifying the CRS. In the case of Shapefile, this means a file containing the well-known text (WKT) specification of the CRS. This projection file has the same base name as the .shp file and a .prj extension. For example, a shapefile named alaska.shp would have a corresponding projection file named alaska.prj.

Whenever you select a new CRS, the layer units will automatically be changed in the General tab of the options Project Properties dialog under the Project menu.

Global Projection Specification

QGIS starts each new project using the global default projection. The global default CRS is EPSG:4326 - WGS 84 (proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs), and it comes predefined in QGIS. This default can be changed via the setProjection Select CRS button in the first section, which is used to define the default coordinate reference system for new projects, as shown in figure_projection_options. This choice will be saved for use in subsequent QGIS sessions.

../../../_images/crsdialog.png

CRS tab in the QGIS Options Dialog

When you use layers that do not have a CRS, you need to define how QGIS responds to these layers. This can be done globally or project-wide in the CRS tab under Settings ‣ options Options.

The options shown in figure_projection_options are:

  • radioButtonOn Prompt for CRS
  • radioButtonOff Use project CRS
  • radioButtonOff Use default CRS displayed below

If you want to define the coordinate reference system for a certain layer without CRS information, you can also do that in the Source tab of the raster and vector properties dialog (see Source Properties for rasters and Source Properties for vectors). If your layer already has a CRS defined, it will be displayed as shown in Source tab in vector Layer Properties dialog.

Tip

CRS in the Layers Panel

Right-clicking on a layer in the Layers Panel (section Layers Panel) provides two CRS shortcuts. Set layer CRS takes you directly to the Coordinate Reference System Selector dialog (see figure_projection_project). Set project CRS from Layer redefines the project CRS using the layer’s CRS.

Define On The Fly (OTF) CRS Transformation

QGIS supports on the fly CRS transformation for both raster and vector data. However, OTF is not activated by default. When OTF is off, each layer is drawn using the coordinates as read from the data source. When OTF is on, each layer’s coordinates are transformed to the CRS of the project.

There are three ways to enable On The Fly CRS Transformation:

  • Select projectProperties Properties… ‣ CRS from the Project menu. You can then activate the checkbox Enable on the fly CRS transformation (OTF) checkbox in the crs CRS tab and select the CRS to use (see Coordinate Reference System Selector)
  • Click on the geographic CRS status icon in the lower right-hand corner of the status bar, leading you to the previous dialog.
  • Turn OTF on by default in the crs CRS tab of the Settings ‣ Options dialog by selecting checkbox Enable ‘on the fly’ reprojection by default or Automatically enable ‘on the fly’ reprojection if layers have different CRS.

If you have already loaded a layer and you want to enable OTF reprojection, the best practice is to open the crs CRS tab of the Project Properties dialog, activate the checkbox Enable ‘on the fly’ CRS transformation checkbox, and select a CRS. The geographic CRS status icon will no longer be greyed out, and all layers will be OTF projected to the CRS shown next to the icon.

../../../_images/projectionDialog.png

Project Properties Dialog

Coordinate Reference System Selector

This dialog helps you assign a Coordinate Reference System to a project or a layer, provided a set of projection databases. Items in the dialog are:

  • Filter: If you know the EPSG code, the identifier, or the name for a coordinate reference system, you can use the search feature to find it. Enter the EPSG code, the identifier or the name.
  • Recently used coordinate reference systems: If you have certain CRSs that you frequently use in your everyday GIS work, these will be displayed in this list. Click on one of these items to select the associated CRS.
  • Coordinate reference systems of the world: This is a list of all CRSs supported by QGIS, including Geographic, Projected and Custom coordinate reference systems. To define a CRS, select it from the list by expanding the appropriate node and selecting the CRS. The active CRS is preselected.
  • PROJ.4 text: This is the CRS string used by the PROJ.4 projection engine. This text is read-only and provided for informational purposes.

Tip

Looking for a layer CRS? Use the CRS selector.

Sometimes, you receive a layer and you don’t know its projection. Assuming that you have another layer with a valid crs that should overlaps with it, enable the OTF reprojection and, in the Source tab of the Layer properties dialog, use the Coordinate Reference System selector to assign a projection. Your layer position is then moved accordingly. You may have to do some trial and error in order to find the right position, hence its original CRS.

Note

When operating across layers, for example, computing intersections between two layers, it is important that both layers have the same CRS. To change the projection of an existing layer, it is insufficient to simply change the CRS in that layer’s properties. Instead you must save the layer as a new layer, and choose the desired CRS for the new layer.

Custom Coordinate Reference System

If QGIS does not provide the coordinate reference system you need, you can define a custom CRS. To define a CRS, select customProjection Custom CRS… from the Settings menu. Custom CRSs are stored in your QGIS user database. In addition to your custom CRSs, this database also contains your spatial bookmarks and other custom data.

../../../_images/customProjectionDialog.png

Custom CRS Dialog

Defining a custom CRS in QGIS requires a good understanding of the PROJ.4 projection library. To begin, refer to “Cartographic Projection Procedures for the UNIX Environment - A User’s Manual” by Gerald I. Evenden, U.S. Geological Survey Open-File Report 90-284, 1990 (available at ftp://ftp.remotesensing.org/proj/OF90-284.pdf).

This manual describes the use of the proj.4 and related command line utilities. The cartographic parameters used with proj.4 are described in the user manual and are the same as those used by QGIS.

The Custom Coordinate Reference System Definition dialog requires only two parameters to define a user CRS:

  1. A descriptive name
  2. The cartographic parameters in PROJ.4 format

To create a new CRS, click the signPlus Add new CRS button and enter a descriptive name and the CRS parameters.

Note that the Parameters must begin with a +proj= block, to represent the new coordinate reference system.

You can test your CRS parameters to see if they give sane results. To do this, enter known WGS 84 latitude and longitude values in North and East fields, respectively. Click on Calculate, and compare the results with the known values in your coordinate reference system.

Default datum transformations

In QGIS, ‘on-the-fly’ CRS transformation is enabled by default, meaning that whenever you use layers with different coordinates system, QGIS transparently reprojects them while rendering to the project CRS. For some CRS, there are a number of transforms available. QGIS allows you to define the transformation to use otherwise QGIS uses a default one.

This customization is done in the Settings ‣ options Options –> CRS tab menu under the Default datum transformations group:

  • using checkbox Ask for datum transformation if several are available: when more than one appropriate datum transformation exists for a source/destination CRS combination, a dialog will automatically be opened prompting users to choose which of these datum transformations to use for the project;

  • or predefining a list of the appropriate default transformations to use when loading layers to projects or reprojecting a layer.

    Use the signPlus button to open the Select Datum Transformations dialog. Then:

    1. Indicate the Source CRS of the layer, using the drop-down menu or the setProjection Select CRS widget.

    2. Likewise, provide the Destination CRS.

    3. Depending on the transform grid files (based on GDAL and PROJ version installed on your system), a list of available transformations from source to destination is built in the table. Clicking a row shows details on the settings applied (epsg code, accuracy of the transform, number of stations involved…).

      You can choose to only display current valid transformations by checking the checkbox Hide deprecated option.

    4. Find your preferred transformation, select it and click OK.

      A new row is added to the table under CRS ‣ Default datum transformations with information about ‘Source CRS’ and ‘Destination CRS’ as well as ‘Source datum transform’ and ‘Destination datum transform’.

    From now, QGIS automatically uses the selected datum transformation for further transformation between these two CRSs until you signMinus remove it from the list or toggleEditing replace it with another one.

../../../_images/datumTransformation.png

Selecting a preferred default datum transformation