Wyróżnia się trzy grupy znaczników w TIFF-ie:
• znaczniki standardowe, w których zostają zapisane podstawowe informacje dotyczące pliku, np.: wymiary obrazu, zastosowany rodzaj kodowania, ilość bitów przypadających na jednostkę zapisanych danych;
• znaczniki rozszerzone, inne dane dotyczące pliku
• znaczniki prywatne,
W znacznikach standardowych i rozszerzonych jest podstawowa informacja o rastrze, ale brak w niej odniesienia do przestrzeni. Format GeoTIFF powstał na drodze powszechnego zaakceptowania i zestandaryzowania znaczników prywatnych.
Plik TIFF jest złożony z trzech sekcji:
• nagłówka ogólnego – Image File Header (IFH),
• nagłówka(-ów) szczegółowego – Image File Directory (IFD),
• właściwych danych obrazowych.
Tylko nagłówek ogólny ma stałą pozycję i rozmiar (8-bajtów).
Najważniejszy jest segment IFD, w którym opisana jest szczegółowo organizacja obrazu.
Tagi (znaczniki) i GeoKeys (geoklucze)
Jest sześć tagów (znaczników) TIFF zarezerwowanych dla GeoTIFF-a:
ModelPixelScaleTag (33550)
ModelTransformationTag (33264)
ModelTiepointTag (33922)
GeoKeyDirectoryTag (34735)
GeoDoubleParamsTag (34736)
GeoAsciiParamsTag (34737)
Code |
Nazwa |
Właściciel / użycie w aplikacjach |
|
Dec |
Hex |
||
33550 |
830E |
ModelPixelScaleTag |
SoftDesk / powszechne |
33918 |
847E |
INGR Packet Data Tag |
Intergraph / lokalne. |
33919 |
847F |
INGR Flag Registers |
Intergraph / lokalne |
33920 |
8480 |
IrasB Transformation Matrix |
Intergraph / tylko IrasB |
33922 |
8482 |
ModelTiepointTag |
Intergraph / powszechne |
34264 |
85D8 |
ModelTransformationTag |
JPL Carto Group / powszechne |
34735 |
87AF |
GeoKeyDirectoryTag |
SPOT / powszechne |
34736 |
87B0 |
GeoDoubleParamsTag |
SPOT / powszechne |
34737 |
87B1 |
GeoAsciiParamsTag |
SPOT / powszechne |
42112 |
A480 |
GDAL_METADATA |
GDAL library … |
42113 |
A481 |
GDAL_NODATA |
GDAL library |
GeoTIFF wykorzystuje również tzw. geoklucze (GeoKeys), których konstrukcja jest zasadniczo taka sama jak w przypadku standardowych znaczników TIFF, ale przechowuje takie informacja jak: odwzorowanie, układ współrzędnych, punkt odniesienia i elipsoidy.
Wśród powyższych znacznik GeoKeyDirectoryTag jest punktem wejścia dla wszystkich geokluczy (GeoKeys), tj. wszystkie GeoKeys są dostępne poprzez ten znacznik.
Znacznik GeoKeyDirectoryTag zawiera następujące pola z informacje:
(1) Tag = 34735 (87AF.H) – wartość, oznaczenie tagu
(2) Type = 3 – typ danych wyrażony jednocyfrową liczbą całkowitą dodatnią (integer)
(3) N – liczba całkowita >= 4, wskazująca liczbę wartości zawartych w tej zmiennej
(4) Adres pliku z tym wartościami
Specyfikacja dopuszcza również pola:
(5) Alias: ProjectionInfoTag, CoordSystemInfoTag – powiązania z innymi tagami
(6) Owner: SPOT Image, Inc
Wartości geokluczy (GeoKey), wchodzących w skład znacznika GeoKeyDirectoryTag, są tablicą czterech lub więcej jednocyfrowych liczb całkowitych dodatnich (jak wskazuje w drugim i trzecim polu GeoKeyDirectoryTag), które pogrupowano w bloki po 4:
{{KeyDirectoryVersion, KeyRevision, MinorRevision, NumberOfKeys},
{KeyID, TIFFTagLocation, Count, ValueOffset} … , {KeyID, TIFFTagLocation, Count, ValueOffset}}Pierwsza grupa zawiera informacje nagłówka klucza (tzw. Header), w tym numer wersji i numer geokluczy (GeoKeys).
Po nagłówku są bloki kluczy (jeden wiersz to jeden GeoKey), który każdy zawiera cztery pola.
Ilość bloków wskazane jest przez wartość NumberOfKeys w nagłówku.
Pierwsze pole KeyID jest numerem identyfikacyjnym. KeyID mówi o wartości zawartych lub wskazanych przez ten klucz.
Drugie pole, TIFFTagLocation, wskazuje, z którego znacznika TIFF można uzyskać wartości geoklucza (GeoKey). Podobnie jak w przypadku znacznika TIFF, jeśli pole to zawiera wartość zero, to mówi, że istnieje tylko jednocyfrowa liczba całkowita dodatnia (integer) w kluczu i wartości są przechowywane bezpośrednio w czwartym polu klucza, w obszarze ValueOffset.
Trzecie pole, Count, stanowi liczbę wartości zawartych w kluczu.
Ostatnie pole, ValueOffset, wskazuje na pozycję w tablicy wartości zmiennej TIFF, o których mowa w polu TIFFTagLocation.
Różnica pomiędzy TIFF a GeoTIFF polega na tym, że znacznik TIFF przekazuje takie parametry jak np. ImageWidth podczas GeoTIFF (za pomocą kluczy zawartych w znacznikach) daje informacje geoprzestrzenne, takie jak np. GeogPrimeMeridianGeoKey, który określa lokalizację głównego południka do geograficznego układu współrzędnych, ale o tym w innej części.
Definicja układu współrzędnych
Następujące klucze w znaczniku GeoKeyDirectoryTag odpowiadają za informacje o układzie współrzędnych:
ModelTypeGeoKey
1 =ModelTypeProjected
2 =ModelTypeGeographic
3 =ModelTypeGeocentric
RasterTypeGeoKey
1 =RasterPixelIsArea
2 =RasterPixelIsPoint
ProjCoordTransGeoKey
1 = TransverseMercator
7 = Mercator
14 = Stereographic
……..
32767 = definiowany przez użytkownika
ProjectedCSTypeGeoKey
…..
32633 =WGS84_UTM_zone_33N
32634 =WGS84_UTM_zone_34N
32635 =WGS84_UTM_zone_35N
………..
32767 = definiowany przez użytkownika
GeographicTypeGeoKey
4019 =GRS1980
4024 =Krassowsky1940
4030 =WGS84
Definicje układu pikselowego
GeoTIFF zawiera klucze:
PixelIsArea – który przekazuje współrzędne lewego górnego narożnika pierwszego piksela (Xo, Yo),
PixelIsPoint – który przekazuje współrzędne środka lewego górnego piksela (Xo, Yo),
Znaczniki współrzędnych i skali
Znaczniki odpowiedzialne za przekazanie współrzednych i skali to: ModelTiepointTag i ModelPixelScaleTag
Najczęściej występują razem.
ModelTiepointTag (2,3)
0 0 0
X0 Y0 0
ModelPixelScaleTag (1,3)
Sx Sy 0
ModelTiepointTag (2,3) to de facto macierz, gdzie:
0 0 0 – współrzędne początku układu
X0 Y0 0 – współrzędne piksela
Dla NMT (numerycznego modelu terenu) można zastosować:
0 0 0
X0 Y0 Z0
gdzie Z0 – stała dodawana do wysokości