Steve Ansari wrote:
attached is a file describing the tags that ArcMap suposedly recognizes (Yuan: save this for future reference)Yuan,Wouldn't that mean that the default range values would be -999.0 to 3.0 (in our case)? ArcMap defaults to:High : 3.40282e+038 Low : 1.17549e-038 Steve
note that these tags *MaxSampleValue* Used as the maximum image value for data of 16 bits and less. *MinSampleValue* Used as the minimum image value for data of 16 bits and less.Apparently only apply to data of 16 bits or less. I dont know why, but it might be worth sending a support question to ESRI. If you do, ask them how to identify missing values also. Title: tiff
DLL Implementation< /span>
tiff
DLL Class Membership
Description< /p>
The tiff
DLL implementation is provided to allow immediate access, creation, and
update of Tagged Image File Format (TIFF) files from within the IMAGINE
product. TIFF is a popular and flexible public domain raster file format
,
the specification for which is claimed by Adobe Systems, Inc.
The tiff
DLL implementation also recognizes the GeoTIFF extension to TIFF. Accord
ing
to the GeoTIFF Format Specification, Revision 1.0, "The GeoTIFF spec
defines a set of TIFF tags provided to describe all 'Cartographic' infor
mation
associated with TIFF imagery that originates from satellite imaging syst
ems,
scanned aerial photography, scanned maps, digital elevation models, or
as a result of geographic analysis."
Refer to http://home.earthlink.net/~ritter/geotiff/geotiff.html as a starting point for additional information on both TIFF and GeoTIFF.
Baseline TIFF
The tiff< span style="font-size: 12pt;"> DLL implementation supports TIFF Revision 6.0. The support for TIFF Revi sion 6.0 is based on routines in LIBTIFF, Version 3.4 Beta 037, Copyright (c) 1988-1995 Sam Leffler, Copyright (c) 1991-1995 Silicon Graphics, Inc.
At a minimum, the intent is to support Baseline TIFF as defined by the Revision 6.0 specification. In general, any requi rement of Baseline TIFF that is not specifically addressed in this document is assumed to be implemented by LIBTIFF and it is thought that the use of LIBTIFF by this DLL implementation will fulfill the requirement.< /font>
Implementation specific details are outlined below in a manner that matches the sectioning of the TIFF Revision 6.0 specification.
TIFF Structure
The Image File Header is used to identify the
file as a TIFF file (see
All Image File Directories (IFDs) other than the first one in the file are ignored by the tif f DLL, as it is not required for a Baseline TIFF reader.
Bilevel Images
Color
If the PhotometricInterpretation tag indicates
that WhiteIsZero, the pixel values are inverted prior to returning them
through the
tiffLayerRas
terRead
Compression< /p>
The "No compression" option is the
only option that specifically needs to be addressed by the tiff DLL implementation since
the other compression options are handled through use of existing routin
es
in LIBTIFF. Specifically, for BitsPerSample values less than 8, the data
need to be unpacked into 1 pixel per byte prior to returning the data
from the
Physical Dimensions
In the absence of any GeoTIFF information, the ResolutionUnit, XResolution, and YResolution values are considered and represented in the information returned from the span>tiffLayerMapInfoRead a> function.
Grayscale Images
No special implementation notes.
Palette-color Images
The ColorMap values in the image are converted to/from the TIFF defined range of 0 through 65535 from/to the IMAGINE defined range of 0.0 through 1.0 when they are written/read.
RGB Full Color Images
All layers of the full resolution image are made accessible by using the SamplesPerPixel value as the number of laye rs in the image.
Additional Baseline TIFF Requirements
Since the < font style="color: rgb(0, 0, 0);" color="#000000">tiff span> DLL implementation provides update capabilities, it is essentially funct ioning within the IMAGINE product as a TIFF Editor. As such, the recommendation s of the TIFF specification for TIFF Editors have been followed. Namely, a TIFF file modified in any way by the IMAGINE product will have any and all subfiles eliminated. Additionally, modifying the file in IMAGINE wil l cause all unrecognized fields (non-Baseline fields) to also be eliminate d from the TIFF file.
This behavior can have serious consequences
to a user's data. Therefore, the default behavior of the <
/font>tiff DLL is to open all TIFF
images with read-only access, regardless of the user's permissions on
the file. The editing capabilities of the tiff
font>
DLL may be enabled by setting the "TIFF Image Files"/"Edits
Allowed" preference to "true". Another preference, "Unknown
Tags", allows the user to choose to copy unknown tags using simply
their field description. In the case where the user chooses to copy unkn
own
tags as-is, they should be made aware that (unrecognized) copied tags
and data may be inconsistent with other modifications to the file.
Baseline Field Reference Guide
Artist
Not accessed except to copy over.
BitsPerSample
Used to determine the pixel type for a layer.
Images with a BitsPerSample value greater than
16 cannot have a color table stored for them and, thus, IMAGINE will not
be able to remember that they are thematic. Therefore,
CellLength p>
Not accessed except to copy over.
CellWidth
Not accessed except to copy over.
ColorMap
See Palette-color Images.
Compression< /p>
See Bilevel Images.
Copyright
Not accessed except to copy over.
DateTime
Not accessed except to copy over.
ExtraSamples
Used to support multi-spectral imagery.
FillOrder
Not accessed and not copied over. Supported by LIBTIFF during the reading and writing of tiles and encoded strips. font>
FreeByteCounts
Not accessed and not copied over.
FreeByteOffsets
Not accessed and not copied over.
GrayResponseCurve span>
Not accessed except to copy over.
GrayResponseUnit
Not accessed except to copy over.
HostComputer
Not accessed except to copy over.
ImageDescription
Not accessed except to copy over.
ImageLength< /p>
Used as the layer height for all layers derived from a given subfile.
ImageWidth p>
Used as the layer width for all layers derived from a given subfile.
Make
Not accessed except to copy over.
MaxSampleValue
Used as the maximum image value for data of 16 bits and less.
MinSampleValue
Used as the minimum image value for data of 16 bits and less.
Model
Not accessed except to copy over.
NewSubfileType
Not accessed except to copy over since only the first subfile is accessed and it must have a subfile type of 0.
Orientation< /p>
Used in conjunction with XResolution, YResolution and ResolutionUnit in simulating map information if no GeoTIFF informati on is present.
PhotometricInterpretation< /font>
Used as discussed above.
PlanarConfiguration
Used to determine if BIP data needs to be re-arranged
prior to being returned across the
ResolutionUnit
See Orientation. By default, the DLL sets this tag explicitly to 1 (no absolute unit) when creating images.
RowsPerStrip
Used as the block height for non-tiled images.
SamplesPerPixel
Used as the number of layers in the image. Multi-spectral imagery (greater than three bands) is stored as extra samples of unknown data.
Software
Not accessed except to copy over.
StripByteCounts
Used implicitly in reading and writing data through LIBTIFF.
StripOffsets
Used implicitly in reading and writing data through LIBTIFF.
SubfileType< /p>
Not accessed and not copied over.
Threshholding
Not accessed except to copy over.
XResolution< /p>
See Orientation.
YResolution< /p>
See Orientation.
PackBits Compression
Implemented through LIBTIFF.
Modified Huffman Compression b>
Implemented through LIBTIFF.
TIFF Extensions
Support for defined extensions of TIFF is enabled where support is provided in LIBTIFF. In instances where additional lice nsing is required, such as access to LZW compressed data, access through LIBTI FF has been controlled, but not disabled.
Implementation specific details are outlined below in a manner that matches the sectioning of the TIFF Revision 6.0 specification.
CCITT Bilevel Encodings
Implemented through LIBTIFF.
Document Storage and Retrieval
All associated tags are not accessed except to copy over.
LZW Compression
Implemented through LIBTIFF. Access controlled during tiffLayerRasterRe ad (denied if LZW license not present).
Differencing Predictor
Implemented through LIBTIFF in conjunction with LZW Compression.
Tiled Images
Implemented through LIBTIFF. Tile width and tile height used for block width and block height of layers. The "TIFF Image Files"/"Create Tiled Images" preference controls how new TIFF files are created from the DLL, since there is no opportuni ty to prompt the user.
CMYK Images< /p>
Implemented through LIBTIFF. No attempt is made to perform a color space conversion to RGB for return. Associated tags are not accessed except to copy over.
HalftoneHints
All associated tags are not accessed except to copy over.
Associated Alpha Handling< /font>
All associated tags are not accessed except to copy over.
Data Sample Format< /span>
This extension is used to support signed integer data types as well as floating point images. The SMinSampleValue and SMa xSampleValue tags are used in a manner similar to MinSampleValue and MaxSampleValue when dealing with data that is greater than 16 bits.
RGB Image Colorimetry
Associated tags are not accessed except to copy over.
YCbCr Images
Digital video format. All associated tags are not accessed except to copy over. As with CMYK, no attempt is made to perform a color space conversion to RGB for return.
JPEG Compression
Implemented through LIBTIFF.
CIE L*a*b* Images span>
Implemented through LIBTIFF. As with CMYK, no attempt is made to perform a color space conversion to RGB for return. font>
GeoTIFF
The RasterFormats interface functions that relate to georeferencing and geocoding in the tiff DLL implementation were developed to support GeoTIFF Revision 1.0. The support for GeoTIFF Revision 1.0 is based on the final 1.0 release versi on of the platform-independent public-domain subroutine library for such purpose, Copyright (c) 1995 Niles D. Ritter.
GeoTIFF divides the cartographic information associated with a TIFF image into two pieces: georeferencing and geocodi ng. This maps closely to IMAGINE's MapInformation and Projection but there are some differences that need to be handled.
Georeferencing
GeoTIFF defines georeferencing as tying the raster space of an image to a model space (a map system). The georeferen cing information is represented in three TIFF tags: ModelTiepointTag, ModelPi xelScaleTag, and ModelTransformationTag.
If ModelTiepointTag indicates that there is one tie point and the ModelPixelScaleTag is present, a MapInfo model is simulated.
If the ModelTransformationTag is present, an Affine model is created from the transformation information.
In the case where the ModelTiepointTag is present but the ModelPixelScaleTag is not, the "TIFF Image Files"/"Approximate Tie Points with a Polynomial" preference controls whether this image will be treated as georeferenced or not (a preference value of TRUE will allow the image to be treated as georeferenced).
GeoTIFF has a notion of Raster Space which defines how the raster coordinate system grid lines lie with respect to the cent er of the pixel values in the image. The approach used in IMAGINE is analog ous to the PixelIsPoint Raster Space of GeoTIFF, i.e., the grid lines of the raster coordinate system intersect at the center of the pixel. Therefore , an adjustment to the georeferencing information is always made if the PixelIsArea Raster Space is indicated in the GeoTIFF parameters so that IMAGINE applications will act on the georeferencing information correctl y. When creating the information in a TIFF file, the PixelIsArea Raster Spa ce is always used.
Notably missing from the georeferencing information
in the GeoTIFF scheme is the model (map system) name and the units with
which the georeferencing information is specified. This poses a problem
for the tiff
Geocoding
GeoTIFF defines geocoding as tying coordinates in a model space to locations on the earth. Geocoding information is sto red in a "MetaTag" (GeoKey) approach, a system of tagging that allows dozens of information elements to be encoded using just three TIFF tags.
GeoTIFF uses GeoKeys to define projection types, coordinate systems, datums, ellipsoids, etc. so that geocoding a TIFF image is possible. These GeoKeys were derived from the EPSG list compile d by the Petrotechnical Open Software Corporation (POSC).
Converting this geocoding information to/from something that can be used in IMAGINE is a straightforward, albeit massi ve, translation task.
One issue already touched on is the fact that the geocoding information holds the units for the georeferencing informa tion. When a standard projected coordinate system is used, the units are impli ed by this standard projected coordinate system. These implied units come from the tables of EPSG/POSC information referred to above. Because of this, a dilemma arises in translating georeferencing and geocoding infor mation defined in IMAGINE to a TIFF file: should an otherwise standard projecti on be decomposed into appropriate user defined projection codes so that the non-standard units of georeferencing may be retained, or should the stan dard projection code be used and the georeferencing information be altered to reflect the implied standard units? To solve this dilemma, it is left to the user to set the "TIFF Image Files"/"Geocoding preserves..." to either "Georeferencing Units" or "Standard Projections" as desired.
DEM Data
The ModelTiePointTag and ModelPixelScaleTag contain offset and scale information for DEM data that is currently igno red.
ARC/INFO World File
In the absence of GeoTIFF keys and prior to
falling back on the device space information, the <
/span>tiff
Interface Function Support
Appropriate interface functions are provided both to access and update information relevant to the TIFF file format.< /font>
The main data items that are accessible include the raster data, georeferencing information, geocoding information, and a color table.
Developed At ERDAS By
Eric Pohl, Max Martinez
netcdf-java list information:
netcdf-java listnetcdf-java archives: