source: main/trunk/greenstone2/perllib/cpan/Image/ExifTool/GeoTiff.pm@ 34921

Last change on this file since 34921 was 34921, checked in by anupama, 3 years ago

Committing the improvements to EmbeddedMetaPlugin's processing of Keywords vs other metadata fields. Keywords were literally stored as arrays of words rather than phrases in PDFs (at least in Diego's sample PDF), whereas other meta fields like Subjects and Creators stored them as arrays of phrases. To get both to work, Kathy updated EXIF to a newer version, to retrieve the actual EXIF values stored in the PDF. And Kathy and Dr Bainbridge came up with a new option that I added called apply_join_before_split_to_metafields that's a regex which can list the metadata fields to apply the join_before_split to and whcih previously always got applied to all metadata fields. Now it's applied to any *Keywords metafields by default, as that's the metafield we have experience of that behaves differently to the others, as it stores by word instead of phrases. Tested on Diego's sample PDF. Diego has double-checked it to works on his sample PDF too, setting the split char to ; and turning on the join_before_split and leaving apply_join_before_split_to_metafields at its default of .*Keywords. File changes are strings.properties for the tooltip, the plugin introducing the option and working with it and Kathy's EXIF updates affecting cpan/File and cpan/Image.

File size: 87.5 KB
Line 
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
16package Image::ExifTool::GeoTiff;
17
18use strict;
19use vars qw($VERSION);
20use Image::ExifTool qw(:DataAccess :Utils);
21
22$VERSION = '1.12';
23
24# format codes for geoTiff directory entries
25my %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
32my %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
59my %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
2133sub ProcessGeoTiff($)
2134{
2135 my $et = shift;
2136 my $dirData = $et->GetValue('GeoTiffDirectory', 'ValueConv') or return;
2137
2138 # avoid re-processing if another EXIF directory is found
2139 $$et{DidGeoTiff} and $$et{DidGeoTiff} eq $dirData and return;
2140 $$et{DidGeoTiff} = $dirData;
2141
2142 my $doubleData = $et->GetValue('GeoTiffDoubleParams', 'ValueConv');
2143 my $asciiData = $et->GetValue('GeoTiffAsciiParams', 'ValueConv');
2144 my $verbose = $et->Options('Verbose');
2145
2146 if (length($$dirData) >= 8 and
2147 length($$dirData) >= 8 * (Get16u($dirData,6) + 1))
2148 {
2149 my $version = Get16u($dirData,0);
2150 my $revision = Get16u($dirData,2);
2151 my $minorRev = Get16u($dirData,4);
2152 my $numEntries = Get16u($dirData,6);
2153
2154 if ($verbose) {
2155 $$et{INDENT} .= '| ';
2156 $et->VerboseDir('GeoTiff',$numEntries);
2157 }
2158 # generate version number tag (not a real GeoTiff tag)
2159 my $tagTable = GetTagTable("Image::ExifTool::GeoTiff::Main");
2160 my $tagInfo = $et->GetTagInfo($tagTable, 1);
2161 $tagInfo and $et->FoundTag($tagInfo,"$version.$revision.$minorRev");
2162
2163 my $i;
2164 for ($i=0; $i<$numEntries; ++$i) {
2165 my $pt = 8 * ($i + 1);
2166 my $tag = Get16u($dirData, $pt);
2167 $tagInfo = $et->GetTagInfo($tagTable, $tag) or next;
2168 my $loc = Get16u($dirData, $pt+2);
2169 my $count = Get16u($dirData, $pt+4);
2170 my $offset = Get16u($dirData, $pt+6);
2171 my $format = $geoTiffFormat{$loc};
2172 my ($val, $dataPt);
2173 if (not $format) {
2174 $et->Warn("Unknown GeoTiff location ($loc) for $$tagInfo{Name}");
2175 next;
2176 } elsif ($format eq 'double') { # in the double parms
2177 $dataPt = $doubleData;
2178 } elsif ($format eq 'string') { # in the ASCII parms
2179 $dataPt = $asciiData;
2180 } elsif ($format eq 'int16u') { # in the GeoTiffDirectory data
2181 $dataPt = $dirData;
2182 unless ($loc) { # is value is stored in offset?
2183 $count = 1; # (implied by location of 0)
2184 $offset = ($pt + 6) / 2; # offset of the "offset" value
2185 }
2186 }
2187 my $size = Image::ExifTool::FormatSize($format);
2188 if (not $dataPt or length($$dataPt) < $size*($offset+$count)) {
2189 $et->Warn("Missing $format data for $$tagInfo{Name}");
2190 next;
2191 }
2192 $offset *= $size;
2193 $val = Image::ExifTool::ReadValue($dataPt, $offset, $format,
2194 $count, length($$dataPt)-$offset);
2195 # remove trailing terminator (NULL or '|') from string value
2196 $val =~ s/(\0|\|)$// if $format eq 'string';
2197 $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 $et->FoundTag($tagInfo, $val);
2208 }
2209 if ($verbose) {
2210 $$et{INDENT} =~ s/..$//;
2211 }
2212 } else {
2213 $et->Warn('Bad GeoTIFF directory');
2214 }
2215 # extract block tags only if requested
2216 unless ($$et{OPTIONS}{RequestAll}) {
2217 $et->DeleteTag('GeoTiffDirectory') unless $$et{REQ_TAG_LOOKUP}{geotiffdirectory};
2218 $et->DeleteTag('GeoTiffDoubleParams') unless $$et{REQ_TAG_LOOKUP}{geotiffdoubleparams};
2219 $et->DeleteTag('GeoTiffAsciiParams') unless $$et{REQ_TAG_LOOKUP}{geotiffasciiparams};
2220 }
2221}
2222
2223
22241; #end
2225
2226__END__
2227
2228=head1 NAME
2229
2230Image::ExifTool::GeoTiff - Read GeoTiff meta information
2231
2232=head1 SYNOPSIS
2233
2234This module is loaded automatically by Image::ExifTool when required.
2235
2236=head1 DESCRIPTION
2237
2238This module contains definitions required by Image::ExifTool to interpret
2239GeoTiff meta information. GeoTiff information is used in images to specify
2240exact geometric mappings used to transform the image to real world
2241coordinates.
2242
2243=head1 AUTHOR
2244
2245Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2246
2247This library is free software; you can redistribute it and/or modify it
2248under the same terms as Perl itself.
2249
2250=head1 REFERENCES
2251
2252=over 4
2253
2254=item ftp://ftp.remotesensing.org/geotiff/libgeotiff/libgeotiff-1.1.4.tar.gz
2255
2256=item http://www.charttiff.com/whitepapers.shtml
2257
2258=back
2259
2260=head1 SEE ALSO
2261
2262L<Image::ExifTool::TagNames/GeoTiff Tags>,
2263L<Image::ExifTool(3pm)|Image::ExifTool>
2264
2265=cut
Note: See TracBrowser for help on using the repository browser.