g.proj(1grass)
g.proj(1grass) β manual page from the GRASS User's Manual π bestie, this one is all about projections and it ate.
β¨ NAME β¨
g.projβ Prints or modifies GRASS projection information files (in various co-ordinate system descriptions). Can also be used to create new GRASS projects. π
πΈ KEYWORDS πΈ
general, projection, create project
π SYNOPSIS π
g.proj
g.proj --help
g.proj [-pgdjfwetc] [georef=file] [wkt=file] [srid=params]
[proj4=params] [epsg=code] [list_codes=string] [datum=name]
[datum_trans=index] [project=name] format=name [--help] [--verbose]
[--quiet] [--ui]
π¦ Flags π¦
-pβ Print projection information β¨-gβ Print projection information in shell script style [deprecated]. This flag is deprecated and will be removed in a future release. Useformat=shellinstead.-dβ Verify datum information and print transformation parameters π-jβ Print projection information in PROJ.4 format [deprecated]. This flag is deprecated and will be removed in a future release. Useformat=proj4instead.-fβ Print βflatβ output with no linebreaks (applies to WKT and PROJ.4 output)-wβ Print projection information in WKT format [deprecated]. This flag is deprecated and will be removed in a future release. Useformat=wktinstead.-eβ Use ESRI-style format (applies to WKT output only)-tβ Force override of datum transformation information in input co-ordinate system-cβ Modify current projectβs projection files--helpβ Print usage summary--verboseβ Verbose module output--quietβ Quiet module output--uiβ Force launching GUI dialog
β¨ Parameters β¨
georef=fileβ Name of georeferenced data file to read projection information fromwkt=fileβ Name of ASCII file containing a WKT projection description.β-βfor standard inputsrid=paramsβ Spatial reference ID with authority name and code. E.g.EPSG:4326orurn:ogc:def:crs:EPSG::4326proj4=paramsβ PROJ.4 projection description.β-βfor standard inputepsg=codeβ EPSG projection code. Options:1-1000000list_codes=stringβ List codes for given authority, e.g.EPSG, and exit. Options:EPSG,ESRI,IAU_2015,IGNF,NKG,NRCAN,OGC,PROJdatum=nameβ Datum (overrides any datum specified in input co-ordinate system). Accepts standard GRASS datum codes, or"list"to list and exitdatum_trans=indexβ Index number of datum transform parameters."0"for unspecified or"-1"to list and exit. Options:-1-100. Default:0project=nameβ Name of new project (location) to createformat=name[required]β Output format. Options:plain,shell,wkt,projjson,proj4. Default:plainplain: Human readable text outputshell: shell script style text outputwkt: Well-known text outputprojjson: JSON (JavaScript Object Notation) version of WKTproj4: PROJ.4 style text output
π DESCRIPTION π
g.proj provides a means of converting a coordinate reference system (CRS) description between various formats. Itβs giving translator bestie for CRS data π
For an introduction to map projections (with PROJ), see the manual page of r.proj.
If compiled without OGR present, the functionality is limited to:
- Reporting the CRS information for the current project (previously called location), either in conventional GRASS (
-pflag) or PROJ (-jflag) format - Changing the datum, or reporting and modifying the datum transformation parameters, for the current project
When compiled with OGR, functionality is increased and allows output of the CRS information in the Well-Known Text (WKT) format popularised by PROJ and GDAL. In addition, if one of the parameters georef, wkt, proj4 or epsg is specified, rather than being read from the current project, the CRS information is imported from an external source as follows:
georef=filenameβg.projattempts to invoke GDAL and OGR in turn to read a georeferenced filefilename. The CRS information will be read from this file. If the file is not georeferenced or cannot be read, XY (unprojected) will be used.wkt=filenameor-β The filefilenameshould contain a CRS description in WKT format with or without line-breaks (e.g. aβ.prjβfile). If-is given for the filename, the WKT description will be read from stdin rather than a file.proj4=descriptionor-βdescriptionshould be a CRS description in PROJ format, enclosed in quotation marks if there are any spaces. If-is given fordescription, the PROJ description will be read from stdin rather than as a directly-supplied command-line parameter.epsg=numberβnumbershould correspond to the index number of a valid co-ordinate system in the EPSG database. EPSG code support is based upon a local copy of the GDAL CSV co-ordinate system and datum information files, stored in the directory$GISBASE/etc/proj/ogr_csv. These can be updated if necessary to support future revisions of the EPSG database.
If datum information is incorrect or missing in the input co-ordinate system definition (e.g. PROJ descriptions have very limited support for specifying datum names), a GRASS datum abbreviation can instead be supplied using the datum parameter. This will override any datum contained in the input co-ordinate system, and discard any datum transformation parameters. Enter datum=list to return a list of all the datums supported by GRASS. Since any existing datum transformation parameters will have been discarded, the datumtrans parameter should in general always be used in conjunction with datum.
The -p, -j, -w, etc. flags are all functional when importing CRS information from an external source, meaning that g.proj can be used to convert between representations of the information. It is not required that either the input or output be in GRASS format.
In addition however, if the -c flag is specified, g.proj will create new GRASS CRS files (PROJ_INFO, PROJ_UNITS, WIND and DEFAULT_WIND) based on the imported information. If the project parameter is specified in addition to -c, then a new project will be created. Otherwise the CRS information files in the current project will be overwritten. The program will not warn before doing this.
β οΈ bestie, fr fr, this overwrite is not a drill β g.proj will not warn before doing this.
The final mode of operation of g.proj is to report on the datum information and datum transformation parameters associated with the co-ordinate system. The -d flag will report a human-readable summary of this.
π NOTES π
If the input co-ordinate system contains a datum name but no transformation parameters, and there is more than one suitable parameter set available (according to the files datum.table and datumtransform.table in $GISBASE/etc/proj), g.proj will check the value of the datumtrans option and act according to the following:
-1: List available parameter sets in a GUI-parsable (but also human-readable) format and exit.0(default): Continue without specifying parameters - if used when creating a project, other GRASS modules will use the"default"(likely non-optimum) parameters for this datum if necessary in the future.- Any other number less than or equal to the number of parameter sets available for this datum: Choose this parameter set and add it to the co-ordinate system description.
If the -t flag is specified, the module will attempt to change the datum transformation parameters using one of the above two methods even if a valid parameter set is already specified in the input co-ordinate system. This can be useful to change the datum information for an existing project.
Output is simply based on the input CRS information. g.proj does not attempt to verify that the co-ordinate system thus described matches a pre-defined existing system in use in the world. In particular, this means there may be no authority names and codes in the WKT output.
WKT format shows the false eastings and northings in the projected unit (e.g. meters, feet) but in PROJ format it should always be given in meters.
PROJJSON format is a JSON version of the WKT format, see the PROJJSON specification.
The maximum size of input WKT or PROJ CRS descriptions is limited to 8000 bytes. π«Ά
π EXAMPLES π
okay bestie, this is the part where it all clicks. real commands, real vibes, go off β¨
π Print information
wanna see the CRS info for the project you're currently in? say less:
g.proj -p
and if you wanna list out all the possible datum transformation parameters available for the current project:
g.proj -t datumtrans=-1
πΈ Create projection (PRJ) file
making a '.prj' file in ESRI format that matches the current project? literally one line:
g.proj -wef > irish_grid.prj
π¦ Read CRS from file
pull the CRS info out of a GeoTIFF and print it in PROJ format, no notes:
g.proj -jf georef=ASTER_DEM20020508161837.tif
and if you've got a PROJ CRS description chillin' in a text file and you wanna convert it to WKT format, pipe it in like this:
cat proj4.description | g.proj -w proj4=-
π Create new project
new project using the coordinate system from EPSG code 4326 (that's Latitude-Longitude/WGS84), without you having to spell out datum transformation parameters:
g.proj -c epsg=4326 project=latlong
new project with the coordinate system from EPSG code 3857 (Pseudo-Mercator Projection):
g.proj -c epsg=3857 project=google
new project with the coordinate system from EPSG code 29900 (Irish Grid), and this time we're picking datum transformation parameter set no. 2:
# list available datums for EPSG code 29900
g.proj -t datumtrans=-1 epsg=29900
g.proj -c epsg=29900 datumtrans=2 project=irish_grid
new project with the exact same coordinate system as the current project, but forcing a switch to datum transformation parameter set no. 1:
g.proj -c project=newloc -t datumtrans=1
new project built from a WKT definition you've got saved in a text file:
g.proj -c wkt=irish_grid.prj project=irish_grid
new project from a PROJ description, where you explicitly name a datum and just roll with the default datum transformation parameters:
g.proj -c project=spain proj4="+proj=utm +zone=30 +ellps=intl" datum=eur50 datumtrans=0
π€ Using g.proj output for GDAL/OGR tools
Reproject an external raster map into the current GRASS project (heads up: this does not always make sense!) using the GDAL 'gdalwarp' tool. We recommend using the ERDAS/Img format, and we do not recommend the ESRI style of WKT:
# example for 30x30 pixel resolution (enforce with -tr to avoid odd values)
gdalwarp -of HFA -tr 30 30 -t_srs "`g.proj -wf`" aster.img aster_tmerc.img
Reproject an external vector map into the current GRASS project using the OGR 'ogr2ogr' tool:
ogr2ogr -t_srs "`g.proj -wf`" polbnda_italy_GB_ovest.shp polbnda_italy_LL.shp
π REFERENCES π
- PROJ: Projection/datum support library
- GDAL raster library and toolset
- OGR vector library and toolset
Further reading π
- ASPRS Grids and Datum
- MapRef - The Collection of Map Projections and Reference Systems for Europe
- Projections Transform List (PROJ)
π SEE ALSO π
m.proj, r.proj, v.proj, r.import, r.in.gdal, v.import, v.in.ogr
π AUTHOR π
Paul Kelly
π§ SOURCE CODE π§
Available at: g.proj source code (history)
Latest change: Monday Dec 08 21:47:55 2025 in commit: d3c6479bef77a58e3b5d85259303dbfb9c1babe8
Main index | General index | Topics index | Keywords index | Graphical index | Full index
Β© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual
and that's the whole page, bestie π«Ά this was GRASS 8.5.0 talkin' about g.proj(1grass), last touched Monday Dec 08 21:47:55 2025 β go forth and reproject responsibly πβ¨
π¦ where this page comes from
- alpine 3.24: grass-gis-doc 8.5.0-r1 Β· GPL-2.0-or-later
- ubuntu stonking: grass-doc 8.5.0-1ubuntu1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms