Provided by: pktools_2.6.7.6+ds-6build3_amd64 bug

NAME

       pkcomposite - program to mosaic and composite geo-referenced images

SYNOPSIS

       pkcomposite -i input [-i input] -o output [options] [advanced options]

DESCRIPTION

       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 resolutions.

       Example: Calculate the maximum NDVI composite of two multispectral input images (e.g., red
       is band 0 and near infrared is band 1)

       pkcomposite -i input1.tif -i input2.tif -o output.tif -cr maxndvi -cb 0 -cb 1

       Example:  Calculate  the minimum nadir composite of two input images, where the forth band
       (b=3) contains the view zenith angle

       pkcomposite -i input1.tif -i input2.tif -o minzenith.tif -cr minband -cb 3

       Example: Calculate the minimum of two input images in all bands

       pkcomposite -i input1.tif -i input2.tif -o minimum.tif -cr minallbands

OPTIONS

       -i filename, --input filename
              Input image file(s).  If input contains multiple images,  a  multi-band  output  is
              created

       -o filename, --output filename
              Output image file

       -b band, --band band
              band index(es) to crop (leave empty if all bands must be retained)

       -dx xres, --dx xres
              Output resolution in x (in meter) (empty: keep original resolution)

       -dy yres, --dy yres
              Output resolution in y (in meter) (empty: keep original resolution)

       -e vector, --extent vector
              get boundary from extent from polygons in vector file

       -cut, --crop_to_cutline
              Crop the extent of the target dataset to the extent of the cutline

       -eo options, --eo options
              Special          extent          options         controlling         rasterization:
              ATTRIBUTE|CHUNKYSIZE|ALL_TOUCHED|BURN_VALUE_FROM|MERGE_ALG,        e.g.,        -eo
              ATTRIBUTE=fieldname

       -m mask, --mask mask
              Use the first band of the specified file as a validity mask (0 is nodata)

       -msknodata value, --msknodata value
              Mask value not to consider for composite

       -mskband value, --mskband value
              Mask band to read (0 indexed)

       -ulx ULX, --ulx ULX
              Upper left x value bounding box

       -uly ULY, --uly ULY
              Upper left y value bounding box

       -lrx LRX, --lrx LRX
              Lower right x value bounding box

       -lry LRY, --lry LRY
              Lower right y value bounding box

       -cr rule, --crule rule
              Composite  rule  (overwrite,  maxndvi,  maxband, minband, mean, mode (only for byte
              images), median, sum

       -cb band, --cb band
              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 value, --srcnodata value
              invalid value for input image

       -bndnodata band, --bndnodata band
              Bands  in  input  image to check if pixel is valid (used for srcnodata, min and max
              options)

       -min value, --min value
              flag values smaller or equal to this value as invalid.

       -max value, --max value
              flag values larger or equal to this value as invalid.

       -dstnodata value, --dstnodata value
              nodata value to put in output image if not valid or out of bounds.

       -r resampling_method, --resampling-method resampling_method
              Resampling method (near: nearest neighbor, bilinear: bi-linear interpolation).

       -ot type, --otype type
              Data type for output image ({Byte / Int16 / UInt16 / UInt32 /  Int32  /  Float32  /
              Float64 / CInt16 / CInt32 / CFloat32 / CFloat64}).  Empty string: inherit type from
              input image

       -of GDALformat, --oformat GDALformat
              Output image format (see also gdal_translate(1)).  Empty string: inherit from input
              image

       -co NAME=VALUE, --co NAME=VALUE
              Creation option for output file.  Multiple options can be specified.

       -a_srs EPSG:number, --a_srs EPSG:number
              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)

       -v, --verbose
              verbose

       Advanced options

       -file, --file
              write number of observations (1) or sequence nr  of  selected  file  (2)  for  each
              pixels as additional layer in composite.  Default: 0

       -w weight, --weight weight
              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 name, --class name
              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 filename, --ct filename
              colour  table in ASCII format having 5 columns: id R G B ALFA (0: transparent, 255:
              solid)

       -align, --align
              Align output bounding box to first input image

       -scale value, --scale value
              Scale value output=scale*input+offset

       -off value, --offset value
              Offset value output=scale*input+offset

       -d description, --description description
              Set image description

EXAMPLE

       Create a composit from two input images. If images overlap, keep only last image  (default
       rule)

       pkcomposite -i input1.tif -i input2.tif -o output.tif

       Create  a  composit  from two input images.  Values of 255 in band 1 (starting from 0) are
       masked as invalid.  Typically used when second band of input image is a cloud mask

       pkcomposite -i input1.tif -i input2.tif -srcnodata 255 -bndnodata 1 -dstnodata 0 -o output.tif

       Create a maximum NDVI (normalized difference vegetation index) composit.  Values of 255 in
       band  0 are masked as invalid and flagged as 0 if no other valid coverage.  Typically used
       for (e.g., MODIS) images where red and near infrared spectral bands are stored in bands  0
       and  1  respectively.   In  this  particular  case, a value of 255 in the first input band
       indicates a nodata value (e.g., cloud mask is coded within the data values).

       pkcomposite -i input1.tif -i input2.tif -cr maxndvi -rb 0 -rb 1 -srcnodata 255 -bndnodata 0 -dstnodata 0 -o output.tif

       Create        a        composite        image         using         weighted         mean:
       output=(3/4*input1+6/4*input2+3/4*input2)/3.0

       pkcomposite -i input1.tif -i input2.tif -i input3.tif -o output.tif -cr mean -w 0.75 -w 1.5 -w 0.75

       Create  a  median  composit  of all GTiff images found in current directory that cover (at
       least part of) the image coverage.tif.  Values smaller or equal to 0 are set as  nodata  0
       (default value for -dstnodata)

       pkcomposite -i large.tif $(for IMAGE in *.tif;do pkinfo -i $IMAGE --cover $(pkinfo -i coverage.tif -bb);done) -cr median -min 0 -o output.tif

FAQ

       Q1. First question

       A1. For individual invalid value(s) in input image, use -srcnodata

       Usage:  use  unique  value for each invalid bands set in --bndnodata or use a single value
       that will be applied to all invalid bands

       Example:

       pkcomposite -i input1.tif -i input2.tif -o output.tif -srcnodata 0 -srcnodata 255 -bndnodata 0 -bndnodata 1

       will consider 0 in band 0 and 255 in band 1 of input images as no value

       pkcomposite -i input1.tif -i input2.tif -o output.tif -srcnodata 0 -bndnodata 0 -bndnodata 1

       will consider 0 in both bands 0 and 1 of input images as no value

       For range(s) of invalid values in input images: use -min (--min) and -max  (--max)  Usage:
       use unique range set for each invalid bands set in -bndnodata

       Example:

       pkcomposite -i input1.tif -i input2.tif -o output.tif -min 0 -max 200 -min 0 -max 2 -bndnodata 0 -bndnodata 1

       will  consider  all  negative  values  in band 0 and 1 of input images as invalid.  Values
       larger or equal to 200 in band 0 will be invalid, as well as values larger or equal  to  2
       in band 1

       Q2. If I take the mean value as composit rule for multi-band input images, will the output
       image contain the mean value of overlapping images in each band?

       A2. Yes

                                           30 July 2024                            pkcomposite(1)