pktools
2.6.7
Processing Kernel for geospatial data
|
program to mosaic and composite geo-referenced images
Usage: pkcomposite -i input [-i input]* -o output
Options: [-b band]* [-dx xres] [-dy yres] [-e vector] [-ulx ULX -uly ULY -lrx LRX -lry LRY] [-cr rule] [-cb band] [-srcnodata value] [-bndnodata band] [-min value] [-max value] [-dstnodata value] [-r resampling_method] [-ot {Byte / Int16 / UInt16 / UInt32 / Int32 / Float32 / Float64 / CInt16 / CInt32 / CFloat32 / CFloat64}] [-of format] [-co NAME=VALUE]* [-a_srs epsg:number]
Advanced options: [-file] [-w weight]* [-c class]* [-ct colortable] [-d description] [-align]
The utility pkcomposite can be used to mosaic and composite multiple (georeferenced) raster datasets. A mosaic can merge images with different geographical extents into a single larger image. Compositing resolves the overlapping pixels according to some rule (e.g, the median of all overlapping pixels). This utility is complementary to GDAL, which currently does not support a composite step. Input datasets can have different bounding boxes and spatial resolutionsresolution.
composite rule | composite output |
---|---|
overwrite | Overwrite overlapping pixels: the latter input image on the command line overrules the previous image |
maxndvi | Create a maximum NDVI (normalized difference vegetation index) composite from multi-band input images. Use option -cb to set the indexes of the red and near infrared bands respectively (e.g., -cb 0 -cb 1) |
maxband | Select the pixel with a maximum value in the band specified by option -cb |
minband | Select the pixel with a minimum value in the band specified by option -cb |
mean | Calculate the mean (average) of overlapping pixels |
stdev | Calculate the standard deviation of overlapping pixels |
median | Calculate the median of overlapping pixels |
mode | Select the mode of overlapping pixels (maximum voting): use for Byte images only |
sum | Calculate the arithmetic sum of overlapping pixels |
maxallbands | For each individual band, assign the maximum value found in all overlapping pixels. Unlike maxband, output band values cannot be attributed to a single (date) pixel in the input time series |
minallbands | For each individual band, assign the minimum value found in all overlapping pixels. Unlike minband, output band values cannot be attributed to a single (date) pixel in the input time series |
Example: Calculate the maximum NDVI composite of two multispectral input images (e.g., red is band 0 and near infrared is band 1)
Example: Calculate the minimum nadir composite of two input images, where the forth band (b=3) contains the view zenith angle
Example: Calculate the minimum of two input images in all bands
-short
or --long
options (both --long=value
and --long value
are supported)-h
shows basic options only, long option --help
shows all optionsshort | long | type | default | description |
---|---|---|---|---|
i | input | std::string | Input image file(s). If input contains multiple images, a multi-band output is created | |
o | output | std::string | Output image file | |
b | band | int | band index(es) to crop (leave empty if all bands must be retained) | |
dx | dx | double | Output resolution in x (in meter) (empty: keep original resolution) | |
dy | dy | double | Output resolution in y (in meter) (empty: keep original resolution) | |
e | extent | std::string | get boundary from extent from polygons in vector file | |
cut | crop_to_cutline | bool | false | Crop the extent of the target dataset to the extent of the cutline |
eo | eo | std::string | special extent options controlling rasterization: ATTRIBUTE or CHUNKYSIZE or ALL_TOUCHED or BURN_VALUE_FROM or MERGE_ALG, e.g., -eo ATTRIBUTE=fieldname | |
m | mask | std::string | Use the first band of the specified file as a validity mask (0 is nodata) | |
msknodata | msknodata | float | 0 | Mask value not to consider for composite |
mskband | mskband | short | 0 | Mask band to read (0 indexed) |
ulx | ulx | double | 0 | Upper left x value bounding box |
uly | uly | double | 0 | Upper left y value bounding box |
lrx | lrx | double | 0 | Lower right x value bounding box |
lry | lry | double | 0 | Lower right y value bounding box |
cr | crule | std::string | overwrite | Composite rule (overwrite, maxndvi, maxband, minband, mean, mode (only for byte images), median, sum, maxallbands, minallbands, stdev |
cb | cband | int | 0 | band index used for the composite rule (e.g., for ndvi, use –cband=0 –cband=1 with 0 and 1 indices for red and nir band respectively |
srcnodata | srcnodata | double | invalid value(s) for input raster dataset | |
bndnodata | bndnodata | int | 0 | Band(s) in input image to check if pixel is valid (used for srcnodata, min and max options) |
min | min | double | flag values smaller or equal to this value as invalid. | |
max | max | double | flag values larger or equal to this value as invalid. | |
dstnodata | dstnodata | double | 0 | nodata value to put in output raster dataset if not valid or out of bounds. |
r | resampling-method | std::string | near | Resampling method (near: nearest neighbor, bilinear: bi-linear interpolation). |
ot | otype | std::string | Data type for output image ({Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/CInt16/CInt32/CFloat32/CFloat64}). Empty string: inherit type from input image | |
of | oformat | std::string | GTiff | Output image format (see also gdal_translate). |
co | co | std::string | Creation option for output file. Multiple options can be specified. | |
a_srs | a_srs | std::string | Override the spatial reference for the output file (leave blank to copy from input file, use epsg:3035 to use European projection and force to European grid | |
file | file | short | 0 | write number of observations (1) or sequence nr of selected file (2) for each pixels as additional layer in composite |
w | weight | short | 1 | Weights (type: short) for the composite, use one weight for each input file in same order as input files are provided). Use value 1 for equal weights. |
c | class | short | 0 | classes for multi-band output image: each band represents the number of observations for one specific class. Use value 0 for no multi-band output image. |
ct | ct | std::string | color table file with 5 columns: id R G B ALFA (0: transparent, 255: solid) | |
align | align | bool | Align output bounding box to first input image | |
scale | scale | double | output=scale*input+offset | |
off | offset | double | output=scale*input+offset | |
d | description | std::string | Set image description |
Some examples how to use pkcomposite can be found here
Frequently asked questions on pkcomposite can be found here