pkcomposite(1)
โจ pkcomposite(1) โ NAME โจ
pkcomposite โ program to mosaic and composite geo-referenced images ๐
๐ฆ SYNOPSIS ๐ฆ
pkcomposite -i input [-i input] -o output [options] [advanced options]
๐ธ DESCRIPTION ๐ธ
okay so bestie, pkcomposite is the girl who can {mosaic} and {composite} a whole pile of (georeferenced) raster datasets at once. ๐
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. no cap ๐ซถ
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=1with 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 alsogdal_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, useepsg:3035to 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 โจ
okay that's literally the whole page bestie, you're so welcome ๐ this was pkcomposite(1), dated 01 January 2025 โ go mosaic something iconic, periodt ๐ฆ๐
๐ฆ where this page comes from
- ubuntu questing: pktools 2.6.7.6+ds-6build4
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms