Gets or sets the value of the GeoTIFF GeoTiePointsTag.

Namespace:  FreeImageAPI.Metadata
Assembly:  FreeImageNET (in FreeImageNET.dll)


public double[] ModelTiePoints { get; set; }
Visual Basic (Declaration)
Public Property ModelTiePoints As Double()
Visual C++
property array<double>^ ModelTiePoints {
	array<double>^ get ();
	void set (array<double>^ value);


The GeoTiePointsTag stores raster -> model tiepoint pairs in the order

ModelTiePoints = (...,I,J,K, X,Y,Z...),

where (I,J,K) is the point at location (I,J) in raster space with pixel-value K, and (X,Y,Z) is a vector in model space. In most cases the model space is only two-dimensional, in which case both K and Z should be set to zero; this third dimension is provided in anticipation of future support for 3D digital elevation models and vertical coordinate systems.

A raster image may be georeferenced simply by specifying its location, size and orientation in the model coordinate space M. This may be done by specifying the location of three of the four bounding corner points. However, tiepoints are only to be considered exact at the points specified; thus defining such a set of bounding tiepoints does not imply that the model space locations of the interior of the image may be exactly computed by a linear interpolation of these tiepoints.

However, since the relationship between the Raster space and the model space will often be an exact, affine transformation, this relationship can be defined using one set of tiepoints and the ModelPixelScale, described below, which gives the vertical and horizontal raster grid cell size, specified in model units.

If possible, the first tiepoint placed in this tag shall be the one establishing the location of the point (0,0) in raster space. However, if this is not possible (for example, if (0,0) is goes to a part of model space in which the projection is ill-defined), then there is no particular order in which the tiepoints need be listed.

For orthorectification or mosaicking applications a large number of tiepoints may be specified on a mesh over the raster image. However, the definition of associated grid interpolation methods is not in the scope of the current GeoTIFF spec.

Naming differences

In the native FreeImage library and thus, in the FreeImage API documentation, this property's key is named GeoTiePoints. Since the GeoTIFF specification as well as Java's EXIFTIFFTagSet class call this tag ModelTiePoints, this property was renamed accordingly. However, when accessing this property's tag by its MetadataTag object, the native FreeImage tag key GeoTiePoints must be used.

Handling of null values

A null value indicates, that the corresponding metadata tag is not present in the metadata model. Setting this property's value to a non-null reference creates the metadata tag if necessary. Setting this property's value to a null reference deletes the metadata tag from the metadata model.

Version Information


Supported in: 3.12.0, 3.13.0, 3.13.1

See Also