1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
|
.\" Man page generated from reStructuredText.
.
.TH "PROJINFO" "1" "Mar 1, 2021" "8.0.0" "PROJ"
.SH NAME
projinfo \- Geodetic object and coordinate operation queries
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.nf
\fBprojinfo\fP
.in +2
[\-o formats] [\-k crs|operation|datum|ensemble|ellipsoid] [\-\-summary] [\-q]
[[\-\-area name_or_code] | [\-\-bbox west_long,south_lat,east_long,north_lat]]
[\-\-spatial\-test contains|intersects]
[\-\-crs\-extent\-use none|both|intersection|smallest]
[\-\-grid\-check none|discard_missing|sort|known_available]
[\-\-pivot\-crs always|if_no_direct_transformation|never|{auth:code[,auth:code]*}]
[\-\-show\-superseded] [\-\-hide\-ballpark] [\-\-accuracy {accuracy}]
[\-\-allow\-ellipsoidal\-height\-as\-vertical\-crs]
[\-\-boundcrs\-to\-wgs84]
[\-\-main\-db\-path path] [\-\-aux\-db\-path path]*
[\-\-identify] [\-\-3d]
[\-\-c\-ify] [\-\-single\-line]
\-\-searchpaths | \-\-remote\-data | {object_definition} |
{object_reference} | (\-s {srs_def} \-t {srs_def})
.in -2
.fi
.sp
.sp
where {object_definition} or {srs_def} is one of the possibilities accepted
by \fBproj_create()\fP
.INDENT 0.0
.IP \(bu 2
a proj\-string,
.IP \(bu 2
a WKT string,
.IP \(bu 2
an object code (like "EPSG:4326", "urn:ogc:def:crs:EPSG::4326",
"urn:ogc:def:coordinateOperation:EPSG::1671"),
.IP \(bu 2
an Object name. e.g "WGS 84", "WGS 84 / UTM zone 31N". In that case as
uniqueness is not guaranteed, heuristics are applied to determine the appropriate best match.
.IP \(bu 2
a OGC URN combining references for compound coordinate reference systems
(e.g "\fI\%urn:ogc:def:crs,crs:EPSG::2393,crs:EPSG::5717\fP" or custom abbreviated
syntax "EPSG:2393+5717"),
.IP \(bu 2
a OGC URN combining references for references for projected or derived CRSs
e.g. for Projected 3D CRS "UTM zone 31N / WGS 84 (3D)":
"\fI\%urn:ogc:def:crs,crs:EPSG::4979,cs:PROJ::ENh,coordinateOperation:EPSG::16031\fP"
(\fIadded in 6.2\fP)
.IP \(bu 2
a OGC URN combining references for concatenated operations
(e.g. "\fI\%urn:ogc:def:coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:EPSG::1618\fP")
.IP \(bu 2
a PROJJSON string. The jsonschema is at \fI\%https://proj.org/schemas/v0.2/projjson.schema.json\fP (\fIadded in 6.2\fP)
.IP \(bu 2
a compound CRS made from two object names separated with " + ". e.g. "WGS 84 + EGM96 height" (\fIadded in 7.1\fP)
.UNINDENT
.sp
{object_reference} is a filename preceded by the \(aq@\(aq character. The
file referenced by the {object_reference} must contain a valid
{object_definition}.
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprojinfo\fP is a program that can query information on a geodetic object,
coordinate reference system (CRS) or coordinate operation, when the \fB\-s\fP and \fB\-t\fP
options are specified, and display it under different formats (PROJ string, WKT string
or PROJJSON string).
.sp
It can also be used to query coordinate operations available between two CRS.
.sp
The program is named with some reference to the GDAL \fBgdalsrsinfo\fP that offers
partly similar services.
.sp
The following control parameters can appear in any order:
.INDENT 0.0
.TP
.B \-o formats
formats is a comma separated combination of:
\fBall\fP, \fBdefault\fP, \fBPROJ\fP, \fBWKT_ALL\fP, \fBWKT2:2015\fP, \fBWKT2:2019\fP, \fBWKT1:GDAL\fP, \fBWKT1:ESRI\fP, \fBPROJJSON\fP\&.
.sp
Except \fBall\fP and \fBdefault\fP, other formats can be preceded by \fB\-\fP to disable them.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
WKT2_2019 was previously called WKT2_2018.
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
Before PROJ 6.3.0, WKT1:GDAL was implicitly calling \-\-boundcrs\-to\-wgs84.
This is no longer the case.
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-k crs|operation|datum|ensemble|ellipsoid
When used to query a single object with a AUTHORITY:CODE, determines the (k)ind of the object
in case there are CRS, coordinate operations or ellipsoids with the same CODE.
The default is crs.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-summary
When listing coordinate operations available between 2 CRS, return the
result in a summary format, mentioning only the name of the coordinate
operation, its accuracy and its area of use.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-q
Turn on quiet mode. Quiet mode is only available for queries on single objects,
and only one output format is selected. In that mode, only the PROJ, WKT or PROJJSON
string is displayed, without other introduction output. The output is then
potentially compatible of being piped in other utilities.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-area name_or_code
Specify an area of interest to restrict the results when researching
coordinate operations between 2 CRS. The area of interest can be specified either
as a name (e.g "Denmark \- onshore") or a AUTHORITY:CODE (EPSG:3237)
This option is exclusive of \fI\%\-\-bbox\fP\&.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-bbox west_long,south_lat,east_long,north_lat
Specify an area of interest to restrict the results when researching
coordinate operations between 2 CRS. The area of interest is specified as a
bounding box with geographic coordinates, expressed in degrees in a
unspecified geographic CRS.
\fIwest_long\fP and \fIeast_long\fP should be in the [\-180,180] range, and
\fIsouth_lat\fP and \fInorth_lat\fP in the [\-90,90]. \fIwest_long\fP is generally lower than
\fIeast_long\fP, except in the case where the area of interest crosses the antimeridian.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-spatial\-test contains|intersects
Specify how the area of use of coordinate operations found in the database
are compared to the area of use specified explicitly with \fI\%\-\-area\fP or \fI\%\-\-bbox\fP,
or derived implicitly from the area of use of the source and target CRS.
By default, projinfo will only keep coordinate operations whose are of use
is strictly within the area of interest (\fBcontains\fP strategy).
If using the \fBintersects\fP strategy, the spatial test is relaxed, and any
coordinate operation whose area of use at least partly intersects the
area of interest is listed.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-crs\-extent\-use none|both|intersection|smallest
Specify which area of interest to consider when no explicit one is specified
with \fI\%\-\-area\fP or \fI\%\-\-bbox\fP options.
By default (\fBsmallest\fP strategy), the area of
use of the source or target CRS will be looked, and the one that is the
smallest one in terms of area will be used as the area of interest.
If using \fBnone\fP, no area of interest is used.
If using \fBboth\fP, only coordinate operations that relate (contain or intersect
depending of the \fI\%\-\-spatial\-test\fP strategy) to the area of use of both CRS
are selected.
If using \fBintersection\fP, the area of interest is the intersection of the
bounding box of the area of use of the source and target CRS
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-grid\-check none|discard_missing|sort|known_available
Specify how the presence or absence of a horizontal or vertical shift grid
required for a coordinate operation affects the results returned when
researching coordinate operations between 2 CRS.
The default strategy is \fBsort\fP (if \fBPROJ_NETWORK\fP is not defined).
In that case, all candidate
operations are returned, but the actual availability of the grids is used
to determine the sorting order. That is, if a coordinate operation involves
using a grid that is not available in the PROJ resource directories
(determined by the \fBPROJ_LIB\fP environment variable, it will be listed in
the bottom of the results.
The \fBnone\fP strategy completely disables the checks of presence of grids and
this returns the results as if all the grids where available.
The \fBdiscard_missing\fP strategy discards results that involve grids not
present in the PROJ resource directories.
The \fBknown_available\fP strategy discards results that involve grids not
present in the PROJ resource directories and that are not known of the CDN.
This is the default strategy is \fBPROJ_NETWORK\fP is set to \fBON\fP\&.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pivot\-crs always|if_no_direct_transformation|never|{auth:code[,auth:code]*}
Determine if intermediate (pivot) CRS can be used when researching coordinate
operation between 2 CRS. A typical example is the WGS84 pivot. By default,
projinfo will consider any potential pivot if there is no direct transformation
( \fBif_no_direct_transformation\fP). If using the \fBnever\fP strategy,
only direct transformations between the source and target CRS will be
used. If using the \fBalways\fP strategy, intermediate CRS will be considered
even if there are direct transformations.
It is also possible to restrict the pivot CRS to consider by specifying
one or several CRS by their AUTHORITY:CODE.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-show\-superseded
When enabled, coordinate operations that are superseded by others will be
listed. Note that supersession is not equivalent to deprecation: superseded
operations are still considered valid although they have a better equivalent,
whereas deprecated operations have been determined to be erroneous and are
not considered at all.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-hide\-ballpark
New in version 7.1.
.sp
Hides any coordinate operation that is, or contains, a
Ballpark transformation
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-accuracy {accuracy}
New in version 8.0.
.sp
Sets the minimum desired accuracy for returned coordinate operations.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for coordinate operation computation
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-allow\-ellipsoidal\-height\-as\-vertical\-crs
New in version 8.0.
.sp
Allow to export a geographic or projected 3D CRS as a compound CRS whose
vertical CRS represents the ellipsoidal height.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
only used for CRS, and with WKT1:GDAL output format
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-boundcrs\-to\-wgs84
When specified, this option researches a coordinate operation from the
base geographic CRS of the single CRS, source or target CRS to the WGS84
geographic CRS, and if found, wraps those CRS into a BoundCRS object.
This is mostly to be used for early\-binding approaches.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-main\-db\-path path
Specify the name and path of the database to be used by projinfo. The
default is proj.db in the PROJ resource directories.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-aux\-db\-path path
Specify the name and path of auxiliary databases, that are to be combined
with the main database. Those auxiliary databases must have a table
structure that is identical to the main database, but can be partly filled
and their entries can refer to entries of the main database.
The option may be repeated to specify several auxiliary databases.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-identify
When used with an object definition, this queries the PROJ database to find
known objects, typically CRS, that are close or identical to the object.
Each candidate object is associated with an approximate likelihood percentage.
This is useful when used with a WKT string that lacks a EPSG identifier,
such as ESRI WKT1. This might also be used with PROJ strings.
For example, \fI+proj=utm +zone=31 +datum=WGS84 +type=crs\fP will be identified
with a likelihood of 70% to EPSG:32631
.UNINDENT
.INDENT 0.0
.TP
.B \-\-3d
New in version 6.3.
.sp
"Promote" the CRS(s) to their 3D version. In the context of researching
available coordinate transformations, explicitly specifying this option is
not necessary, because when one of the source or target CRS has a vertical
component but not the other one, the one that has no vertical component is
automatically promoted to a 3D version, where its vertical axis is the
ellipsoidal height in metres, using the ellipsoid of the base geodetic CRS.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-c\-ify
For developers only. Modify the string output of the utility so that it
is easy to put those strings in C/C++ code
.UNINDENT
.INDENT 0.0
.TP
.B \-\-single\-line
Output PROJ, WKT or PROJJSON strings on a single line, instead of multiple
indented lines by default.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-searchpaths
New in version 7.0.
.sp
Output the directories into which PROJ resources will be looked for
(if not using C API such as \fBproj_context_set_search_paths()\fP
that will override them.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-remote\-data
New in version 7.0.
.sp
Display information regarding if network is enabled, and the
related URL.
.UNINDENT
.SH EXAMPLES
.INDENT 0.0
.IP 1. 3
Query the CRS object corresponding to EPSG:4326
.UNINDENT
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
projinfo EPSG:4326
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Output:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
PROJ.4 string:
+proj=longlat +datum=WGS84 +no_defs +type=crs
WKT2:2019 string:
GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
USAGE[
SCOPE["unknown"],
AREA["World"],
BBOX[\-90,\-180,90,180]],
ID["EPSG",4326]]
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.IP 2. 3
List the coordinate operations between NAD27 (designed with its CRS name)
and NAD83 (designed with its EPSG code 4269) within an area of interest
.UNINDENT
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
projinfo \-s NAD27 \-t EPSG:4269 \-\-area "USA \- Missouri"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Output:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
DERIVED_FROM(EPSG):1241, NAD27 to NAD83 (1), 0.15 m, USA \- CONUS including EEZ
PROJ string:
+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert \e
+xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=conus \e
+step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (1)",
SOURCECRS[
GEOGCRS["NAD27",
DATUM["North American Datum 1927",
ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]]]],
TARGETCRS[
GEOGCRS["NAD83",
DATUM["North American Datum 1983",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]]]],
METHOD["CTABLE2"],
PARAMETERFILE["Latitude and longitude difference file","conus"],
OPERATIONACCURACY[0.15],
USAGE[
SCOPE["unknown"],
AREA["USA \- CONUS including EEZ"],
BBOX[23.81,\-129.17,49.38,\-65.69]],
ID["DERIVED_FROM(EPSG)",1241]]
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.IP 3. 3
Export an object as a PROJJSON string
.UNINDENT
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
projinfo GDA94 \-o PROJJSON \-q
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Output:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
{
"type": "GeographicCRS",
"name": "GDA94",
"datum": {
"type": "GeodeticReferenceFrame",
"name": "Geocentric Datum of Australia 1994",
"ellipsoid": {
"name": "GRS 1980",
"semi_major_axis": 6378137,
"inverse_flattening": 298.257222101
}
},
"coordinate_system": {
"subtype": "ellipsoidal",
"axis": [
{
"name": "Geodetic latitude",
"abbreviation": "Lat",
"direction": "north",
"unit": "degree"
},
{
"name": "Geodetic longitude",
"abbreviation": "Lon",
"direction": "east",
"unit": "degree"
}
]
},
"area": "Australia \- GDA",
"bbox": {
"south_latitude": \-60.56,
"west_longitude": 93.41,
"north_latitude": \-8.47,
"east_longitude": 173.35
},
"id": {
"authority": "EPSG",
"code": 4283
}
}
.ft P
.fi
.UNINDENT
.UNINDENT
.SH SEE ALSO
.sp
\fBcs2cs(1)\fP, \fBcct(1)\fP, \fBgeod(1)\fP, \fBgie(1)\fP, \fBproj(1)\fP, \fBprojsync(1)\fP
.SH BUGS
.sp
A list of know bugs can be found at \fI\%https://github.com/OSGeo/PROJ/issues\fP
where new bug reports can be submitted to.
.SH HOME PAGE
.sp
\fI\%https://proj.org/\fP
.SH AUTHOR
Even Rouault
.SH COPYRIGHT
1983-2021
.\" Generated by docutils manpage writer.
.
|