]> git.sesse.net Git - ffmpeg/blob - libavcodec/tiff_data.h
avcodec/mjpegdec: fix SOF check in EOI
[ffmpeg] / libavcodec / tiff_data.h
1 /*
2  * TIFF data tables
3  * Copyright (c) 2011 Thomas Kuehnel
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 /**
23  * @file
24  * TIFF data tables
25  * @author Thomas Kuehnel
26  * @see GeoTIFF specification at
27  * http://www.remotesensing.org/geotiff/spec/geotiffhome.html
28  */
29
30 #ifndef AVCODEC_TIFF_DATA_H
31 #define AVCODEC_TIFF_DATA_H
32
33 #include "tiff.h"
34
35 #define TIFF_CONF_KEY_ID_OFFSET 1024
36 static const TiffGeoTagNameType tiff_conf_name_type_map[] = {
37     {"GTModelTypeGeoKey",              GEOTIFF_SHORT },
38     {"GTRasterTypeGeoKey",             GEOTIFF_SHORT },
39     {"GTCitationGeoKey",               GEOTIFF_STRING}
40 };
41
42 #define TIFF_GEOG_KEY_ID_OFFSET 2048
43 static const TiffGeoTagNameType tiff_geog_name_type_map[] = {
44     {"GeographicTypeGeoKey",           GEOTIFF_SHORT },
45     {"GeogCitationGeoKey",             GEOTIFF_STRING},
46     {"GeogGeodeticDatumGeoKey",        GEOTIFF_SHORT },
47     {"GeogPrimeMeridianGeoKey",        GEOTIFF_SHORT },
48     {"GeogLinearUnitsGeoKey",          GEOTIFF_SHORT },
49     {"GeogLinearUnitSizeGeoKey",       GEOTIFF_DOUBLE},
50     {"GeogAngularUnitsGeoKey",         GEOTIFF_SHORT },
51     {"GeogAngularUnitSizeGeoKey",      GEOTIFF_DOUBLE},
52     {"GeogEllipsoidGeoKey",            GEOTIFF_SHORT },
53     {"GeogSemiMajorAxisGeoKey",        GEOTIFF_DOUBLE},
54     {"GeogSemiMinorAxisGeoKey",        GEOTIFF_DOUBLE},
55     {"GeogInvFlatteningGeoKey",        GEOTIFF_DOUBLE},
56     {"GeogAzimuthUnitsGeoKey",         GEOTIFF_SHORT },
57     {"GeogPrimeMeridianLongGeoKey",    GEOTIFF_DOUBLE}
58 };
59
60 #define TIFF_PROJ_KEY_ID_OFFSET 3072
61 static const TiffGeoTagNameType tiff_proj_name_type_map[] = {
62     {"ProjectedCSTypeGeoKey",          GEOTIFF_SHORT },
63     {"PCSCitationGeoKey",              GEOTIFF_STRING},
64     {"ProjectionGeoKey",               GEOTIFF_SHORT },
65     {"ProjCoordTransGeoKey",           GEOTIFF_SHORT },
66     {"ProjLinearUnitsGeoKey",          GEOTIFF_SHORT },
67     {"ProjLinearUnitSizeGeoKey",       GEOTIFF_DOUBLE},
68     {"ProjStdParallel1GeoKey",         GEOTIFF_DOUBLE},
69     {"ProjStdParallel2GeoKey",         GEOTIFF_DOUBLE},
70     {"ProjNatOriginLongGeoKey",        GEOTIFF_DOUBLE},
71     {"ProjNatOriginLatGeoKey",         GEOTIFF_DOUBLE},
72     {"ProjFalseEastingGeoKey",         GEOTIFF_DOUBLE},
73     {"ProjFalseNorthingGeoKey",        GEOTIFF_DOUBLE},
74     {"ProjFalseOriginLongGeoKey",      GEOTIFF_DOUBLE},
75     {"ProjFalseOriginLatGeoKey",       GEOTIFF_DOUBLE},
76     {"ProjFalseOriginEastingGeoKey",   GEOTIFF_DOUBLE},
77     {"ProjFalseOriginNorthingGeoKey",  GEOTIFF_DOUBLE},
78     {"ProjCenterLongGeoKey",           GEOTIFF_DOUBLE},
79     {"ProjCenterLatGeoKey",            GEOTIFF_DOUBLE},
80     {"ProjCenterEastingGeoKey",        GEOTIFF_DOUBLE},
81     {"ProjCenterNorthingGeoKey",       GEOTIFF_DOUBLE},
82     {"ProjScaleAtNatOriginGeoKey",     GEOTIFF_DOUBLE},
83     {"ProjScaleAtCenterGeoKey",        GEOTIFF_DOUBLE},
84     {"ProjAzimuthAngleGeoKey",         GEOTIFF_DOUBLE},
85     {"ProjStraightVertPoleLongGeoKey", GEOTIFF_DOUBLE}
86 };
87
88 #define TIFF_VERT_KEY_ID_OFFSET 4096
89 static const TiffGeoTagNameType tiff_vert_name_type_map[] = {
90     {"VerticalCSTypeGeoKey",           GEOTIFF_SHORT },
91     {"VerticalCitationGeoKey",         GEOTIFF_STRING},
92     {"VerticalDatumGeoKey",            GEOTIFF_SHORT },
93     {"VerticalUnitsGeoKey",            GEOTIFF_SHORT }
94 };
95
96 #define TIFF_GEO_KEY_UNDEFINED    0
97 #define TIFF_GEO_KEY_USER_DEFINED 32767
98
99 #define TIFF_GT_MODEL_TYPE_OFFSET 1
100 static const char *const tiff_gt_model_type_codes[] = {
101     "ModelTypeProjected",
102     "ModelTypeGeographic",
103     "ModelTypeGeocentric"
104 };
105
106 #define TIFF_GT_RASTER_TYPE_OFFSET 1
107 static const char *const tiff_gt_raster_type_codes[] = {
108     "RasterPixelIsArea",
109     "RasterPixelIsPoint"
110 };
111
112 #define TIFF_LINEAR_UNIT_OFFSET 9001
113 static const char *const tiff_linear_unit_codes[] = {
114     "Linear_Meter",
115     "Linear_Foot",
116     "Linear_Foot_US_Survey",
117     "Linear_Foot_Modified_American",
118     "Linear_Foot_Clarke",
119     "Linear_Foot_Indian",
120     "Linear_Link",
121     "Linear_Link_Benoit",
122     "Linear_Link_Sears",
123     "Linear_Chain_Benoit",
124     "Linear_Chain_Sears",
125     "Linear_Yard_Sears",
126     "Linear_Yard_Indian",
127     "Linear_Fathom",
128     "Linear_Mile_International_Nautical"
129 };
130
131 #define TIFF_ANGULAR_UNIT_OFFSET 9101
132 static const char *const tiff_angular_unit_codes[] = {
133     "Angular_Radian",
134     "Angular_Degree",
135     "Angular_Arc_Minute",
136     "Angular_Arc_Second",
137     "Angular_Grad",
138     "Angular_Gon",
139     "Angular_DMS",
140     "Angular_DMS_Hemisphere"
141 };
142
143 #define TIFF_GCS_TYPE_OFFSET 4201
144 static const char *const tiff_gcs_type_codes[] = {
145     "GCS_Adindan",
146     "GCS_AGD66",
147     "GCS_AGD84",
148     "GCS_Ain_el_Abd",
149     "GCS_Afgooye",
150     "GCS_Agadez",
151     "GCS_Lisbon",
152     "GCS_Aratu",
153     "GCS_Arc_1950",
154     "GCS_Arc_1960",
155     "GCS_Batavia",
156     "GCS_Barbados",
157     "GCS_Beduaram",
158     "GCS_Beijing_1954",
159     "GCS_Belge_1950",
160     "GCS_Bermuda_1957",
161     "GCS_Bern_1898",
162     "GCS_Bogota",
163     "GCS_Bukit_Rimpah",
164     "GCS_Camacupa",
165     "GCS_Campo_Inchauspe",
166     "GCS_Cape",
167     "GCS_Carthage",
168     "GCS_Chua",
169     "GCS_Corrego_Alegre",
170     "GCS_Cote_d_Ivoire",
171     "GCS_Deir_ez_Zor",
172     "GCS_Douala",
173     "GCS_Egypt_1907",
174     "GCS_ED50",
175     "GCS_ED87",
176     "GCS_Fahud",
177     "GCS_Gandajika_1970",
178     "GCS_Garoua",
179     "GCS_Guyane_Francaise",
180     "GCS_Hu_Tzu_Shan",
181     "GCS_HD72",
182     "GCS_ID74",
183     "GCS_Indian_1954",
184     "GCS_Indian_1975",
185     "GCS_Jamaica_1875",
186     "GCS_JAD69",
187     "GCS_Kalianpur",
188     "GCS_Kandawala",
189     "GCS_Kertau",
190     "GCS_KOC",
191     "GCS_La_Canoa",
192     "GCS_PSAD56",
193     "GCS_Lake",
194     "GCS_Leigon",
195     "GCS_Liberia_1964",
196     "GCS_Lome",
197     "GCS_Luzon_1911",
198     "GCS_Hito_XVIII_1963",
199     "GCS_Herat_North",
200     "GCS_Mahe_1971",
201     "GCS_Makassar",
202     "GCS_EUREF89",
203     "GCS_Malongo_1987",
204     "GCS_Manoca",
205     "GCS_Merchich",
206     "GCS_Massawa",
207     "GCS_Minna",
208     "GCS_Mhast",
209     "GCS_Monte_Mario",
210     "GCS_M_poraloko",
211     "GCS_NAD27",
212     "GCS_NAD_Michigan",
213     "GCS_NAD83",
214     "GCS_Nahrwan_1967",
215     "GCS_Naparima_1972",
216     "GCS_GD49",
217     "GCS_NGO_1948",
218     "GCS_Datum_73",
219     "GCS_NTF",
220     "GCS_NSWC_9Z_2",
221     "GCS_OSGB_1936",
222     "GCS_OSGB70",
223     "GCS_OS_SN80",
224     "GCS_Padang",
225     "GCS_Palestine_1923",
226     "GCS_Pointe_Noire",
227     "GCS_GDA94",
228     "GCS_Pulkovo_1942",
229     "GCS_Qatar",
230     "GCS_Qatar_1948",
231     "GCS_Qornoq",
232     "GCS_Loma_Quintana",
233     "GCS_Amersfoort",
234     "GCS_RT38",
235     "GCS_SAD69",
236     "GCS_Sapper_Hill_1943",
237     "GCS_Schwarzeck",
238     "GCS_Segora",
239     "GCS_Serindung",
240     "GCS_Sudan",
241     "GCS_Tananarive",
242     "GCS_Timbalai_1948",
243     "GCS_TM65",
244     "GCS_TM75",
245     "GCS_Tokyo",
246     "GCS_Trinidad_1903",
247     "GCS_TC_1948",
248     "GCS_Voirol_1875",
249     "GCS_Voirol_Unifie",
250     "GCS_Bern_1938",
251     "GCS_Nord_Sahara_1959",
252     "GCS_Stockholm_1938",
253     "GCS_Yacare",
254     "GCS_Yoff",
255     "GCS_Zanderij",
256     "GCS_MGI",
257     "GCS_Belge_1972",
258     "GCS_DHDN",
259     "GCS_Conakry_1905",
260     "GCS_WGS_72",
261     "GCS_WGS_72BE",
262     "GCS_WGS_84",
263     "GCS_Bern_1898_Bern",
264     "GCS_Bogota_Bogota",
265     "GCS_Lisbon_Lisbon",
266     "GCS_Makassar_Jakarta",
267     "GCS_MGI_Ferro",
268     "GCS_Monte_Mario_Rome",
269     "GCS_NTF_Paris",
270     "GCS_Padang_Jakarta",
271     "GCS_Belge_1950_Brussels",
272     "GCS_Tananarive_Paris",
273     "GCS_Voirol_1875_Paris",
274     "GCS_Voirol_Unifie_Paris",
275     "GCS_Batavia_Jakarta",
276     "GCS_ATF_Paris",
277     "GCS_NDG_Paris"
278 };
279
280 #define TIFF_GCSE_TYPE_OFFSET 4001
281 static const char *const tiff_gcse_type_codes[] = {
282     "GCSE_Airy1830",
283     "GCSE_AiryModified1849",
284     "GCSE_AustralianNationalSpheroid",
285     "GCSE_Bessel1841",
286     "GCSE_BesselModified",
287     "GCSE_BesselNamibia",
288     "GCSE_Clarke1858",
289     "GCSE_Clarke1866",
290     "GCSE_Clarke1866Michigan",
291     "GCSE_Clarke1880_Benoit",
292     "GCSE_Clarke1880_IGN",
293     "GCSE_Clarke1880_RGS",
294     "GCSE_Clarke1880_Arc",
295     "GCSE_Clarke1880_SGA1922",
296     "GCSE_Everest1830_1937Adjustment",
297     "GCSE_Everest1830_1967Definition",
298     "GCSE_Everest1830_1975Definition",
299     "GCSE_Everest1830Modified",
300     "GCSE_GRS1980",
301     "GCSE_Helmert1906",
302     "GCSE_IndonesianNationalSpheroid",
303     "GCSE_International1924",
304     "GCSE_International1967",
305     "GCSE_Krassowsky1940",
306     "GCSE_NWL9D",
307     "GCSE_NWL10D",
308     "GCSE_Plessis1817",
309     "GCSE_Struve1860",
310     "GCSE_WarOffice",
311     "GCSE_WGS84",
312     "GCSE_GEM10C",
313     "GCSE_OSU86F",
314     "GCSE_OSU91A",
315     "GCSE_Clarke1880",
316     "GCSE_Sphere"
317 };
318
319 #define TIFF_GEODETIC_DATUM_OFFSET 6201
320 static const char *const tiff_geodetic_datum_codes[] = {
321     "Datum_Adindan",
322     "Datum_Australian_Geodetic_Datum_1966",
323     "Datum_Australian_Geodetic_Datum_1984",
324     "Datum_Ain_el_Abd_1970",
325     "Datum_Afgooye",
326     "Datum_Agadez",
327     "Datum_Lisbon",
328     "Datum_Aratu",
329     "Datum_Arc_1950",
330     "Datum_Arc_1960",
331     "Datum_Batavia",
332     "Datum_Barbados",
333     "Datum_Beduaram",
334     "Datum_Beijing_1954",
335     "Datum_Reseau_National_Belge_1950",
336     "Datum_Bermuda_1957",
337     "Datum_Bern_1898",
338     "Datum_Bogota",
339     "Datum_Bukit_Rimpah",
340     "Datum_Camacupa",
341     "Datum_Campo_Inchauspe",
342     "Datum_Cape",
343     "Datum_Carthage",
344     "Datum_Chua",
345     "Datum_Corrego_Alegre",
346     "Datum_Cote_d_Ivoire",
347     "Datum_Deir_ez_Zor",
348     "Datum_Douala",
349     "Datum_Egypt_1907",
350     "Datum_European_Datum_1950",
351     "Datum_European_Datum_1987",
352     "Datum_Fahud",
353     "Datum_Gandajika_1970",
354     "Datum_Garoua",
355     "Datum_Guyane_Francaise",
356     "Datum_Hu_Tzu_Shan",
357     "Datum_Hungarian_Datum_1972",
358     "Datum_Indonesian_Datum_1974",
359     "Datum_Indian_1954",
360     "Datum_Indian_1975",
361     "Datum_Jamaica_1875",
362     "Datum_Jamaica_1969",
363     "Datum_Kalianpur",
364     "Datum_Kandawala",
365     "Datum_Kertau",
366     "Datum_Kuwait_Oil_Company",
367     "Datum_La_Canoa",
368     "Datum_Provisional_S_American_Datum_1956",
369     "Datum_Lake",
370     "Datum_Leigon",
371     "Datum_Liberia_1964",
372     "Datum_Lome",
373     "Datum_Luzon_1911",
374     "Datum_Hito_XVIII_1963",
375     "Datum_Herat_North",
376     "Datum_Mahe_1971",
377     "Datum_Makassar",
378     "Datum_European_Reference_System_1989",
379     "Datum_Malongo_1987",
380     "Datum_Manoca",
381     "Datum_Merchich",
382     "Datum_Massawa",
383     "Datum_Minna",
384     "Datum_Mhast",
385     "Datum_Monte_Mario",
386     "Datum_M_poraloko",
387     "Datum_North_American_Datum_1927",
388     "Datum_NAD_Michigan",
389     "Datum_North_American_Datum_1983",
390     "Datum_Nahrwan_1967",
391     "Datum_Naparima_1972",
392     "Datum_New_Zealand_Geodetic_Datum_1949",
393     "Datum_NGO_1948",
394     "Datum_Datum_73",
395     "Datum_Nouvelle_Triangulation_Francaise",
396     "Datum_NSWC_9Z_2",
397     "Datum_OSGB_1936",
398     "Datum_OSGB_1970_SN",
399     "Datum_OS_SN_1980",
400     "Datum_Padang_1884",
401     "Datum_Palestine_1923",
402     "Datum_Pointe_Noire",
403     "Datum_Geocentric_Datum_of_Australia_1994",
404     "Datum_Pulkovo_1942",
405     "Datum_Qatar",
406     "Datum_Qatar_1948",
407     "Datum_Qornoq",
408     "Datum_Loma_Quintana",
409     "Datum_Amersfoort",
410     "Datum_RT38",
411     "Datum_South_American_Datum_1969",
412     "Datum_Sapper_Hill_1943",
413     "Datum_Schwarzeck",
414     "Datum_Segora",
415     "Datum_Serindung",
416     "Datum_Sudan",
417     "Datum_Tananarive_1925",
418     "Datum_Timbalai_1948",
419     "Datum_TM65",
420     "Datum_TM75",
421     "Datum_Tokyo",
422     "Datum_Trinidad_1903",
423     "Datum_Trucial_Coast_1948",
424     "Datum_Voirol_1875",
425     "Datum_Voirol_Unifie_1960",
426     "Datum_Bern_1938",
427     "Datum_Nord_Sahara_1959",
428     "Datum_Stockholm_1938",
429     "Datum_Yacare",
430     "Datum_Yoff",
431     "Datum_Zanderij",
432     "Datum_Militar_Geographische_Institut",
433     "Datum_Reseau_National_Belge_1972",
434     "Datum_Deutsche_Hauptdreiecksnetz",
435     "Datum_Conakry_1905",
436     "Datum_WGS72",
437     "Datum_WGS72_Transit_Broadcast_Ephemeris",
438     "Datum_WGS84",
439     "Datum_Ancienne_Triangulation_Francaise",
440     "Datum_Nord_de_Guerre"
441 };
442
443 #define TIFF_GEODETIC_DATUM_E_OFFSET 6001
444 static const char *const tiff_geodetic_datum_e_codes[] = {
445     "DatumE_Airy1830",
446     "DatumE_AiryModified1849",
447     "DatumE_AustralianNationalSpheroid",
448     "DatumE_Bessel1841",
449     "DatumE_BesselModified",
450     "DatumE_BesselNamibia",
451     "DatumE_Clarke1858",
452     "DatumE_Clarke1866",
453     "DatumE_Clarke1866Michigan",
454     "DatumE_Clarke1880_Benoit",
455     "DatumE_Clarke1880_IGN",
456     "DatumE_Clarke1880_RGS",
457     "DatumE_Clarke1880_Arc",
458     "DatumE_Clarke1880_SGA1922",
459     "DatumE_Everest1830_1937Adjustment",
460     "DatumE_Everest1830_1967Definition",
461     "DatumE_Everest1830_1975Definition",
462     "DatumE_Everest1830Modified",
463     "DatumE_GRS1980",
464     "DatumE_Helmert1906",
465     "DatumE_IndonesianNationalSpheroid",
466     "DatumE_International1924",
467     "DatumE_International1967",
468     "DatumE_Krassowsky1960",
469     "DatumE_NWL9D",
470     "DatumE_NWL10D",
471     "DatumE_Plessis1817",
472     "DatumE_Struve1860",
473     "DatumE_WarOffice",
474     "DatumE_WGS84",
475     "DatumE_GEM10C",
476     "DatumE_OSU86F",
477     "DatumE_OSU91A",
478     "DatumE_Clarke1880",
479     "DatumE_Sphere"
480 };
481
482 #define TIFF_ELLIPSOID_OFFSET 7001
483 static const char *const tiff_ellipsoid_codes[] = {
484     "Ellipse_Airy_1830",
485     "Ellipse_Airy_Modified_1849",
486     "Ellipse_Australian_National_Spheroid",
487     "Ellipse_Bessel_1841",
488     "Ellipse_Bessel_Modified",
489     "Ellipse_Bessel_Namibia",
490     "Ellipse_Clarke_1858",
491     "Ellipse_Clarke_1866",
492     "Ellipse_Clarke_1866_Michigan",
493     "Ellipse_Clarke_1880_Benoit",
494     "Ellipse_Clarke_1880_IGN",
495     "Ellipse_Clarke_1880_RGS",
496     "Ellipse_Clarke_1880_Arc",
497     "Ellipse_Clarke_1880_SGA_1922",
498     "Ellipse_Everest_1830_1937_Adjustment",
499     "Ellipse_Everest_1830_1967_Definition",
500     "Ellipse_Everest_1830_1975_Definition",
501     "Ellipse_Everest_1830_Modified",
502     "Ellipse_GRS_1980",
503     "Ellipse_Helmert_1906",
504     "Ellipse_Indonesian_National_Spheroid",
505     "Ellipse_International_1924",
506     "Ellipse_International_1967",
507     "Ellipse_Krassowsky_1940",
508     "Ellipse_NWL_9D",
509     "Ellipse_NWL_10D",
510     "Ellipse_Plessis_1817",
511     "Ellipse_Struve_1860",
512     "Ellipse_War_Office",
513     "Ellipse_WGS_84",
514     "Ellipse_GEM_10C",
515     "Ellipse_OSU86F",
516     "Ellipse_OSU91A",
517     "Ellipse_Clarke_1880",
518     "Ellipse_Sphere"
519 };
520
521 #define TIFF_PRIME_MERIDIAN_OFFSET 8901
522 static const char *const tiff_prime_meridian_codes[] = {
523     "PM_Greenwich",
524     "PM_Lisbon",
525     "PM_Paris",
526     "PM_Bogota",
527     "PM_Madrid",
528     "PM_Rome",
529     "PM_Bern",
530     "PM_Jakarta",
531     "PM_Ferro",
532     "PM_Brussels",
533     "PM_Stockholm"
534 };
535
536 static const TiffGeoTagKeyName tiff_proj_cs_type_codes[] = {
537     {20137, "PCS_Adindan_UTM_zone_37N"},
538     {20138, "PCS_Adindan_UTM_zone_38N"},
539     {20248, "PCS_AGD66_AMG_zone_48"},
540     {20249, "PCS_AGD66_AMG_zone_49"},
541     {20250, "PCS_AGD66_AMG_zone_50"},
542     {20251, "PCS_AGD66_AMG_zone_51"},
543     {20252, "PCS_AGD66_AMG_zone_52"},
544     {20253, "PCS_AGD66_AMG_zone_53"},
545     {20254, "PCS_AGD66_AMG_zone_54"},
546     {20255, "PCS_AGD66_AMG_zone_55"},
547     {20256, "PCS_AGD66_AMG_zone_56"},
548     {20257, "PCS_AGD66_AMG_zone_57"},
549     {20258, "PCS_AGD66_AMG_zone_58"},
550     {20348, "PCS_AGD84_AMG_zone_48"},
551     {20349, "PCS_AGD84_AMG_zone_49"},
552     {20350, "PCS_AGD84_AMG_zone_50"},
553     {20351, "PCS_AGD84_AMG_zone_51"},
554     {20352, "PCS_AGD84_AMG_zone_52"},
555     {20353, "PCS_AGD84_AMG_zone_53"},
556     {20354, "PCS_AGD84_AMG_zone_54"},
557     {20355, "PCS_AGD84_AMG_zone_55"},
558     {20356, "PCS_AGD84_AMG_zone_56"},
559     {20357, "PCS_AGD84_AMG_zone_57"},
560     {20358, "PCS_AGD84_AMG_zone_58"},
561     {20437, "PCS_Ain_el_Abd_UTM_zone_37N"},
562     {20438, "PCS_Ain_el_Abd_UTM_zone_38N"},
563     {20439, "PCS_Ain_el_Abd_UTM_zone_39N"},
564     {20499, "PCS_Ain_el_Abd_Bahrain_Grid"},
565     {20538, "PCS_Afgooye_UTM_zone_38N"},
566     {20539, "PCS_Afgooye_UTM_zone_39N"},
567     {20700, "PCS_Lisbon_Portugese_Grid"},
568     {20822, "PCS_Aratu_UTM_zone_22S"},
569     {20823, "PCS_Aratu_UTM_zone_23S"},
570     {20824, "PCS_Aratu_UTM_zone_24S"},
571     {20973, "PCS_Arc_1950_Lo13"},
572     {20975, "PCS_Arc_1950_Lo15"},
573     {20977, "PCS_Arc_1950_Lo17"},
574     {20979, "PCS_Arc_1950_Lo19"},
575     {20981, "PCS_Arc_1950_Lo21"},
576     {20983, "PCS_Arc_1950_Lo23"},
577     {20985, "PCS_Arc_1950_Lo25"},
578     {20987, "PCS_Arc_1950_Lo27"},
579     {20989, "PCS_Arc_1950_Lo29"},
580     {20991, "PCS_Arc_1950_Lo31"},
581     {20993, "PCS_Arc_1950_Lo33"},
582     {20995, "PCS_Arc_1950_Lo35"},
583     {21100, "PCS_Batavia_NEIEZ"},
584     {21148, "PCS_Batavia_UTM_zone_48S"},
585     {21149, "PCS_Batavia_UTM_zone_49S"},
586     {21150, "PCS_Batavia_UTM_zone_50S"},
587     {21413, "PCS_Beijing_Gauss_zone_13"},
588     {21414, "PCS_Beijing_Gauss_zone_14"},
589     {21415, "PCS_Beijing_Gauss_zone_15"},
590     {21416, "PCS_Beijing_Gauss_zone_16"},
591     {21417, "PCS_Beijing_Gauss_zone_17"},
592     {21418, "PCS_Beijing_Gauss_zone_18"},
593     {21419, "PCS_Beijing_Gauss_zone_19"},
594     {21420, "PCS_Beijing_Gauss_zone_20"},
595     {21421, "PCS_Beijing_Gauss_zone_21"},
596     {21422, "PCS_Beijing_Gauss_zone_22"},
597     {21423, "PCS_Beijing_Gauss_zone_23"},
598     {21473, "PCS_Beijing_Gauss_13N"},
599     {21474, "PCS_Beijing_Gauss_14N"},
600     {21475, "PCS_Beijing_Gauss_15N"},
601     {21476, "PCS_Beijing_Gauss_16N"},
602     {21477, "PCS_Beijing_Gauss_17N"},
603     {21478, "PCS_Beijing_Gauss_18N"},
604     {21479, "PCS_Beijing_Gauss_19N"},
605     {21480, "PCS_Beijing_Gauss_20N"},
606     {21481, "PCS_Beijing_Gauss_21N"},
607     {21482, "PCS_Beijing_Gauss_22N"},
608     {21483, "PCS_Beijing_Gauss_23N"},
609     {21500, "PCS_Belge_Lambert_50"},
610     {21790, "PCS_Bern_1898_Swiss_Old"},
611     {21817, "PCS_Bogota_UTM_zone_17N"},
612     {21818, "PCS_Bogota_UTM_zone_18N"},
613     {21891, "PCS_Bogota_Colombia_3W"},
614     {21892, "PCS_Bogota_Colombia_Bogota"},
615     {21893, "PCS_Bogota_Colombia_3E"},
616     {21894, "PCS_Bogota_Colombia_6E"},
617     {22032, "PCS_Camacupa_UTM_32S"},
618     {22033, "PCS_Camacupa_UTM_33S"},
619     {22191, "PCS_C_Inchauspe_Argentina_1"},
620     {22192, "PCS_C_Inchauspe_Argentina_2"},
621     {22193, "PCS_C_Inchauspe_Argentina_3"},
622     {22194, "PCS_C_Inchauspe_Argentina_4"},
623     {22195, "PCS_C_Inchauspe_Argentina_5"},
624     {22196, "PCS_C_Inchauspe_Argentina_6"},
625     {22197, "PCS_C_Inchauspe_Argentina_7"},
626     {22332, "PCS_Carthage_UTM_zone_32N"},
627     {22391, "PCS_Carthage_Nord_Tunisie"},
628     {22392, "PCS_Carthage_Sud_Tunisie"},
629     {22523, "PCS_Corrego_Alegre_UTM_23S"},
630     {22524, "PCS_Corrego_Alegre_UTM_24S"},
631     {22832, "PCS_Douala_UTM_zone_32N"},
632     {22992, "PCS_Egypt_1907_Red_Belt"},
633     {22993, "PCS_Egypt_1907_Purple_Belt"},
634     {22994, "PCS_Egypt_1907_Ext_Purple"},
635     {23028, "PCS_ED50_UTM_zone_28N"},
636     {23029, "PCS_ED50_UTM_zone_29N"},
637     {23030, "PCS_ED50_UTM_zone_30N"},
638     {23031, "PCS_ED50_UTM_zone_31N"},
639     {23032, "PCS_ED50_UTM_zone_32N"},
640     {23033, "PCS_ED50_UTM_zone_33N"},
641     {23034, "PCS_ED50_UTM_zone_34N"},
642     {23035, "PCS_ED50_UTM_zone_35N"},
643     {23036, "PCS_ED50_UTM_zone_36N"},
644     {23037, "PCS_ED50_UTM_zone_37N"},
645     {23038, "PCS_ED50_UTM_zone_38N"},
646     {23239, "PCS_Fahud_UTM_zone_39N"},
647     {23240, "PCS_Fahud_UTM_zone_40N"},
648     {23433, "PCS_Garoua_UTM_zone_33N"},
649     {23846, "PCS_ID74_UTM_zone_46N"},
650     {23847, "PCS_ID74_UTM_zone_47N"},
651     {23848, "PCS_ID74_UTM_zone_48N"},
652     {23849, "PCS_ID74_UTM_zone_49N"},
653     {23850, "PCS_ID74_UTM_zone_50N"},
654     {23851, "PCS_ID74_UTM_zone_51N"},
655     {23852, "PCS_ID74_UTM_zone_52N"},
656     {23853, "PCS_ID74_UTM_zone_53N"},
657     {23886, "PCS_ID74_UTM_zone_46S"},
658     {23887, "PCS_ID74_UTM_zone_47S"},
659     {23888, "PCS_ID74_UTM_zone_48S"},
660     {23889, "PCS_ID74_UTM_zone_49S"},
661     {23890, "PCS_ID74_UTM_zone_50S"},
662     {23891, "PCS_ID74_UTM_zone_51S"},
663     {23892, "PCS_ID74_UTM_zone_52S"},
664     {23893, "PCS_ID74_UTM_zone_53S"},
665     {23894, "PCS_ID74_UTM_zone_54S"},
666     {23947, "PCS_Indian_1954_UTM_47N"},
667     {23948, "PCS_Indian_1954_UTM_48N"},
668     {24047, "PCS_Indian_1975_UTM_47N"},
669     {24048, "PCS_Indian_1975_UTM_48N"},
670     {24100, "PCS_Jamaica_1875_Old_Grid"},
671     {24200, "PCS_JAD69_Jamaica_Grid"},
672     {24370, "PCS_Kalianpur_India_0"},
673     {24371, "PCS_Kalianpur_India_I"},
674     {24372, "PCS_Kalianpur_India_IIa"},
675     {24373, "PCS_Kalianpur_India_IIIa"},
676     {24374, "PCS_Kalianpur_India_IVa"},
677     {24382, "PCS_Kalianpur_India_IIb"},
678     {24383, "PCS_Kalianpur_India_IIIb"},
679     {24384, "PCS_Kalianpur_India_IVb"},
680     {24500, "PCS_Kertau_Singapore_Grid"},
681     {24547, "PCS_Kertau_UTM_zone_47N"},
682     {24548, "PCS_Kertau_UTM_zone_48N"},
683     {24720, "PCS_La_Canoa_UTM_zone_20N"},
684     {24721, "PCS_La_Canoa_UTM_zone_21N"},
685     {24818, "PCS_PSAD56_UTM_zone_18N"},
686     {24819, "PCS_PSAD56_UTM_zone_19N"},
687     {24820, "PCS_PSAD56_UTM_zone_20N"},
688     {24821, "PCS_PSAD56_UTM_zone_21N"},
689     {24877, "PCS_PSAD56_UTM_zone_17S"},
690     {24878, "PCS_PSAD56_UTM_zone_18S"},
691     {24879, "PCS_PSAD56_UTM_zone_19S"},
692     {24880, "PCS_PSAD56_UTM_zone_20S"},
693     {24891, "PCS_PSAD56_Peru_west_zone"},
694     {24892, "PCS_PSAD56_Peru_central"},
695     {24893, "PCS_PSAD56_Peru_east_zone"},
696     {25000, "PCS_Leigon_Ghana_Grid"},
697     {25231, "PCS_Lome_UTM_zone_31N"},
698     {25391, "PCS_Luzon_Philippines_I"},
699     {25392, "PCS_Luzon_Philippines_II"},
700     {25393, "PCS_Luzon_Philippines_III"},
701     {25394, "PCS_Luzon_Philippines_IV"},
702     {25395, "PCS_Luzon_Philippines_V"},
703     {25700, "PCS_Makassar_NEIEZ"},
704     {25932, "PCS_Malongo_1987_UTM_32S"},
705     {26191, "PCS_Merchich_Nord_Maroc"},
706     {26192, "PCS_Merchich_Sud_Maroc"},
707     {26193, "PCS_Merchich_Sahara"},
708     {26237, "PCS_Massawa_UTM_zone_37N"},
709     {26331, "PCS_Minna_UTM_zone_31N"},
710     {26332, "PCS_Minna_UTM_zone_32N"},
711     {26391, "PCS_Minna_Nigeria_West"},
712     {26392, "PCS_Minna_Nigeria_Mid_Belt"},
713     {26393, "PCS_Minna_Nigeria_East"},
714     {26432, "PCS_Mhast_UTM_zone_32S"},
715     {26591, "PCS_Monte_Mario_Italy_1"},
716     {26592, "PCS_Monte_Mario_Italy_2"},
717     {26632, "PCS_M_poraloko_UTM_32N"},
718     {26692, "PCS_M_poraloko_UTM_32S"},
719     {26703, "PCS_NAD27_UTM_zone_3N"},
720     {26704, "PCS_NAD27_UTM_zone_4N"},
721     {26705, "PCS_NAD27_UTM_zone_5N"},
722     {26706, "PCS_NAD27_UTM_zone_6N"},
723     {26707, "PCS_NAD27_UTM_zone_7N"},
724     {26708, "PCS_NAD27_UTM_zone_8N"},
725     {26709, "PCS_NAD27_UTM_zone_9N"},
726     {26710, "PCS_NAD27_UTM_zone_10N"},
727     {26711, "PCS_NAD27_UTM_zone_11N"},
728     {26712, "PCS_NAD27_UTM_zone_12N"},
729     {26713, "PCS_NAD27_UTM_zone_13N"},
730     {26714, "PCS_NAD27_UTM_zone_14N"},
731     {26715, "PCS_NAD27_UTM_zone_15N"},
732     {26716, "PCS_NAD27_UTM_zone_16N"},
733     {26717, "PCS_NAD27_UTM_zone_17N"},
734     {26718, "PCS_NAD27_UTM_zone_18N"},
735     {26719, "PCS_NAD27_UTM_zone_19N"},
736     {26720, "PCS_NAD27_UTM_zone_20N"},
737     {26721, "PCS_NAD27_UTM_zone_21N"},
738     {26722, "PCS_NAD27_UTM_zone_22N"},
739     {26729, "PCS_NAD27_Alabama_East"},
740     {26730, "PCS_NAD27_Alabama_West"},
741     {26731, "PCS_NAD27_Alaska_zone_1"},
742     {26732, "PCS_NAD27_Alaska_zone_2"},
743     {26733, "PCS_NAD27_Alaska_zone_3"},
744     {26734, "PCS_NAD27_Alaska_zone_4"},
745     {26735, "PCS_NAD27_Alaska_zone_5"},
746     {26736, "PCS_NAD27_Alaska_zone_6"},
747     {26737, "PCS_NAD27_Alaska_zone_7"},
748     {26738, "PCS_NAD27_Alaska_zone_8"},
749     {26739, "PCS_NAD27_Alaska_zone_9"},
750     {26740, "PCS_NAD27_Alaska_zone_10"},
751     {26741, "PCS_NAD27_California_I"},
752     {26742, "PCS_NAD27_California_II"},
753     {26743, "PCS_NAD27_California_III"},
754     {26744, "PCS_NAD27_California_IV"},
755     {26745, "PCS_NAD27_California_V"},
756     {26746, "PCS_NAD27_California_VI"},
757     {26747, "PCS_NAD27_California_VII"},
758     {26748, "PCS_NAD27_Arizona_East"},
759     {26749, "PCS_NAD27_Arizona_Central"},
760     {26750, "PCS_NAD27_Arizona_West"},
761     {26751, "PCS_NAD27_Arkansas_North"},
762     {26752, "PCS_NAD27_Arkansas_South"},
763     {26753, "PCS_NAD27_Colorado_North"},
764     {26754, "PCS_NAD27_Colorado_Central"},
765     {26755, "PCS_NAD27_Colorado_South"},
766     {26756, "PCS_NAD27_Connecticut"},
767     {26757, "PCS_NAD27_Delaware"},
768     {26758, "PCS_NAD27_Florida_East"},
769     {26759, "PCS_NAD27_Florida_West"},
770     {26760, "PCS_NAD27_Florida_North"},
771     {26761, "PCS_NAD27_Hawaii_zone_1"},
772     {26762, "PCS_NAD27_Hawaii_zone_2"},
773     {26763, "PCS_NAD27_Hawaii_zone_3"},
774     {26764, "PCS_NAD27_Hawaii_zone_4"},
775     {26765, "PCS_NAD27_Hawaii_zone_5"},
776     {26766, "PCS_NAD27_Georgia_East"},
777     {26767, "PCS_NAD27_Georgia_West"},
778     {26768, "PCS_NAD27_Idaho_East"},
779     {26769, "PCS_NAD27_Idaho_Central"},
780     {26770, "PCS_NAD27_Idaho_West"},
781     {26771, "PCS_NAD27_Illinois_East"},
782     {26772, "PCS_NAD27_Illinois_West"},
783     {26773, "PCS_NAD27_Indiana_East"},
784     {26774, "PCS_NAD27_BLM_14N_feet"},
785     {26774, "PCS_NAD27_Indiana_West"},
786     {26775, "PCS_NAD27_BLM_15N_feet"},
787     {26775, "PCS_NAD27_Iowa_North"},
788     {26776, "PCS_NAD27_BLM_16N_feet"},
789     {26776, "PCS_NAD27_Iowa_South"},
790     {26777, "PCS_NAD27_BLM_17N_feet"},
791     {26777, "PCS_NAD27_Kansas_North"},
792     {26778, "PCS_NAD27_Kansas_South"},
793     {26779, "PCS_NAD27_Kentucky_North"},
794     {26780, "PCS_NAD27_Kentucky_South"},
795     {26781, "PCS_NAD27_Louisiana_North"},
796     {26782, "PCS_NAD27_Louisiana_South"},
797     {26783, "PCS_NAD27_Maine_East"},
798     {26784, "PCS_NAD27_Maine_West"},
799     {26785, "PCS_NAD27_Maryland"},
800     {26786, "PCS_NAD27_Massachusetts"},
801     {26787, "PCS_NAD27_Massachusetts_Is"},
802     {26788, "PCS_NAD27_Michigan_North"},
803     {26789, "PCS_NAD27_Michigan_Central"},
804     {26790, "PCS_NAD27_Michigan_South"},
805     {26791, "PCS_NAD27_Minnesota_North"},
806     {26792, "PCS_NAD27_Minnesota_Cent"},
807     {26793, "PCS_NAD27_Minnesota_South"},
808     {26794, "PCS_NAD27_Mississippi_East"},
809     {26795, "PCS_NAD27_Mississippi_West"},
810     {26796, "PCS_NAD27_Missouri_East"},
811     {26797, "PCS_NAD27_Missouri_Central"},
812     {26798, "PCS_NAD27_Missouri_West"},
813     {26801, "PCS_NAD_Michigan_Michigan_East"},
814     {26802, "PCS_NAD_Michigan_Michigan_Old_Central"},
815     {26803, "PCS_NAD_Michigan_Michigan_West"},
816     {26903, "PCS_NAD83_UTM_zone_3N"},
817     {26904, "PCS_NAD83_UTM_zone_4N"},
818     {26905, "PCS_NAD83_UTM_zone_5N"},
819     {26906, "PCS_NAD83_UTM_zone_6N"},
820     {26907, "PCS_NAD83_UTM_zone_7N"},
821     {26908, "PCS_NAD83_UTM_zone_8N"},
822     {26909, "PCS_NAD83_UTM_zone_9N"},
823     {26910, "PCS_NAD83_UTM_zone_10N"},
824     {26911, "PCS_NAD83_UTM_zone_11N"},
825     {26912, "PCS_NAD83_UTM_zone_12N"},
826     {26913, "PCS_NAD83_UTM_zone_13N"},
827     {26914, "PCS_NAD83_UTM_zone_14N"},
828     {26915, "PCS_NAD83_UTM_zone_15N"},
829     {26916, "PCS_NAD83_UTM_zone_16N"},
830     {26917, "PCS_NAD83_UTM_zone_17N"},
831     {26918, "PCS_NAD83_UTM_zone_18N"},
832     {26919, "PCS_NAD83_UTM_zone_19N"},
833     {26920, "PCS_NAD83_UTM_zone_20N"},
834     {26921, "PCS_NAD83_UTM_zone_21N"},
835     {26922, "PCS_NAD83_UTM_zone_22N"},
836     {26923, "PCS_NAD83_UTM_zone_23N"},
837     {26929, "PCS_NAD83_Alabama_East"},
838     {26930, "PCS_NAD83_Alabama_West"},
839     {26931, "PCS_NAD83_Alaska_zone_1"},
840     {26932, "PCS_NAD83_Alaska_zone_2"},
841     {26933, "PCS_NAD83_Alaska_zone_3"},
842     {26934, "PCS_NAD83_Alaska_zone_4"},
843     {26935, "PCS_NAD83_Alaska_zone_5"},
844     {26936, "PCS_NAD83_Alaska_zone_6"},
845     {26937, "PCS_NAD83_Alaska_zone_7"},
846     {26938, "PCS_NAD83_Alaska_zone_8"},
847     {26939, "PCS_NAD83_Alaska_zone_9"},
848     {26940, "PCS_NAD83_Alaska_zone_10"},
849     {26941, "PCS_NAD83_California_1"},
850     {26942, "PCS_NAD83_California_2"},
851     {26943, "PCS_NAD83_California_3"},
852     {26944, "PCS_NAD83_California_4"},
853     {26945, "PCS_NAD83_California_5"},
854     {26946, "PCS_NAD83_California_6"},
855     {26948, "PCS_NAD83_Arizona_East"},
856     {26949, "PCS_NAD83_Arizona_Central"},
857     {26950, "PCS_NAD83_Arizona_West"},
858     {26951, "PCS_NAD83_Arkansas_North"},
859     {26952, "PCS_NAD83_Arkansas_South"},
860     {26953, "PCS_NAD83_Colorado_North"},
861     {26954, "PCS_NAD83_Colorado_Central"},
862     {26955, "PCS_NAD83_Colorado_South"},
863     {26956, "PCS_NAD83_Connecticut"},
864     {26957, "PCS_NAD83_Delaware"},
865     {26958, "PCS_NAD83_Florida_East"},
866     {26959, "PCS_NAD83_Florida_West"},
867     {26960, "PCS_NAD83_Florida_North"},
868     {26961, "PCS_NAD83_Hawaii_zone_1"},
869     {26962, "PCS_NAD83_Hawaii_zone_2"},
870     {26963, "PCS_NAD83_Hawaii_zone_3"},
871     {26964, "PCS_NAD83_Hawaii_zone_4"},
872     {26965, "PCS_NAD83_Hawaii_zone_5"},
873     {26966, "PCS_NAD83_Georgia_East"},
874     {26967, "PCS_NAD83_Georgia_West"},
875     {26968, "PCS_NAD83_Idaho_East"},
876     {26969, "PCS_NAD83_Idaho_Central"},
877     {26970, "PCS_NAD83_Idaho_West"},
878     {26971, "PCS_NAD83_Illinois_East"},
879     {26972, "PCS_NAD83_Illinois_West"},
880     {26973, "PCS_NAD83_Indiana_East"},
881     {26974, "PCS_NAD83_Indiana_West"},
882     {26975, "PCS_NAD83_Iowa_North"},
883     {26976, "PCS_NAD83_Iowa_South"},
884     {26977, "PCS_NAD83_Kansas_North"},
885     {26978, "PCS_NAD83_Kansas_South"},
886     {26979, "PCS_NAD83_Kentucky_North"},
887     {26980, "PCS_NAD83_Kentucky_South"},
888     {26981, "PCS_NAD83_Louisiana_North"},
889     {26982, "PCS_NAD83_Louisiana_South"},
890     {26983, "PCS_NAD83_Maine_East"},
891     {26984, "PCS_NAD83_Maine_West"},
892     {26985, "PCS_NAD83_Maryland"},
893     {26986, "PCS_NAD83_Massachusetts"},
894     {26987, "PCS_NAD83_Massachusetts_Is"},
895     {26988, "PCS_NAD83_Michigan_North"},
896     {26989, "PCS_NAD83_Michigan_Central"},
897     {26990, "PCS_NAD83_Michigan_South"},
898     {26991, "PCS_NAD83_Minnesota_North"},
899     {26992, "PCS_NAD83_Minnesota_Cent"},
900     {26993, "PCS_NAD83_Minnesota_South"},
901     {26994, "PCS_NAD83_Mississippi_East"},
902     {26995, "PCS_NAD83_Mississippi_West"},
903     {26996, "PCS_NAD83_Missouri_East"},
904     {26997, "PCS_NAD83_Missouri_Central"},
905     {26998, "PCS_NAD83_Missouri_West"},
906     {27038, "PCS_Nahrwan_1967_UTM_38N"},
907     {27039, "PCS_Nahrwan_1967_UTM_39N"},
908     {27040, "PCS_Nahrwan_1967_UTM_40N"},
909     {27120, "PCS_Naparima_UTM_20N"},
910     {27200, "PCS_GD49_NZ_Map_Grid"},
911     {27291, "PCS_GD49_North_Island_Grid"},
912     {27292, "PCS_GD49_South_Island_Grid"},
913     {27429, "PCS_Datum_73_UTM_zone_29N"},
914     {27500, "PCS_ATF_Nord_de_Guerre"},
915     {27581, "PCS_NTF_France_I"},
916     {27582, "PCS_NTF_France_II"},
917     {27583, "PCS_NTF_France_III"},
918     {27591, "PCS_NTF_Nord_France"},
919     {27592, "PCS_NTF_Centre_France"},
920     {27593, "PCS_NTF_Sud_France"},
921     {27700, "PCS_British_National_Grid"},
922     {28232, "PCS_Point_Noire_UTM_32S"},
923     {28348, "PCS_GDA94_MGA_zone_48"},
924     {28349, "PCS_GDA94_MGA_zone_49"},
925     {28350, "PCS_GDA94_MGA_zone_50"},
926     {28351, "PCS_GDA94_MGA_zone_51"},
927     {28352, "PCS_GDA94_MGA_zone_52"},
928     {28353, "PCS_GDA94_MGA_zone_53"},
929     {28354, "PCS_GDA94_MGA_zone_54"},
930     {28355, "PCS_GDA94_MGA_zone_55"},
931     {28356, "PCS_GDA94_MGA_zone_56"},
932     {28357, "PCS_GDA94_MGA_zone_57"},
933     {28358, "PCS_GDA94_MGA_zone_58"},
934     {28404, "PCS_Pulkovo_Gauss_zone_4"},
935     {28405, "PCS_Pulkovo_Gauss_zone_5"},
936     {28406, "PCS_Pulkovo_Gauss_zone_6"},
937     {28407, "PCS_Pulkovo_Gauss_zone_7"},
938     {28408, "PCS_Pulkovo_Gauss_zone_8"},
939     {28409, "PCS_Pulkovo_Gauss_zone_9"},
940     {28410, "PCS_Pulkovo_Gauss_zone_10"},
941     {28411, "PCS_Pulkovo_Gauss_zone_11"},
942     {28412, "PCS_Pulkovo_Gauss_zone_12"},
943     {28413, "PCS_Pulkovo_Gauss_zone_13"},
944     {28414, "PCS_Pulkovo_Gauss_zone_14"},
945     {28415, "PCS_Pulkovo_Gauss_zone_15"},
946     {28416, "PCS_Pulkovo_Gauss_zone_16"},
947     {28417, "PCS_Pulkovo_Gauss_zone_17"},
948     {28418, "PCS_Pulkovo_Gauss_zone_18"},
949     {28419, "PCS_Pulkovo_Gauss_zone_19"},
950     {28420, "PCS_Pulkovo_Gauss_zone_20"},
951     {28421, "PCS_Pulkovo_Gauss_zone_21"},
952     {28422, "PCS_Pulkovo_Gauss_zone_22"},
953     {28423, "PCS_Pulkovo_Gauss_zone_23"},
954     {28424, "PCS_Pulkovo_Gauss_zone_24"},
955     {28425, "PCS_Pulkovo_Gauss_zone_25"},
956     {28426, "PCS_Pulkovo_Gauss_zone_26"},
957     {28427, "PCS_Pulkovo_Gauss_zone_27"},
958     {28428, "PCS_Pulkovo_Gauss_zone_28"},
959     {28429, "PCS_Pulkovo_Gauss_zone_29"},
960     {28430, "PCS_Pulkovo_Gauss_zone_30"},
961     {28431, "PCS_Pulkovo_Gauss_zone_31"},
962     {28432, "PCS_Pulkovo_Gauss_zone_32"},
963     {28464, "PCS_Pulkovo_Gauss_4N"},
964     {28465, "PCS_Pulkovo_Gauss_5N"},
965     {28466, "PCS_Pulkovo_Gauss_6N"},
966     {28467, "PCS_Pulkovo_Gauss_7N"},
967     {28468, "PCS_Pulkovo_Gauss_8N"},
968     {28469, "PCS_Pulkovo_Gauss_9N"},
969     {28470, "PCS_Pulkovo_Gauss_10N"},
970     {28471, "PCS_Pulkovo_Gauss_11N"},
971     {28472, "PCS_Pulkovo_Gauss_12N"},
972     {28473, "PCS_Pulkovo_Gauss_13N"},
973     {28474, "PCS_Pulkovo_Gauss_14N"},
974     {28475, "PCS_Pulkovo_Gauss_15N"},
975     {28476, "PCS_Pulkovo_Gauss_16N"},
976     {28477, "PCS_Pulkovo_Gauss_17N"},
977     {28478, "PCS_Pulkovo_Gauss_18N"},
978     {28479, "PCS_Pulkovo_Gauss_19N"},
979     {28480, "PCS_Pulkovo_Gauss_20N"},
980     {28481, "PCS_Pulkovo_Gauss_21N"},
981     {28482, "PCS_Pulkovo_Gauss_22N"},
982     {28483, "PCS_Pulkovo_Gauss_23N"},
983     {28484, "PCS_Pulkovo_Gauss_24N"},
984     {28485, "PCS_Pulkovo_Gauss_25N"},
985     {28486, "PCS_Pulkovo_Gauss_26N"},
986     {28487, "PCS_Pulkovo_Gauss_27N"},
987     {28488, "PCS_Pulkovo_Gauss_28N"},
988     {28489, "PCS_Pulkovo_Gauss_29N"},
989     {28490, "PCS_Pulkovo_Gauss_30N"},
990     {28491, "PCS_Pulkovo_Gauss_31N"},
991     {28492, "PCS_Pulkovo_Gauss_32N"},
992     {28600, "PCS_Qatar_National_Grid"},
993     {28991, "PCS_RD_Netherlands_Old"},
994     {28992, "PCS_RD_Netherlands_New"},
995     {29118, "PCS_SAD69_UTM_zone_18N"},
996     {29119, "PCS_SAD69_UTM_zone_19N"},
997     {29120, "PCS_SAD69_UTM_zone_20N"},
998     {29121, "PCS_SAD69_UTM_zone_21N"},
999     {29122, "PCS_SAD69_UTM_zone_22N"},
1000     {29177, "PCS_SAD69_UTM_zone_17S"},
1001     {29178, "PCS_SAD69_UTM_zone_18S"},
1002     {29179, "PCS_SAD69_UTM_zone_19S"},
1003     {29180, "PCS_SAD69_UTM_zone_20S"},
1004     {29181, "PCS_SAD69_UTM_zone_21S"},
1005     {29182, "PCS_SAD69_UTM_zone_22S"},
1006     {29183, "PCS_SAD69_UTM_zone_23S"},
1007     {29184, "PCS_SAD69_UTM_zone_24S"},
1008     {29185, "PCS_SAD69_UTM_zone_25S"},
1009     {29220, "PCS_Sapper_Hill_UTM_20S"},
1010     {29221, "PCS_Sapper_Hill_UTM_21S"},
1011     {29333, "PCS_Schwarzeck_UTM_33S"},
1012     {29635, "PCS_Sudan_UTM_zone_35N"},
1013     {29636, "PCS_Sudan_UTM_zone_36N"},
1014     {29700, "PCS_Tananarive_Laborde"},
1015     {29738, "PCS_Tananarive_UTM_38S"},
1016     {29739, "PCS_Tananarive_UTM_39S"},
1017     {29800, "PCS_Timbalai_1948_Borneo"},
1018     {29849, "PCS_Timbalai_1948_UTM_49N"},
1019     {29850, "PCS_Timbalai_1948_UTM_50N"},
1020     {29900, "PCS_TM65_Irish_Nat_Grid"},
1021     {30200, "PCS_Trinidad_1903_Trinidad"},
1022     {30339, "PCS_TC_1948_UTM_zone_39N"},
1023     {30340, "PCS_TC_1948_UTM_zone_40N"},
1024     {30491, "PCS_Voirol_N_Algerie_ancien"},
1025     {30492, "PCS_Voirol_S_Algerie_ancien"},
1026     {30591, "PCS_Voirol_Unifie_N_Algerie"},
1027     {30592, "PCS_Voirol_Unifie_S_Algerie"},
1028     {30600, "PCS_Bern_1938_Swiss_New"},
1029     {30729, "PCS_Nord_Sahara_UTM_29N"},
1030     {30730, "PCS_Nord_Sahara_UTM_30N"},
1031     {30731, "PCS_Nord_Sahara_UTM_31N"},
1032     {30732, "PCS_Nord_Sahara_UTM_32N"},
1033     {31028, "PCS_Yoff_UTM_zone_28N"},
1034     {31121, "PCS_Zanderij_UTM_zone_21N"},
1035     {31291, "PCS_MGI_Austria_West"},
1036     {31292, "PCS_MGI_Austria_Central"},
1037     {31293, "PCS_MGI_Austria_East"},
1038     {31300, "PCS_Belge_Lambert_72"},
1039     {31491, "PCS_DHDN_Germany_zone_1"},
1040     {31492, "PCS_DHDN_Germany_zone_2"},
1041     {31493, "PCS_DHDN_Germany_zone_3"},
1042     {31494, "PCS_DHDN_Germany_zone_4"},
1043     {31495, "PCS_DHDN_Germany_zone_5"},
1044     {32001, "PCS_NAD27_Montana_North"},
1045     {32002, "PCS_NAD27_Montana_Central"},
1046     {32003, "PCS_NAD27_Montana_South"},
1047     {32005, "PCS_NAD27_Nebraska_North"},
1048     {32006, "PCS_NAD27_Nebraska_South"},
1049     {32007, "PCS_NAD27_Nevada_East"},
1050     {32008, "PCS_NAD27_Nevada_Central"},
1051     {32009, "PCS_NAD27_Nevada_West"},
1052     {32010, "PCS_NAD27_New_Hampshire"},
1053     {32011, "PCS_NAD27_New_Jersey"},
1054     {32012, "PCS_NAD27_New_Mexico_East"},
1055     {32013, "PCS_NAD27_New_Mexico_Cent"},
1056     {32014, "PCS_NAD27_New_Mexico_West"},
1057     {32015, "PCS_NAD27_New_York_East"},
1058     {32016, "PCS_NAD27_New_York_Central"},
1059     {32017, "PCS_NAD27_New_York_West"},
1060     {32018, "PCS_NAD27_New_York_Long_Is"},
1061     {32019, "PCS_NAD27_North_Carolina"},
1062     {32020, "PCS_NAD27_North_Dakota_N"},
1063     {32021, "PCS_NAD27_North_Dakota_S"},
1064     {32022, "PCS_NAD27_Ohio_North"},
1065     {32023, "PCS_NAD27_Ohio_South"},
1066     {32024, "PCS_NAD27_Oklahoma_North"},
1067     {32025, "PCS_NAD27_Oklahoma_South"},
1068     {32026, "PCS_NAD27_Oregon_North"},
1069     {32027, "PCS_NAD27_Oregon_South"},
1070     {32028, "PCS_NAD27_Pennsylvania_N"},
1071     {32029, "PCS_NAD27_Pennsylvania_S"},
1072     {32030, "PCS_NAD27_Rhode_Island"},
1073     {32031, "PCS_NAD27_South_Carolina_N"},
1074     {32033, "PCS_NAD27_South_Carolina_S"},
1075     {32034, "PCS_NAD27_South_Dakota_N"},
1076     {32035, "PCS_NAD27_South_Dakota_S"},
1077     {32036, "PCS_NAD27_Tennessee"},
1078     {32037, "PCS_NAD27_Texas_North"},
1079     {32038, "PCS_NAD27_Texas_North_Cen"},
1080     {32039, "PCS_NAD27_Texas_Central"},
1081     {32040, "PCS_NAD27_Texas_South_Cen"},
1082     {32041, "PCS_NAD27_Texas_South"},
1083     {32042, "PCS_NAD27_Utah_North"},
1084     {32043, "PCS_NAD27_Utah_Central"},
1085     {32044, "PCS_NAD27_Utah_South"},
1086     {32045, "PCS_NAD27_Vermont"},
1087     {32046, "PCS_NAD27_Virginia_North"},
1088     {32047, "PCS_NAD27_Virginia_South"},
1089     {32048, "PCS_NAD27_Washington_North"},
1090     {32049, "PCS_NAD27_Washington_South"},
1091     {32050, "PCS_NAD27_West_Virginia_N"},
1092     {32051, "PCS_NAD27_West_Virginia_S"},
1093     {32052, "PCS_NAD27_Wisconsin_North"},
1094     {32053, "PCS_NAD27_Wisconsin_Cen"},
1095     {32054, "PCS_NAD27_Wisconsin_South"},
1096     {32055, "PCS_NAD27_Wyoming_East"},
1097     {32056, "PCS_NAD27_Wyoming_E_Cen"},
1098     {32057, "PCS_NAD27_Wyoming_W_Cen"},
1099     {32058, "PCS_NAD27_Wyoming_West"},
1100     {32059, "PCS_NAD27_Puerto_Rico"},
1101     {32060, "PCS_NAD27_St_Croix"},
1102     {32100, "PCS_NAD83_Montana"},
1103     {32104, "PCS_NAD83_Nebraska"},
1104     {32107, "PCS_NAD83_Nevada_East"},
1105     {32108, "PCS_NAD83_Nevada_Central"},
1106     {32109, "PCS_NAD83_Nevada_West"},
1107     {32110, "PCS_NAD83_New_Hampshire"},
1108     {32111, "PCS_NAD83_New_Jersey"},
1109     {32112, "PCS_NAD83_New_Mexico_East"},
1110     {32113, "PCS_NAD83_New_Mexico_Cent"},
1111     {32114, "PCS_NAD83_New_Mexico_West"},
1112     {32115, "PCS_NAD83_New_York_East"},
1113     {32116, "PCS_NAD83_New_York_Central"},
1114     {32117, "PCS_NAD83_New_York_West"},
1115     {32118, "PCS_NAD83_New_York_Long_Is"},
1116     {32119, "PCS_NAD83_North_Carolina"},
1117     {32120, "PCS_NAD83_North_Dakota_N"},
1118     {32121, "PCS_NAD83_North_Dakota_S"},
1119     {32122, "PCS_NAD83_Ohio_North"},
1120     {32123, "PCS_NAD83_Ohio_South"},
1121     {32124, "PCS_NAD83_Oklahoma_North"},
1122     {32125, "PCS_NAD83_Oklahoma_South"},
1123     {32126, "PCS_NAD83_Oregon_North"},
1124     {32127, "PCS_NAD83_Oregon_South"},
1125     {32128, "PCS_NAD83_Pennsylvania_N"},
1126     {32129, "PCS_NAD83_Pennsylvania_S"},
1127     {32130, "PCS_NAD83_Rhode_Island"},
1128     {32133, "PCS_NAD83_South_Carolina"},
1129     {32134, "PCS_NAD83_South_Dakota_N"},
1130     {32135, "PCS_NAD83_South_Dakota_S"},
1131     {32136, "PCS_NAD83_Tennessee"},
1132     {32137, "PCS_NAD83_Texas_North"},
1133     {32138, "PCS_NAD83_Texas_North_Cen"},
1134     {32139, "PCS_NAD83_Texas_Central"},
1135     {32140, "PCS_NAD83_Texas_South_Cen"},
1136     {32141, "PCS_NAD83_Texas_South"},
1137     {32142, "PCS_NAD83_Utah_North"},
1138     {32143, "PCS_NAD83_Utah_Central"},
1139     {32144, "PCS_NAD83_Utah_South"},
1140     {32145, "PCS_NAD83_Vermont"},
1141     {32146, "PCS_NAD83_Virginia_North"},
1142     {32147, "PCS_NAD83_Virginia_South"},
1143     {32148, "PCS_NAD83_Washington_North"},
1144     {32149, "PCS_NAD83_Washington_South"},
1145     {32150, "PCS_NAD83_West_Virginia_N"},
1146     {32151, "PCS_NAD83_West_Virginia_S"},
1147     {32152, "PCS_NAD83_Wisconsin_North"},
1148     {32153, "PCS_NAD83_Wisconsin_Cen"},
1149     {32154, "PCS_NAD83_Wisconsin_South"},
1150     {32155, "PCS_NAD83_Wyoming_East"},
1151     {32156, "PCS_NAD83_Wyoming_E_Cen"},
1152     {32157, "PCS_NAD83_Wyoming_W_Cen"},
1153     {32158, "PCS_NAD83_Wyoming_West"},
1154     {32161, "PCS_NAD83_Puerto_Rico_Virgin_Is"},
1155     {32201, "PCS_WGS72_UTM_zone_1N"},
1156     {32202, "PCS_WGS72_UTM_zone_2N"},
1157     {32203, "PCS_WGS72_UTM_zone_3N"},
1158     {32204, "PCS_WGS72_UTM_zone_4N"},
1159     {32205, "PCS_WGS72_UTM_zone_5N"},
1160     {32206, "PCS_WGS72_UTM_zone_6N"},
1161     {32207, "PCS_WGS72_UTM_zone_7N"},
1162     {32208, "PCS_WGS72_UTM_zone_8N"},
1163     {32209, "PCS_WGS72_UTM_zone_9N"},
1164     {32210, "PCS_WGS72_UTM_zone_10N"},
1165     {32211, "PCS_WGS72_UTM_zone_11N"},
1166     {32212, "PCS_WGS72_UTM_zone_12N"},
1167     {32213, "PCS_WGS72_UTM_zone_13N"},
1168     {32214, "PCS_WGS72_UTM_zone_14N"},
1169     {32215, "PCS_WGS72_UTM_zone_15N"},
1170     {32216, "PCS_WGS72_UTM_zone_16N"},
1171     {32217, "PCS_WGS72_UTM_zone_17N"},
1172     {32218, "PCS_WGS72_UTM_zone_18N"},
1173     {32219, "PCS_WGS72_UTM_zone_19N"},
1174     {32220, "PCS_WGS72_UTM_zone_20N"},
1175     {32221, "PCS_WGS72_UTM_zone_21N"},
1176     {32222, "PCS_WGS72_UTM_zone_22N"},
1177     {32223, "PCS_WGS72_UTM_zone_23N"},
1178     {32224, "PCS_WGS72_UTM_zone_24N"},
1179     {32225, "PCS_WGS72_UTM_zone_25N"},
1180     {32226, "PCS_WGS72_UTM_zone_26N"},
1181     {32227, "PCS_WGS72_UTM_zone_27N"},
1182     {32228, "PCS_WGS72_UTM_zone_28N"},
1183     {32229, "PCS_WGS72_UTM_zone_29N"},
1184     {32230, "PCS_WGS72_UTM_zone_30N"},
1185     {32231, "PCS_WGS72_UTM_zone_31N"},
1186     {32232, "PCS_WGS72_UTM_zone_32N"},
1187     {32233, "PCS_WGS72_UTM_zone_33N"},
1188     {32234, "PCS_WGS72_UTM_zone_34N"},
1189     {32235, "PCS_WGS72_UTM_zone_35N"},
1190     {32236, "PCS_WGS72_UTM_zone_36N"},
1191     {32237, "PCS_WGS72_UTM_zone_37N"},
1192     {32238, "PCS_WGS72_UTM_zone_38N"},
1193     {32239, "PCS_WGS72_UTM_zone_39N"},
1194     {32240, "PCS_WGS72_UTM_zone_40N"},
1195     {32241, "PCS_WGS72_UTM_zone_41N"},
1196     {32242, "PCS_WGS72_UTM_zone_42N"},
1197     {32243, "PCS_WGS72_UTM_zone_43N"},
1198     {32244, "PCS_WGS72_UTM_zone_44N"},
1199     {32245, "PCS_WGS72_UTM_zone_45N"},
1200     {32246, "PCS_WGS72_UTM_zone_46N"},
1201     {32247, "PCS_WGS72_UTM_zone_47N"},
1202     {32248, "PCS_WGS72_UTM_zone_48N"},
1203     {32249, "PCS_WGS72_UTM_zone_49N"},
1204     {32250, "PCS_WGS72_UTM_zone_50N"},
1205     {32251, "PCS_WGS72_UTM_zone_51N"},
1206     {32252, "PCS_WGS72_UTM_zone_52N"},
1207     {32253, "PCS_WGS72_UTM_zone_53N"},
1208     {32254, "PCS_WGS72_UTM_zone_54N"},
1209     {32255, "PCS_WGS72_UTM_zone_55N"},
1210     {32256, "PCS_WGS72_UTM_zone_56N"},
1211     {32257, "PCS_WGS72_UTM_zone_57N"},
1212     {32258, "PCS_WGS72_UTM_zone_58N"},
1213     {32259, "PCS_WGS72_UTM_zone_59N"},
1214     {32260, "PCS_WGS72_UTM_zone_60N"},
1215     {32301, "PCS_WGS72_UTM_zone_1S"},
1216     {32302, "PCS_WGS72_UTM_zone_2S"},
1217     {32303, "PCS_WGS72_UTM_zone_3S"},
1218     {32304, "PCS_WGS72_UTM_zone_4S"},
1219     {32305, "PCS_WGS72_UTM_zone_5S"},
1220     {32306, "PCS_WGS72_UTM_zone_6S"},
1221     {32307, "PCS_WGS72_UTM_zone_7S"},
1222     {32308, "PCS_WGS72_UTM_zone_8S"},
1223     {32309, "PCS_WGS72_UTM_zone_9S"},
1224     {32310, "PCS_WGS72_UTM_zone_10S"},
1225     {32311, "PCS_WGS72_UTM_zone_11S"},
1226     {32312, "PCS_WGS72_UTM_zone_12S"},
1227     {32313, "PCS_WGS72_UTM_zone_13S"},
1228     {32314, "PCS_WGS72_UTM_zone_14S"},
1229     {32315, "PCS_WGS72_UTM_zone_15S"},
1230     {32316, "PCS_WGS72_UTM_zone_16S"},
1231     {32317, "PCS_WGS72_UTM_zone_17S"},
1232     {32318, "PCS_WGS72_UTM_zone_18S"},
1233     {32319, "PCS_WGS72_UTM_zone_19S"},
1234     {32320, "PCS_WGS72_UTM_zone_20S"},
1235     {32321, "PCS_WGS72_UTM_zone_21S"},
1236     {32322, "PCS_WGS72_UTM_zone_22S"},
1237     {32323, "PCS_WGS72_UTM_zone_23S"},
1238     {32324, "PCS_WGS72_UTM_zone_24S"},
1239     {32325, "PCS_WGS72_UTM_zone_25S"},
1240     {32326, "PCS_WGS72_UTM_zone_26S"},
1241     {32327, "PCS_WGS72_UTM_zone_27S"},
1242     {32328, "PCS_WGS72_UTM_zone_28S"},
1243     {32329, "PCS_WGS72_UTM_zone_29S"},
1244     {32330, "PCS_WGS72_UTM_zone_30S"},
1245     {32331, "PCS_WGS72_UTM_zone_31S"},
1246     {32332, "PCS_WGS72_UTM_zone_32S"},
1247     {32333, "PCS_WGS72_UTM_zone_33S"},
1248     {32334, "PCS_WGS72_UTM_zone_34S"},
1249     {32335, "PCS_WGS72_UTM_zone_35S"},
1250     {32336, "PCS_WGS72_UTM_zone_36S"},
1251     {32337, "PCS_WGS72_UTM_zone_37S"},
1252     {32338, "PCS_WGS72_UTM_zone_38S"},
1253     {32339, "PCS_WGS72_UTM_zone_39S"},
1254     {32340, "PCS_WGS72_UTM_zone_40S"},
1255     {32341, "PCS_WGS72_UTM_zone_41S"},
1256     {32342, "PCS_WGS72_UTM_zone_42S"},
1257     {32343, "PCS_WGS72_UTM_zone_43S"},
1258     {32344, "PCS_WGS72_UTM_zone_44S"},
1259     {32345, "PCS_WGS72_UTM_zone_45S"},
1260     {32346, "PCS_WGS72_UTM_zone_46S"},
1261     {32347, "PCS_WGS72_UTM_zone_47S"},
1262     {32348, "PCS_WGS72_UTM_zone_48S"},
1263     {32349, "PCS_WGS72_UTM_zone_49S"},
1264     {32350, "PCS_WGS72_UTM_zone_50S"},
1265     {32351, "PCS_WGS72_UTM_zone_51S"},
1266     {32352, "PCS_WGS72_UTM_zone_52S"},
1267     {32353, "PCS_WGS72_UTM_zone_53S"},
1268     {32354, "PCS_WGS72_UTM_zone_54S"},
1269     {32355, "PCS_WGS72_UTM_zone_55S"},
1270     {32356, "PCS_WGS72_UTM_zone_56S"},
1271     {32357, "PCS_WGS72_UTM_zone_57S"},
1272     {32358, "PCS_WGS72_UTM_zone_58S"},
1273     {32359, "PCS_WGS72_UTM_zone_59S"},
1274     {32360, "PCS_WGS72_UTM_zone_60S"},
1275     {32401, "PCS_WGS72BE_UTM_zone_1N"},
1276     {32402, "PCS_WGS72BE_UTM_zone_2N"},
1277     {32403, "PCS_WGS72BE_UTM_zone_3N"},
1278     {32404, "PCS_WGS72BE_UTM_zone_4N"},
1279     {32405, "PCS_WGS72BE_UTM_zone_5N"},
1280     {32406, "PCS_WGS72BE_UTM_zone_6N"},
1281     {32407, "PCS_WGS72BE_UTM_zone_7N"},
1282     {32408, "PCS_WGS72BE_UTM_zone_8N"},
1283     {32409, "PCS_WGS72BE_UTM_zone_9N"},
1284     {32410, "PCS_WGS72BE_UTM_zone_10N"},
1285     {32411, "PCS_WGS72BE_UTM_zone_11N"},
1286     {32412, "PCS_WGS72BE_UTM_zone_12N"},
1287     {32413, "PCS_WGS72BE_UTM_zone_13N"},
1288     {32414, "PCS_WGS72BE_UTM_zone_14N"},
1289     {32415, "PCS_WGS72BE_UTM_zone_15N"},
1290     {32416, "PCS_WGS72BE_UTM_zone_16N"},
1291     {32417, "PCS_WGS72BE_UTM_zone_17N"},
1292     {32418, "PCS_WGS72BE_UTM_zone_18N"},
1293     {32419, "PCS_WGS72BE_UTM_zone_19N"},
1294     {32420, "PCS_WGS72BE_UTM_zone_20N"},
1295     {32421, "PCS_WGS72BE_UTM_zone_21N"},
1296     {32422, "PCS_WGS72BE_UTM_zone_22N"},
1297     {32423, "PCS_WGS72BE_UTM_zone_23N"},
1298     {32424, "PCS_WGS72BE_UTM_zone_24N"},
1299     {32425, "PCS_WGS72BE_UTM_zone_25N"},
1300     {32426, "PCS_WGS72BE_UTM_zone_26N"},
1301     {32427, "PCS_WGS72BE_UTM_zone_27N"},
1302     {32428, "PCS_WGS72BE_UTM_zone_28N"},
1303     {32429, "PCS_WGS72BE_UTM_zone_29N"},
1304     {32430, "PCS_WGS72BE_UTM_zone_30N"},
1305     {32431, "PCS_WGS72BE_UTM_zone_31N"},
1306     {32432, "PCS_WGS72BE_UTM_zone_32N"},
1307     {32433, "PCS_WGS72BE_UTM_zone_33N"},
1308     {32434, "PCS_WGS72BE_UTM_zone_34N"},
1309     {32435, "PCS_WGS72BE_UTM_zone_35N"},
1310     {32436, "PCS_WGS72BE_UTM_zone_36N"},
1311     {32437, "PCS_WGS72BE_UTM_zone_37N"},
1312     {32438, "PCS_WGS72BE_UTM_zone_38N"},
1313     {32439, "PCS_WGS72BE_UTM_zone_39N"},
1314     {32440, "PCS_WGS72BE_UTM_zone_40N"},
1315     {32441, "PCS_WGS72BE_UTM_zone_41N"},
1316     {32442, "PCS_WGS72BE_UTM_zone_42N"},
1317     {32443, "PCS_WGS72BE_UTM_zone_43N"},
1318     {32444, "PCS_WGS72BE_UTM_zone_44N"},
1319     {32445, "PCS_WGS72BE_UTM_zone_45N"},
1320     {32446, "PCS_WGS72BE_UTM_zone_46N"},
1321     {32447, "PCS_WGS72BE_UTM_zone_47N"},
1322     {32448, "PCS_WGS72BE_UTM_zone_48N"},
1323     {32449, "PCS_WGS72BE_UTM_zone_49N"},
1324     {32450, "PCS_WGS72BE_UTM_zone_50N"},
1325     {32451, "PCS_WGS72BE_UTM_zone_51N"},
1326     {32452, "PCS_WGS72BE_UTM_zone_52N"},
1327     {32453, "PCS_WGS72BE_UTM_zone_53N"},
1328     {32454, "PCS_WGS72BE_UTM_zone_54N"},
1329     {32455, "PCS_WGS72BE_UTM_zone_55N"},
1330     {32456, "PCS_WGS72BE_UTM_zone_56N"},
1331     {32457, "PCS_WGS72BE_UTM_zone_57N"},
1332     {32458, "PCS_WGS72BE_UTM_zone_58N"},
1333     {32459, "PCS_WGS72BE_UTM_zone_59N"},
1334     {32460, "PCS_WGS72BE_UTM_zone_60N"},
1335     {32501, "PCS_WGS72BE_UTM_zone_1S"},
1336     {32502, "PCS_WGS72BE_UTM_zone_2S"},
1337     {32503, "PCS_WGS72BE_UTM_zone_3S"},
1338     {32504, "PCS_WGS72BE_UTM_zone_4S"},
1339     {32505, "PCS_WGS72BE_UTM_zone_5S"},
1340     {32506, "PCS_WGS72BE_UTM_zone_6S"},
1341     {32507, "PCS_WGS72BE_UTM_zone_7S"},
1342     {32508, "PCS_WGS72BE_UTM_zone_8S"},
1343     {32509, "PCS_WGS72BE_UTM_zone_9S"},
1344     {32510, "PCS_WGS72BE_UTM_zone_10S"},
1345     {32511, "PCS_WGS72BE_UTM_zone_11S"},
1346     {32512, "PCS_WGS72BE_UTM_zone_12S"},
1347     {32513, "PCS_WGS72BE_UTM_zone_13S"},
1348     {32514, "PCS_WGS72BE_UTM_zone_14S"},
1349     {32515, "PCS_WGS72BE_UTM_zone_15S"},
1350     {32516, "PCS_WGS72BE_UTM_zone_16S"},
1351     {32517, "PCS_WGS72BE_UTM_zone_17S"},
1352     {32518, "PCS_WGS72BE_UTM_zone_18S"},
1353     {32519, "PCS_WGS72BE_UTM_zone_19S"},
1354     {32520, "PCS_WGS72BE_UTM_zone_20S"},
1355     {32521, "PCS_WGS72BE_UTM_zone_21S"},
1356     {32522, "PCS_WGS72BE_UTM_zone_22S"},
1357     {32523, "PCS_WGS72BE_UTM_zone_23S"},
1358     {32524, "PCS_WGS72BE_UTM_zone_24S"},
1359     {32525, "PCS_WGS72BE_UTM_zone_25S"},
1360     {32526, "PCS_WGS72BE_UTM_zone_26S"},
1361     {32527, "PCS_WGS72BE_UTM_zone_27S"},
1362     {32528, "PCS_WGS72BE_UTM_zone_28S"},
1363     {32529, "PCS_WGS72BE_UTM_zone_29S"},
1364     {32530, "PCS_WGS72BE_UTM_zone_30S"},
1365     {32531, "PCS_WGS72BE_UTM_zone_31S"},
1366     {32532, "PCS_WGS72BE_UTM_zone_32S"},
1367     {32533, "PCS_WGS72BE_UTM_zone_33S"},
1368     {32534, "PCS_WGS72BE_UTM_zone_34S"},
1369     {32535, "PCS_WGS72BE_UTM_zone_35S"},
1370     {32536, "PCS_WGS72BE_UTM_zone_36S"},
1371     {32537, "PCS_WGS72BE_UTM_zone_37S"},
1372     {32538, "PCS_WGS72BE_UTM_zone_38S"},
1373     {32539, "PCS_WGS72BE_UTM_zone_39S"},
1374     {32540, "PCS_WGS72BE_UTM_zone_40S"},
1375     {32541, "PCS_WGS72BE_UTM_zone_41S"},
1376     {32542, "PCS_WGS72BE_UTM_zone_42S"},
1377     {32543, "PCS_WGS72BE_UTM_zone_43S"},
1378     {32544, "PCS_WGS72BE_UTM_zone_44S"},
1379     {32545, "PCS_WGS72BE_UTM_zone_45S"},
1380     {32546, "PCS_WGS72BE_UTM_zone_46S"},
1381     {32547, "PCS_WGS72BE_UTM_zone_47S"},
1382     {32548, "PCS_WGS72BE_UTM_zone_48S"},
1383     {32549, "PCS_WGS72BE_UTM_zone_49S"},
1384     {32550, "PCS_WGS72BE_UTM_zone_50S"},
1385     {32551, "PCS_WGS72BE_UTM_zone_51S"},
1386     {32552, "PCS_WGS72BE_UTM_zone_52S"},
1387     {32553, "PCS_WGS72BE_UTM_zone_53S"},
1388     {32554, "PCS_WGS72BE_UTM_zone_54S"},
1389     {32555, "PCS_WGS72BE_UTM_zone_55S"},
1390     {32556, "PCS_WGS72BE_UTM_zone_56S"},
1391     {32557, "PCS_WGS72BE_UTM_zone_57S"},
1392     {32558, "PCS_WGS72BE_UTM_zone_58S"},
1393     {32559, "PCS_WGS72BE_UTM_zone_59S"},
1394     {32560, "PCS_WGS72BE_UTM_zone_60S"},
1395     {32601, "PCS_WGS84_UTM_zone_1N"},
1396     {32602, "PCS_WGS84_UTM_zone_2N"},
1397     {32603, "PCS_WGS84_UTM_zone_3N"},
1398     {32604, "PCS_WGS84_UTM_zone_4N"},
1399     {32605, "PCS_WGS84_UTM_zone_5N"},
1400     {32606, "PCS_WGS84_UTM_zone_6N"},
1401     {32607, "PCS_WGS84_UTM_zone_7N"},
1402     {32608, "PCS_WGS84_UTM_zone_8N"},
1403     {32609, "PCS_WGS84_UTM_zone_9N"},
1404     {32610, "PCS_WGS84_UTM_zone_10N"},
1405     {32611, "PCS_WGS84_UTM_zone_11N"},
1406     {32612, "PCS_WGS84_UTM_zone_12N"},
1407     {32613, "PCS_WGS84_UTM_zone_13N"},
1408     {32614, "PCS_WGS84_UTM_zone_14N"},
1409     {32615, "PCS_WGS84_UTM_zone_15N"},
1410     {32616, "PCS_WGS84_UTM_zone_16N"},
1411     {32617, "PCS_WGS84_UTM_zone_17N"},
1412     {32618, "PCS_WGS84_UTM_zone_18N"},
1413     {32619, "PCS_WGS84_UTM_zone_19N"},
1414     {32620, "PCS_WGS84_UTM_zone_20N"},
1415     {32621, "PCS_WGS84_UTM_zone_21N"},
1416     {32622, "PCS_WGS84_UTM_zone_22N"},
1417     {32623, "PCS_WGS84_UTM_zone_23N"},
1418     {32624, "PCS_WGS84_UTM_zone_24N"},
1419     {32625, "PCS_WGS84_UTM_zone_25N"},
1420     {32626, "PCS_WGS84_UTM_zone_26N"},
1421     {32627, "PCS_WGS84_UTM_zone_27N"},
1422     {32628, "PCS_WGS84_UTM_zone_28N"},
1423     {32629, "PCS_WGS84_UTM_zone_29N"},
1424     {32630, "PCS_WGS84_UTM_zone_30N"},
1425     {32631, "PCS_WGS84_UTM_zone_31N"},
1426     {32632, "PCS_WGS84_UTM_zone_32N"},
1427     {32633, "PCS_WGS84_UTM_zone_33N"},
1428     {32634, "PCS_WGS84_UTM_zone_34N"},
1429     {32635, "PCS_WGS84_UTM_zone_35N"},
1430     {32636, "PCS_WGS84_UTM_zone_36N"},
1431     {32637, "PCS_WGS84_UTM_zone_37N"},
1432     {32638, "PCS_WGS84_UTM_zone_38N"},
1433     {32639, "PCS_WGS84_UTM_zone_39N"},
1434     {32640, "PCS_WGS84_UTM_zone_40N"},
1435     {32641, "PCS_WGS84_UTM_zone_41N"},
1436     {32642, "PCS_WGS84_UTM_zone_42N"},
1437     {32643, "PCS_WGS84_UTM_zone_43N"},
1438     {32644, "PCS_WGS84_UTM_zone_44N"},
1439     {32645, "PCS_WGS84_UTM_zone_45N"},
1440     {32646, "PCS_WGS84_UTM_zone_46N"},
1441     {32647, "PCS_WGS84_UTM_zone_47N"},
1442     {32648, "PCS_WGS84_UTM_zone_48N"},
1443     {32649, "PCS_WGS84_UTM_zone_49N"},
1444     {32650, "PCS_WGS84_UTM_zone_50N"},
1445     {32651, "PCS_WGS84_UTM_zone_51N"},
1446     {32652, "PCS_WGS84_UTM_zone_52N"},
1447     {32653, "PCS_WGS84_UTM_zone_53N"},
1448     {32654, "PCS_WGS84_UTM_zone_54N"},
1449     {32655, "PCS_WGS84_UTM_zone_55N"},
1450     {32656, "PCS_WGS84_UTM_zone_56N"},
1451     {32657, "PCS_WGS84_UTM_zone_57N"},
1452     {32658, "PCS_WGS84_UTM_zone_58N"},
1453     {32659, "PCS_WGS84_UTM_zone_59N"},
1454     {32660, "PCS_WGS84_UTM_zone_60N"},
1455     {32701, "PCS_WGS84_UTM_zone_1S"},
1456     {32702, "PCS_WGS84_UTM_zone_2S"},
1457     {32703, "PCS_WGS84_UTM_zone_3S"},
1458     {32704, "PCS_WGS84_UTM_zone_4S"},
1459     {32705, "PCS_WGS84_UTM_zone_5S"},
1460     {32706, "PCS_WGS84_UTM_zone_6S"},
1461     {32707, "PCS_WGS84_UTM_zone_7S"},
1462     {32708, "PCS_WGS84_UTM_zone_8S"},
1463     {32709, "PCS_WGS84_UTM_zone_9S"},
1464     {32710, "PCS_WGS84_UTM_zone_10S"},
1465     {32711, "PCS_WGS84_UTM_zone_11S"},
1466     {32712, "PCS_WGS84_UTM_zone_12S"},
1467     {32713, "PCS_WGS84_UTM_zone_13S"},
1468     {32714, "PCS_WGS84_UTM_zone_14S"},
1469     {32715, "PCS_WGS84_UTM_zone_15S"},
1470     {32716, "PCS_WGS84_UTM_zone_16S"},
1471     {32717, "PCS_WGS84_UTM_zone_17S"},
1472     {32718, "PCS_WGS84_UTM_zone_18S"},
1473     {32719, "PCS_WGS84_UTM_zone_19S"},
1474     {32720, "PCS_WGS84_UTM_zone_20S"},
1475     {32721, "PCS_WGS84_UTM_zone_21S"},
1476     {32722, "PCS_WGS84_UTM_zone_22S"},
1477     {32723, "PCS_WGS84_UTM_zone_23S"},
1478     {32724, "PCS_WGS84_UTM_zone_24S"},
1479     {32725, "PCS_WGS84_UTM_zone_25S"},
1480     {32726, "PCS_WGS84_UTM_zone_26S"},
1481     {32727, "PCS_WGS84_UTM_zone_27S"},
1482     {32728, "PCS_WGS84_UTM_zone_28S"},
1483     {32729, "PCS_WGS84_UTM_zone_29S"},
1484     {32730, "PCS_WGS84_UTM_zone_30S"},
1485     {32731, "PCS_WGS84_UTM_zone_31S"},
1486     {32732, "PCS_WGS84_UTM_zone_32S"},
1487     {32733, "PCS_WGS84_UTM_zone_33S"},
1488     {32734, "PCS_WGS84_UTM_zone_34S"},
1489     {32735, "PCS_WGS84_UTM_zone_35S"},
1490     {32736, "PCS_WGS84_UTM_zone_36S"},
1491     {32737, "PCS_WGS84_UTM_zone_37S"},
1492     {32738, "PCS_WGS84_UTM_zone_38S"},
1493     {32739, "PCS_WGS84_UTM_zone_39S"},
1494     {32740, "PCS_WGS84_UTM_zone_40S"},
1495     {32741, "PCS_WGS84_UTM_zone_41S"},
1496     {32742, "PCS_WGS84_UTM_zone_42S"},
1497     {32743, "PCS_WGS84_UTM_zone_43S"},
1498     {32744, "PCS_WGS84_UTM_zone_44S"},
1499     {32745, "PCS_WGS84_UTM_zone_45S"},
1500     {32746, "PCS_WGS84_UTM_zone_46S"},
1501     {32747, "PCS_WGS84_UTM_zone_47S"},
1502     {32748, "PCS_WGS84_UTM_zone_48S"},
1503     {32749, "PCS_WGS84_UTM_zone_49S"},
1504     {32750, "PCS_WGS84_UTM_zone_50S"},
1505     {32751, "PCS_WGS84_UTM_zone_51S"},
1506     {32752, "PCS_WGS84_UTM_zone_52S"},
1507     {32753, "PCS_WGS84_UTM_zone_53S"},
1508     {32754, "PCS_WGS84_UTM_zone_54S"},
1509     {32755, "PCS_WGS84_UTM_zone_55S"},
1510     {32756, "PCS_WGS84_UTM_zone_56S"},
1511     {32757, "PCS_WGS84_UTM_zone_57S"},
1512     {32758, "PCS_WGS84_UTM_zone_58S"},
1513     {32759, "PCS_WGS84_UTM_zone_59S"},
1514     {32760, "PCS_WGS84_UTM_zone_60S"}
1515 };
1516
1517 static const TiffGeoTagKeyName tiff_projection_codes[] = {
1518     {10101, "Proj_Alabama_CS27_East"},
1519     {10102, "Proj_Alabama_CS27_West"},
1520     {10131, "Proj_Alabama_CS83_East"},
1521     {10132, "Proj_Alabama_CS83_West"},
1522     {10201, "Proj_Arizona_Coordinate_System_east"},
1523     {10202, "Proj_Arizona_Coordinate_System_Central"},
1524     {10203, "Proj_Arizona_Coordinate_System_west"},
1525     {10231, "Proj_Arizona_CS83_east"},
1526     {10232, "Proj_Arizona_CS83_Central"},
1527     {10233, "Proj_Arizona_CS83_west"},
1528     {10301, "Proj_Arkansas_CS27_North"},
1529     {10302, "Proj_Arkansas_CS27_South"},
1530     {10331, "Proj_Arkansas_CS83_North"},
1531     {10332, "Proj_Arkansas_CS83_South"},
1532     {10401, "Proj_California_CS27_I"},
1533     {10402, "Proj_California_CS27_II"},
1534     {10403, "Proj_California_CS27_III"},
1535     {10404, "Proj_California_CS27_IV"},
1536     {10405, "Proj_California_CS27_V"},
1537     {10406, "Proj_California_CS27_VI"},
1538     {10407, "Proj_California_CS27_VII"},
1539     {10431, "Proj_California_CS83_1"},
1540     {10432, "Proj_California_CS83_2"},
1541     {10433, "Proj_California_CS83_3"},
1542     {10434, "Proj_California_CS83_4"},
1543     {10435, "Proj_California_CS83_5"},
1544     {10436, "Proj_California_CS83_6"},
1545     {10501, "Proj_Colorado_CS27_North"},
1546     {10502, "Proj_Colorado_CS27_Central"},
1547     {10503, "Proj_Colorado_CS27_South"},
1548     {10531, "Proj_Colorado_CS83_North"},
1549     {10532, "Proj_Colorado_CS83_Central"},
1550     {10533, "Proj_Colorado_CS83_South"},
1551     {10600, "Proj_Connecticut_CS27"},
1552     {10630, "Proj_Connecticut_CS83"},
1553     {10700, "Proj_Delaware_CS27"},
1554     {10730, "Proj_Delaware_CS83"},
1555     {10901, "Proj_Florida_CS27_East"},
1556     {10902, "Proj_Florida_CS27_West"},
1557     {10903, "Proj_Florida_CS27_North"},
1558     {10931, "Proj_Florida_CS83_East"},
1559     {10932, "Proj_Florida_CS83_West"},
1560     {10933, "Proj_Florida_CS83_North"},
1561     {11001, "Proj_Georgia_CS27_East"},
1562     {11002, "Proj_Georgia_CS27_West"},
1563     {11031, "Proj_Georgia_CS83_East"},
1564     {11032, "Proj_Georgia_CS83_West"},
1565     {11101, "Proj_Idaho_CS27_East"},
1566     {11102, "Proj_Idaho_CS27_Central"},
1567     {11103, "Proj_Idaho_CS27_West"},
1568     {11131, "Proj_Idaho_CS83_East"},
1569     {11132, "Proj_Idaho_CS83_Central"},
1570     {11133, "Proj_Idaho_CS83_West"},
1571     {11201, "Proj_Illinois_CS27_East"},
1572     {11202, "Proj_Illinois_CS27_West"},
1573     {11231, "Proj_Illinois_CS83_East"},
1574     {11232, "Proj_Illinois_CS83_West"},
1575     {11301, "Proj_Indiana_CS27_East"},
1576     {11302, "Proj_Indiana_CS27_West"},
1577     {11331, "Proj_Indiana_CS83_East"},
1578     {11332, "Proj_Indiana_CS83_West"},
1579     {11401, "Proj_Iowa_CS27_North"},
1580     {11402, "Proj_Iowa_CS27_South"},
1581     {11431, "Proj_Iowa_CS83_North"},
1582     {11432, "Proj_Iowa_CS83_South"},
1583     {11501, "Proj_Kansas_CS27_North"},
1584     {11502, "Proj_Kansas_CS27_South"},
1585     {11531, "Proj_Kansas_CS83_North"},
1586     {11532, "Proj_Kansas_CS83_South"},
1587     {11601, "Proj_Kentucky_CS27_North"},
1588     {11602, "Proj_Kentucky_CS27_South"},
1589     {11631, "Proj_Kentucky_CS83_North"},
1590     {11632, "Proj_Kentucky_CS83_South"},
1591     {11701, "Proj_Louisiana_CS27_North"},
1592     {11702, "Proj_Louisiana_CS27_South"},
1593     {11731, "Proj_Louisiana_CS83_North"},
1594     {11732, "Proj_Louisiana_CS83_South"},
1595     {11801, "Proj_Maine_CS27_East"},
1596     {11802, "Proj_Maine_CS27_West"},
1597     {11831, "Proj_Maine_CS83_East"},
1598     {11832, "Proj_Maine_CS83_West"},
1599     {11900, "Proj_Maryland_CS27"},
1600     {11930, "Proj_Maryland_CS83"},
1601     {12001, "Proj_Massachusetts_CS27_Mainland"},
1602     {12002, "Proj_Massachusetts_CS27_Island"},
1603     {12031, "Proj_Massachusetts_CS83_Mainland"},
1604     {12032, "Proj_Massachusetts_CS83_Island"},
1605     {12101, "Proj_Michigan_State_Plane_East"},
1606     {12102, "Proj_Michigan_State_Plane_Old_Central"},
1607     {12103, "Proj_Michigan_State_Plane_West"},
1608     {12111, "Proj_Michigan_CS27_North"},
1609     {12112, "Proj_Michigan_CS27_Central"},
1610     {12113, "Proj_Michigan_CS27_South"},
1611     {12141, "Proj_Michigan_CS83_North"},
1612     {12142, "Proj_Michigan_CS83_Central"},
1613     {12143, "Proj_Michigan_CS83_South"},
1614     {12201, "Proj_Minnesota_CS27_North"},
1615     {12202, "Proj_Minnesota_CS27_Central"},
1616     {12203, "Proj_Minnesota_CS27_South"},
1617     {12231, "Proj_Minnesota_CS83_North"},
1618     {12232, "Proj_Minnesota_CS83_Central"},
1619     {12233, "Proj_Minnesota_CS83_South"},
1620     {12301, "Proj_Mississippi_CS27_East"},
1621     {12302, "Proj_Mississippi_CS27_West"},
1622     {12331, "Proj_Mississippi_CS83_East"},
1623     {12332, "Proj_Mississippi_CS83_West"},
1624     {12401, "Proj_Missouri_CS27_East"},
1625     {12402, "Proj_Missouri_CS27_Central"},
1626     {12403, "Proj_Missouri_CS27_West"},
1627     {12431, "Proj_Missouri_CS83_East"},
1628     {12432, "Proj_Missouri_CS83_Central"},
1629     {12433, "Proj_Missouri_CS83_West"},
1630     {12501, "Proj_Montana_CS27_North"},
1631     {12502, "Proj_Montana_CS27_Central"},
1632     {12503, "Proj_Montana_CS27_South"},
1633     {12530, "Proj_Montana_CS83"},
1634     {12601, "Proj_Nebraska_CS27_North"},
1635     {12602, "Proj_Nebraska_CS27_South"},
1636     {12630, "Proj_Nebraska_CS83"},
1637     {12701, "Proj_Nevada_CS27_East"},
1638     {12702, "Proj_Nevada_CS27_Central"},
1639     {12703, "Proj_Nevada_CS27_West"},
1640     {12731, "Proj_Nevada_CS83_East"},
1641     {12732, "Proj_Nevada_CS83_Central"},
1642     {12733, "Proj_Nevada_CS83_West"},
1643     {12800, "Proj_New_Hampshire_CS27"},
1644     {12830, "Proj_New_Hampshire_CS83"},
1645     {12900, "Proj_New_Jersey_CS27"},
1646     {12930, "Proj_New_Jersey_CS83"},
1647     {13001, "Proj_New_Mexico_CS27_East"},
1648     {13002, "Proj_New_Mexico_CS27_Central"},
1649     {13003, "Proj_New_Mexico_CS27_West"},
1650     {13031, "Proj_New_Mexico_CS83_East"},
1651     {13032, "Proj_New_Mexico_CS83_Central"},
1652     {13033, "Proj_New_Mexico_CS83_West"},
1653     {13101, "Proj_New_York_CS27_East"},
1654     {13102, "Proj_New_York_CS27_Central"},
1655     {13103, "Proj_New_York_CS27_West"},
1656     {13104, "Proj_New_York_CS27_Long_Island"},
1657     {13131, "Proj_New_York_CS83_East"},
1658     {13132, "Proj_New_York_CS83_Central"},
1659     {13133, "Proj_New_York_CS83_West"},
1660     {13134, "Proj_New_York_CS83_Long_Island"},
1661     {13200, "Proj_North_Carolina_CS27"},
1662     {13230, "Proj_North_Carolina_CS83"},
1663     {13301, "Proj_North_Dakota_CS27_North"},
1664     {13302, "Proj_North_Dakota_CS27_South"},
1665     {13331, "Proj_North_Dakota_CS83_North"},
1666     {13332, "Proj_North_Dakota_CS83_South"},
1667     {13401, "Proj_Ohio_CS27_North"},
1668     {13402, "Proj_Ohio_CS27_South"},
1669     {13431, "Proj_Ohio_CS83_North"},
1670     {13432, "Proj_Ohio_CS83_South"},
1671     {13501, "Proj_Oklahoma_CS27_North"},
1672     {13502, "Proj_Oklahoma_CS27_South"},
1673     {13531, "Proj_Oklahoma_CS83_North"},
1674     {13532, "Proj_Oklahoma_CS83_South"},
1675     {13601, "Proj_Oregon_CS27_North"},
1676     {13602, "Proj_Oregon_CS27_South"},
1677     {13631, "Proj_Oregon_CS83_North"},
1678     {13632, "Proj_Oregon_CS83_South"},
1679     {13701, "Proj_Pennsylvania_CS27_North"},
1680     {13702, "Proj_Pennsylvania_CS27_South"},
1681     {13731, "Proj_Pennsylvania_CS83_North"},
1682     {13732, "Proj_Pennsylvania_CS83_South"},
1683     {13800, "Proj_Rhode_Island_CS27"},
1684     {13830, "Proj_Rhode_Island_CS83"},
1685     {13901, "Proj_South_Carolina_CS27_North"},
1686     {13902, "Proj_South_Carolina_CS27_South"},
1687     {13930, "Proj_South_Carolina_CS83"},
1688     {14001, "Proj_South_Dakota_CS27_North"},
1689     {14002, "Proj_South_Dakota_CS27_South"},
1690     {14031, "Proj_South_Dakota_CS83_North"},
1691     {14032, "Proj_South_Dakota_CS83_South"},
1692     {14100, "Proj_Tennessee_CS27"},
1693     {14130, "Proj_Tennessee_CS83"},
1694     {14201, "Proj_Texas_CS27_North"},
1695     {14202, "Proj_Texas_CS27_North_Central"},
1696     {14203, "Proj_Texas_CS27_Central"},
1697     {14204, "Proj_Texas_CS27_South_Central"},
1698     {14205, "Proj_Texas_CS27_South"},
1699     {14231, "Proj_Texas_CS83_North"},
1700     {14232, "Proj_Texas_CS83_North_Central"},
1701     {14233, "Proj_Texas_CS83_Central"},
1702     {14234, "Proj_Texas_CS83_South_Central"},
1703     {14235, "Proj_Texas_CS83_South"},
1704     {14301, "Proj_Utah_CS27_North"},
1705     {14302, "Proj_Utah_CS27_Central"},
1706     {14303, "Proj_Utah_CS27_South"},
1707     {14331, "Proj_Utah_CS83_North"},
1708     {14332, "Proj_Utah_CS83_Central"},
1709     {14333, "Proj_Utah_CS83_South"},
1710     {14400, "Proj_Vermont_CS27"},
1711     {14430, "Proj_Vermont_CS83"},
1712     {14501, "Proj_Virginia_CS27_North"},
1713     {14502, "Proj_Virginia_CS27_South"},
1714     {14531, "Proj_Virginia_CS83_North"},
1715     {14532, "Proj_Virginia_CS83_South"},
1716     {14601, "Proj_Washington_CS27_North"},
1717     {14602, "Proj_Washington_CS27_South"},
1718     {14631, "Proj_Washington_CS83_North"},
1719     {14632, "Proj_Washington_CS83_South"},
1720     {14701, "Proj_West_Virginia_CS27_North"},
1721     {14702, "Proj_West_Virginia_CS27_South"},
1722     {14731, "Proj_West_Virginia_CS83_North"},
1723     {14732, "Proj_West_Virginia_CS83_South"},
1724     {14801, "Proj_Wisconsin_CS27_North"},
1725     {14802, "Proj_Wisconsin_CS27_Central"},
1726     {14803, "Proj_Wisconsin_CS27_South"},
1727     {14831, "Proj_Wisconsin_CS83_North"},
1728     {14832, "Proj_Wisconsin_CS83_Central"},
1729     {14833, "Proj_Wisconsin_CS83_South"},
1730     {14901, "Proj_Wyoming_CS27_East"},
1731     {14902, "Proj_Wyoming_CS27_East_Central"},
1732     {14903, "Proj_Wyoming_CS27_West_Central"},
1733     {14904, "Proj_Wyoming_CS27_West"},
1734     {14931, "Proj_Wyoming_CS83_East"},
1735     {14932, "Proj_Wyoming_CS83_East_Central"},
1736     {14933, "Proj_Wyoming_CS83_West_Central"},
1737     {14934, "Proj_Wyoming_CS83_West"},
1738     {15001, "Proj_Alaska_CS27_1"},
1739     {15002, "Proj_Alaska_CS27_2"},
1740     {15003, "Proj_Alaska_CS27_3"},
1741     {15004, "Proj_Alaska_CS27_4"},
1742     {15005, "Proj_Alaska_CS27_5"},
1743     {15006, "Proj_Alaska_CS27_6"},
1744     {15007, "Proj_Alaska_CS27_7"},
1745     {15008, "Proj_Alaska_CS27_8"},
1746     {15009, "Proj_Alaska_CS27_9"},
1747     {15010, "Proj_Alaska_CS27_10"},
1748     {15031, "Proj_Alaska_CS83_1"},
1749     {15032, "Proj_Alaska_CS83_2"},
1750     {15033, "Proj_Alaska_CS83_3"},
1751     {15034, "Proj_Alaska_CS83_4"},
1752     {15035, "Proj_Alaska_CS83_5"},
1753     {15036, "Proj_Alaska_CS83_6"},
1754     {15037, "Proj_Alaska_CS83_7"},
1755     {15038, "Proj_Alaska_CS83_8"},
1756     {15039, "Proj_Alaska_CS83_9"},
1757     {15040, "Proj_Alaska_CS83_10"},
1758     {15101, "Proj_Hawaii_CS27_1"},
1759     {15102, "Proj_Hawaii_CS27_2"},
1760     {15103, "Proj_Hawaii_CS27_3"},
1761     {15104, "Proj_Hawaii_CS27_4"},
1762     {15105, "Proj_Hawaii_CS27_5"},
1763     {15131, "Proj_Hawaii_CS83_1"},
1764     {15132, "Proj_Hawaii_CS83_2"},
1765     {15133, "Proj_Hawaii_CS83_3"},
1766     {15134, "Proj_Hawaii_CS83_4"},
1767     {15135, "Proj_Hawaii_CS83_5"},
1768     {15201, "Proj_Puerto_Rico_CS27"},
1769     {15202, "Proj_St_Croix"},
1770     {15230, "Proj_Puerto_Rico_Virgin_Is"},
1771     {15914, "Proj_BLM_14N_feet"},
1772     {15915, "Proj_BLM_15N_feet"},
1773     {15916, "Proj_BLM_16N_feet"},
1774     {15917, "Proj_BLM_17N_feet"},
1775     {17348, "Proj_Map_Grid_of_Australia_48"},
1776     {17349, "Proj_Map_Grid_of_Australia_49"},
1777     {17350, "Proj_Map_Grid_of_Australia_50"},
1778     {17351, "Proj_Map_Grid_of_Australia_51"},
1779     {17352, "Proj_Map_Grid_of_Australia_52"},
1780     {17353, "Proj_Map_Grid_of_Australia_53"},
1781     {17354, "Proj_Map_Grid_of_Australia_54"},
1782     {17355, "Proj_Map_Grid_of_Australia_55"},
1783     {17356, "Proj_Map_Grid_of_Australia_56"},
1784     {17357, "Proj_Map_Grid_of_Australia_57"},
1785     {17358, "Proj_Map_Grid_of_Australia_58"},
1786     {17448, "Proj_Australian_Map_Grid_48"},
1787     {17449, "Proj_Australian_Map_Grid_49"},
1788     {17450, "Proj_Australian_Map_Grid_50"},
1789     {17451, "Proj_Australian_Map_Grid_51"},
1790     {17452, "Proj_Australian_Map_Grid_52"},
1791     {17453, "Proj_Australian_Map_Grid_53"},
1792     {17454, "Proj_Australian_Map_Grid_54"},
1793     {17455, "Proj_Australian_Map_Grid_55"},
1794     {17456, "Proj_Australian_Map_Grid_56"},
1795     {17457, "Proj_Australian_Map_Grid_57"},
1796     {17458, "Proj_Australian_Map_Grid_58"},
1797     {18031, "Proj_Argentina_1"},
1798     {18032, "Proj_Argentina_2"},
1799     {18033, "Proj_Argentina_3"},
1800     {18034, "Proj_Argentina_4"},
1801     {18035, "Proj_Argentina_5"},
1802     {18036, "Proj_Argentina_6"},
1803     {18037, "Proj_Argentina_7"},
1804     {18051, "Proj_Colombia_3W"},
1805     {18052, "Proj_Colombia_Bogota"},
1806     {18053, "Proj_Colombia_3E"},
1807     {18054, "Proj_Colombia_6E"},
1808     {18072, "Proj_Egypt_Red_Belt"},
1809     {18073, "Proj_Egypt_Purple_Belt"},
1810     {18074, "Proj_Extended_Purple_Belt"},
1811     {18141, "Proj_New_Zealand_North_Island_Nat_Grid"},
1812     {18142, "Proj_New_Zealand_South_Island_Nat_Grid"},
1813     {19900, "Proj_Bahrain_Grid"},
1814     {19905, "Proj_Netherlands_E_Indies_Equatorial"},
1815     {19912, "Proj_RSO_Borneo"}
1816 };
1817
1818 #define TIFF_COORD_TRANS_OFFSET 1
1819 static const char *const tiff_coord_trans_codes[] = {
1820     "CT_TransverseMercator",
1821     "CT_TransvMercator_Modified_Alaska",
1822     "CT_ObliqueMercator",
1823     "CT_ObliqueMercator_Laborde",
1824     "CT_ObliqueMercator_Rosenmund",
1825     "CT_ObliqueMercator_Spherical",
1826     "CT_Mercator",
1827     "CT_LambertConfConic_2SP",
1828     "CT_LambertConfConic_Helmert",
1829     "CT_LambertAzimEqualArea",
1830     "CT_AlbersEqualArea",
1831     "CT_AzimuthalEquidistant",
1832     "CT_EquidistantConic",
1833     "CT_Stereographic",
1834     "CT_PolarStereographic",
1835     "CT_ObliqueStereographic",
1836     "CT_Equirectangular",
1837     "CT_CassiniSoldner",
1838     "CT_Gnomonic",
1839     "CT_MillerCylindrical",
1840     "CT_Orthographic",
1841     "CT_Polyconic",
1842     "CT_Robinson",
1843     "CT_Sinusoidal",
1844     "CT_VanDerGrinten",
1845     "CT_NewZealandMapGrid",
1846     "CT_TransvMercator_SouthOriented"
1847 };
1848
1849 #define TIFF_VERT_CS_OFFSET 5001
1850 static const char *const tiff_vert_cs_codes[] = {
1851     "VertCS_Airy_1830_ellipsoid",
1852     "VertCS_Airy_Modified_1849_ellipsoid",
1853     "VertCS_ANS_ellipsoid",
1854     "VertCS_Bessel_1841_ellipsoid",
1855     "VertCS_Bessel_Modified_ellipsoid",
1856     "VertCS_Bessel_Namibia_ellipsoid",
1857     "VertCS_Clarke_1858_ellipsoid",
1858     "VertCS_Clarke_1866_ellipsoid",
1859     "VertCS_Clarke_1880_Benoit_ellipsoid",
1860     "VertCS_Clarke_1880_IGN_ellipsoid",
1861     "VertCS_Clarke_1880_RGS_ellipsoid",
1862     "VertCS_Clarke_1880_Arc_ellipsoid",
1863     "VertCS_Clarke_1880_SGA_1922_ellipsoid",
1864     "VertCS_Everest_1830_1937_Adjustment_ellipsoid",
1865     "VertCS_Everest_1830_1967_Definition_ellipsoid",
1866     "VertCS_Everest_1830_1975_Definition_ellipsoid",
1867     "VertCS_Everest_1830_Modified_ellipsoid",
1868     "VertCS_GRS_1980_ellipsoid",
1869     "VertCS_Helmert_1906_ellipsoid",
1870     "VertCS_INS_ellipsoid",
1871     "VertCS_International_1924_ellipsoid",
1872     "VertCS_International_1967_ellipsoid",
1873     "VertCS_Krassowsky_1940_ellipsoid",
1874     "VertCS_NWL_9D_ellipsoid",
1875     "VertCS_NWL_10D_ellipsoid",
1876     "VertCS_Plessis_1817_ellipsoid",
1877     "VertCS_Struve_1860_ellipsoid",
1878     "VertCS_War_Office_ellipsoid",
1879     "VertCS_WGS_84_ellipsoid",
1880     "VertCS_GEM_10C_ellipsoid",
1881     "VertCS_OSU86F_ellipsoid",
1882     "VertCS_OSU91A_ellipsoid"
1883 };
1884
1885 #define TIFF_ORTHO_VERT_CS_OFFSET 5101
1886 static const char *const tiff_ortho_vert_cs_codes[] = {
1887     "VertCS_Newlyn",
1888     "VertCS_North_American_Vertical_Datum_1929",
1889     "VertCS_North_American_Vertical_Datum_1988",
1890     "VertCS_Yellow_Sea_1956",
1891     "VertCS_Baltic_Sea",
1892     "VertCS_Caspian_Sea"
1893 };
1894
1895 #endif