PDF Version of this document
Help
Go to next page
Go to previous page

Structures for data compression: Vector data storage and compression: Vector data compression

1.2.2. Vector data compression

The spatial vector data can be compressed to save computer storage space.

Point data compression

If we are considering the UTM coordinates (Universal Transverse Mercator), points are described by an easting and northing coordinate, respectively.

For example:
Point A (897'345.32; 1'898'765.98)

If we are dealing with a relatively small area, we can imagine that coordinate values are stored with considerable redundancy, because for example the first two or three digits of all eastings and northings have the same values throughout the file.
To save storage space, it is possible to define a LOCAL ORIGIN and store all the coordinates relative to this new origin. These new coordinates will be smaller numbers than the original ones and can be stored in a smaller amount of computer storage space.

The coordinate offsets will preserve the ABSOLUTE COORDINATES, which will be used to restore the information when we use the data.

Linear features compression

In this paragraph, we consider both linear features and polygons since a polygon is a sequence of lines.
The procedure described for the point features can also be applied to linear features where only the first point is saved with the full coordinate information. All remaining coordinates of each line use the local origin as reference. In this case, the local coordinates can be stored as short integer, saving 2 bytes per coordinates.

WARNING
With this compression we risk the lose of geometric precision.

Rasterising vector data and the Freeman coding

Another possibility suitable for lines is first rasterising the features onto a regular grid and afterwards proceeding with the Freeman coding or chain coding method (see next unit). With this compression method, only the coordinates of the starting point of each line are stored.
All other subsequent points (pixels) are described by a number from 0 to 7 representing 8 possible directional positions in respect to the previous pixel. Three bits of storage would therefore be required for each pixel of the chain code.

Freeman coding with 8 directionsFreeman coding with 8 directions

Increasing the number of directional positions from 8 to e.g. 16 (corresponding to 4 bits) or 32 (corresponding to 5 bits) it is possible to enhance the geometric precision.

CHARACTERISTICS


Go to previous page Go to next page