World file

A world file is a six line plain text sidecar file used by geographic information systems (GIS) to georeference raster map images. The file specification was introduced by Esri.[1][a]

Definition

The generic meaning of the six parameters in a world file (as defined by Esri[1]) is:

• Line 1: A: pixel size in the x-direction in map units/pixel
• Line 2: D: rotation about y-axis
• Line 3: B: rotation about x-axis
• Line 4: E: pixel size in the y-direction in map units, almost always negative[b]
• Line 5: C: x-coordinate of the center of the upper left pixel
• Line 6: F: y-coordinate of the center of the upper left pixel

This description is however misleading in that the D and B parameters are not angular rotations, and that the A and E parameters do not correspond to the pixel size if D or B are not zero. The A, D, B and E parameters are sometimes named "x-scale", "y-skew", "x-skew" and "y-scale".

A better description of the A, D, B and E parameters is:

• Line 1: A: x-component of the pixel width (x-scale)
• Line 2: D: y-component of the pixel width (y-skew)
• Line 3: B: x-component of the pixel height (x-skew)
• Line 4: E: y-component of the pixel height (y-scale), typically negative
• Line 5: C: x-coordinate of the center of the original image's upper left pixel transformed to the map
• Line 6: F: y-coordinate of the center of the original image's upper left pixel transformed to the map

All four parameters are expressed in the map units, which are described by the spatial reference system for the raster.

When D or B are non-zero the pixel width is given by:

${\displaystyle {\sqrt {A^{2}+D^{2}}}}$

and the pixel height by

${\displaystyle {\sqrt {B^{2}+E^{2}}}}$

World files describing a map on the Universal Transverse Mercator coordinate system (UTM) use these conventions:

• D and B are usually 0, since the image pixels are usually made to align with the UTM grid
• C is the UTM easting
• F is the UTM northing
• Units are always meters per pixel

The above description applies also to a rectangular, non-rotated image which might be, for example, overlaid on an orthogonally projected map. If the world file describes an image that is rotated from the axis of the target projection, however, then A, D, B and E must be derived from the required affine transformation (see below). Specifically, A and E will no longer be the meter/pixel measurement on their respective axes.

These values are used in a six-parameter affine transformation:

${\displaystyle {\begin{bmatrix}x\prime \\y\prime \end{bmatrix}}={\begin{bmatrix}A&B&C\\D&E&F\end{bmatrix}}{\begin{bmatrix}x\\y\\1\end{bmatrix}}}$

which can be written as this set of equations:

{\displaystyle {\begin{aligned}x'&=A\,x+B\,y+C\\y'&=D\,x+E\,y+F\end{aligned}}}

where:

x' is the calculated UTM easting of the pixel on the map
y' is the calculated UTM northing of the pixel on the map
x is the column number of the pixel in the image counting from left
y is the row number of the pixel in the image counting from top
A or x-scale; dimension of a pixel in map units in x-direction
B, D are rotation terms
C, F are translation terms: x, y map coordinates of the center of the upper-left pixel
E is negative of y-scale: dimension of a pixel in map units in y-direction

The y-scale (E) is negative because the origins of an image and the UTM coordinate system are different. The origin of an image is located in the upper-left corner, whereas the origin of the map coordinate system is located in the lower-left corner. Row values in the image increase from the origin downward, while y-coordinate values in the map increase from the origin upward. Many mapping programs are unable to handle "upside down" images (i.e. those with a positive y-scale).

To go from UTM(x'y') to pixel position(x,y) one can use the equation:

{\displaystyle {\begin{aligned}x&={\frac {Ex'-By'+BF-EC}{AE-DB}}\\y&={\frac {-Dx'+Ay'+DC-AF}{AE-DB}}\end{aligned}}}

Example: Original falknermap.jpg is 800×600 pixels (map not shown). Its world file is falknermap.jgw and contains:

32.0
0.0
0.0
-32.0
691200.0
4576000.0


The position of Falkner Island light on the map image is:

x = 171 pixels from left
y = 343 pixels from top


This gives:

x1 = 696672 meters Easting
y1 = 4565024 meters Northing


The UTM (grid) zone is not given so the coordinates are ambiguous — they can represent a position in any of the approximately 120 UTM grid zones. In this case, approximate latitude and longitude (41.2, −072.7) were looked up in a gazetteer and the UTM (grid) zone was found to be 18 using a Web-based converter.

Filename extension

The base filename of a world file matches the raster's base filename, but has a different filename extension (suffix). There are three filename extension naming conventions used for world files, with variable support across software.

One simple convention with widespread support is to append the letter "w" to the end of the raster filename. For example, a raster named mymap.jpg should have a world file named mymap.jpgw.

An alternative file naming convention that uses a three-character extension to conform to the 8.3 file naming convention uses the first and last character of the raster file's extension, followed by "w" at the end. For example, here are a few naming conventions for popular raster formats:

Raster format Raster file name World file name
GIF mymap.gif mymap.gfw
JPEG mymap.jpg mymap.jgw
JPEG 2000 mymap.jp2 mymap.j2w
PNG mymap.png mymap.pgw
TIFF mymap.tif mymap.tfw

A third convention is to use a .wld file extension, irrespective of the type of raster file, as supported by GDAL and QGIS, but not Esri.[a]

Localization

When writing world files it is advisable to ignore localization settings and always use "." as the decimal separator. Also, negative numbers should be specified with the "-" character exclusively. This ensures maximum portability of the images.