pkdiff(1) program to compare two raster image files


pkdiff -i input -ref reference [options] [advanced options]


pkdiff compares two datasets. The reference can either be a raster or a vector, but the input must be a raster dataset. In case the reference is a raster dataset, a pixel by pixel comparison is performed. With no further options, the utility reports if the rasters are identical or different. If required, an output raster dataset can be written with a qualitative information per pixel: 0 (input=reference), 1 (input>reference) or 2 (input<reference). If, however, the reference is a vector dataset, it must consist of point features. Polygon features are automatically converted to the centroid points before analyzing.

A typical use of the utility is to assess the accuracy of an input raster land cover map, based on a reference vector dataset. The reference dataset must contain an attribute (label) for each class. A confusion matrix is produced if the option -cm|--confusion is set. Here too, an output dataset can be written, which will be a vector dataset in this case. It contains the reference feature points with the extracted data value of the raster input dataset as a new attribute.


-i filename, --input filename
Input raster dataset.
-ref filename, --reference filename
Reference (raster or vector) dataset
-ln layer, --ln layer
Layer name(s) in sample. Leave empty to select all (for vector reference datasets only)
-b band, --band band
Input raster band
-cm, --confusion
Create confusion matrix (to stdout)
-lr attribute, --lref attribute
Attribute name of the reference label (for vector reference datasets only)
-c name, --class name
List of class names.
-r value, --reclass value
List of class values (use same order as in classname option).
-nodata value, --nodata value
No data value(s) in input or reference dataset are ignored
-m mask, --mask mask
Use the first band of the specified file as a validity mask. Nodata values can be set with the option --msknodata.
-msknodata value, --msknodata value
Mask value(s) where image is invalid. Use negative value for valid data (example: use -t -1: if only -1 is valid value)
-v level, --verbose level
verbose level

Advanced options

-o output, --output output
Output dataset (optional)
-f OGRformat, --f OGRformat
OGR format for output vector (for vector reference datasets only)
-of GDALformat, --oformat GDALformat
Output image format (see also gdal_translate(1)). Empty string: inherit from input image
-lc attribute, --lclass attribute
Attribute name of the classified label (for vector reference datasets only)
--commission value
Value for commission errors: input label < reference label
-bnd value, --boundary value
Boundary for selecting the sample (for vector reference datasets only)
-hom, --homogeneous
Only take regions with homogeneous boundary into account (for reference datasets only)
-circ, --circular
Use circular boundary (for vector reference datasets only)
-ct colortable, --ct colortable
Color table in ASCII format having 5 columns: id R G B ALFA (0: transparent, 255: solid).
Creation option for output file. Multiple options can be specified.


Check if two raster images are different (reports only if images are different or not)

pkdiff -i input.tif -ref reference.tif

Validate a classification map using points from a reference sample and report confusion matrix

pkdiff -i classificationMap.tif -ref referencePoints.tif -cm