[
https://issues.apache.org/jira/browse/IMAGING-313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17429778#comment-17429778
]
Gary Lucas edited comment on IMAGING-313 at 10/17/21, 11:35 PM:
----------------------------------------------------------------
The existing Apache Commons Imaging distribution includes an example
application that opens a TIFF image file and extracts the metadata ("tags" in
the TIFF parlance) for inspection. I propose to extend the utility to include
a summary of GeoTIFF-specific tags.
GeoTIFFs are an important class of TIFF files that are used to show imagery
that has a geographic basis. They include Satellite images, aerial photographs,
digitized maps, and even some numerical data such as elevations. The GeoTIFF
standard is a well-known, though slightly complex specification.
The current example application, ReadTagsAndImages.java, prints all tags in the
TIFF file, but the GeoTIFF related information is presented as abstract
numerical values. I propose to add logic to the tag-reading application to
format some of that GeoTIFF information as human-friendly strings.
Here's an example of a numeric data file giving high-resolution elevation data
(some tags omitted). The GeoKeyDirectoryTag is essentially a dictionary giving
a guide to the content to follow. In this case, it consists of 36 integer
value. In the Summary of GeoTIFF Elements, the proposed application
interprets those integer constants as named strings.
{code:java}
Directory 0 Numeric raster data, description: Root
256 (0x100: ImageWidth): 10812 (1 Short)
257 (0x101: ImageLength): 10812 (1 Short)
[snip]
34735 (0x87af: GeoKeyDirectoryTag): 1, 1, 0, 8, 1024, 0, 1, 2, 1025, 0, 1, 1,
(36 elements)
34737 (0x87b1: GeoAsciiParamsTag): 'NAD83|' (7 ASCII)
42112 (0xa480: GDALMetadata): '<GDALMetadata>
<Item name="BandDefinitionKeyword">NONE</I
42113 (0xa481: GDALNoData): '-999999' (8 ASCII)
Summary of GeoTIFF Elements -----------------
Content Type: Numeric, Floating Point (32-bit samples) GDAL No-Data value:
-999999
GeoKey Table
key ref len value/pos name
1 1 0 8 ~~~ ~~~
1024 0 1 2 GTModelTypeGeoKey Geographic
Coordinate System
1025 0 1 1 GTRasterTypeGeoKey
RasterPixelIsArea
2048 0 1 4269 GeographicTypeGeoKey North Amer.
Datum 1983
2049 34737 6 0 (A) GeogCitationGeoKey NAD83
2054 0 1 9102 GeogAngularUnitsGeoKey Degrees
2057 34736 1 1 (D) GeogSemiMajorAxisGeoKey 6378137.0
2059 34736 1 0 (D) GeogInvFlatteningGeoKey 298.25722210
2062 34736 3 2 (D) To_WGS84_GeoKey 0.0 | 0.0 | 0.0
ModelPixelScale
9.2592592526e-05 9.2592592526e-05 0.0000000000e+00
ModelTiepointTag
Pixel Model
0.0 0.0 0.0 -89.001 38.001 0.000
{code}
Finally, I note that the existing ReadTagsAndImages.java application is
intended to be *example code* that shows how to use the Apache Commons Imaging
API. In that spirit, I will try to isolate the new GeoTIFF logic from the more
generic TIFF logic. My goal will be to preserve the clarity of the example.
was (Author: gwlucas):
The existing Apache Commons Imaging distribution includes an example
application that opens a TIFF image file and extracts the metadata ("tags" in
the TIFF parlance) for inspection. I propose to extend the utility to include
a summary of GeoTIFF-specific tags.
GeoTIFFs are an important class of TIFF files that are used to show imagery
that has a geographic basis. They include Satellite images, aerial photographs,
digitized maps, and even some numerical data such as elevations. The GeoTIFF
standard is well-known, though slightly complex specification.
The current example application, ReadTagsAndImages.java, prints all tags in the
TIFF file, but the GeoTIFF related information is presented as abstract
numerical values. I propose to add logic to the tag-reading application to
format some of that GeoTIFF information as human-friendly strings.
Here's an example of a numeric data file giving high-resolution elevation data
(some tags omitted). The GeoKeyDirectoryTag is essentially a dictionary giving
a guide to the content to follow. In this case, it consists of 36 integer
value. In the Summary of GeoTIFF Elements, the proposed application
interprets those integer constants as named strings.
{code:java}
Directory 0 Numeric raster data, description: Root
256 (0x100: ImageWidth): 10812 (1 Short)
257 (0x101: ImageLength): 10812 (1 Short)
[snip]
34735 (0x87af: GeoKeyDirectoryTag): 1, 1, 0, 8, 1024, 0, 1, 2, 1025, 0, 1, 1,
(36 elements)
34737 (0x87b1: GeoAsciiParamsTag): 'NAD83|' (7 ASCII)
42112 (0xa480: GDALMetadata): '<GDALMetadata>
<Item name="BandDefinitionKeyword">NONE</I
42113 (0xa481: GDALNoData): '-999999' (8 ASCII)
Summary of GeoTIFF Elements -----------------
Content Type: Numeric, Floating Point (32-bit samples) GDAL No-Data value:
-999999
GeoKey Table
key ref len value/pos name
1 1 0 8 ~~~ ~~~
1024 0 1 2 GTModelTypeGeoKey Geographic
Coordinate System
1025 0 1 1 GTRasterTypeGeoKey
RasterPixelIsArea
2048 0 1 4269 GeographicTypeGeoKey North Amer.
Datum 1983
2049 34737 6 0 (A) GeogCitationGeoKey NAD83
2054 0 1 9102 GeogAngularUnitsGeoKey Degrees
2057 34736 1 1 (D) GeogSemiMajorAxisGeoKey 6378137.0
2059 34736 1 0 (D) GeogInvFlatteningGeoKey 298.25722210
2062 34736 3 2 (D) To_WGS84_GeoKey 0.0 | 0.0 | 0.0
ModelPixelScale
9.2592592526e-05 9.2592592526e-05 0.0000000000e+00
ModelTiepointTag
Pixel Model
0.0 0.0 0.0 -89.001 38.001 0.000
{code}
Finally, I note that the existing ReadTagsAndImages.java application is
intended to be *example code* that shows how to use the Apache Commons Imaging
API. In that spirit, I will try to isolate the new GeoTIFF logic from the more
generic TIFF logic. My goal will be to preserve the clarity of the example.
> Provide summary of GeoTIFF tags in example TIFF-dump application
> ----------------------------------------------------------------
>
> Key: IMAGING-313
> URL: https://issues.apache.org/jira/browse/IMAGING-313
> Project: Commons Imaging
> Issue Type: New Feature
> Components: Format: TIFF
> Affects Versions: 1.0-alpha3
> Reporter: Gary Lucas
> Priority: Minor
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)