File Coverage

blib/lib/Image/ExifTool/GeoTiff.pm
Criterion Covered Total %
statement 54 62 87.1
branch 23 38 60.5
condition 3 9 33.3
subroutine 4 4 100.0
pod 0 1 0.0
total 84 114 73.6


line stmt bran cond sub pod time code
1             #------------------------------------------------------------------------------
2             # File: GeoTiff.pm
3             #
4             # Description: Read GeoTiff meta information
5             #
6             # Revisions: 02/23/2004 - P. Harvey Created
7             # 02/25/2004 - PH Added new codes from libgeotiff-1.2.1
8             # 02/01/2007 - PH Added new codes from libgeotiff-1.2.3
9             # 01/22/2014 - PH Added new code from libgeotiff-1.4.0
10             # 01/19/2015 - PH Added ChartTIFF tags
11             #
12             # References: 1) ftp://ftp.remotesensing.org/geotiff/libgeotiff/libgeotiff-1.1.4.tar.gz
13             # 2) http://www.charttiff.com/whitepapers.shtml
14             #------------------------------------------------------------------------------
15              
16             package Image::ExifTool::GeoTiff;
17              
18 2     2   4738 use strict;
  2         4  
  2         75  
19 2     2   11 use vars qw($VERSION);
  2         4  
  2         87  
20 2     2   12 use Image::ExifTool qw(:DataAccess :Utils);
  2         4  
  2         9040  
21              
22             $VERSION = '1.12';
23              
24             # format codes for geoTiff directory entries
25             my %geoTiffFormat = (
26             0 => 'int16u', # (value is stored in offset, and count is 1)
27             0x87af => 'int16u', # (value is stored after directory)
28             0x87b0 => 'double',
29             0x87b1 => 'string',
30             );
31              
32             my %epsg_units = (
33             9001 => 'Linear Meter',
34             9002 => 'Linear Foot',
35             9003 => 'Linear Foot US Survey',
36             9004 => 'Linear Foot Modified American',
37             9005 => 'Linear Foot Clarke',
38             9006 => 'Linear Foot Indian',
39             9007 => 'Linear Link',
40             9008 => 'Linear Link Benoit',
41             9009 => 'Linear Link Sears',
42             9010 => 'Linear Chain Benoit',
43             9011 => 'Linear Chain Sears',
44             9012 => 'Linear Yard Sears',
45             9013 => 'Linear Yard Indian',
46             9014 => 'Linear Fathom',
47             9015 => 'Linear Mile International Nautical',
48             9101 => 'Angular Radian',
49             9102 => 'Angular Degree',
50             9103 => 'Angular Arc Minute',
51             9104 => 'Angular Arc Second',
52             9105 => 'Angular Grad',
53             9106 => 'Angular Gon',
54             9107 => 'Angular DMS',
55             9108 => 'Angular DMS Hemisphere',
56             32767 => 'User Defined',
57             );
58              
59             my %epsg_vertcs = (
60             0 => 'Undefined',
61             5001 => 'Airy 1830 ellipsoid',
62             5002 => 'Airy Modified 1849 ellipsoid',
63             5003 => 'ANS ellipsoid',
64             5004 => 'Bessel 1841 ellipsoid',
65             5005 => 'Bessel Modified ellipsoid',
66             5006 => 'Bessel Namibia ellipsoid',
67             5007 => 'Clarke 1858 ellipsoid',
68             5008 => 'Clarke 1866 ellipsoid',
69             5010 => 'Clarke 1880 Benoit ellipsoid',
70             5011 => 'Clarke 1880 IGN ellipsoid',
71             5012 => 'Clarke 1880 RGS ellipsoid',
72             5013 => 'Clarke 1880 Arc ellipsoid',
73             5014 => 'Clarke 1880 SGA 1922 ellipsoid',
74             5015 => 'Everest 1830 1937 Adjustment ellipsoid',
75             5016 => 'Everest 1830 1967 Definition ellipsoid',
76             5017 => 'Everest 1830 1975 Definition ellipsoid',
77             5018 => 'Everest 1830 Modified ellipsoid',
78             5019 => 'GRS 1980 ellipsoid',
79             5020 => 'Helmert 1906 ellipsoid',
80             5021 => 'INS ellipsoid',
81             5022 => 'International 1924 ellipsoid',
82             5023 => 'International 1967 ellipsoid',
83             5024 => 'Krassowsky 1940 ellipsoid',
84             5025 => 'NWL 9D ellipsoid',
85             5026 => 'NWL 10D ellipsoid',
86             5027 => 'Plessis 1817 ellipsoid',
87             5028 => 'Struve 1860 ellipsoid',
88             5029 => 'War Office ellipsoid',
89             5030 => 'WGS 84 ellipsoid',
90             5031 => 'GEM 10C ellipsoid',
91             5032 => 'OSU86F ellipsoid',
92             5033 => 'OSU91A ellipsoid',
93             5101 => 'Newlyn',
94             5102 => 'North American Vertical Datum 1929',
95             5103 => 'North American Vertical Datum 1988',
96             5104 => 'Yellow Sea 1956',
97             5105 => 'Baltic Sea',
98             5106 => 'Caspian Sea',
99             32767 => 'User Defined',
100             );
101              
102             %Image::ExifTool::GeoTiff::Main = (
103             GROUPS => { 2 => 'Location' },
104             1 => {
105             # this isn't a real GeoTiff key, but put it here
106             # so it will appear in tag lists since we generate it below
107             Name => 'GeoTiffVersion',
108             },
109             1024 => {
110             Name => 'GTModelType',
111             PrintConv => {
112             1 => 'Projected',
113             2 => 'Geographic',
114             3 => 'Geocentric',
115             32767 => 'User Defined',
116             },
117             },
118             1025 => {
119             Name => 'GTRasterType',
120             PrintConv => {
121             1 => 'Pixel Is Area',
122             2 => 'Pixel Is Point',
123             32767 => 'User Defined',
124             },
125             },
126             1026 => 'GTCitation',
127             2048 => {
128             Name => 'GeographicType',
129             PrintConv => {
130             # epsg_gcs
131             4001 => 'Airy 1830',
132             4002 => 'Airy Modified 1849',
133             4003 => 'Australian National Spheroid',
134             4004 => 'Bessel 1841',
135             4005 => 'Bessel Modified',
136             4006 => 'Bessel Namibia',
137             4007 => 'Clarke 1858',
138             4008 => 'Clarke 1866',
139             4009 => 'Clarke 1866 Michigan',
140             4010 => 'Clarke 1880 Benoit',
141             4011 => 'Clarke 1880 IGN',
142             4012 => 'Clarke 1880 RGS',
143             4013 => 'Clarke 1880 Arc',
144             4014 => 'Clarke 1880 SGA 1922',
145             4015 => 'Everest 1830 1937 Adjustment',
146             4016 => 'Everest 1830 1967 Definition',
147             4017 => 'Everest 1830 1975 Definition',
148             4018 => 'Everest 1830 Modified',
149             4019 => 'GRS 1980',
150             4020 => 'Helmert 1906',
151             4021 => 'Indonesian National Spheroid',
152             4022 => 'International 1924',
153             4023 => 'International 1967',
154             4024 => 'Krassowsky 1940',
155             4025 => 'NWL9D',
156             4026 => 'NWL10D',
157             4027 => 'Plessis 1817',
158             4028 => 'Struve 1860',
159             4029 => 'War Office',
160             4030 => 'WGS84',
161             4031 => 'GEM10C',
162             4032 => 'OSU86F',
163             4033 => 'OSU91A',
164             4034 => 'Clarke 1880',
165             4035 => 'Sphere',
166             4120 => 'Greek',
167             4121 => 'GGRS87',
168             4123 => 'KKJ',
169             4124 => 'RT90',
170             4133 => 'EST92',
171             4815 => 'Greek Athens',
172             4201 => 'Adindan',
173             4202 => 'AGD66',
174             4203 => 'AGD84',
175             4204 => 'Ain el Abd',
176             4205 => 'Afgooye',
177             4206 => 'Agadez',
178             4207 => 'Lisbon',
179             4208 => 'Aratu',
180             4209 => 'Arc 1950',
181             4210 => 'Arc 1960',
182             4211 => 'Batavia',
183             4212 => 'Barbados',
184             4213 => 'Beduaram',
185             4214 => 'Beijing 1954',
186             4215 => 'Belge 1950',
187             4216 => 'Bermuda 1957',
188             4217 => 'Bern 1898',
189             4218 => 'Bogota',
190             4219 => 'Bukit Rimpah',
191             4220 => 'Camacupa',
192             4221 => 'Campo Inchauspe',
193             4222 => 'Cape',
194             4223 => 'Carthage',
195             4224 => 'Chua',
196             4225 => 'Corrego Alegre',
197             4226 => 'Cote d Ivoire',
198             4227 => 'Deir ez Zor',
199             4228 => 'Douala',
200             4229 => 'Egypt 1907',
201             4230 => 'ED50',
202             4231 => 'ED87',
203             4232 => 'Fahud',
204             4233 => 'Gandajika 1970',
205             4234 => 'Garoua',
206             4235 => 'Guyane Francaise',
207             4236 => 'Hu Tzu Shan',
208             4237 => 'HD72',
209             4238 => 'ID74',
210             4239 => 'Indian 1954',
211             4240 => 'Indian 1975',
212             4241 => 'Jamaica 1875',
213             4242 => 'JAD69',
214             4243 => 'Kalianpur',
215             4244 => 'Kandawala',
216             4245 => 'Kertau',
217             4246 => 'KOC',
218             4247 => 'La Canoa',
219             4248 => 'PSAD56',
220             4249 => 'Lake',
221             4250 => 'Leigon',
222             4251 => 'Liberia 1964',
223             4252 => 'Lome',
224             4253 => 'Luzon 1911',
225             4254 => 'Hito XVIII 1963',
226             4255 => 'Herat North',
227             4256 => 'Mahe 1971',
228             4257 => 'Makassar',
229             4258 => 'EUREF89',
230             4259 => 'Malongo 1987',
231             4260 => 'Manoca',
232             4261 => 'Merchich',
233             4262 => 'Massawa',
234             4263 => 'Minna',
235             4264 => 'Mhast',
236             4265 => 'Monte Mario',
237             4266 => 'M poraloko',
238             4267 => 'NAD27',
239             4268 => 'NAD Michigan',
240             4269 => 'NAD83',
241             4270 => 'Nahrwan 1967',
242             4271 => 'Naparima 1972',
243             4272 => 'GD49',
244             4273 => 'NGO 1948',
245             4274 => '73',
246             4275 => 'NTF',
247             4276 => 'NSWC 9Z 2',
248             4277 => 'OSGB 1936',
249             4278 => 'OSGB70',
250             4279 => 'OS SN80',
251             4280 => 'Padang',
252             4281 => 'Palestine 1923',
253             4282 => 'Pointe Noire',
254             4283 => 'GDA94',
255             4284 => 'Pulkovo 1942',
256             4285 => 'Qatar',
257             4286 => 'Qatar 1948',
258             4287 => 'Qornoq',
259             4288 => 'Loma Quintana',
260             4289 => 'Amersfoort',
261             4290 => 'RT38',
262             4291 => 'SAD69',
263             4292 => 'Sapper Hill 1943',
264             4293 => 'Schwarzeck',
265             4294 => 'Segora',
266             4295 => 'Serindung',
267             4296 => 'Sudan',
268             4297 => 'Tananarive',
269             4298 => 'Timbalai 1948',
270             4299 => 'TM65',
271             4300 => 'TM75',
272             4301 => 'Tokyo',
273             4302 => 'Trinidad 1903',
274             4303 => 'TC 1948',
275             4304 => 'Voirol 1875',
276             4305 => 'Voirol Unifie',
277             4306 => 'Bern 1938',
278             4307 => 'Nord Sahara 1959',
279             4308 => 'Stockholm 1938',
280             4309 => 'Yacare',
281             4310 => 'Yoff',
282             4311 => 'Zanderij',
283             4312 => 'MGI',
284             4313 => 'Belge 1972',
285             4314 => 'DHDN',
286             4315 => 'Conakry 1905',
287             4317 => 'Dealul Piscului 1970',
288             4322 => 'WGS 72',
289             4324 => 'WGS 72BE',
290             4326 => 'WGS 84',
291             4801 => 'Bern 1898 Bern',
292             4802 => 'Bogota Bogota',
293             4803 => 'Lisbon Lisbon',
294             4804 => 'Makassar Jakarta',
295             4805 => 'MGI Ferro',
296             4806 => 'Monte Mario Rome',
297             4807 => 'NTF Paris',
298             4808 => 'Padang Jakarta',
299             4809 => 'Belge 1950 Brussels',
300             4810 => 'Tananarive Paris',
301             4811 => 'Voirol 1875 Paris',
302             4812 => 'Voirol Unifie Paris',
303             4813 => 'Batavia Jakarta',
304             4901 => 'ATF Paris',
305             4902 => 'NDG Paris',
306             32767 => 'User Defined',
307             },
308             },
309             2049 => 'GeogCitation',
310             2050 => {
311             Name => 'GeogGeodeticDatum',
312             PrintConv => {
313             # epsg_datum,
314             6001 => 'Airy 1830',
315             6002 => 'Airy Modified 1849',
316             6003 => 'Australian National Spheroid',
317             6004 => 'Bessel 1841',
318             6005 => 'Bessel Modified',
319             6006 => 'Bessel Namibia',
320             6007 => 'Clarke 1858',
321             6008 => 'Clarke 1866',
322             6009 => 'Clarke 1866 Michigan',
323             6010 => 'Clarke 1880 Benoit',
324             6011 => 'Clarke 1880 IGN',
325             6012 => 'Clarke 1880 RGS',
326             6013 => 'Clarke 1880 Arc',
327             6014 => 'Clarke 1880 SGA 1922',
328             6015 => 'Everest 1830 1937 Adjustment',
329             6016 => 'Everest 1830 1967 Definition',
330             6017 => 'Everest 1830 1975 Definition',
331             6018 => 'Everest 1830 Modified',
332             6019 => 'GRS 1980',
333             6020 => 'Helmert 1906',
334             6021 => 'Indonesian National Spheroid',
335             6022 => 'International 1924',
336             6023 => 'International 1967',
337             6024 => 'Krassowsky 1960',
338             6025 => 'NWL9D',
339             6026 => 'NWL10D',
340             6027 => 'Plessis 1817',
341             6028 => 'Struve 1860',
342             6029 => 'War Office',
343             6030 => 'WGS84',
344             6031 => 'GEM10C',
345             6032 => 'OSU86F',
346             6033 => 'OSU91A',
347             6034 => 'Clarke 1880',
348             6035 => 'Sphere',
349             6201 => 'Adindan',
350             6202 => 'Australian Geodetic Datum 1966',
351             6203 => 'Australian Geodetic Datum 1984',
352             6204 => 'Ain el Abd 1970',
353             6205 => 'Afgooye',
354             6206 => 'Agadez',
355             6207 => 'Lisbon',
356             6208 => 'Aratu',
357             6209 => 'Arc 1950',
358             6210 => 'Arc 1960',
359             6211 => 'Batavia',
360             6212 => 'Barbados',
361             6213 => 'Beduaram',
362             6214 => 'Beijing 1954',
363             6215 => 'Reseau National Belge 1950',
364             6216 => 'Bermuda 1957',
365             6217 => 'Bern 1898',
366             6218 => 'Bogota',
367             6219 => 'Bukit Rimpah',
368             6220 => 'Camacupa',
369             6221 => 'Campo Inchauspe',
370             6222 => 'Cape',
371             6223 => 'Carthage',
372             6224 => 'Chua',
373             6225 => 'Corrego Alegre',
374             6226 => 'Cote d Ivoire',
375             6227 => 'Deir ez Zor',
376             6228 => 'Douala',
377             6229 => 'Egypt 1907',
378             6230 => 'European Datum 1950',
379             6231 => 'European Datum 1987',
380             6232 => 'Fahud',
381             6233 => 'Gandajika 1970',
382             6234 => 'Garoua',
383             6235 => 'Guyane Francaise',
384             6236 => 'Hu Tzu Shan',
385             6237 => 'Hungarian Datum 1972',
386             6238 => 'Indonesian Datum 1974',
387             6239 => 'Indian 1954',
388             6240 => 'Indian 1975',
389             6241 => 'Jamaica 1875',
390             6242 => 'Jamaica 1969',
391             6243 => 'Kalianpur',
392             6244 => 'Kandawala',
393             6245 => 'Kertau',
394             6246 => 'Kuwait Oil Company',
395             6247 => 'La Canoa',
396             6248 => 'Provisional S American Datum 1956',
397             6249 => 'Lake',
398             6250 => 'Leigon',
399             6251 => 'Liberia 1964',
400             6252 => 'Lome',
401             6253 => 'Luzon 1911',
402             6254 => 'Hito XVIII 1963',
403             6255 => 'Herat North',
404             6256 => 'Mahe 1971',
405             6257 => 'Makassar',
406             6258 => 'European Reference System 1989',
407             6259 => 'Malongo 1987',
408             6260 => 'Manoca',
409             6261 => 'Merchich',
410             6262 => 'Massawa',
411             6263 => 'Minna',
412             6264 => 'Mhast',
413             6265 => 'Monte Mario',
414             6266 => 'M poraloko',
415             6267 => 'North American Datum 1927',
416             6268 => 'NAD Michigan',
417             6269 => 'North American Datum 1983',
418             6270 => 'Nahrwan 1967',
419             6271 => 'Naparima 1972',
420             6272 => 'New Zealand Geodetic Datum 1949',
421             6273 => 'NGO 1948',
422             6274 => 'Datum 73',
423             6275 => 'Nouvelle Triangulation Francaise',
424             6276 => 'NSWC 9Z 2',
425             6277 => 'OSGB 1936',
426             6278 => 'OSGB 1970 SN',
427             6279 => 'OS SN 1980',
428             6280 => 'Padang 1884',
429             6281 => 'Palestine 1923',
430             6282 => 'Pointe Noire',
431             6283 => 'Geocentric Datum of Australia 1994',
432             6284 => 'Pulkovo 1942',
433             6285 => 'Qatar',
434             6286 => 'Qatar 1948',
435             6287 => 'Qornoq',
436             6288 => 'Loma Quintana',
437             6289 => 'Amersfoort',
438             6290 => 'RT38',
439             6291 => 'South American Datum 1969',
440             6292 => 'Sapper Hill 1943',
441             6293 => 'Schwarzeck',
442             6294 => 'Segora',
443             6295 => 'Serindung',
444             6296 => 'Sudan',
445             6297 => 'Tananarive 1925',
446             6298 => 'Timbalai 1948',
447             6299 => 'TM65',
448             6300 => 'TM75',
449             6301 => 'Tokyo',
450             6302 => 'Trinidad 1903',
451             6303 => 'Trucial Coast 1948',
452             6304 => 'Voirol 1875',
453             6305 => 'Voirol Unifie 1960',
454             6306 => 'Bern 1938',
455             6307 => 'Nord Sahara 1959',
456             6308 => 'Stockholm 1938',
457             6309 => 'Yacare',
458             6310 => 'Yoff',
459             6311 => 'Zanderij',
460             6312 => 'Militar Geographische Institut',
461             6313 => 'Reseau National Belge 1972',
462             6314 => 'Deutsche Hauptdreiecksnetz',
463             6315 => 'Conakry 1905',
464             6317 => 'Dealul Piscului 1970',
465             6322 => 'WGS72',
466             6324 => 'WGS72 Transit Broadcast Ephemeris',
467             6326 => 'WGS84',
468             6901 => 'Ancienne Triangulation Francaise',
469             6902 => 'Nord de Guerre',
470             32767 => 'User Defined',
471             },
472             },
473             2051 => {
474             Name => 'GeogPrimeMeridian',
475             PrintConv => {
476             # epsg_pm
477             8901 => 'Greenwich',
478             8902 => 'Lisbon',
479             8903 => 'Paris',
480             8904 => 'Bogota',
481             8905 => 'Madrid',
482             8906 => 'Rome',
483             8907 => 'Bern',
484             8908 => 'Jakarta',
485             8909 => 'Ferro',
486             8910 => 'Brussels',
487             8911 => 'Stockholm',
488             32767 => 'User Defined',
489             },
490             },
491             2052 => {
492             Name => 'GeogLinearUnits',
493             SeparateTable => 'Units',
494             PrintConv => \%epsg_units,
495             },
496             2053 => 'GeogLinearUnitSize',
497             2054 => {
498             Name => 'GeogAngularUnits',
499             SeparateTable => 'Units',
500             PrintConv => \%epsg_units,
501             },
502             2055 => 'GeogAngularUnitSize',
503             2056 => {
504             Name => 'GeogEllipsoid',
505             PrintConv => {
506             # epsg_ellipse
507             7001 => 'Airy 1830',
508             7002 => 'Airy Modified 1849',
509             7003 => 'Australian National Spheroid',
510             7004 => 'Bessel 1841',
511             7005 => 'Bessel Modified',
512             7006 => 'Bessel Namibia',
513             7007 => 'Clarke 1858',
514             7008 => 'Clarke 1866',
515             7009 => 'Clarke 1866 Michigan',
516             7010 => 'Clarke 1880 Benoit',
517             7011 => 'Clarke 1880 IGN',
518             7012 => 'Clarke 1880 RGS',
519             7013 => 'Clarke 1880 Arc',
520             7014 => 'Clarke 1880 SGA 1922',
521             7015 => 'Everest 1830 1937 Adjustment',
522             7016 => 'Everest 1830 1967 Definition',
523             7017 => 'Everest 1830 1975 Definition',
524             7018 => 'Everest 1830 Modified',
525             7019 => 'GRS 1980',
526             7020 => 'Helmert 1906',
527             7021 => 'Indonesian National Spheroid',
528             7022 => 'International 1924',
529             7023 => 'International 1967',
530             7024 => 'Krassowsky 1940',
531             7025 => 'NWL 9D',
532             7026 => 'NWL 10D',
533             7027 => 'Plessis 1817',
534             7028 => 'Struve 1860',
535             7029 => 'War Office',
536             7030 => 'WGS 84',
537             7031 => 'GEM 10C',
538             7032 => 'OSU86F',
539             7033 => 'OSU91A',
540             7034 => 'Clarke 1880',
541             7035 => 'Sphere',
542             32767 => 'User Defined',
543             },
544             },
545             2057 => 'GeogSemiMajorAxis',
546             2058 => 'GeogSemiMinorAxis',
547             2059 => 'GeogInvFlattening',
548             2060 => {
549             Name => 'GeogAzimuthUnits',
550             SeparateTable => 'Units',
551             PrintConv => \%epsg_units,
552             },
553             2061 => 'GeogPrimeMeridianLong',
554             2062 => 'GeogToWGS84',
555             3072 => {
556             Name => 'ProjectedCSType',
557             PrintConv => {
558             # epsg_pcs
559             2100 => 'GGRS87 Greek Grid',
560             2176 => 'ETRS89 Poland CS2000 zone 5',
561             2177 => 'ETRS89 Poland CS2000 zone 6',
562             2177 => 'ETRS89 Poland CS2000 zone 7',
563             2178 => 'ETRS89 Poland CS2000 zone 8',
564             2180 => 'ETRS89 Poland CS92',
565             2204 => 'NAD27 Tennessee',
566             2205 => 'NAD83 Kentucky North',
567             2391 => 'KKJ Finland zone 1',
568             2392 => 'KKJ Finland zone 2',
569             2393 => 'KKJ Finland zone 3',
570             2394 => 'KKJ Finland zone 4',
571             2400 => 'RT90 2 5 gon W',
572             2600 => 'Lietuvos Koordinoei Sistema 1994',
573             3053 => 'Hjorsey 1955 Lambert',
574             3057 => 'ISN93 Lambert 1993',
575             3300 => 'Estonian Coordinate System of 1992',
576             3786 => 'Popular Visualisation CRS / Mercator', #PH (NC)
577             3857 => 'WGS 84 / Pseudo-Mercator', #PH (NC)
578             20137 => 'Adindan UTM zone 37N',
579             20138 => 'Adindan UTM zone 38N',
580             20248 => 'AGD66 AMG zone 48',
581             20249 => 'AGD66 AMG zone 49',
582             20250 => 'AGD66 AMG zone 50',
583             20251 => 'AGD66 AMG zone 51',
584             20252 => 'AGD66 AMG zone 52',
585             20253 => 'AGD66 AMG zone 53',
586             20254 => 'AGD66 AMG zone 54',
587             20255 => 'AGD66 AMG zone 55',
588             20256 => 'AGD66 AMG zone 56',
589             20257 => 'AGD66 AMG zone 57',
590             20258 => 'AGD66 AMG zone 58',
591             20348 => 'AGD84 AMG zone 48',
592             20349 => 'AGD84 AMG zone 49',
593             20350 => 'AGD84 AMG zone 50',
594             20351 => 'AGD84 AMG zone 51',
595             20352 => 'AGD84 AMG zone 52',
596             20353 => 'AGD84 AMG zone 53',
597             20354 => 'AGD84 AMG zone 54',
598             20355 => 'AGD84 AMG zone 55',
599             20356 => 'AGD84 AMG zone 56',
600             20357 => 'AGD84 AMG zone 57',
601             20358 => 'AGD84 AMG zone 58',
602             20437 => 'Ain el Abd UTM zone 37N',
603             20438 => 'Ain el Abd UTM zone 38N',
604             20439 => 'Ain el Abd UTM zone 39N',
605             20499 => 'Ain el Abd Bahrain Grid',
606             20538 => 'Afgooye UTM zone 38N',
607             20539 => 'Afgooye UTM zone 39N',
608             20700 => 'Lisbon Portuguese Grid',
609             20822 => 'Aratu UTM zone 22S',
610             20823 => 'Aratu UTM zone 23S',
611             20824 => 'Aratu UTM zone 24S',
612             20973 => 'Arc 1950 Lo13',
613             20975 => 'Arc 1950 Lo15',
614             20977 => 'Arc 1950 Lo17',
615             20979 => 'Arc 1950 Lo19',
616             20981 => 'Arc 1950 Lo21',
617             20983 => 'Arc 1950 Lo23',
618             20985 => 'Arc 1950 Lo25',
619             20987 => 'Arc 1950 Lo27',
620             20989 => 'Arc 1950 Lo29',
621             20991 => 'Arc 1950 Lo31',
622             20993 => 'Arc 1950 Lo33',
623             20995 => 'Arc 1950 Lo35',
624             21100 => 'Batavia NEIEZ',
625             21148 => 'Batavia UTM zone 48S',
626             21149 => 'Batavia UTM zone 49S',
627             21150 => 'Batavia UTM zone 50S',
628             21413 => 'Beijing Gauss zone 13',
629             21414 => 'Beijing Gauss zone 14',
630             21415 => 'Beijing Gauss zone 15',
631             21416 => 'Beijing Gauss zone 16',
632             21417 => 'Beijing Gauss zone 17',
633             21418 => 'Beijing Gauss zone 18',
634             21419 => 'Beijing Gauss zone 19',
635             21420 => 'Beijing Gauss zone 20',
636             21421 => 'Beijing Gauss zone 21',
637             21422 => 'Beijing Gauss zone 22',
638             21423 => 'Beijing Gauss zone 23',
639             21473 => 'Beijing Gauss 13N',
640             21474 => 'Beijing Gauss 14N',
641             21475 => 'Beijing Gauss 15N',
642             21476 => 'Beijing Gauss 16N',
643             21477 => 'Beijing Gauss 17N',
644             21478 => 'Beijing Gauss 18N',
645             21479 => 'Beijing Gauss 19N',
646             21480 => 'Beijing Gauss 20N',
647             21481 => 'Beijing Gauss 21N',
648             21482 => 'Beijing Gauss 22N',
649             21483 => 'Beijing Gauss 23N',
650             21500 => 'Belge Lambert 50',
651             21790 => 'Bern 1898 Swiss Old',
652             21817 => 'Bogota UTM zone 17N',
653             21818 => 'Bogota UTM zone 18N',
654             21891 => 'Bogota Colombia 3W',
655             21892 => 'Bogota Colombia Bogota',
656             21893 => 'Bogota Colombia 3E',
657             21894 => 'Bogota Colombia 6E',
658             22032 => 'Camacupa UTM 32S',
659             22033 => 'Camacupa UTM 33S',
660             22191 => 'C Inchauspe Argentina 1',
661             22192 => 'C Inchauspe Argentina 2',
662             22193 => 'C Inchauspe Argentina 3',
663             22194 => 'C Inchauspe Argentina 4',
664             22195 => 'C Inchauspe Argentina 5',
665             22196 => 'C Inchauspe Argentina 6',
666             22197 => 'C Inchauspe Argentina 7',
667             22332 => 'Carthage UTM zone 32N',
668             22391 => 'Carthage Nord Tunisie',
669             22392 => 'Carthage Sud Tunisie',
670             22523 => 'Corrego Alegre UTM 23S',
671             22524 => 'Corrego Alegre UTM 24S',
672             22832 => 'Douala UTM zone 32N',
673             22992 => 'Egypt 1907 Red Belt',
674             22993 => 'Egypt 1907 Purple Belt',
675             22994 => 'Egypt 1907 Ext Purple',
676             23028 => 'ED50 UTM zone 28N',
677             23029 => 'ED50 UTM zone 29N',
678             23030 => 'ED50 UTM zone 30N',
679             23031 => 'ED50 UTM zone 31N',
680             23032 => 'ED50 UTM zone 32N',
681             23033 => 'ED50 UTM zone 33N',
682             23034 => 'ED50 UTM zone 34N',
683             23035 => 'ED50 UTM zone 35N',
684             23036 => 'ED50 UTM zone 36N',
685             23037 => 'ED50 UTM zone 37N',
686             23038 => 'ED50 UTM zone 38N',
687             23239 => 'Fahud UTM zone 39N',
688             23240 => 'Fahud UTM zone 40N',
689             23433 => 'Garoua UTM zone 33N',
690             23700 => 'HD72 EOV',
691             23846 => 'ID74 UTM zone 46N',
692             23847 => 'ID74 UTM zone 47N',
693             23848 => 'ID74 UTM zone 48N',
694             23849 => 'ID74 UTM zone 49N',
695             23850 => 'ID74 UTM zone 50N',
696             23851 => 'ID74 UTM zone 51N',
697             23852 => 'ID74 UTM zone 52N',
698             23853 => 'ID74 UTM zone 53N',
699             23886 => 'ID74 UTM zone 46S',
700             23887 => 'ID74 UTM zone 47S',
701             23888 => 'ID74 UTM zone 48S',
702             23889 => 'ID74 UTM zone 49S',
703             23890 => 'ID74 UTM zone 50S',
704             23891 => 'ID74 UTM zone 51S',
705             23892 => 'ID74 UTM zone 52S',
706             23893 => 'ID74 UTM zone 53S',
707             23894 => 'ID74 UTM zone 54S',
708             23947 => 'Indian 1954 UTM 47N',
709             23948 => 'Indian 1954 UTM 48N',
710             24047 => 'Indian 1975 UTM 47N',
711             24048 => 'Indian 1975 UTM 48N',
712             24100 => 'Jamaica 1875 Old Grid',
713             24200 => 'JAD69 Jamaica Grid',
714             24370 => 'Kalianpur India 0',
715             24371 => 'Kalianpur India I',
716             24372 => 'Kalianpur India IIa',
717             24373 => 'Kalianpur India IIIa',
718             24374 => 'Kalianpur India IVa',
719             24382 => 'Kalianpur India IIb',
720             24383 => 'Kalianpur India IIIb',
721             24384 => 'Kalianpur India IVb',
722             24500 => 'Kertau Singapore Grid',
723             24547 => 'Kertau UTM zone 47N',
724             24548 => 'Kertau UTM zone 48N',
725             24720 => 'La Canoa UTM zone 20N',
726             24721 => 'La Canoa UTM zone 21N',
727             24818 => 'PSAD56 UTM zone 18N',
728             24819 => 'PSAD56 UTM zone 19N',
729             24820 => 'PSAD56 UTM zone 20N',
730             24821 => 'PSAD56 UTM zone 21N',
731             24877 => 'PSAD56 UTM zone 17S',
732             24878 => 'PSAD56 UTM zone 18S',
733             24879 => 'PSAD56 UTM zone 19S',
734             24880 => 'PSAD56 UTM zone 20S',
735             24891 => 'PSAD56 Peru west zone',
736             24892 => 'PSAD56 Peru central',
737             24893 => 'PSAD56 Peru east zone',
738             25000 => 'Leigon Ghana Grid',
739             25231 => 'Lome UTM zone 31N',
740             25391 => 'Luzon Philippines I',
741             25392 => 'Luzon Philippines II',
742             25393 => 'Luzon Philippines III',
743             25394 => 'Luzon Philippines IV',
744             25395 => 'Luzon Philippines V',
745             25700 => 'Makassar NEIEZ',
746             25932 => 'Malongo 1987 UTM 32S',
747             26191 => 'Merchich Nord Maroc',
748             26192 => 'Merchich Sud Maroc',
749             26193 => 'Merchich Sahara',
750             26237 => 'Massawa UTM zone 37N',
751             26331 => 'Minna UTM zone 31N',
752             26332 => 'Minna UTM zone 32N',
753             26391 => 'Minna Nigeria West',
754             26392 => 'Minna Nigeria Mid Belt',
755             26393 => 'Minna Nigeria East',
756             26432 => 'Mhast UTM zone 32S',
757             26591 => 'Monte Mario Italy 1',
758             26592 => 'Monte Mario Italy 2',
759             26632 => 'M poraloko UTM 32N',
760             26692 => 'M poraloko UTM 32S',
761             26703 => 'NAD27 UTM zone 3N',
762             26704 => 'NAD27 UTM zone 4N',
763             26705 => 'NAD27 UTM zone 5N',
764             26706 => 'NAD27 UTM zone 6N',
765             26707 => 'NAD27 UTM zone 7N',
766             26708 => 'NAD27 UTM zone 8N',
767             26709 => 'NAD27 UTM zone 9N',
768             26710 => 'NAD27 UTM zone 10N',
769             26711 => 'NAD27 UTM zone 11N',
770             26712 => 'NAD27 UTM zone 12N',
771             26713 => 'NAD27 UTM zone 13N',
772             26714 => 'NAD27 UTM zone 14N',
773             26715 => 'NAD27 UTM zone 15N',
774             26716 => 'NAD27 UTM zone 16N',
775             26717 => 'NAD27 UTM zone 17N',
776             26718 => 'NAD27 UTM zone 18N',
777             26719 => 'NAD27 UTM zone 19N',
778             26720 => 'NAD27 UTM zone 20N',
779             26721 => 'NAD27 UTM zone 21N',
780             26722 => 'NAD27 UTM zone 22N',
781             26729 => 'NAD27 Alabama East',
782             26730 => 'NAD27 Alabama West',
783             26731 => 'NAD27 Alaska zone 1',
784             26732 => 'NAD27 Alaska zone 2',
785             26733 => 'NAD27 Alaska zone 3',
786             26734 => 'NAD27 Alaska zone 4',
787             26735 => 'NAD27 Alaska zone 5',
788             26736 => 'NAD27 Alaska zone 6',
789             26737 => 'NAD27 Alaska zone 7',
790             26738 => 'NAD27 Alaska zone 8',
791             26739 => 'NAD27 Alaska zone 9',
792             26740 => 'NAD27 Alaska zone 10',
793             26741 => 'NAD27 California I',
794             26742 => 'NAD27 California II',
795             26743 => 'NAD27 California III',
796             26744 => 'NAD27 California IV',
797             26745 => 'NAD27 California V',
798             26746 => 'NAD27 California VI',
799             26747 => 'NAD27 California VII',
800             26748 => 'NAD27 Arizona East',
801             26749 => 'NAD27 Arizona Central',
802             26750 => 'NAD27 Arizona West',
803             26751 => 'NAD27 Arkansas North',
804             26752 => 'NAD27 Arkansas South',
805             26753 => 'NAD27 Colorado North',
806             26754 => 'NAD27 Colorado Central',
807             26755 => 'NAD27 Colorado South',
808             26756 => 'NAD27 Connecticut',
809             26757 => 'NAD27 Delaware',
810             26758 => 'NAD27 Florida East',
811             26759 => 'NAD27 Florida West',
812             26760 => 'NAD27 Florida North',
813             26761 => 'NAD27 Hawaii zone 1',
814             26762 => 'NAD27 Hawaii zone 2',
815             26763 => 'NAD27 Hawaii zone 3',
816             26764 => 'NAD27 Hawaii zone 4',
817             26765 => 'NAD27 Hawaii zone 5',
818             26766 => 'NAD27 Georgia East',
819             26767 => 'NAD27 Georgia West',
820             26768 => 'NAD27 Idaho East',
821             26769 => 'NAD27 Idaho Central',
822             26770 => 'NAD27 Idaho West',
823             26771 => 'NAD27 Illinois East',
824             26772 => 'NAD27 Illinois West',
825             26773 => 'NAD27 Indiana East',
826             26774 => 'NAD27 BLM 14N feet',
827             26774 => 'NAD27 Indiana West',
828             26775 => 'NAD27 BLM 15N feet',
829             26775 => 'NAD27 Iowa North',
830             26776 => 'NAD27 BLM 16N feet',
831             26776 => 'NAD27 Iowa South',
832             26777 => 'NAD27 BLM 17N feet',
833             26777 => 'NAD27 Kansas North',
834             26778 => 'NAD27 Kansas South',
835             26779 => 'NAD27 Kentucky North',
836             26780 => 'NAD27 Kentucky South',
837             26781 => 'NAD27 Louisiana North',
838             26782 => 'NAD27 Louisiana South',
839             26783 => 'NAD27 Maine East',
840             26784 => 'NAD27 Maine West',
841             26785 => 'NAD27 Maryland',
842             26786 => 'NAD27 Massachusetts',
843             26787 => 'NAD27 Massachusetts Is',
844             26788 => 'NAD27 Michigan North',
845             26789 => 'NAD27 Michigan Central',
846             26790 => 'NAD27 Michigan South',
847             26791 => 'NAD27 Minnesota North',
848             26792 => 'NAD27 Minnesota Cent',
849             26793 => 'NAD27 Minnesota South',
850             26794 => 'NAD27 Mississippi East',
851             26795 => 'NAD27 Mississippi West',
852             26796 => 'NAD27 Missouri East',
853             26797 => 'NAD27 Missouri Central',
854             26798 => 'NAD27 Missouri West',
855             26801 => 'NAD Michigan Michigan East',
856             26802 => 'NAD Michigan Michigan Old Central',
857             26803 => 'NAD Michigan Michigan West',
858             26903 => 'NAD83 UTM zone 3N',
859             26904 => 'NAD83 UTM zone 4N',
860             26905 => 'NAD83 UTM zone 5N',
861             26906 => 'NAD83 UTM zone 6N',
862             26907 => 'NAD83 UTM zone 7N',
863             26908 => 'NAD83 UTM zone 8N',
864             26909 => 'NAD83 UTM zone 9N',
865             26910 => 'NAD83 UTM zone 10N',
866             26911 => 'NAD83 UTM zone 11N',
867             26912 => 'NAD83 UTM zone 12N',
868             26913 => 'NAD83 UTM zone 13N',
869             26914 => 'NAD83 UTM zone 14N',
870             26915 => 'NAD83 UTM zone 15N',
871             26916 => 'NAD83 UTM zone 16N',
872             26917 => 'NAD83 UTM zone 17N',
873             26918 => 'NAD83 UTM zone 18N',
874             26919 => 'NAD83 UTM zone 19N',
875             26920 => 'NAD83 UTM zone 20N',
876             26921 => 'NAD83 UTM zone 21N',
877             26922 => 'NAD83 UTM zone 22N',
878             26923 => 'NAD83 UTM zone 23N',
879             26929 => 'NAD83 Alabama East',
880             26930 => 'NAD83 Alabama West',
881             26931 => 'NAD83 Alaska zone 1',
882             26932 => 'NAD83 Alaska zone 2',
883             26933 => 'NAD83 Alaska zone 3',
884             26934 => 'NAD83 Alaska zone 4',
885             26935 => 'NAD83 Alaska zone 5',
886             26936 => 'NAD83 Alaska zone 6',
887             26937 => 'NAD83 Alaska zone 7',
888             26938 => 'NAD83 Alaska zone 8',
889             26939 => 'NAD83 Alaska zone 9',
890             26940 => 'NAD83 Alaska zone 10',
891             26941 => 'NAD83 California 1',
892             26942 => 'NAD83 California 2',
893             26943 => 'NAD83 California 3',
894             26944 => 'NAD83 California 4',
895             26945 => 'NAD83 California 5',
896             26946 => 'NAD83 California 6',
897             26948 => 'NAD83 Arizona East',
898             26949 => 'NAD83 Arizona Central',
899             26950 => 'NAD83 Arizona West',
900             26951 => 'NAD83 Arkansas North',
901             26952 => 'NAD83 Arkansas South',
902             26953 => 'NAD83 Colorado North',
903             26954 => 'NAD83 Colorado Central',
904             26955 => 'NAD83 Colorado South',
905             26956 => 'NAD83 Connecticut',
906             26957 => 'NAD83 Delaware',
907             26958 => 'NAD83 Florida East',
908             26959 => 'NAD83 Florida West',
909             26960 => 'NAD83 Florida North',
910             26961 => 'NAD83 Hawaii zone 1',
911             26962 => 'NAD83 Hawaii zone 2',
912             26963 => 'NAD83 Hawaii zone 3',
913             26964 => 'NAD83 Hawaii zone 4',
914             26965 => 'NAD83 Hawaii zone 5',
915             26966 => 'NAD83 Georgia East',
916             26967 => 'NAD83 Georgia West',
917             26968 => 'NAD83 Idaho East',
918             26969 => 'NAD83 Idaho Central',
919             26970 => 'NAD83 Idaho West',
920             26971 => 'NAD83 Illinois East',
921             26972 => 'NAD83 Illinois West',
922             26973 => 'NAD83 Indiana East',
923             26974 => 'NAD83 Indiana West',
924             26975 => 'NAD83 Iowa North',
925             26976 => 'NAD83 Iowa South',
926             26977 => 'NAD83 Kansas North',
927             26978 => 'NAD83 Kansas South',
928             26979 => 'NAD83 Kentucky North',
929             26980 => 'NAD83 Kentucky South',
930             26981 => 'NAD83 Louisiana North',
931             26982 => 'NAD83 Louisiana South',
932             26983 => 'NAD83 Maine East',
933             26984 => 'NAD83 Maine West',
934             26985 => 'NAD83 Maryland',
935             26986 => 'NAD83 Massachusetts',
936             26987 => 'NAD83 Massachusetts Is',
937             26988 => 'NAD83 Michigan North',
938             26989 => 'NAD83 Michigan Central',
939             26990 => 'NAD83 Michigan South',
940             26991 => 'NAD83 Minnesota North',
941             26992 => 'NAD83 Minnesota Cent',
942             26993 => 'NAD83 Minnesota South',
943             26994 => 'NAD83 Mississippi East',
944             26995 => 'NAD83 Mississippi West',
945             26996 => 'NAD83 Missouri East',
946             26997 => 'NAD83 Missouri Central',
947             26998 => 'NAD83 Missouri West',
948             27038 => 'Nahrwan 1967 UTM 38N',
949             27039 => 'Nahrwan 1967 UTM 39N',
950             27040 => 'Nahrwan 1967 UTM 40N',
951             27120 => 'Naparima UTM 20N',
952             27200 => 'GD49 NZ Map Grid',
953             27291 => 'GD49 North Island Grid',
954             27292 => 'GD49 South Island Grid',
955             27429 => 'Datum 73 UTM zone 29N',
956             27500 => 'ATF Nord de Guerre',
957             27581 => 'NTF France I',
958             27582 => 'NTF France II',
959             27583 => 'NTF France III',
960             27591 => 'NTF Nord France',
961             27592 => 'NTF Centre France',
962             27593 => 'NTF Sud France',
963             27700 => 'British National Grid',
964             28232 => 'Point Noire UTM 32S',
965             28348 => 'GDA94 MGA zone 48',
966             28349 => 'GDA94 MGA zone 49',
967             28350 => 'GDA94 MGA zone 50',
968             28351 => 'GDA94 MGA zone 51',
969             28352 => 'GDA94 MGA zone 52',
970             28353 => 'GDA94 MGA zone 53',
971             28354 => 'GDA94 MGA zone 54',
972             28355 => 'GDA94 MGA zone 55',
973             28356 => 'GDA94 MGA zone 56',
974             28357 => 'GDA94 MGA zone 57',
975             28358 => 'GDA94 MGA zone 58',
976             28404 => 'Pulkovo Gauss zone 4',
977             28405 => 'Pulkovo Gauss zone 5',
978             28406 => 'Pulkovo Gauss zone 6',
979             28407 => 'Pulkovo Gauss zone 7',
980             28408 => 'Pulkovo Gauss zone 8',
981             28409 => 'Pulkovo Gauss zone 9',
982             28410 => 'Pulkovo Gauss zone 10',
983             28411 => 'Pulkovo Gauss zone 11',
984             28412 => 'Pulkovo Gauss zone 12',
985             28413 => 'Pulkovo Gauss zone 13',
986             28414 => 'Pulkovo Gauss zone 14',
987             28415 => 'Pulkovo Gauss zone 15',
988             28416 => 'Pulkovo Gauss zone 16',
989             28417 => 'Pulkovo Gauss zone 17',
990             28418 => 'Pulkovo Gauss zone 18',
991             28419 => 'Pulkovo Gauss zone 19',
992             28420 => 'Pulkovo Gauss zone 20',
993             28421 => 'Pulkovo Gauss zone 21',
994             28422 => 'Pulkovo Gauss zone 22',
995             28423 => 'Pulkovo Gauss zone 23',
996             28424 => 'Pulkovo Gauss zone 24',
997             28425 => 'Pulkovo Gauss zone 25',
998             28426 => 'Pulkovo Gauss zone 26',
999             28427 => 'Pulkovo Gauss zone 27',
1000             28428 => 'Pulkovo Gauss zone 28',
1001             28429 => 'Pulkovo Gauss zone 29',
1002             28430 => 'Pulkovo Gauss zone 30',
1003             28431 => 'Pulkovo Gauss zone 31',
1004             28432 => 'Pulkovo Gauss zone 32',
1005             28464 => 'Pulkovo Gauss 4N',
1006             28465 => 'Pulkovo Gauss 5N',
1007             28466 => 'Pulkovo Gauss 6N',
1008             28467 => 'Pulkovo Gauss 7N',
1009             28468 => 'Pulkovo Gauss 8N',
1010             28469 => 'Pulkovo Gauss 9N',
1011             28470 => 'Pulkovo Gauss 10N',
1012             28471 => 'Pulkovo Gauss 11N',
1013             28472 => 'Pulkovo Gauss 12N',
1014             28473 => 'Pulkovo Gauss 13N',
1015             28474 => 'Pulkovo Gauss 14N',
1016             28475 => 'Pulkovo Gauss 15N',
1017             28476 => 'Pulkovo Gauss 16N',
1018             28477 => 'Pulkovo Gauss 17N',
1019             28478 => 'Pulkovo Gauss 18N',
1020             28479 => 'Pulkovo Gauss 19N',
1021             28480 => 'Pulkovo Gauss 20N',
1022             28481 => 'Pulkovo Gauss 21N',
1023             28482 => 'Pulkovo Gauss 22N',
1024             28483 => 'Pulkovo Gauss 23N',
1025             28484 => 'Pulkovo Gauss 24N',
1026             28485 => 'Pulkovo Gauss 25N',
1027             28486 => 'Pulkovo Gauss 26N',
1028             28487 => 'Pulkovo Gauss 27N',
1029             28488 => 'Pulkovo Gauss 28N',
1030             28489 => 'Pulkovo Gauss 29N',
1031             28490 => 'Pulkovo Gauss 30N',
1032             28491 => 'Pulkovo Gauss 31N',
1033             28492 => 'Pulkovo Gauss 32N',
1034             28600 => 'Qatar National Grid',
1035             28991 => 'RD Netherlands Old',
1036             28992 => 'RD Netherlands New',
1037             29118 => 'SAD69 UTM zone 18N',
1038             29119 => 'SAD69 UTM zone 19N',
1039             29120 => 'SAD69 UTM zone 20N',
1040             29121 => 'SAD69 UTM zone 21N',
1041             29122 => 'SAD69 UTM zone 22N',
1042             29177 => 'SAD69 UTM zone 17S',
1043             29178 => 'SAD69 UTM zone 18S',
1044             29179 => 'SAD69 UTM zone 19S',
1045             29180 => 'SAD69 UTM zone 20S',
1046             29181 => 'SAD69 UTM zone 21S',
1047             29182 => 'SAD69 UTM zone 22S',
1048             29183 => 'SAD69 UTM zone 23S',
1049             29184 => 'SAD69 UTM zone 24S',
1050             29185 => 'SAD69 UTM zone 25S',
1051             29220 => 'Sapper Hill UTM 20S',
1052             29221 => 'Sapper Hill UTM 21S',
1053             29333 => 'Schwarzeck UTM 33S',
1054             29635 => 'Sudan UTM zone 35N',
1055             29636 => 'Sudan UTM zone 36N',
1056             29700 => 'Tananarive Laborde',
1057             29738 => 'Tananarive UTM 38S',
1058             29739 => 'Tananarive UTM 39S',
1059             29800 => 'Timbalai 1948 Borneo',
1060             29849 => 'Timbalai 1948 UTM 49N',
1061             29850 => 'Timbalai 1948 UTM 50N',
1062             29900 => 'TM65 Irish Nat Grid',
1063             30200 => 'Trinidad 1903 Trinidad',
1064             30339 => 'TC 1948 UTM zone 39N',
1065             30340 => 'TC 1948 UTM zone 40N',
1066             30491 => 'Voirol N Algerie ancien',
1067             30492 => 'Voirol S Algerie ancien',
1068             30591 => 'Voirol Unifie N Algerie',
1069             30592 => 'Voirol Unifie S Algerie',
1070             30600 => 'Bern 1938 Swiss New',
1071             30729 => 'Nord Sahara UTM 29N',
1072             30730 => 'Nord Sahara UTM 30N',
1073             30731 => 'Nord Sahara UTM 31N',
1074             30732 => 'Nord Sahara UTM 32N',
1075             31028 => 'Yoff UTM zone 28N',
1076             31121 => 'Zanderij UTM zone 21N',
1077             31291 => 'MGI Austria West',
1078             31292 => 'MGI Austria Central',
1079             31293 => 'MGI Austria East',
1080             31300 => 'Belge Lambert 72',
1081             31491 => 'DHDN Germany zone 1',
1082             31492 => 'DHDN Germany zone 2',
1083             31493 => 'DHDN Germany zone 3',
1084             31494 => 'DHDN Germany zone 4',
1085             31495 => 'DHDN Germany zone 5',
1086             31700 => 'Dealul Piscului 1970 Stereo 70',
1087             32001 => 'NAD27 Montana North',
1088             32002 => 'NAD27 Montana Central',
1089             32003 => 'NAD27 Montana South',
1090             32005 => 'NAD27 Nebraska North',
1091             32006 => 'NAD27 Nebraska South',
1092             32007 => 'NAD27 Nevada East',
1093             32008 => 'NAD27 Nevada Central',
1094             32009 => 'NAD27 Nevada West',
1095             32010 => 'NAD27 New Hampshire',
1096             32011 => 'NAD27 New Jersey',
1097             32012 => 'NAD27 New Mexico East',
1098             32013 => 'NAD27 New Mexico Cent',
1099             32014 => 'NAD27 New Mexico West',
1100             32015 => 'NAD27 New York East',
1101             32016 => 'NAD27 New York Central',
1102             32017 => 'NAD27 New York West',
1103             32018 => 'NAD27 New York Long Is',
1104             32019 => 'NAD27 North Carolina',
1105             32020 => 'NAD27 North Dakota N',
1106             32021 => 'NAD27 North Dakota S',
1107             32022 => 'NAD27 Ohio North',
1108             32023 => 'NAD27 Ohio South',
1109             32024 => 'NAD27 Oklahoma North',
1110             32025 => 'NAD27 Oklahoma South',
1111             32026 => 'NAD27 Oregon North',
1112             32027 => 'NAD27 Oregon South',
1113             32028 => 'NAD27 Pennsylvania N',
1114             32029 => 'NAD27 Pennsylvania S',
1115             32030 => 'NAD27 Rhode Island',
1116             32031 => 'NAD27 South Carolina N',
1117             32033 => 'NAD27 South Carolina S',
1118             32034 => 'NAD27 South Dakota N',
1119             32035 => 'NAD27 South Dakota S',
1120             32036 => 'NAD27 Tennessee',
1121             32037 => 'NAD27 Texas North',
1122             32038 => 'NAD27 Texas North Cen',
1123             32039 => 'NAD27 Texas Central',
1124             32040 => 'NAD27 Texas South Cen',
1125             32041 => 'NAD27 Texas South',
1126             32042 => 'NAD27 Utah North',
1127             32043 => 'NAD27 Utah Central',
1128             32044 => 'NAD27 Utah South',
1129             32045 => 'NAD27 Vermont',
1130             32046 => 'NAD27 Virginia North',
1131             32047 => 'NAD27 Virginia South',
1132             32048 => 'NAD27 Washington North',
1133             32049 => 'NAD27 Washington South',
1134             32050 => 'NAD27 West Virginia N',
1135             32051 => 'NAD27 West Virginia S',
1136             32052 => 'NAD27 Wisconsin North',
1137             32053 => 'NAD27 Wisconsin Cen',
1138             32054 => 'NAD27 Wisconsin South',
1139             32055 => 'NAD27 Wyoming East',
1140             32056 => 'NAD27 Wyoming E Cen',
1141             32057 => 'NAD27 Wyoming W Cen',
1142             32058 => 'NAD27 Wyoming West',
1143             32059 => 'NAD27 Puerto Rico',
1144             32060 => 'NAD27 St Croix',
1145             32100 => 'NAD83 Montana',
1146             32104 => 'NAD83 Nebraska',
1147             32107 => 'NAD83 Nevada East',
1148             32108 => 'NAD83 Nevada Central',
1149             32109 => 'NAD83 Nevada West',
1150             32110 => 'NAD83 New Hampshire',
1151             32111 => 'NAD83 New Jersey',
1152             32112 => 'NAD83 New Mexico East',
1153             32113 => 'NAD83 New Mexico Cent',
1154             32114 => 'NAD83 New Mexico West',
1155             32115 => 'NAD83 New York East',
1156             32116 => 'NAD83 New York Central',
1157             32117 => 'NAD83 New York West',
1158             32118 => 'NAD83 New York Long Is',
1159             32119 => 'NAD83 North Carolina',
1160             32120 => 'NAD83 North Dakota N',
1161             32121 => 'NAD83 North Dakota S',
1162             32122 => 'NAD83 Ohio North',
1163             32123 => 'NAD83 Ohio South',
1164             32124 => 'NAD83 Oklahoma North',
1165             32125 => 'NAD83 Oklahoma South',
1166             32126 => 'NAD83 Oregon North',
1167             32127 => 'NAD83 Oregon South',
1168             32128 => 'NAD83 Pennsylvania N',
1169             32129 => 'NAD83 Pennsylvania S',
1170             32130 => 'NAD83 Rhode Island',
1171             32133 => 'NAD83 South Carolina',
1172             32134 => 'NAD83 South Dakota N',
1173             32135 => 'NAD83 South Dakota S',
1174             32136 => 'NAD83 Tennessee',
1175             32137 => 'NAD83 Texas North',
1176             32138 => 'NAD83 Texas North Cen',
1177             32139 => 'NAD83 Texas Central',
1178             32140 => 'NAD83 Texas South Cen',
1179             32141 => 'NAD83 Texas South',
1180             32142 => 'NAD83 Utah North',
1181             32143 => 'NAD83 Utah Central',
1182             32144 => 'NAD83 Utah South',
1183             32145 => 'NAD83 Vermont',
1184             32146 => 'NAD83 Virginia North',
1185             32147 => 'NAD83 Virginia South',
1186             32148 => 'NAD83 Washington North',
1187             32149 => 'NAD83 Washington South',
1188             32150 => 'NAD83 West Virginia N',
1189             32151 => 'NAD83 West Virginia S',
1190             32152 => 'NAD83 Wisconsin North',
1191             32153 => 'NAD83 Wisconsin Cen',
1192             32154 => 'NAD83 Wisconsin South',
1193             32155 => 'NAD83 Wyoming East',
1194             32156 => 'NAD83 Wyoming E Cen',
1195             32157 => 'NAD83 Wyoming W Cen',
1196             32158 => 'NAD83 Wyoming West',
1197             32161 => 'NAD83 Puerto Rico Virgin Is',
1198             32201 => 'WGS72 UTM zone 1N',
1199             32202 => 'WGS72 UTM zone 2N',
1200             32203 => 'WGS72 UTM zone 3N',
1201             32204 => 'WGS72 UTM zone 4N',
1202             32205 => 'WGS72 UTM zone 5N',
1203             32206 => 'WGS72 UTM zone 6N',
1204             32207 => 'WGS72 UTM zone 7N',
1205             32208 => 'WGS72 UTM zone 8N',
1206             32209 => 'WGS72 UTM zone 9N',
1207             32210 => 'WGS72 UTM zone 10N',
1208             32211 => 'WGS72 UTM zone 11N',
1209             32212 => 'WGS72 UTM zone 12N',
1210             32213 => 'WGS72 UTM zone 13N',
1211             32214 => 'WGS72 UTM zone 14N',
1212             32215 => 'WGS72 UTM zone 15N',
1213             32216 => 'WGS72 UTM zone 16N',
1214             32217 => 'WGS72 UTM zone 17N',
1215             32218 => 'WGS72 UTM zone 18N',
1216             32219 => 'WGS72 UTM zone 19N',
1217             32220 => 'WGS72 UTM zone 20N',
1218             32221 => 'WGS72 UTM zone 21N',
1219             32222 => 'WGS72 UTM zone 22N',
1220             32223 => 'WGS72 UTM zone 23N',
1221             32224 => 'WGS72 UTM zone 24N',
1222             32225 => 'WGS72 UTM zone 25N',
1223             32226 => 'WGS72 UTM zone 26N',
1224             32227 => 'WGS72 UTM zone 27N',
1225             32228 => 'WGS72 UTM zone 28N',
1226             32229 => 'WGS72 UTM zone 29N',
1227             32230 => 'WGS72 UTM zone 30N',
1228             32231 => 'WGS72 UTM zone 31N',
1229             32232 => 'WGS72 UTM zone 32N',
1230             32233 => 'WGS72 UTM zone 33N',
1231             32234 => 'WGS72 UTM zone 34N',
1232             32235 => 'WGS72 UTM zone 35N',
1233             32236 => 'WGS72 UTM zone 36N',
1234             32237 => 'WGS72 UTM zone 37N',
1235             32238 => 'WGS72 UTM zone 38N',
1236             32239 => 'WGS72 UTM zone 39N',
1237             32240 => 'WGS72 UTM zone 40N',
1238             32241 => 'WGS72 UTM zone 41N',
1239             32242 => 'WGS72 UTM zone 42N',
1240             32243 => 'WGS72 UTM zone 43N',
1241             32244 => 'WGS72 UTM zone 44N',
1242             32245 => 'WGS72 UTM zone 45N',
1243             32246 => 'WGS72 UTM zone 46N',
1244             32247 => 'WGS72 UTM zone 47N',
1245             32248 => 'WGS72 UTM zone 48N',
1246             32249 => 'WGS72 UTM zone 49N',
1247             32250 => 'WGS72 UTM zone 50N',
1248             32251 => 'WGS72 UTM zone 51N',
1249             32252 => 'WGS72 UTM zone 52N',
1250             32253 => 'WGS72 UTM zone 53N',
1251             32254 => 'WGS72 UTM zone 54N',
1252             32255 => 'WGS72 UTM zone 55N',
1253             32256 => 'WGS72 UTM zone 56N',
1254             32257 => 'WGS72 UTM zone 57N',
1255             32258 => 'WGS72 UTM zone 58N',
1256             32259 => 'WGS72 UTM zone 59N',
1257             32260 => 'WGS72 UTM zone 60N',
1258             32301 => 'WGS72 UTM zone 1S',
1259             32302 => 'WGS72 UTM zone 2S',
1260             32303 => 'WGS72 UTM zone 3S',
1261             32304 => 'WGS72 UTM zone 4S',
1262             32305 => 'WGS72 UTM zone 5S',
1263             32306 => 'WGS72 UTM zone 6S',
1264             32307 => 'WGS72 UTM zone 7S',
1265             32308 => 'WGS72 UTM zone 8S',
1266             32309 => 'WGS72 UTM zone 9S',
1267             32310 => 'WGS72 UTM zone 10S',
1268             32311 => 'WGS72 UTM zone 11S',
1269             32312 => 'WGS72 UTM zone 12S',
1270             32313 => 'WGS72 UTM zone 13S',
1271             32314 => 'WGS72 UTM zone 14S',
1272             32315 => 'WGS72 UTM zone 15S',
1273             32316 => 'WGS72 UTM zone 16S',
1274             32317 => 'WGS72 UTM zone 17S',
1275             32318 => 'WGS72 UTM zone 18S',
1276             32319 => 'WGS72 UTM zone 19S',
1277             32320 => 'WGS72 UTM zone 20S',
1278             32321 => 'WGS72 UTM zone 21S',
1279             32322 => 'WGS72 UTM zone 22S',
1280             32323 => 'WGS72 UTM zone 23S',
1281             32324 => 'WGS72 UTM zone 24S',
1282             32325 => 'WGS72 UTM zone 25S',
1283             32326 => 'WGS72 UTM zone 26S',
1284             32327 => 'WGS72 UTM zone 27S',
1285             32328 => 'WGS72 UTM zone 28S',
1286             32329 => 'WGS72 UTM zone 29S',
1287             32330 => 'WGS72 UTM zone 30S',
1288             32331 => 'WGS72 UTM zone 31S',
1289             32332 => 'WGS72 UTM zone 32S',
1290             32333 => 'WGS72 UTM zone 33S',
1291             32334 => 'WGS72 UTM zone 34S',
1292             32335 => 'WGS72 UTM zone 35S',
1293             32336 => 'WGS72 UTM zone 36S',
1294             32337 => 'WGS72 UTM zone 37S',
1295             32338 => 'WGS72 UTM zone 38S',
1296             32339 => 'WGS72 UTM zone 39S',
1297             32340 => 'WGS72 UTM zone 40S',
1298             32341 => 'WGS72 UTM zone 41S',
1299             32342 => 'WGS72 UTM zone 42S',
1300             32343 => 'WGS72 UTM zone 43S',
1301             32344 => 'WGS72 UTM zone 44S',
1302             32345 => 'WGS72 UTM zone 45S',
1303             32346 => 'WGS72 UTM zone 46S',
1304             32347 => 'WGS72 UTM zone 47S',
1305             32348 => 'WGS72 UTM zone 48S',
1306             32349 => 'WGS72 UTM zone 49S',
1307             32350 => 'WGS72 UTM zone 50S',
1308             32351 => 'WGS72 UTM zone 51S',
1309             32352 => 'WGS72 UTM zone 52S',
1310             32353 => 'WGS72 UTM zone 53S',
1311             32354 => 'WGS72 UTM zone 54S',
1312             32355 => 'WGS72 UTM zone 55S',
1313             32356 => 'WGS72 UTM zone 56S',
1314             32357 => 'WGS72 UTM zone 57S',
1315             32358 => 'WGS72 UTM zone 58S',
1316             32359 => 'WGS72 UTM zone 59S',
1317             32360 => 'WGS72 UTM zone 60S',
1318             32401 => 'WGS72BE UTM zone 1N',
1319             32402 => 'WGS72BE UTM zone 2N',
1320             32403 => 'WGS72BE UTM zone 3N',
1321             32404 => 'WGS72BE UTM zone 4N',
1322             32405 => 'WGS72BE UTM zone 5N',
1323             32406 => 'WGS72BE UTM zone 6N',
1324             32407 => 'WGS72BE UTM zone 7N',
1325             32408 => 'WGS72BE UTM zone 8N',
1326             32409 => 'WGS72BE UTM zone 9N',
1327             32410 => 'WGS72BE UTM zone 10N',
1328             32411 => 'WGS72BE UTM zone 11N',
1329             32412 => 'WGS72BE UTM zone 12N',
1330             32413 => 'WGS72BE UTM zone 13N',
1331             32414 => 'WGS72BE UTM zone 14N',
1332             32415 => 'WGS72BE UTM zone 15N',
1333             32416 => 'WGS72BE UTM zone 16N',
1334             32417 => 'WGS72BE UTM zone 17N',
1335             32418 => 'WGS72BE UTM zone 18N',
1336             32419 => 'WGS72BE UTM zone 19N',
1337             32420 => 'WGS72BE UTM zone 20N',
1338             32421 => 'WGS72BE UTM zone 21N',
1339             32422 => 'WGS72BE UTM zone 22N',
1340             32423 => 'WGS72BE UTM zone 23N',
1341             32424 => 'WGS72BE UTM zone 24N',
1342             32425 => 'WGS72BE UTM zone 25N',
1343             32426 => 'WGS72BE UTM zone 26N',
1344             32427 => 'WGS72BE UTM zone 27N',
1345             32428 => 'WGS72BE UTM zone 28N',
1346             32429 => 'WGS72BE UTM zone 29N',
1347             32430 => 'WGS72BE UTM zone 30N',
1348             32431 => 'WGS72BE UTM zone 31N',
1349             32432 => 'WGS72BE UTM zone 32N',
1350             32433 => 'WGS72BE UTM zone 33N',
1351             32434 => 'WGS72BE UTM zone 34N',
1352             32435 => 'WGS72BE UTM zone 35N',
1353             32436 => 'WGS72BE UTM zone 36N',
1354             32437 => 'WGS72BE UTM zone 37N',
1355             32438 => 'WGS72BE UTM zone 38N',
1356             32439 => 'WGS72BE UTM zone 39N',
1357             32440 => 'WGS72BE UTM zone 40N',
1358             32441 => 'WGS72BE UTM zone 41N',
1359             32442 => 'WGS72BE UTM zone 42N',
1360             32443 => 'WGS72BE UTM zone 43N',
1361             32444 => 'WGS72BE UTM zone 44N',
1362             32445 => 'WGS72BE UTM zone 45N',
1363             32446 => 'WGS72BE UTM zone 46N',
1364             32447 => 'WGS72BE UTM zone 47N',
1365             32448 => 'WGS72BE UTM zone 48N',
1366             32449 => 'WGS72BE UTM zone 49N',
1367             32450 => 'WGS72BE UTM zone 50N',
1368             32451 => 'WGS72BE UTM zone 51N',
1369             32452 => 'WGS72BE UTM zone 52N',
1370             32453 => 'WGS72BE UTM zone 53N',
1371             32454 => 'WGS72BE UTM zone 54N',
1372             32455 => 'WGS72BE UTM zone 55N',
1373             32456 => 'WGS72BE UTM zone 56N',
1374             32457 => 'WGS72BE UTM zone 57N',
1375             32458 => 'WGS72BE UTM zone 58N',
1376             32459 => 'WGS72BE UTM zone 59N',
1377             32460 => 'WGS72BE UTM zone 60N',
1378             32501 => 'WGS72BE UTM zone 1S',
1379             32502 => 'WGS72BE UTM zone 2S',
1380             32503 => 'WGS72BE UTM zone 3S',
1381             32504 => 'WGS72BE UTM zone 4S',
1382             32505 => 'WGS72BE UTM zone 5S',
1383             32506 => 'WGS72BE UTM zone 6S',
1384             32507 => 'WGS72BE UTM zone 7S',
1385             32508 => 'WGS72BE UTM zone 8S',
1386             32509 => 'WGS72BE UTM zone 9S',
1387             32510 => 'WGS72BE UTM zone 10S',
1388             32511 => 'WGS72BE UTM zone 11S',
1389             32512 => 'WGS72BE UTM zone 12S',
1390             32513 => 'WGS72BE UTM zone 13S',
1391             32514 => 'WGS72BE UTM zone 14S',
1392             32515 => 'WGS72BE UTM zone 15S',
1393             32516 => 'WGS72BE UTM zone 16S',
1394             32517 => 'WGS72BE UTM zone 17S',
1395             32518 => 'WGS72BE UTM zone 18S',
1396             32519 => 'WGS72BE UTM zone 19S',
1397             32520 => 'WGS72BE UTM zone 20S',
1398             32521 => 'WGS72BE UTM zone 21S',
1399             32522 => 'WGS72BE UTM zone 22S',
1400             32523 => 'WGS72BE UTM zone 23S',
1401             32524 => 'WGS72BE UTM zone 24S',
1402             32525 => 'WGS72BE UTM zone 25S',
1403             32526 => 'WGS72BE UTM zone 26S',
1404             32527 => 'WGS72BE UTM zone 27S',
1405             32528 => 'WGS72BE UTM zone 28S',
1406             32529 => 'WGS72BE UTM zone 29S',
1407             32530 => 'WGS72BE UTM zone 30S',
1408             32531 => 'WGS72BE UTM zone 31S',
1409             32532 => 'WGS72BE UTM zone 32S',
1410             32533 => 'WGS72BE UTM zone 33S',
1411             32534 => 'WGS72BE UTM zone 34S',
1412             32535 => 'WGS72BE UTM zone 35S',
1413             32536 => 'WGS72BE UTM zone 36S',
1414             32537 => 'WGS72BE UTM zone 37S',
1415             32538 => 'WGS72BE UTM zone 38S',
1416             32539 => 'WGS72BE UTM zone 39S',
1417             32540 => 'WGS72BE UTM zone 40S',
1418             32541 => 'WGS72BE UTM zone 41S',
1419             32542 => 'WGS72BE UTM zone 42S',
1420             32543 => 'WGS72BE UTM zone 43S',
1421             32544 => 'WGS72BE UTM zone 44S',
1422             32545 => 'WGS72BE UTM zone 45S',
1423             32546 => 'WGS72BE UTM zone 46S',
1424             32547 => 'WGS72BE UTM zone 47S',
1425             32548 => 'WGS72BE UTM zone 48S',
1426             32549 => 'WGS72BE UTM zone 49S',
1427             32550 => 'WGS72BE UTM zone 50S',
1428             32551 => 'WGS72BE UTM zone 51S',
1429             32552 => 'WGS72BE UTM zone 52S',
1430             32553 => 'WGS72BE UTM zone 53S',
1431             32554 => 'WGS72BE UTM zone 54S',
1432             32555 => 'WGS72BE UTM zone 55S',
1433             32556 => 'WGS72BE UTM zone 56S',
1434             32557 => 'WGS72BE UTM zone 57S',
1435             32558 => 'WGS72BE UTM zone 58S',
1436             32559 => 'WGS72BE UTM zone 59S',
1437             32560 => 'WGS72BE UTM zone 60S',
1438             32601 => 'WGS84 UTM zone 1N',
1439             32602 => 'WGS84 UTM zone 2N',
1440             32603 => 'WGS84 UTM zone 3N',
1441             32604 => 'WGS84 UTM zone 4N',
1442             32605 => 'WGS84 UTM zone 5N',
1443             32606 => 'WGS84 UTM zone 6N',
1444             32607 => 'WGS84 UTM zone 7N',
1445             32608 => 'WGS84 UTM zone 8N',
1446             32609 => 'WGS84 UTM zone 9N',
1447             32610 => 'WGS84 UTM zone 10N',
1448             32611 => 'WGS84 UTM zone 11N',
1449             32612 => 'WGS84 UTM zone 12N',
1450             32613 => 'WGS84 UTM zone 13N',
1451             32614 => 'WGS84 UTM zone 14N',
1452             32615 => 'WGS84 UTM zone 15N',
1453             32616 => 'WGS84 UTM zone 16N',
1454             32617 => 'WGS84 UTM zone 17N',
1455             32618 => 'WGS84 UTM zone 18N',
1456             32619 => 'WGS84 UTM zone 19N',
1457             32620 => 'WGS84 UTM zone 20N',
1458             32621 => 'WGS84 UTM zone 21N',
1459             32622 => 'WGS84 UTM zone 22N',
1460             32623 => 'WGS84 UTM zone 23N',
1461             32624 => 'WGS84 UTM zone 24N',
1462             32625 => 'WGS84 UTM zone 25N',
1463             32626 => 'WGS84 UTM zone 26N',
1464             32627 => 'WGS84 UTM zone 27N',
1465             32628 => 'WGS84 UTM zone 28N',
1466             32629 => 'WGS84 UTM zone 29N',
1467             32630 => 'WGS84 UTM zone 30N',
1468             32631 => 'WGS84 UTM zone 31N',
1469             32632 => 'WGS84 UTM zone 32N',
1470             32633 => 'WGS84 UTM zone 33N',
1471             32634 => 'WGS84 UTM zone 34N',
1472             32635 => 'WGS84 UTM zone 35N',
1473             32636 => 'WGS84 UTM zone 36N',
1474             32637 => 'WGS84 UTM zone 37N',
1475             32638 => 'WGS84 UTM zone 38N',
1476             32639 => 'WGS84 UTM zone 39N',
1477             32640 => 'WGS84 UTM zone 40N',
1478             32641 => 'WGS84 UTM zone 41N',
1479             32642 => 'WGS84 UTM zone 42N',
1480             32643 => 'WGS84 UTM zone 43N',
1481             32644 => 'WGS84 UTM zone 44N',
1482             32645 => 'WGS84 UTM zone 45N',
1483             32646 => 'WGS84 UTM zone 46N',
1484             32647 => 'WGS84 UTM zone 47N',
1485             32648 => 'WGS84 UTM zone 48N',
1486             32649 => 'WGS84 UTM zone 49N',
1487             32650 => 'WGS84 UTM zone 50N',
1488             32651 => 'WGS84 UTM zone 51N',
1489             32652 => 'WGS84 UTM zone 52N',
1490             32653 => 'WGS84 UTM zone 53N',
1491             32654 => 'WGS84 UTM zone 54N',
1492             32655 => 'WGS84 UTM zone 55N',
1493             32656 => 'WGS84 UTM zone 56N',
1494             32657 => 'WGS84 UTM zone 57N',
1495             32658 => 'WGS84 UTM zone 58N',
1496             32659 => 'WGS84 UTM zone 59N',
1497             32660 => 'WGS84 UTM zone 60N',
1498             32701 => 'WGS84 UTM zone 1S',
1499             32702 => 'WGS84 UTM zone 2S',
1500             32703 => 'WGS84 UTM zone 3S',
1501             32704 => 'WGS84 UTM zone 4S',
1502             32705 => 'WGS84 UTM zone 5S',
1503             32706 => 'WGS84 UTM zone 6S',
1504             32707 => 'WGS84 UTM zone 7S',
1505             32708 => 'WGS84 UTM zone 8S',
1506             32709 => 'WGS84 UTM zone 9S',
1507             32710 => 'WGS84 UTM zone 10S',
1508             32711 => 'WGS84 UTM zone 11S',
1509             32712 => 'WGS84 UTM zone 12S',
1510             32713 => 'WGS84 UTM zone 13S',
1511             32714 => 'WGS84 UTM zone 14S',
1512             32715 => 'WGS84 UTM zone 15S',
1513             32716 => 'WGS84 UTM zone 16S',
1514             32717 => 'WGS84 UTM zone 17S',
1515             32718 => 'WGS84 UTM zone 18S',
1516             32719 => 'WGS84 UTM zone 19S',
1517             32720 => 'WGS84 UTM zone 20S',
1518             32721 => 'WGS84 UTM zone 21S',
1519             32722 => 'WGS84 UTM zone 22S',
1520             32723 => 'WGS84 UTM zone 23S',
1521             32724 => 'WGS84 UTM zone 24S',
1522             32725 => 'WGS84 UTM zone 25S',
1523             32726 => 'WGS84 UTM zone 26S',
1524             32727 => 'WGS84 UTM zone 27S',
1525             32728 => 'WGS84 UTM zone 28S',
1526             32729 => 'WGS84 UTM zone 29S',
1527             32730 => 'WGS84 UTM zone 30S',
1528             32731 => 'WGS84 UTM zone 31S',
1529             32732 => 'WGS84 UTM zone 32S',
1530             32733 => 'WGS84 UTM zone 33S',
1531             32734 => 'WGS84 UTM zone 34S',
1532             32735 => 'WGS84 UTM zone 35S',
1533             32736 => 'WGS84 UTM zone 36S',
1534             32737 => 'WGS84 UTM zone 37S',
1535             32738 => 'WGS84 UTM zone 38S',
1536             32739 => 'WGS84 UTM zone 39S',
1537             32740 => 'WGS84 UTM zone 40S',
1538             32741 => 'WGS84 UTM zone 41S',
1539             32742 => 'WGS84 UTM zone 42S',
1540             32743 => 'WGS84 UTM zone 43S',
1541             32744 => 'WGS84 UTM zone 44S',
1542             32745 => 'WGS84 UTM zone 45S',
1543             32746 => 'WGS84 UTM zone 46S',
1544             32747 => 'WGS84 UTM zone 47S',
1545             32748 => 'WGS84 UTM zone 48S',
1546             32749 => 'WGS84 UTM zone 49S',
1547             32750 => 'WGS84 UTM zone 50S',
1548             32751 => 'WGS84 UTM zone 51S',
1549             32752 => 'WGS84 UTM zone 52S',
1550             32753 => 'WGS84 UTM zone 53S',
1551             32754 => 'WGS84 UTM zone 54S',
1552             32755 => 'WGS84 UTM zone 55S',
1553             32756 => 'WGS84 UTM zone 56S',
1554             32757 => 'WGS84 UTM zone 57S',
1555             32758 => 'WGS84 UTM zone 58S',
1556             32759 => 'WGS84 UTM zone 59S',
1557             32760 => 'WGS84 UTM zone 60S',
1558             32767 => 'User Defined',
1559             },
1560             },
1561             3073 => 'PCSCitation',
1562             3074 => {
1563             Name => 'Projection',
1564             PrintConv => {
1565             # epsg_proj
1566             10101 => 'Alabama CS27 East',
1567             10102 => 'Alabama CS27 West',
1568             10131 => 'Alabama CS83 East',
1569             10132 => 'Alabama CS83 West',
1570             10201 => 'Arizona Coordinate System east',
1571             10202 => 'Arizona Coordinate System Central',
1572             10203 => 'Arizona Coordinate System west',
1573             10231 => 'Arizona CS83 east',
1574             10232 => 'Arizona CS83 Central',
1575             10233 => 'Arizona CS83 west',
1576             10301 => 'Arkansas CS27 North',
1577             10302 => 'Arkansas CS27 South',
1578             10331 => 'Arkansas CS83 North',
1579             10332 => 'Arkansas CS83 South',
1580             10401 => 'California CS27 I',
1581             10402 => 'California CS27 II',
1582             10403 => 'California CS27 III',
1583             10404 => 'California CS27 IV',
1584             10405 => 'California CS27 V',
1585             10406 => 'California CS27 VI',
1586             10407 => 'California CS27 VII',
1587             10431 => 'California CS83 1',
1588             10432 => 'California CS83 2',
1589             10433 => 'California CS83 3',
1590             10434 => 'California CS83 4',
1591             10435 => 'California CS83 5',
1592             10436 => 'California CS83 6',
1593             10501 => 'Colorado CS27 North',
1594             10502 => 'Colorado CS27 Central',
1595             10503 => 'Colorado CS27 South',
1596             10531 => 'Colorado CS83 North',
1597             10532 => 'Colorado CS83 Central',
1598             10533 => 'Colorado CS83 South',
1599             10600 => 'Connecticut CS27',
1600             10630 => 'Connecticut CS83',
1601             10700 => 'Delaware CS27',
1602             10730 => 'Delaware CS83',
1603             10901 => 'Florida CS27 East',
1604             10902 => 'Florida CS27 West',
1605             10903 => 'Florida CS27 North',
1606             10931 => 'Florida CS83 East',
1607             10932 => 'Florida CS83 West',
1608             10933 => 'Florida CS83 North',
1609             11001 => 'Georgia CS27 East',
1610             11002 => 'Georgia CS27 West',
1611             11031 => 'Georgia CS83 East',
1612             11032 => 'Georgia CS83 West',
1613             11101 => 'Idaho CS27 East',
1614             11102 => 'Idaho CS27 Central',
1615             11103 => 'Idaho CS27 West',
1616             11131 => 'Idaho CS83 East',
1617             11132 => 'Idaho CS83 Central',
1618             11133 => 'Idaho CS83 West',
1619             11201 => 'Illinois CS27 East',
1620             11202 => 'Illinois CS27 West',
1621             11231 => 'Illinois CS83 East',
1622             11232 => 'Illinois CS83 West',
1623             11301 => 'Indiana CS27 East',
1624             11302 => 'Indiana CS27 West',
1625             11331 => 'Indiana CS83 East',
1626             11332 => 'Indiana CS83 West',
1627             11401 => 'Iowa CS27 North',
1628             11402 => 'Iowa CS27 South',
1629             11431 => 'Iowa CS83 North',
1630             11432 => 'Iowa CS83 South',
1631             11501 => 'Kansas CS27 North',
1632             11502 => 'Kansas CS27 South',
1633             11531 => 'Kansas CS83 North',
1634             11532 => 'Kansas CS83 South',
1635             11601 => 'Kentucky CS27 North',
1636             11602 => 'Kentucky CS27 South',
1637             11631 => 'Kentucky CS83 North',
1638             11632 => 'Kentucky CS83 South',
1639             11701 => 'Louisiana CS27 North',
1640             11702 => 'Louisiana CS27 South',
1641             11731 => 'Louisiana CS83 North',
1642             11732 => 'Louisiana CS83 South',
1643             11801 => 'Maine CS27 East',
1644             11802 => 'Maine CS27 West',
1645             11831 => 'Maine CS83 East',
1646             11832 => 'Maine CS83 West',
1647             11900 => 'Maryland CS27',
1648             11930 => 'Maryland CS83',
1649             12001 => 'Massachusetts CS27 Mainland',
1650             12002 => 'Massachusetts CS27 Island',
1651             12031 => 'Massachusetts CS83 Mainland',
1652             12032 => 'Massachusetts CS83 Island',
1653             12101 => 'Michigan State Plane East',
1654             12102 => 'Michigan State Plane Old Central',
1655             12103 => 'Michigan State Plane West',
1656             12111 => 'Michigan CS27 North',
1657             12112 => 'Michigan CS27 Central',
1658             12113 => 'Michigan CS27 South',
1659             12141 => 'Michigan CS83 North',
1660             12142 => 'Michigan CS83 Central',
1661             12143 => 'Michigan CS83 South',
1662             12201 => 'Minnesota CS27 North',
1663             12202 => 'Minnesota CS27 Central',
1664             12203 => 'Minnesota CS27 South',
1665             12231 => 'Minnesota CS83 North',
1666             12232 => 'Minnesota CS83 Central',
1667             12233 => 'Minnesota CS83 South',
1668             12301 => 'Mississippi CS27 East',
1669             12302 => 'Mississippi CS27 West',
1670             12331 => 'Mississippi CS83 East',
1671             12332 => 'Mississippi CS83 West',
1672             12401 => 'Missouri CS27 East',
1673             12402 => 'Missouri CS27 Central',
1674             12403 => 'Missouri CS27 West',
1675             12431 => 'Missouri CS83 East',
1676             12432 => 'Missouri CS83 Central',
1677             12433 => 'Missouri CS83 West',
1678             12501 => 'Montana CS27 North',
1679             12502 => 'Montana CS27 Central',
1680             12503 => 'Montana CS27 South',
1681             12530 => 'Montana CS83',
1682             12601 => 'Nebraska CS27 North',
1683             12602 => 'Nebraska CS27 South',
1684             12630 => 'Nebraska CS83',
1685             12701 => 'Nevada CS27 East',
1686             12702 => 'Nevada CS27 Central',
1687             12703 => 'Nevada CS27 West',
1688             12731 => 'Nevada CS83 East',
1689             12732 => 'Nevada CS83 Central',
1690             12733 => 'Nevada CS83 West',
1691             12800 => 'New Hampshire CS27',
1692             12830 => 'New Hampshire CS83',
1693             12900 => 'New Jersey CS27',
1694             12930 => 'New Jersey CS83',
1695             13001 => 'New Mexico CS27 East',
1696             13002 => 'New Mexico CS27 Central',
1697             13003 => 'New Mexico CS27 West',
1698             13031 => 'New Mexico CS83 East',
1699             13032 => 'New Mexico CS83 Central',
1700             13033 => 'New Mexico CS83 West',
1701             13101 => 'New York CS27 East',
1702             13102 => 'New York CS27 Central',
1703             13103 => 'New York CS27 West',
1704             13104 => 'New York CS27 Long Island',
1705             13131 => 'New York CS83 East',
1706             13132 => 'New York CS83 Central',
1707             13133 => 'New York CS83 West',
1708             13134 => 'New York CS83 Long Island',
1709             13200 => 'North Carolina CS27',
1710             13230 => 'North Carolina CS83',
1711             13301 => 'North Dakota CS27 North',
1712             13302 => 'North Dakota CS27 South',
1713             13331 => 'North Dakota CS83 North',
1714             13332 => 'North Dakota CS83 South',
1715             13401 => 'Ohio CS27 North',
1716             13402 => 'Ohio CS27 South',
1717             13431 => 'Ohio CS83 North',
1718             13432 => 'Ohio CS83 South',
1719             13501 => 'Oklahoma CS27 North',
1720             13502 => 'Oklahoma CS27 South',
1721             13531 => 'Oklahoma CS83 North',
1722             13532 => 'Oklahoma CS83 South',
1723             13601 => 'Oregon CS27 North',
1724             13602 => 'Oregon CS27 South',
1725             13631 => 'Oregon CS83 North',
1726             13632 => 'Oregon CS83 South',
1727             13701 => 'Pennsylvania CS27 North',
1728             13702 => 'Pennsylvania CS27 South',
1729             13731 => 'Pennsylvania CS83 North',
1730             13732 => 'Pennsylvania CS83 South',
1731             13800 => 'Rhode Island CS27',
1732             13830 => 'Rhode Island CS83',
1733             13901 => 'South Carolina CS27 North',
1734             13902 => 'South Carolina CS27 South',
1735             13930 => 'South Carolina CS83',
1736             14001 => 'South Dakota CS27 North',
1737             14002 => 'South Dakota CS27 South',
1738             14031 => 'South Dakota CS83 North',
1739             14032 => 'South Dakota CS83 South',
1740             14100 => 'Tennessee CS27',
1741             14130 => 'Tennessee CS83',
1742             14201 => 'Texas CS27 North',
1743             14202 => 'Texas CS27 North Central',
1744             14203 => 'Texas CS27 Central',
1745             14204 => 'Texas CS27 South Central',
1746             14205 => 'Texas CS27 South',
1747             14231 => 'Texas CS83 North',
1748             14232 => 'Texas CS83 North Central',
1749             14233 => 'Texas CS83 Central',
1750             14234 => 'Texas CS83 South Central',
1751             14235 => 'Texas CS83 South',
1752             14301 => 'Utah CS27 North',
1753             14302 => 'Utah CS27 Central',
1754             14303 => 'Utah CS27 South',
1755             14331 => 'Utah CS83 North',
1756             14332 => 'Utah CS83 Central',
1757             14333 => 'Utah CS83 South',
1758             14400 => 'Vermont CS27',
1759             14430 => 'Vermont CS83',
1760             14501 => 'Virginia CS27 North',
1761             14502 => 'Virginia CS27 South',
1762             14531 => 'Virginia CS83 North',
1763             14532 => 'Virginia CS83 South',
1764             14601 => 'Washington CS27 North',
1765             14602 => 'Washington CS27 South',
1766             14631 => 'Washington CS83 North',
1767             14632 => 'Washington CS83 South',
1768             14701 => 'West Virginia CS27 North',
1769             14702 => 'West Virginia CS27 South',
1770             14731 => 'West Virginia CS83 North',
1771             14732 => 'West Virginia CS83 South',
1772             14801 => 'Wisconsin CS27 North',
1773             14802 => 'Wisconsin CS27 Central',
1774             14803 => 'Wisconsin CS27 South',
1775             14831 => 'Wisconsin CS83 North',
1776             14832 => 'Wisconsin CS83 Central',
1777             14833 => 'Wisconsin CS83 South',
1778             14901 => 'Wyoming CS27 East',
1779             14902 => 'Wyoming CS27 East Central',
1780             14903 => 'Wyoming CS27 West Central',
1781             14904 => 'Wyoming CS27 West',
1782             14931 => 'Wyoming CS83 East',
1783             14932 => 'Wyoming CS83 East Central',
1784             14933 => 'Wyoming CS83 West Central',
1785             14934 => 'Wyoming CS83 West',
1786             15001 => 'Alaska CS27 1',
1787             15002 => 'Alaska CS27 2',
1788             15003 => 'Alaska CS27 3',
1789             15004 => 'Alaska CS27 4',
1790             15005 => 'Alaska CS27 5',
1791             15006 => 'Alaska CS27 6',
1792             15007 => 'Alaska CS27 7',
1793             15008 => 'Alaska CS27 8',
1794             15009 => 'Alaska CS27 9',
1795             15010 => 'Alaska CS27 10',
1796             15031 => 'Alaska CS83 1',
1797             15032 => 'Alaska CS83 2',
1798             15033 => 'Alaska CS83 3',
1799             15034 => 'Alaska CS83 4',
1800             15035 => 'Alaska CS83 5',
1801             15036 => 'Alaska CS83 6',
1802             15037 => 'Alaska CS83 7',
1803             15038 => 'Alaska CS83 8',
1804             15039 => 'Alaska CS83 9',
1805             15040 => 'Alaska CS83 10',
1806             15101 => 'Hawaii CS27 1',
1807             15102 => 'Hawaii CS27 2',
1808             15103 => 'Hawaii CS27 3',
1809             15104 => 'Hawaii CS27 4',
1810             15105 => 'Hawaii CS27 5',
1811             15131 => 'Hawaii CS83 1',
1812             15132 => 'Hawaii CS83 2',
1813             15133 => 'Hawaii CS83 3',
1814             15134 => 'Hawaii CS83 4',
1815             15135 => 'Hawaii CS83 5',
1816             15201 => 'Puerto Rico CS27',
1817             15202 => 'St Croix',
1818             15230 => 'Puerto Rico Virgin Is',
1819             15302 => 'Kentucky CS27',
1820             15303 => 'Kentucky CS83 North',
1821             15914 => 'BLM 14N feet',
1822             15915 => 'BLM 15N feet',
1823             15916 => 'BLM 16N feet',
1824             15917 => 'BLM 17N feet',
1825             16001 => 'UTM zone 1N',
1826             16002 => 'UTM zone 2N',
1827             16003 => 'UTM zone 3N',
1828             16004 => 'UTM zone 4N',
1829             16005 => 'UTM zone 5N',
1830             16006 => 'UTM zone 6N',
1831             16007 => 'UTM zone 7N',
1832             16008 => 'UTM zone 8N',
1833             16009 => 'UTM zone 9N',
1834             16010 => 'UTM zone 10N',
1835             16011 => 'UTM zone 11N',
1836             16012 => 'UTM zone 12N',
1837             16013 => 'UTM zone 13N',
1838             16014 => 'UTM zone 14N',
1839             16015 => 'UTM zone 15N',
1840             16016 => 'UTM zone 16N',
1841             16017 => 'UTM zone 17N',
1842             16018 => 'UTM zone 18N',
1843             16019 => 'UTM zone 19N',
1844             16020 => 'UTM zone 20N',
1845             16021 => 'UTM zone 21N',
1846             16022 => 'UTM zone 22N',
1847             16023 => 'UTM zone 23N',
1848             16024 => 'UTM zone 24N',
1849             16025 => 'UTM zone 25N',
1850             16026 => 'UTM zone 26N',
1851             16027 => 'UTM zone 27N',
1852             16028 => 'UTM zone 28N',
1853             16029 => 'UTM zone 29N',
1854             16030 => 'UTM zone 30N',
1855             16031 => 'UTM zone 31N',
1856             16032 => 'UTM zone 32N',
1857             16033 => 'UTM zone 33N',
1858             16034 => 'UTM zone 34N',
1859             16035 => 'UTM zone 35N',
1860             16036 => 'UTM zone 36N',
1861             16037 => 'UTM zone 37N',
1862             16038 => 'UTM zone 38N',
1863             16039 => 'UTM zone 39N',
1864             16040 => 'UTM zone 40N',
1865             16041 => 'UTM zone 41N',
1866             16042 => 'UTM zone 42N',
1867             16043 => 'UTM zone 43N',
1868             16044 => 'UTM zone 44N',
1869             16045 => 'UTM zone 45N',
1870             16046 => 'UTM zone 46N',
1871             16047 => 'UTM zone 47N',
1872             16048 => 'UTM zone 48N',
1873             16049 => 'UTM zone 49N',
1874             16050 => 'UTM zone 50N',
1875             16051 => 'UTM zone 51N',
1876             16052 => 'UTM zone 52N',
1877             16053 => 'UTM zone 53N',
1878             16054 => 'UTM zone 54N',
1879             16055 => 'UTM zone 55N',
1880             16056 => 'UTM zone 56N',
1881             16057 => 'UTM zone 57N',
1882             16058 => 'UTM zone 58N',
1883             16059 => 'UTM zone 59N',
1884             16060 => 'UTM zone 60N',
1885             16101 => 'UTM zone 1S',
1886             16102 => 'UTM zone 2S',
1887             16103 => 'UTM zone 3S',
1888             16104 => 'UTM zone 4S',
1889             16105 => 'UTM zone 5S',
1890             16106 => 'UTM zone 6S',
1891             16107 => 'UTM zone 7S',
1892             16108 => 'UTM zone 8S',
1893             16109 => 'UTM zone 9S',
1894             16110 => 'UTM zone 10S',
1895             16111 => 'UTM zone 11S',
1896             16112 => 'UTM zone 12S',
1897             16113 => 'UTM zone 13S',
1898             16114 => 'UTM zone 14S',
1899             16115 => 'UTM zone 15S',
1900             16116 => 'UTM zone 16S',
1901             16117 => 'UTM zone 17S',
1902             16118 => 'UTM zone 18S',
1903             16119 => 'UTM zone 19S',
1904             16120 => 'UTM zone 20S',
1905             16121 => 'UTM zone 21S',
1906             16122 => 'UTM zone 22S',
1907             16123 => 'UTM zone 23S',
1908             16124 => 'UTM zone 24S',
1909             16125 => 'UTM zone 25S',
1910             16126 => 'UTM zone 26S',
1911             16127 => 'UTM zone 27S',
1912             16128 => 'UTM zone 28S',
1913             16129 => 'UTM zone 29S',
1914             16130 => 'UTM zone 30S',
1915             16131 => 'UTM zone 31S',
1916             16132 => 'UTM zone 32S',
1917             16133 => 'UTM zone 33S',
1918             16134 => 'UTM zone 34S',
1919             16135 => 'UTM zone 35S',
1920             16136 => 'UTM zone 36S',
1921             16137 => 'UTM zone 37S',
1922             16138 => 'UTM zone 38S',
1923             16139 => 'UTM zone 39S',
1924             16140 => 'UTM zone 40S',
1925             16141 => 'UTM zone 41S',
1926             16142 => 'UTM zone 42S',
1927             16143 => 'UTM zone 43S',
1928             16144 => 'UTM zone 44S',
1929             16145 => 'UTM zone 45S',
1930             16146 => 'UTM zone 46S',
1931             16147 => 'UTM zone 47S',
1932             16148 => 'UTM zone 48S',
1933             16149 => 'UTM zone 49S',
1934             16150 => 'UTM zone 50S',
1935             16151 => 'UTM zone 51S',
1936             16152 => 'UTM zone 52S',
1937             16153 => 'UTM zone 53S',
1938             16154 => 'UTM zone 54S',
1939             16155 => 'UTM zone 55S',
1940             16156 => 'UTM zone 56S',
1941             16157 => 'UTM zone 57S',
1942             16158 => 'UTM zone 58S',
1943             16159 => 'UTM zone 59S',
1944             16160 => 'UTM zone 60S',
1945             16200 => 'Gauss Kruger zone 0',
1946             16201 => 'Gauss Kruger zone 1',
1947             16202 => 'Gauss Kruger zone 2',
1948             16203 => 'Gauss Kruger zone 3',
1949             16204 => 'Gauss Kruger zone 4',
1950             16205 => 'Gauss Kruger zone 5',
1951             17348 => 'Map Grid of Australia 48',
1952             17349 => 'Map Grid of Australia 49',
1953             17350 => 'Map Grid of Australia 50',
1954             17351 => 'Map Grid of Australia 51',
1955             17352 => 'Map Grid of Australia 52',
1956             17353 => 'Map Grid of Australia 53',
1957             17354 => 'Map Grid of Australia 54',
1958             17355 => 'Map Grid of Australia 55',
1959             17356 => 'Map Grid of Australia 56',
1960             17357 => 'Map Grid of Australia 57',
1961             17358 => 'Map Grid of Australia 58',
1962             17448 => 'Australian Map Grid 48',
1963             17449 => 'Australian Map Grid 49',
1964             17450 => 'Australian Map Grid 50',
1965             17451 => 'Australian Map Grid 51',
1966             17452 => 'Australian Map Grid 52',
1967             17453 => 'Australian Map Grid 53',
1968             17454 => 'Australian Map Grid 54',
1969             17455 => 'Australian Map Grid 55',
1970             17456 => 'Australian Map Grid 56',
1971             17457 => 'Australian Map Grid 57',
1972             17458 => 'Australian Map Grid 58',
1973             18031 => 'Argentina 1',
1974             18032 => 'Argentina 2',
1975             18033 => 'Argentina 3',
1976             18034 => 'Argentina 4',
1977             18035 => 'Argentina 5',
1978             18036 => 'Argentina 6',
1979             18037 => 'Argentina 7',
1980             18051 => 'Colombia 3W',
1981             18052 => 'Colombia Bogota',
1982             18053 => 'Colombia 3E',
1983             18054 => 'Colombia 6E',
1984             18072 => 'Egypt Red Belt',
1985             18073 => 'Egypt Purple Belt',
1986             18074 => 'Extended Purple Belt',
1987             18141 => 'New Zealand North Island Nat Grid',
1988             18142 => 'New Zealand South Island Nat Grid',
1989             19900 => 'Bahrain Grid',
1990             19905 => 'Netherlands E Indies Equatorial',
1991             19912 => 'RSO Borneo',
1992             19926 => 'Stereo 70',
1993             32767 => 'User Defined',
1994             },
1995             },
1996             3075 => {
1997             Name => 'ProjCoordTrans',
1998             PrintConv => {
1999             # geo_ctrans
2000             1 => 'Transverse Mercator',
2001             2 => 'Transverse Mercator Modified Alaska',
2002             3 => 'Oblique Mercator',
2003             4 => 'Oblique Mercator Laborde',
2004             5 => 'Oblique Mercator Rosenmund',
2005             6 => 'Oblique Mercator Spherical', # not advisable
2006             7 => 'Mercator',
2007             8 => 'Lambert Conf Conic 2SP',
2008             9 => 'Lambert Conf Conic 1SP',
2009             10 => 'Lambert Azim Equal Area',
2010             11 => 'Albers Equal Area',
2011             12 => 'Azimuthal Equidistant',
2012             13 => 'Equidistant Conic',
2013             14 => 'Stereographic',
2014             15 => 'Polar Stereographic',
2015             16 => 'Oblique Stereographic', # not advisable
2016             17 => 'Equirectangular',
2017             18 => 'Cassini Soldner',
2018             19 => 'Gnomonic',
2019             20 => 'Miller Cylindrical',
2020             21 => 'Orthographic',
2021             22 => 'Polyconic',
2022             23 => 'Robinson',
2023             24 => 'Sinusoidal',
2024             25 => 'VanDerGrinten',
2025             26 => 'New Zealand Map Grid',
2026             27 => 'Transverse Mercator South Orientated',
2027             28 => 'Cylindrical Equal Area',
2028             32767 => 'User Defined',
2029             },
2030             },
2031             3076 => {
2032             Name => 'ProjLinearUnits',
2033             SeparateTable => 'Units',
2034             PrintConv => \%epsg_units,
2035             },
2036             3077 => 'ProjLinearUnitSize',
2037             3078 => 'ProjStdParallel1',
2038             3079 => 'ProjStdParallel2',
2039             3080 => 'ProjNatOriginLong',
2040             3081 => 'ProjNatOriginLat',
2041             3082 => 'ProjFalseEasting',
2042             3083 => 'ProjFalseNorthing',
2043             3084 => 'ProjFalseOriginLong',
2044             3085 => 'ProjFalseOriginLat',
2045             3086 => 'ProjFalseOriginEasting',
2046             3087 => 'ProjFalseOriginNorthing',
2047             3088 => 'ProjCenterLong',
2048             3089 => 'ProjCenterLat',
2049             3090 => 'ProjCenterEasting',
2050             3091 => 'ProjCenterNorthing',
2051             3092 => 'ProjScaleAtNatOrigin',
2052             3093 => 'ProjScaleAtCenter',
2053             3094 => 'ProjAzimuthAngle',
2054             3095 => 'ProjStraightVertPoleLong',
2055             3096 => 'ProjRectifiedGridAngle',
2056             4096 => {
2057             Name => 'VerticalCSType',
2058             SeparateTable => 'VerticalCS',
2059             PrintConv => \%epsg_vertcs,
2060             },
2061             4097 => 'VerticalCitation',
2062             4098 => {
2063             Name => 'VerticalDatum',
2064             SeparateTable => 'VerticalCS',
2065             PrintConv => \%epsg_vertcs,
2066             },
2067             4099 => {
2068             Name => 'VerticalUnits',
2069             SeparateTable => 'Units',
2070             PrintConv => \%epsg_units,
2071             },
2072             #
2073             # ChartTiff extensions (ref 2)
2074             #
2075             47001 => {
2076             Name => 'ChartFormat',
2077             PrintConv => {
2078             47500 => 'General',
2079             47501 => 'Coastal',
2080             47502 => 'Harbor',
2081             47503 => 'SailingInternational',
2082             47504 => 'SmallCraft Route',
2083             47505 => 'SmallCraftArea',
2084             47506 => 'SmallCraftFolio',
2085             47507 => 'Topographic',
2086             47508 => 'Recreation',
2087             47509 => 'Index',
2088             47510 => 'Inset',
2089             },
2090             },
2091             47002 => 'ChartSource',
2092             47003 => 'ChartSourceEdition',
2093             47004 => 'ChartSourceDate',
2094             47005 => 'ChartCorrDate',
2095             47006 => 'ChartCountryOrigin',
2096             47007 => 'ChartRasterEdition',
2097             47008 => {
2098             Name => 'ChartSoundingDatum',
2099             PrintConv => {
2100             47600 => 'Equatorial Spring Low Water',
2101             47601 => 'Indian Spring Low Water',
2102             47602 => 'Lowest Astronomical Tide',
2103             47603 => 'Lowest Low Water',
2104             47604 => 'Lowest Normal Low Water',
2105             47605 => 'Mean Higher High Water',
2106             47606 => 'Mean High Water',
2107             47607 => 'Mean High Water Springs',
2108             47608 => 'Mean Lower Low Water',
2109             47609 => 'Mean Lower Low Water Springs',
2110             47610 => 'Mean Low Water',
2111             47611 => 'Mean Sea Level',
2112             47612 => 'Tropic Higher High Water',
2113             47613 => 'Tropic Lower Low Water',
2114             },
2115             },
2116             47009 => {
2117             Name => 'ChartDepthUnits',
2118             SeparateTable => 'Units',
2119             PrintConv => \%epsg_units,
2120             },
2121             47010 => 'ChartMagVar',
2122             47011 => 'ChartMagVarYear',
2123             47012 => 'ChartMagVarAnnChange',
2124             47013 => 'ChartWGSNSShift',
2125             47015 => 'InsetNWPixelX',
2126             47016 => 'InsetNWPixelY',
2127             47017 => 'ChartContourInterval',
2128             );
2129              
2130             #------------------------------------------------------------------------------
2131             # Inputs: 0) ExifTool object ref
2132             # Notes: byte order must be set before calling this routine
2133             sub ProcessGeoTiff($)
2134             {
2135 7     7 0 16 my $et = shift;
2136 7 50       33 my $dirData = $et->GetValue('GeoTiffDirectory', 'ValueConv') or return;
2137              
2138             # avoid re-processing if another EXIF directory is found
2139 7 50 33     38 $$et{DidGeoTiff} and $$et{DidGeoTiff} eq $dirData and return;
2140 7         19 $$et{DidGeoTiff} = $dirData;
2141              
2142 7         25 my $doubleData = $et->GetValue('GeoTiffDoubleParams', 'ValueConv');
2143 7         30 my $asciiData = $et->GetValue('GeoTiffAsciiParams', 'ValueConv');
2144 7         34 my $verbose = $et->Options('Verbose');
2145              
2146 7 50 33     44 if (length($$dirData) >= 8 and
2147             length($$dirData) >= 8 * (Get16u($dirData,6) + 1))
2148             {
2149 7         22 my $version = Get16u($dirData,0);
2150 7         24 my $revision = Get16u($dirData,2);
2151 7         24 my $minorRev = Get16u($dirData,4);
2152 7         23 my $numEntries = Get16u($dirData,6);
2153              
2154 7 50       27 if ($verbose) {
2155 0         0 $$et{INDENT} .= '| ';
2156 0         0 $et->VerboseDir('GeoTiff',$numEntries);
2157             }
2158             # generate version number tag (not a real GeoTiff tag)
2159 7         25 my $tagTable = GetTagTable("Image::ExifTool::GeoTiff::Main");
2160 7         36 my $tagInfo = $et->GetTagInfo($tagTable, 1);
2161 7 50       72 $tagInfo and $et->FoundTag($tagInfo,"$version.$revision.$minorRev");
2162              
2163 7         18 my $i;
2164 7         47 for ($i=0; $i<$numEntries; ++$i) {
2165 55         111 my $pt = 8 * ($i + 1);
2166 55         113 my $tag = Get16u($dirData, $pt);
2167 55 50       133 $tagInfo = $et->GetTagInfo($tagTable, $tag) or next;
2168 55         169 my $loc = Get16u($dirData, $pt+2);
2169 55         135 my $count = Get16u($dirData, $pt+4);
2170 55         140 my $offset = Get16u($dirData, $pt+6);
2171 55         128 my $format = $geoTiffFormat{$loc};
2172 55         90 my ($val, $dataPt);
2173 55 50       197 if (not $format) {
    100          
    100          
    50          
2174 0         0 $et->Warn("Unknown GeoTiff location ($loc) for $$tagInfo{Name}");
2175 0         0 next;
2176             } elsif ($format eq 'double') { # in the double parms
2177 8         15 $dataPt = $doubleData;
2178             } elsif ($format eq 'string') { # in the ASCII parms
2179 11         17 $dataPt = $asciiData;
2180             } elsif ($format eq 'int16u') { # in the GeoTiffDirectory data
2181 36         48 $dataPt = $dirData;
2182 36 50       84 unless ($loc) { # is value is stored in offset?
2183 36         50 $count = 1; # (implied by location of 0)
2184 36         70 $offset = ($pt + 6) / 2; # offset of the "offset" value
2185             }
2186             }
2187 55         122 my $size = Image::ExifTool::FormatSize($format);
2188 55 50 33     240 if (not $dataPt or length($$dataPt) < $size*($offset+$count)) {
2189 0         0 $et->Warn("Missing $format data for $$tagInfo{Name}");
2190 0         0 next;
2191             }
2192 55         95 $offset *= $size;
2193 55         125 $val = Image::ExifTool::ReadValue($dataPt, $offset, $format,
2194             $count, length($$dataPt)-$offset);
2195             # remove trailing terminator (NULL or '|') from string value
2196 55 100       187 $val =~ s/(\0|\|)$// if $format eq 'string';
2197 55 50       110 $verbose and $et->VerboseInfo($tag, $tagInfo,
2198             'Table' => $tagTable,
2199             'Index' => $i,
2200             'Value' => $val,
2201             'DataPt' => $dataPt,
2202             'Start' => $offset,
2203             'Format' => $format,
2204             'Count' => $count,
2205             'Size' => $count * $size,
2206             );
2207 55         139 $et->FoundTag($tagInfo, $val);
2208             }
2209 7 50       29 if ($verbose) {
2210 0         0 $$et{INDENT} =~ s/..$//;
2211             }
2212             } else {
2213 0         0 $et->Warn('Bad GeoTIFF directory');
2214             }
2215             # extract block tags only if requested
2216 7 100       39 unless ($$et{OPTIONS}{RequestAll}) {
2217 6 50       44 $et->DeleteTag('GeoTiffDirectory') unless $$et{REQ_TAG_LOOKUP}{geotiffdirectory};
2218 6 50       33 $et->DeleteTag('GeoTiffDoubleParams') unless $$et{REQ_TAG_LOOKUP}{geotiffdoubleparams};
2219 6 50       27 $et->DeleteTag('GeoTiffAsciiParams') unless $$et{REQ_TAG_LOOKUP}{geotiffasciiparams};
2220             }
2221             }
2222              
2223              
2224             1; #end
2225              
2226             __END__