RSGISLib Raster GIS Module¶
The Raster GIS module contains functions for attributing and manipulating raster attribute tables.
-
class
rsgislib.rastergis.
BandAttPercentiles
(percentile, fieldName)¶ This is passed to the populateRATWithPercentiles function
-
class
rsgislib.rastergis.
BandAttStats
(band, minField=None, maxField=None, sumField=None, stdDevField=None, meanField=None)¶ This is passed to the populateRATWithStats function
-
class
rsgislib.rastergis.
FieldAttStats
(field, minField=None, maxField=None, sumField=None, stdDevField=None, meanField=None)¶ This is passed to the calcRelDiffNeighStats function
-
class
rsgislib.rastergis.
ShapeIndex
(colName, idx, colIdx=0)¶ This is passed to the calcShapeIndices function
-
rsgislib.rastergis.
check_string_col_valid
(clumps, str_col, rm_punc=False, rm_spaces=False, rm_non_ascii=False, rm_dashs=False)¶ A function which checks a string column to ensure nothing is invalid.
- Parameters
clumps – input clumps image.
str_col – the column to check
rm_punc – If True removes punctuation from column name other than dashs and underscores.
rm_spaces – If True removes spaces from the column name, replacing them with underscores.
rm_non_ascii – If True removes characters which are not in the ascii range of characters.
rm_dashs – If True then dashs are removed from the column name.
-
rsgislib.rastergis.
exportCols2GDALImage
(clumps, outimage, gdalformat, datatype, fields, ratband=1, tempDIR=None)¶ Exports columns of the raster attribute table as bands in a GDAL image. Utility function, exports each column individually then stacks them.
Where:
- Parameters
clumps – is a string containing the name of the input image file with RAT
outimage – is a string containing the name of the output gdal file
gdalformat – is a string containing the GDAL format for the output file - eg ‘KEA’
datatype – is an int containing one of the values from rsgislib.TYPE_*
field – is a list of strings, providing the names of the column to be exported.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
clumps='./RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' outimage='./TestOutputs/RasterGIS/injune_p142_casi_rgb_export.kea' gdalformat = 'KEA' datatype = rsgislib.TYPE_32FLOAT fields = ['RedAvg','GreenAvg','BlueAvg'] rastergis.exportCols2GDALImage(clumps, outimage, gdalformat, datatype, fields)
-
rsgislib.rastergis.
getRATColumns
(clumps_img, rat_band=1)¶ A function which returns a list of column names within the RAT.
- Parameters
clumps_img – path to the image file with the RAT
rat_band – the band within the image file for which the RAT is to read.
- Returns
list of column names.
-
rsgislib.rastergis.
getRATColumnsInfo
(clumps_img, rat_band=1)¶ A function which returns a dictionary of column names with type (GFT_Integer, GFT_Real, GFT_String) and usage (e.g., GFU_Generic, GFU_PixelCount, GFU_Name, etc.) within the RAT.
- Parameters
clumps_img – path to the image file with the RAT
rat_band – the band within the image file for which the RAT is to read.
- Returns
dict of column information.
-
rsgislib.rastergis.
getRATLength
(clumps_img, rat_band=1)¶ A function which returns the length (i.e., number of rows) within the RAT.
- Parameters
clumps_img – path to the image file with the RAT
rat_band – the band within the image file for which the RAT is to read.
-
rsgislib.rastergis.
readRATNeighbours
(clumps_img, start_row=None, end_row=None, rat_band=1)¶ A function which returns a list of clumps neighbours from a KEA RAT. Note, the neighbours are popualted using the function rsgislib.rastergis.findNeighbours. By default the whole datasets of neightbours is read to memory but the start_row and end_row variables can be used to read a subset of the RAT.
- Parameters
clumps_img – path to the image file with the RAT
start_row – the row within the RAT to start reading, if None will start at 0 (Default: None).
end_row – the row within the RAT to end reading, if None will end at n_rows within the RAT. (Default: None)
rat_band – the band within the image file for which the RAT is to read.
- Returns
list of lists with neighbour indexes.
Utilities¶
-
rsgislib.rastergis.
populateStats
(clumps=string, addclrtab=boolean, calcpyramids=boolean, ignorezero=boolean, ratband=int)¶ Populates statics for thematic images.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
addclrtab – is a boolean to specify whether a colour table should created and added (colours will be random) (Optional, default = True)
calcpyramids – is a boolean to specify where overview images could be created (Optional, default = True)
ignorezero – is a boolean specifying whether zero should be ignored (i.e., set as a no data value). (Optional, default = True)
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis clumps='injune_p142_casi_sub_utm_segs_nostats_addstats.kea' pyramids=True colourtable=True rastergis.populateStats(clumps, colourtable, pyramids)
-
rsgislib.rastergis.ratutils.
populateImageStats
(inputImage, clumpsFile, outascii=None, threshold=0.0, calcMin=False, calcMax=False, calcSum=False, calcMean=False, calcStDev=False, calcMedian=False, calcCount=False, calcArea=False, calcLength=False, calcWidth=False, calcLengthWidth=False)¶ Attribute RAT with statistics from from all bands in an input image.
Where:
- Parameters
inputImage – input image to calculate statistics from, if band names are avaialble these will be used for attribute names in the output RAT.
clumpsFile – input clumps file, statistics are added to RAT.
threshold – float, values below this are ignored (default=0)
outascii – string providing output CSV file (optional).
calcMin – Calculate minimum
calcMax – Calculate maximum
calcSum – Calculate sum
calcMean – Calculate mean
calcStDev – Calculate standard deviation
Example:
from rsgislib.rastergis import ratutils inputImage = 'jers1palsar_stack.kea' clumpsFile = 'jers1palsar_stack_clumps_elim_final.kea' ratutils.populateImageStats(inputImage, clumpsFile, calcMean=True)
-
rsgislib.rastergis.
collapseRAT
(clumpsImage, selectField, outputFile, gdalformat, ratBand)¶ Collapses the image and rat to a set of selected rows (defined with a value of 1 in the selected column).
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
selectField – is a string containing the name of the binary column used to selected the rows to which the RAT is to be collapsed to.
outputFile – is a string with the output file name
gdalformat – is a string with the output image file format - note only KEA and HFA support RATs.
ratBand – is the image band with which the RAT is associated.
-
rsgislib.rastergis.ratutils.
createClumpsSHPBBOX
(clumpsImg, minXCol, maxXCol, minYCol, maxYCol, outShpLyrName, roundInt=False, ignoreFirstRow=False)¶ A function to create a shapefile of polygons with the bboxs of the clumps defined using the minX, maxX, minY and maxY coordinates for the features.
Where:
- Parameters
clumpsImg – input clumps file.
minXCol – the minX column in RAT.
maxXCol – the maxX column in RAT.
minYCol – the minY column in RAT.
maxYCol – the maxY column in RAT.
outShpLyrName – The output shapefile name (layer name do not include the .shp it will be appended).
roundInt – Boolean specifying whether the coordinated should be rounded to integers (Default: False)
-
rsgislib.rastergis.ratutils.
getColumnData
(clumpsImg, columnName)¶ A function to read a column of data from a RAT.
- Parameters
clumpsImg – Input clumps image
columnName – Name of the column to be read.
- Returns
numpy array with values from the clumpsImg
Attribute Clumps¶
-
rsgislib.rastergis.
calcBorderLength
(inputImage, ignoreZeroEdges, outColsName)¶ Calculate the border length of clumps
Where:
- Parameters
inputImage – is a string containing the name of the input image file
ignoreZeroEdges – is a bool
outColsName – is a string
-
rsgislib.rastergis.ratutils.
calcDistBetweenClumps
(clumpsImg, outColName, tmpDIR='./tmp', useIdx=False, maxDistThres=10)¶ Calculate the distance between all clumps
- Parameters
clumpsImg – image clumps for which the distance will be calculated.
outColName – output column within the clumps image.
tmpDIR – directory out tempory files will be outputted to.
useIdx – use a spatial index when calculating the distance between clumps (needed for large number of clumps).
maxDistThres – if using an index than an upper limit on the distance between clumps can be defined.
-
rsgislib.rastergis.ratutils.
calcDistToLargeClumps
(clumpsImg, outColName, sizeThres, tmpDIR='./tmp', useIdx=False, maxDistThres=10)¶ Calculate the distance from each small clump to a large clump. Split defined by the threshold provided.
- Parameters
clumpsImg – image clumps for which the distance will be calculated.
outColName – output column within the clumps image.
sizeThres – is a threshold to seperate the sets of large and small clumps.
tmpDIR – directory out tempory files will be outputted to.
useIdx – use a spatial index when calculating the distance between clumps (needed for large number of clumps).
maxDistThres – if using an index than an upper limit on the distance between clumps can be defined.
-
rsgislib.rastergis.
calcRelBorder
(inputImage, outColsName, classNameField, className, ignoreZeroEdges)¶ Calculates the relative border length of the clumps to a class
Where:
- Parameters
inputImage – is a string containing the name of the input image file
outColsName – is a string
classNameField – is a string
className – is a string
ignoreZeroEdges – is a bool
-
rsgislib.rastergis.
calcRelDiffNeighStats
(clumpsImage, fieldstats, ratBand)¶ Calculates the difference (relative or absolute) between each clump and it’s neighbours. The differences can be summarised as min, max, mean, std dev or sum.
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
fieldstats – has the following fields * field: string defining the field in the RAT to compare to. * minField: string defining the name of the field for min value * maxField: string defining the name of the field for max value * sumField: string defining the name of the field for sum value * meanField: string defining the name of the field for mean value * stdDevField: string defining the name of the field for standard deviation value
ratBand – is the image band with which the RAT is associated.
Example:
import rsgislib.rastergis inputImage = './RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa_segs_neigh.kea' ratBand = 1 rsgislib.rastergis.findNeighbours(inputImage, ratBand) fieldInfo = rsgislib.rastergis.FieldAttStats(field='NIRMean', minField='MinNIRMeanDiff', maxField='MaxNIRMeanDiff') rsgislib.rastergis.calcRelDiffNeighStats(inputImage, fieldInfo, False, ratBand)
-
rsgislib.rastergis.
defineBorderClumps
(clumpsImage, tileImage, outColsName, tileOverlap, tileBoundary, tileBody)¶ Defines the clumps which are on the border within the file of the clumps using a mask
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
tileImage – is a string containing the name of the input tile image
outColsName – is a string containing the name of the output column
tileOverlap – is an unsigned int defining the overlap between tiles
tileBoundary – is an unsigned int
tileBody – is an unsigned int
-
rsgislib.rastergis.
defineClumpTilePositions
(clumpsImage, tileImage, outColsName, tileOverlap, tileBoundary, tileBody)¶ Defines the position within the file of the clumps.
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
tileImage – is a string containing the name of the input tile image
outColsName – is a string containing the name of the output column
tileOverlap – is an unsigned int defining the overlap between tiles
tileBoundary – is an unsigned int
tileBody – is an unsigned int
-
rsgislib.rastergis.
findBoundaryPixels
(inputImage, outputFile, gdalformat, ratBand)¶ Identifies the pixels on the boundary of the clumps
Where:
- Parameters
inputImage – is a string containing the name of the input image file
outputFile – is a string containing the name of the output file
gdalformat – is a string containing the GDAL format for the output file - (Optional, Default = ‘KEA’)
ratBand – is an int containing band for which the neighbours are to be calculated for (Optional, Default = 1)
-
rsgislib.rastergis.
findNeighbours
(inputImage, ratBand)¶ Finds the clump neighbours from an image
Where:
- Parameters
inputImage – is a string containing the name of the input image file
ratBand – is an int containing band for which the neighbours are to be calculated for (Optional, Default = 1)
-
rsgislib.rastergis.
populateCategoryProportions
(catsimage=string, clumps=string, outcolsname=string, majcolname=string, cpclassnames=boolean, majclassnamefield=string classnamefield=string, ratbandclumps=int, ratbandcats=int)¶ Populates the attribute table with the proportions of intersecting categories
Where:
- Parameters
categoriesImage – is a string containing the name of the categories (classification) image file from which the propotions are calculated
clumpsImage – is a string containing the name of the input clump file to which the proportions are to be populated.
outColsName – is a string representing the base name for the output columns containing the proportions.
majorityColName – is a string for name of the field which will hold the majority class.
copyClassNames – is a boolean defining whether class names should be copied (Optional, Default = false).
majClassNameField – is a string for the output column within the clumps image with the majority class names field (Optional, only used if copyClassNames == True)
classNameField – is a string with the name of the column within the categories image for the class names (Optional, only used if copyClassNames == True)
ratbandclumps – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
ratbandcats – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the catagories image.
-
rsgislib.rastergis.
populateRATWithPercentiles
(valsimage=string, clumps=string, band=int, bandstats=rsgislib.rastergis.BandAttStats, histbins=int, ratband=int)¶ Populates an attribute table with a percentile of the pixel values from an image.
Where:
- Parameters
inputImage – is a string containing the name of the input image file
clumpsImage – is a string containing the name of the input clump file
band – is an int which specifies the image band (from valsimage) for which the stats are to be calculated
bandPercentiles – is a sequence of objects that have attributes matching rsgislib.rastergis.BandAttPercentiles * percentile: float defining the percentile to calculate (Valid range is 0 - 100) * fieldName: string defining the name of the field to use for this percentile
histbins – is an optional (default = 200) integer specifying the number of bins within the histogram (note this governs the accuracy to which percentile can be calculated).
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
inputImage = './Rasters/injune_p142_casi_sub_utm.kea' clumpsImage = './TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_popstats.kea' band=1 bandPercentiles = [] bandPercentiles.append(rastergis.BandAttPercentiles(percentile=25.0, fieldName='B1Per25')) bandPercentiles.append(rastergis.BandAttPercentiles(percentile=50.0, fieldName='B1Per50')) bandPercentiles.append(rastergis.BandAttPercentiles(percentile=75.0, fieldName='B1Per75')) rastergis.populateRATWithPercentiles(inputImage, clumpsImage, band, bandPercentiles)
-
rsgislib.rastergis.
populateRATWithStats
(valsimage=string, clumps=string, bandstats=rsgislib.rastergis.BandAttStats, ratband=int)¶ Populates an attribute table with statistics from an input values image.
Where:
- Parameters
valsimage – is a string containing the name of the input image file from which the clumps are to populated.
clumps – is a string containing the name of the input clumps image file
bandstats – is a sequence of rsgislib.rastergis.BandAttStats objects that have attributes in line with rsgis.cmds.RSGISBandAttStatsCmds * band: int defining the image band to process * minField: string defining the name of the field for min value * maxField: string defining the name of the field for max value * sumField: string defining the name of the field for sum value * meanField: string defining the name of the field for mean value * stdDevField: string defining the name of the field for standard deviation value
ratband is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis clumps='./TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_popstats.kea' input='./Rasters/injune_p142_casi_sub_utm.kea' bs = [] bs.append(rastergis.BandAttStats(band=1, minField='b1Min', maxField='b1Max', meanField='b1Mean', sumField='b1Sum', stdDevField='b1StdDev')) bs.append(rastergis.BandAttStats(band=2, minField='b2Min', maxField='b2Max', meanField='b2Mean', sumField='b2Sum', stdDevField='b2StdDev')) bs.append(rastergis.BandAttStats(band=3, minField='b3Min', maxField='b3Max', meanField='b3Mean', sumField='b3Sum', stdDevField='b3StdDev')) rastergis.populateRATWithStats(input, clumps, bs)
-
rsgislib.rastergis.
populateRATWithMeanLitStats
(valsimage=string, clumps=string, meanLitImage=string, meanlitBand=int, meanLitCol=string, pxlCountCol=string, bandstats=rsgislib.rastergis.BandAttStats, ratband=int)¶ Populates an attribute table with statistics from an input values image where only the pixels with a band value above a defined threshold are used. This is something referred to as the mean-lit statistics, i.e., the sunlit pixels within the object.
Where:
- Parameters
valsimage – is a string containing the name of the input image file from which the clumps are to populated.
clumps – is a string containing the name of the input clumps image file
meanLitImage – is a string containing the name of the input image containing the band to be used for the mean-lit stats.
meanLitBand – is an unsigned integer specifying the image band to be used within the meanLitImage.
meanLitCol – is a string specifying the column to be used for the ‘mean’ for each object in the mean-lit calculation
pxlCountCol – is a string specifying the output column in the RAT where the count for the number of pixels within each clump used for the stats is outputted.
bandstats – is a sequence of rsgislib.rastergis.BandAttStats objects that have attributes in line with rsgis.cmds.RSGISBandAttStatsCmds * band: int defining the image band to process * minField: string defining the name of the field for min value * maxField: string defining the name of the field for max value * sumField: string defining the name of the field for sum value * meanField: string defining the name of the field for mean value * stdDevField: string defining the name of the field for standard deviation value
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis inputImage = "RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa.kea" segmentClumps = "RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa_segs.kea" ndviImage = "RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa_ndvi.kea" bandStats = [] bandStats.append(rastergis.BandAttStats(band=1, meanField='BlueMeanML', stdDevField='BlueStdDevML')) bandStats.append(rastergis.BandAttStats(band=2, meanField='GreenMeanML', stdDevField='GreenStdDevML')) bandStats.append(rastergis.BandAttStats(band=3, meanField='RedMeanML', stdDevField='RedStdDevML')) bandStats.append(rastergis.BandAttStats(band=4, meanField='RedEdgeMeanML', stdDevField='RedEdgeStdDevML')) bandStats.append(rastergis.BandAttStats(band=5, meanField='NIRMeanML', stdDevField='NIRStdDevML')) rastergis.populateRATWithMeanLitStats(valsimage=inputImage, clumps=segmentClumps, meanLitImage=ndviImage, meanlitBand=1, meanLitCol='NDVIMean', pxlCountCol='MLPxlCount', bandstats=bandStats, ratband=1)
-
rsgislib.rastergis.
selectClumpsOnGrid
(clumpsImage, inSelectField, outSelectField, eastingsCol, northingsCol, metricField, methodStr, rows, cols)¶ Selects a segment within a regular grid pattern across the scene. The clump is selected based on the minimum, maximum or closest to the mean.
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
inSelectField – is a string which defines the column name where a value of 1 defines the clumps which will be included in the analysis.
outSelectField – is a string which defines the column name where a value of 1 defines the clumps selected by the analysis.
eastingsCol – is a string which defines a column with a eastings for each clump.
northingsCol – is a string which defines a column with a northings for each clump.
metricField – is a string which defines a column with a value for each clump which will be used for the distance, min, or max anaylsis.
methodStr – is a string which defines whether the minimum, maximum or mean method of selecting a clump will be used (values can be either min, max or mean).
rows – is an unsigned integer which defines the number of rows within which a clump will be selected.
cols – is an unsigned integer which defines the number of columns within which a clump will be selected.
-
rsgislib.rastergis.
spatialLocation
(clumps=string, eastings=string, northings=string, ratband=int)¶ Adds spatial location columns to the attribute table
Where:
- Parameters
inputImage – is a string containing the name of the input image file
eastingsField – is a string containing the name of the eastings field
northingsField – is a string containing the name of the northings field
ratband – is an integer containing the band number for the RAT (Optional, default = 1)
Example:
from rsgislib import rastergis image = 'injune_p142_casi_sub_utm_segs_spatloc_eucdist.kea' eastings = 'Easting' northings = 'Northing' rastergis.spatialLocation(image, eastings, northings)
-
rsgislib.rastergis.
spatialExtent
(clumps=string, minXX=string, minXY=string, maxXX=string, maxXY=string, minYX=string, minYY=string, maxYX=string, maxYY=string, ratband=int)¶ Adds spatial extent for each clump to the attribute table
Where:
- Parameters
inputImage – is a string containing the name of the input image file
minXX – is a string containing the name of the min X X field
minXY – is a string containing the name of the min X Y field
maxXX – is a string containing the name of the max X X field
maxXY – is a string containing the name of the max X Y field
minYX – is a string containing the name of the min Y X field
minYY – is a string containing the name of the min Y Y field
maxYX – is a string containing the name of the max Y X field
maxYY – is a string containing the name of the max Y Y field
ratband – is an integer containing the band number for the RAT (Optional, default = 1)
Example:
from rsgislib import rastergis image = 'injune_p142_casi_sub_utm_segs_spatloc_eucdist.kea' minX_X = 'minXX' minX_Y = 'minXY' maxX_X = 'maxXX' maxX_Y = 'maxXY' minY_X = 'minYX' minY_Y = 'minYY' maxY_X = 'maxYX' maxY_Y = 'maxYY' rastergis.spatialExtent(image, minX_X, minX_Y, maxX_X, maxX_Y, minY_X, minY_Y, maxY_X, maxY_Y)
-
rsgislib.rastergis.
strClassMajority
(baseclumps, infoclumps, baseclasscol, infoclasscol, ignorezero=True, baseratband=1, inforatband=1)¶ Finds the majority for class (string - field) from a set of small objects to large objects
Where:
- Parameters
baseSegment – is a the base clumps file, to be attribured.
infoSegment – is the file to take attributes from.
baseclasscol – the output column name in the baseSegment file.
infoclasscol – is the colum name in the infoSegment file.
ignoreZero – is a boolean specifying if zeros should be ignored in input layer. If set to false values of 0 will be included when calculating the class majority, otherwise the majority calculation will only consider objects with a value greater than 0.
baseratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the base clumps.
inforatband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the info clumps.
Example:
from rsgislib import rastergis clumps='./TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_popstats.kea' classRAT='./TestOutputs/RasterGIS/reInt_rat.kea' rastergis.strClassMajority(clumps, classRAT, 'class_dst', 'class_src')
-
rsgislib.rastergis.
populateRATWithMode
(valsimage=string, clumps=string, outcolsname=string, usenodata=boolean, nodataval=long, outnodata=boolean, modeband=uint, ratband=uint)¶ Populates the attribute table with the mode of from a single band in the input image. Note this only makes sense if the input pixel values are integers.
Where:
- Parameters
valsimage – is a string containing the name of the input image file from which the mode is calculated
clumpsImage – is a string containing the name of the input clump file to which the mode will be populated.
outColsName – is a string representing the name for the output column containing the mode.
usenodata – is a boolean defining whether the no data value should be ignored (Optional, Default = False).
nodataval – is a long defining the no data value to be used (Optional, Default = 0)
outnodata – is a boolean to specify that although the no data value should be used for the calculation it should not be outputted to the RAT as a output value unless there is no valid data within the clump. (Default = True)
modeband – is an optional (default = 1) integer parameter specifying the image band for which the mode is to be calculated.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
-
rsgislib.rastergis.
populateRATWithPropValidPxls
(valsimage=string, clumps=string, outcolsname=string, nodataval=float, ratband=uint)¶ Populates the attribute table with the proportion of valid pixels within the clump.
Where:
- Parameters
valsimage – is a string containing the name of the input image file from which the valid pixels are to be identified
clumpsImage – is a string containing the name of the input clump file to which the proportion will be populated.
outColsName – is a string representing the name for the output column containing the proportion.
nodataval – is a float defining the no data value to be used.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
-
rsgislib.rastergis.ratutils.
defineClassNames
(clumps, classNumCol, classNameCol, classNamesDict)¶ A function to create a class names column in a RAT based on segmented clumps where a number of clumps have the same number class.
- Parameters
clumps – input clumps image.
classNumCol – column specifying the class number (e.g., where clumps are segments in a segmentation)
classNameCol – the output column name where a string will be created if it doesn’t already exists.
classNamesDict – Dictionary to look up the class names. The key needs to the integer number for the class
-
rsgislib.rastergis.ratutils.
calcDist2Classes
(clumpsImg, classCol, outImgBase, tmpDIR='./tmp', tileSize=2000, maxDist=1000, nodata=1000, nCores=- 1)¶ A function which will calculate proximity rasters for a set of classes defined within the RAT.
- Parameters
clumpsImg – is a string specifying the input image with the associated RAT
classCol – is the column in the RAT which has the classification
outImgBase – is the base name of the output image - output files will be KEA files.
tmpDIR – is a directory to be used for storing the image tiles and other temporary files - if not directory does not exist it will be created and deleted on completion (Default: ./tmp).
tileSize – is an int specifying in pixels the size of the image tiles used for processing (Default: 2000)
maxDist – is the maximum distance in units of the geographic units of the projection of the input image (Default: 1000).
nodata – is the value applied to the pixels outside of the maxDist threshold (Default: 1000; i.e., the same as maxDist).
nCores – is the number of processing cores which are available to be used for this processing. If -1 all available cores will be used. (Default: -1)
-
rsgislib.rastergis.ratutils.
setColumnData
(clumpsImg, columnName, columnData)¶ A function to read a column of data from a RAT.
- Parameters
clumpsImg – Input clumps image
columnName – Name of the column to be written.
columnData – Data to be written to the column.
Sampling¶
-
rsgislib.rastergis.
histoSampling
(clumps=string, varCol=string, outSelectCol=string, propOfSample=float, binWidth=float, classColumn=string, classVal=string, ratband=int)¶ This function performs a histogram based sampling of the RAT for a specific column. The output is a binary column within the RAT where rows with a value of 1 are the selected clumps.
Where:
- Parameters
clumps – is a string containing the name of the input clumps image file
varCol – is a string containing the name of the field with the values used for the sampling.
outSelectCol – is a string containing the name of the field where the binary output will be written (1 for selected clumps).
propOfSample – is a float specifying the proportion of the datasets which should be within the outputted sample. Values range of 0-1. 0.5 would be a 50% sample.:param binWidth: is a float specifying the width of each histogram bin.
classColumn – is a string specifying a field within which classes have been defined. This can be used to only apply the sampling to a thematic subset of the RAT. If set as None then this is ignored. (Default = None)
classVal – is a string specifying the class it will be limited to.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis rastergis.histoSampling(clumps='N00E103_10_grid_knn.kea', varCol='HH', outSelectCol='HHSampling', propOfSample=0.25, binWidth=0.01, classColumn='Class', classVal='2')
-
rsgislib.rastergis.ratutils.
takeRandomSample
(clumpsImg, inColName, inColVal, outColName, sampleRatio, seed=0)¶ A function to take a random sample of an input column.
- Parameters
clumpsImg – clumps image.
inColName – input column name.
inColVal – numeric value for which the random sample is to be taken for.
outColName – output column where value of 1 is selected within the random sample and 0 is not selected.
sampleRatio – the size of the sample (0 - 1.0; i.e., 10% = 0.1) to be taken of the number of rows within input value.
seed – is the seed for the random number generation (optional; default is 0).
Classification¶
-
rsgislib.rastergis.
binaryClassification
(clumpsImage, xmlBlock, outColumn, ratBand)¶ Calculates a binary classification (1, 0) given a set of logical conditions.
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
xmlBlock – is a string with a block of XML which is to be parsed for the logical expression.
outColumn – is a string with the name out of the output column.
ratBand – is an (optional; default 1) integer with the image band with which the RAT is associated.
Example:
#!/usr/bin/env python from rsgislib import rastergis import xml.etree.cElementTree as ET ET.register_namespace("rsgis", "http://www.rsgislib.org/xml/") rootElem = ET.Element("{http://www.rsgislib.org/xml/}ratlogicexps") expRoot = ET.SubElement(rootElem, "{http://www.rsgislib.org/xml/}expression", {'operation':'and'}) ET.SubElement(expRoot, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'eq','column':'ClustersClass','threshold':'6'}) ET.SubElement(expRoot, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'gt','column':'NIRMean','threshold':'300'}) xmlBlock = ET.tostring(rootElem, encoding='utf8', method='xml').decode("utf-8") print(xmlBlock) inputimage = "RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa_segs.kea" outClassColumn = "Classification" rastergis.binaryClassification(inputimage, xmlBlock, outClassColumn)
-
rsgislib.rastergis.
regionGrowClass
(clumpsImage, xmlBlock, classColumn, classVal, maxNumIter, ratBand)¶ Using a logical expression a class (classVal) defined within the classColumn is grown until. either the maximum number of iterations (maxNumIter) is reached or there all clumps meeting the criteria have been met (set maxNumIter to be -1).
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
xmlBlock – is a string with a block of XML which is to be parsed for the logical expression.
classColumn – is a string with the name column containing the classification.
classVal – is a string with the name of the class to be grown
maxNumIter – is the maximum number of iterations to used for the growth (optional; default is -1, i.e., no max number of iterations
ratBand – is an (optional; default 1) integer with the image band with which the RAT is associated.
Example:
from rsgislib import rastergis import xml.etree.cElementTree as ET ET.register_namespace("rsgis", "http://www.rsgislib.org/xml/") rootElem = ET.Element("{http://www.rsgislib.org/xml/}ratlogicexps") expRoot = ET.SubElement(rootElem, "{http://www.rsgislib.org/xml/}expression", {'operation':'or'}) ET.SubElement(expRoot, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'gt','column':'GreenMean','threshold':'150'}) ET.SubElement(expRoot, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'gt','column':'RedMean','threshold':'150'}) xmlBlock = ET.tostring(rootElem, encoding='utf8', method='xml').decode("utf-8") print(xmlBlock) inputimage = "RapidEye_20130625_lat53lon389_tid3063312_oid167771_rad_toa_segs.kea" classColumn = "ClustersClass" classVal = "6" maxIters = -1 rastergis.findNeighbours(inputimage) rastergis.regionGrowClass(inputimage, xmlBlock, classColumn, classVal, maxIters)
-
rsgislib.rastergis.
regionGrowClassNeighCritera
(clumpsImage, xmlBlockGrowCriteria, xmlBlockNeighCriteria, classColumn, classVal, maxNumIter, ratBand)¶ Using a logical expression a class (classVal) defined within the classColumn is grown until. either the maximum number of iterations (maxNumIter) is reached or there all clumps meeting the criteria have been met (set maxNumIter to be -1).
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
xmlBlockGrowCriteria – is a string with a block of XML which is to be parsed for the logical expression for the region growing.
xmlBlockNeighCriteria – is a string with a block of XML which is to be parsed for the logical expression for stating whether a feature is a neighbour which can be considered.
classColumn – is a string with the name column containing the classification.
classVal – is a string with the name of the class to be grown
maxNumIter – is the maximum number of iterations to used for the growth (optional; default is -1, i.e., no max number of iterations
ratBand – is an (optional; default 1) integer with the image band with which the RAT is associated.
Example:
from rsgislib import rastergis import xml.etree.cElementTree as ET ET.register_namespace("rsgis", "http://www.rsgislib.org/xml/") rootElemCriteria = ET.Element("{http://www.rsgislib.org/xml/}ratlogicexps") andElem = ET.SubElement(rootElemCriteria, "{http://www.rsgislib.org/xml/}expression", {'operation':'and'}) ET.SubElement(andElem, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'gt','column':'HHdB','threshold':'-10'}) ET.SubElement(andElem, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'lt','column':'dist2Sea','threshold':'2000'}) xmlBlockGrowCriteria = ET.tostring(rootElemCriteria, encoding='utf8', method='xml').decode("utf-8") print(xmlBlockGrowCriteria) ET.register_namespace("rsgis", "http://www.rsgislib.org/xml/") rootElemNeigh = ET.Element("{http://www.rsgislib.org/xml/}ratlogicexps") ET.SubElement(rootElemNeigh, "{http://www.rsgislib.org/xml/}expression", {'operation':'evaluate','operator':'lt','column':'dist2Sea'}) xmlBlockNeighCriteria = ET.tostring(rootElemNeigh, encoding='utf8', method='xml').decode("utf-8") print(xmlBlockNeighCriteria) inputimage = "N00E103_classification_grown.kea" classColumn = "Classification" classVal = "Mangroves" maxIters = -1 rastergis.findNeighbours(inputimage) rastergis.regionGrowClassNeighCritera(inputimage, xmlBlockGrowCriteria, xmlBlockNeighCriteria, classColumn, classVal, maxIters)
-
rsgislib.rastergis.ratutils.
identifySmallUnits
(clumpsImg, classCol, tmpPath, outColName, smallClumpsThres, useTiledClump=False, nCores=2, tileWidth=4000, tileHeight=4000)¶ Identify small connected units within a classification. The threshold to define small is provided by the user in pixels. Note, the outColName and smallClumpsThres variables can be provided as lists to identify a number of thresholds of small units.
- Parameters
clumpsImg – string for the clumps image file containing input classification
classCol – string for the column name representing the classification as integer values
tmpPath – directory path where temporary layers are stored (if directory is created within the function it will be deleted once function is complete).
outColName – a list of output column names (i.e., one for each threshold)
smallClumpsThres – a list of thresholds for identifying small clumps.
useTiledClump – a boolean to specify whether the tiled clumping algorithm should be used (Default is False; select True for large datasets)
nCores – if the tiled version of the clumping algorithm is being used then there is an option to use multiple processing cores; specify the number to be used (Default is 2).
tileWidth – is the width of the image tile (in pixels) if tiled clumping is used.
tileHeight – is the height of the image tile (in pixels) if tiled clumping is used.
Example:
from rsgislib.rastergis import ratutils clumpsImg = "LS2MSS_19750620_lat10lon6493_r67p250_rad_srefdem_30m_clumps.kea" tmpPath = "./tmp/" classCol = "OutClass" outColName = ["SmallUnits25", "SmallUnits50", "SmallUnits100"] smallClumpsThres = [25, 50, 100] rastergis.identifySmallUnits(clumpsImg, classCol, tmpPath, outColName, smallClumpsThres)
-
rsgislib.rastergis.ratutils.
populateClumpsWithClassTraining
(clumpsImg, classesDict, tmpPath, classesIntCol, classesNameCol)¶ A function to populate a clumps file with training from a series of shapefiles (1 per class)
Where:
- Parameters
clumpsImg – input clumps file.
classesDict – A dict structure with the class names as keys and the values are an array of two values [int class val, file path for a vector file (e.g., shapefile)].
tmpPath – File path (which needs to exist) where files can temporally be written.
classesIntCol – Output column name for integer values representing each class.
classesNameCol – Output column name for string class names.
Extrapolation¶
-
rsgislib.rastergis.
applyKNN
(clumps=string, inExtrapField=string, outExtrapField=string, trainRegionsField=string, applyRegionsField=string, fields=list<string>, kFeat=uint, distKNN=int, summeriseKNN=int, distThres=float, ratband=int)¶ This function uses the KNN algorithm to allow data values to be extrapolated to segments.
Where:
- Parameters
clumps – is a string containing the name of the input clumps image file
inExtrapField – is a string containing the name of the field with the values used for the extrapolation.
outExtrapField – is a string containing the name of the field where the extrapolated values will be written to.
trainRegionsField – is a string containing the name of the field specifying the clumps to be used as training - binary column (1 == training region).
applyRegionsField – is a string containing the name of the field specifying the regions for which KNN is to be applued - binary column (1 == regions to be calculated). If None then ignored and applied to all.:param fields: is a list of strings specifying the fields which will be used to calculate distance.
kFeat – is an unsigned integer specifying the number of nearest features (i.e., K) to be used (Default: 12)
distKNN – specifies how the distance to identify NN is calculated (rsgislib.DIST_EUCLIDEAN, rsgislib.DIST_MANHATTEN, rsgislib.DIST_MAHALANOBIS, rsgislib.DIST_MINKOWSKI, rsgislib.DIST_CHEBYSHEV; Default: rsgislib.DIST_MAHALANOBIS).
summeriseKNN – specifies how the extrapolation value is calculated (rsgislib.SUMTYPE_MODE, rsgislib.SUMTYPE_MEAN, rsgislib.SUMTYPE_MEDIAN, rsgislib.SUMTYPE_MIN, rsgislib.SUMTYPE_MAX, rsgislib.SUMTYPE_STDDEV; Default: rsgislib.SUMTYPE_MEDIAN). Mode is used for classification.
distThres – is a maximum distance threshold over which features will not be included within the ‘k’.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis from rsgislib import imageutils import rsgislib forestClumpsImg='./LS5TM_20110428_forestclumps.kea' rastergis.applyKNN(clumps=forestClumpsImg, inExtrapField='HP95', outExtrapField='HP95Pred', trainRegionsField='LiDARForest', applyRegionsField=None, fields=['RedRefl','GreenRefl','BlueRefl'], kFeat=12, distKNN=rsgislib.DIST_EUCLIDEAN, summeriseKNN=rsgislib.SUMTYPE_MEDIAN, distThres=25) # Export predicted column to GDAL image forestHeightImg='./LS5TM_20110428_forest95Height.kea' rastergis.exportCol2GDALImage(forestClumpsImg, forestHeightImg, 'KEA', rsgislib.TYPE_32FLOAT, 'HP95Pred') imageutils.popImageStats(forestHeightImg,True,0.,True)
Change Detection¶
-
rsgislib.rastergis.
findChangeClumpsFromStdDev
(clumpsImage, classfield, changeField, attFields, classChangeFields)¶ Identifies segments which have changed by looking for statistical outliers (std dev) from class population.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
classfield – is a string providing the name of the column containing classes.
change – is a string providing the output name of the change field
attributes – is a sequence of strings containing the columns to use when detecting change.
classChangeFields – is a sequence of python objects having the following attributes: * name - The class name in which change is going to be search for * outName - An integer to uniquely identify the clumps identify as change * threshold - The number of standard deviations away from the mean above which segments are identified as change.
ratBand – is an int containing band for which the neighbours are to be calculated for (Optional, Default = 1)
Example:
import collections from rsgislib import rastergis clumpsImage='injune_p142_casi_sub_utm_segs_popstats.kea' ChangeFeat = collections.namedtuple('ChangeFeats', ['name', 'outName', 'threshold']) changeFeatVals = [] changeFeatVals.append(ChangeFeat(name='Forest', outName=1, threshold=thresholdAll)) changeFeatVals.append(ChangeFeat(name='Scrub-Shrub', outName=1, threshold=thresholdAll)) rastergis.findChangeClumpsFromStdDev(clumpsImage, 'ClassName', 'ChangeFeats', ['NDVI'], changeFeatVals)
-
rsgislib.rastergis.
getGlobalClassStats
(clumpsImage, classfield, attFields, classChangeFields)¶ Similar to ‘findChangeClumpsFromStdDev’ but rather than applying a threshold to calculate change clumps adds global (over all objects) class mean and standard deviation to RAT.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
classfield – is a string providing the name of the column containing classes.
attributes – is a sequence of strings containing the columns to use when detecting change.
classChangeFields – is a sequence of python objects having the following attributes: * name - The class name in which change is going to be search for
ratBand – is an int containing band for which the neighbours are to be calculated for (Optional, Default = 1)
Example:
import collections from rsgislib import rastergis clumpsImage='injune_p142_casi_sub_utm_segs_popstats.kea' ChangeFeat = collections.namedtuple('ChangeFeats', ['name', 'outName', 'threshold']) changeFeatVals = [] changeFeatVals.append(ChangeFeat(name='Forest')) changeFeatVals.append(ChangeFeat(name='Scrub-Shrub)) rastergis.getGlobalClassStats(clumpsImage, 'ClassName', ['NDVI'], changeFeatVals)
-
rsgislib.rastergis.
classSplitFitHistGausianMixtureModel
(clumps=string, outCol=string, varCol=string, binWidth=float, classColumn=string, classVal=string, ratband=int)¶ This function fits a Gaussian mixture model to the histogram for a variable in the RAT and uses it to split the class into a series of subclasses.
Where:
- Parameters
clumps – is a string containing the name of the input clumps image file
outCol – is a string for a HDF5 with the fitted Gaussians.
varCol – is a string containing the name of the field with the values used for the sampling.
binWidth – is a float specifying the width of each histogram bin.
classColumn – is a string specifying a field within which classes have been defined.
classVal – is a string specifying the class it will be limited to.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis rastergis.classSplitFitHistGausianMixtureModel(clumps='FrenchGuiana_10_ALL_sl_HH_lee_UTM_mosaic_dB_segs.kea', outCol='MangroveSubClass', varCol='HVdB', binWidth=0.1, classColumn='Classes', classVal='Mangroves')
-
rsgislib.rastergis.ratutils.
calcPlotGaussianHistoModel
(clumpsFile, outGausH5File, outHistH5File, outPlotFile, varCol, binWidth, classColumn, classVal, plotTitle)¶ - Extracts a column from the RAT, masking by a class calculating the histogram and
fitting a Gaussian mixture model to the histogram. Outputs include a plot and HDF5 files of the histogram and gaussian parameters.
Where:
- Parameters
clumpsFile – input clumps file with populated RAT.
outGausH5File – the output HDF5 file for the Gaussian Mixture Model
outHistH5File – the output HDF5 file for the histogram.
outPlotFile – the output PDF file for the plot
varCol – Column within the RAT for the variable to be used for the histogram
binWidth – Bin width for the histogram
classColumn – Column where the classes are specified
classVal – Class used to mask the input variable
plotTitle – title for the plot
Example:
from rsgislib.rastergis import ratutils clumpsFile = "FrenchGuiana_10_ALL_sl_HH_lee_UTM_mosaic_dB_segs.kea" outGausH5File = "gaufit.h5" outHistH5File = "histfile.h5" outPlotFile = "Plot.pdf" varCol = "HVdB" binWidth = 0.1 classColumn = "Classes" classVal = "Mangrove" plotTitle = "HV dB Backscater from Mangroves; French Guiana" ratutils.calcPlotGaussianHistoModel(clumpsFile, outGausH5File, outHistH5File, outPlotFile, varCol, binWidth, classColumn, classVal, plotTitle)
-
rsgislib.rastergis.ratutils.
findChangeClumpsHistSkewKurtTest
(inputClumps, inClassCol, classOfInterest, changeVarCol, outChangeFeatCol, noDataVals=[], thresMeasure=<RSGISRATThresMeasure.auto: 4>, exportPlot=None, showAllThreshPlot=False)¶ This function identifies potential change features from both sides of the histogram by slicing the histogram and finding an optimal skewness and kurtosis.
Where:
- Parameters
inputClumps – input clumps file.
inClassCol – The column specifiying the classes, one of which change will be found.
classOfInterest – The class (as defined in inClassCol) on which changed is being found.
changeVarCol – Variable(s) to be used to find change. Expecting column name. Needs to be numeric. If a list of column names is provided then they are combined using PCA and the first PC is used for the change process.
outChangeFeatCol – the output column. Regions lower than lower threshold have value 1. Regions higher than upper threshold have value 2. No change had threshold 0.
noDataVals – list of no data values to be ignored.
thresMeasure – needs to be of type RSGISRATThresMeasure (default is auto)
exportPlot – file name for exporting a histogram plot with thresholds annotated. No plot is create if None is passed (default is none).
showAllThreshPlot – option when plotting to put all the thresholds on to the plot rather than just the one being used.
- Returns
list of lower [0] and upper [1] thresholds used to define the no change region.
-
rsgislib.rastergis.ratutils.
findChangeClumpsHistSkewKurtTestLower
(inputClumps, inClassCol, classOfInterest, changeVarCol, outChangeFeatCol, noDataVals=[], thresMeasure=<RSGISRATThresMeasure.auto: 4>, exportPlot=None, showAllThreshPlot=False)¶ This function identifies potential change features from just the lower (left) side of the histogram by slicing the histogram and finding an optimal skewness and kurtosis.
Where:
- Parameters
inputClumps – input clumps file.
inClassCol – The column specifiying the classes, one of which change will be found.
classOfInterest – The class (as defined in inClassCol) on which changed is being found.
changeVarCol – changeVarCol - Variable(s) to be used to find change. Expecting column name. Needs to be numeric. If a list of column names is provided then they are combined using PCA and the first PC is used for the change process.
outChangeFeatCol – the output column. Regions lower than lower threshold have value 1. Regions higher than upper threshold have value 2. No change had threshold 0.
noDataVals – list of no data values to be ignored.
thresMeasure – needs to be of type RSGISRATThresMeasure (default is auto)
exportPlot – file name for exporting a histogram plot with thresholds annotated. No plot is create if None is passed (default is none).
showAllThreshPlot – option when plotting to put all the thresholds on to the plot rather than just the one being used.
- Returns
list of lower [0] and upper [1] thresholds used to define the no change region.
-
rsgislib.rastergis.ratutils.
findChangeClumpsHistSkewKurtTestUpper
(inputClumps, inClassCol, classOfInterest, changeVarCol, outChangeFeatCol, noDataVals=[], thresMeasure=<RSGISRATThresMeasure.auto: 4>, exportPlot=None, showAllThreshPlot=False)¶ This function identifies potential change features from just the upper (right) side of the histogram by slicing the histogram and finding an optimal skewness and kurtosis.
Where:
- Parameters
inputClumps – input clumps file.
inClassCol – The column specifiying the classes, one of which change will be found.
classOfInterest – The class (as defined in inClassCol) on which changed is being found.
changeVarCol – changeVarCol - Variable(s) to be used to find change. Expecting column name. Needs to be numeric. If a list of column names is provided then they are combined using PCA and the first PC is used for the change process.
outChangeFeatCol – the output column. Regions lower than lower threshold have value 1. Regions higher than upper threshold have value 2. No change had threshold 0.
noDataVals – list of no data values to be ignored.
thresMeasure – needs to be of type RSGISRATThresMeasure (default is auto)
exportPlot – file name for exporting a histogram plot with thresholds annotated. No plot is create if None is passed (default is none).
showAllThreshPlot – option when plotting to put all the thresholds on to the plot rather than just the one being used.
- Returns
list of lower [0] and upper [1] thresholds used to define the no change region.
-
rsgislib.rastergis.ratutils.
findChangeClumpsHistSkewKurtTestVoteMultiVars
(inputClumps, inClassCol, classOfInterest, outChangeFeatCol, vars=[])¶ A function to call one of the findChangeClumpsHistSkewKurtTest functions for multiple variables and then combine together by voting to find change features.
Where:
- Parameters
inputClumps – input clumps file.
inClassCol – The column specifiying the classes, one of which change will be found.
classOfInterest – The class (as defined in inClassCol) on which changed is being found.
outChangeFeatCol – the output column with the vote scores.
vars – a list of RSGISRATChangeVarInfo objects used to specify the variables and function to be called.
-
rsgislib.rastergis.ratutils.
findClumpsWithinExistingThresholds
(inputClumps, inClassCol, classOfInterest, outFeatsCol, vars=[])¶ A function to use the thresholds stored in the RSGISRATChangeVarInfo objects (var) and populated from the findChangeClumpsHistSkewKurtTest functions to assess another class creating a binary column as to whether a feature is within the threshold or now. Where multiple variables (i.e., len(var) > 1) then variables are combined with an and operation.
Where:
- Parameters
inputClumps – input clumps file.
inClassCol – The column specifiying the classes, one of which change will be found.
classOfInterest – The class (as defined in inClassCol) on which changed is being found.
outFeatsCol – the output binary column specifying whether a feature is within the thresholds.
vars – a list of RSGISRATChangeVarInfo objects used to specify the variables and function to be called.
Statistics¶
-
rsgislib.rastergis.
fitHistGausianMixtureModel
(clumps=string, outH5File=string, outHistFile=string, varCol=string, binWidth=float, classColumn=string, classVal=string, ratband=int)¶ This function fits a Gaussian mixture model to the histogram for a variable in the RAT.
Where:
- Parameters
clumps – is a string containing the name of the input clumps image file
outH5File – is a string for a HDF5 with the fitted Gaussians.
outHistFile – is a string to output the Histrogram as a HDF5 file.
varCol – is a string containing the name of the field with the values used for the sampling.
binWidth – is a float specifying the width of each histogram bin.
classColumn – is a string specifying a field within which classes have been defined.
classVal – is a string specifying the class it will be limited to.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis rastergis.fitHistGausianMixtureModel(clumps='FrenchGuiana_10_ALL_sl_HH_lee_UTM_mosaic_dB_segs.kea', outH5File='gaufit.h5', outHistFile='histfile.h5', varCol='HVdB', binWidth=0.1, classColumn='Classes', classVal='Mangrove')
-
rsgislib.rastergis.ratutils.
calcPlotGaussianHistoModel
(clumpsFile, outGausH5File, outHistH5File, outPlotFile, varCol, binWidth, classColumn, classVal, plotTitle)¶ - Extracts a column from the RAT, masking by a class calculating the histogram and
fitting a Gaussian mixture model to the histogram. Outputs include a plot and HDF5 files of the histogram and gaussian parameters.
Where:
- Parameters
clumpsFile – input clumps file with populated RAT.
outGausH5File – the output HDF5 file for the Gaussian Mixture Model
outHistH5File – the output HDF5 file for the histogram.
outPlotFile – the output PDF file for the plot
varCol – Column within the RAT for the variable to be used for the histogram
binWidth – Bin width for the histogram
classColumn – Column where the classes are specified
classVal – Class used to mask the input variable
plotTitle – title for the plot
Example:
from rsgislib.rastergis import ratutils clumpsFile = "FrenchGuiana_10_ALL_sl_HH_lee_UTM_mosaic_dB_segs.kea" outGausH5File = "gaufit.h5" outHistH5File = "histfile.h5" outPlotFile = "Plot.pdf" varCol = "HVdB" binWidth = 0.1 classColumn = "Classes" classVal = "Mangrove" plotTitle = "HV dB Backscater from Mangroves; French Guiana" ratutils.calcPlotGaussianHistoModel(clumpsFile, outGausH5File, outHistH5File, outPlotFile, varCol, binWidth, classColumn, classVal, plotTitle)
-
rsgislib.rastergis.
calc1DJMDistance
(clumps=string, varcol=string, binwidth=float, classcol=string, class1=string, class2=string, ratband=uint)¶ Calculate the Jeffries and Matusita distance for a single variable between two classes.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
varcol – is a string specifying the name of the variable column.
binwidth – is a float specifying the bin width for the histogram.
classcol – is a string specifying the column name with the class names.
class1 – is a string specifying the first class.
class2 – is a string specifying the second class.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
- Returns
double for distance
-
rsgislib.rastergis.
calc2DJMDistance
(clumps=string, var1col=string, var2col=string, var1binWidth=float, var2binWidth=float, classcol=string, class1=string, class2=string, ratband=uint)¶ Calculate the Jeffries and Matusita distance for two variables between two classes.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
var1col – is a string specifying the name of the first variable column.
var2col – is a string specifying the name of the second variable column.
var1binwidth – is a float specifying the bin width for the histogram for variable 1.
var2binwidth – is a float specifying the bin width for the histogram for variable 2.
classcol – is a string specifying the column name with the class names.
class1 – is a string specifying the first class.
class2 – is a string specifying the second class.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
- Returns
double for distance
-
rsgislib.rastergis.
calcBhattacharyyaDistance
(clumps=string, varcol=string, classcol=string, class1=string, class2=string, ratband=uint)¶ Calculate the Bhattacharyya distance for a single variable between two classes.
Where:
- Parameters
clumps – is a string containing the name of the input clump file
varcol – is a string specifying the name of the variable column.
classcol – is a string specifying the column name with the class names.
class1 – is a string specifying the first class.
class2 – is a string specifying the second class.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated in the clumps image.
- Returns
double for distance
Copy & Export¶
-
rsgislib.rastergis.
export2Ascii
(clumps, outfile, fields, ratband=1)¶ Exports selected columns from a GDAL RAT to ASCII file (comma separated). The first column is the object ID (FID).
Where:
- Parameters
clumps – is a string containing the name of the input RAT.
outfile – is a string containing the name of the output file.
fields – is a sequence of strings containing the field names.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis clumps='./RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' outfile='./TestOutputs/RasterGIS/injune_p142_casi_rgb_exportascii.txt' fields = ['BlueAvg', 'GreenAvg', 'RedAvg'] rastergis.export2Ascii(clumps, outfile, fields)
-
rsgislib.rastergis.
exportCol2GDALImage
(clumps, outimage, gdalformat, datatype, field, ratband=1)¶ Exports column of the raster attribute table as bands in a GDAL image.
Where:
- Parameters
clumps – is a string containing the name of the input image file with RAT
outimage – is a string containing the name of the output gdal file
gdalformat – is a string containing the GDAL format for the output file - eg ‘KEA’
datatype – is an int containing one of the values from rsgislib.TYPE_*
field – is a string, providing the name of the column to be exported.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
clumps='./RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' outimage='./TestOutputs/RasterGIS/injune_p142_casi_rgb_export.kea' gdalformat = 'KEA' datatype = rsgislib.TYPE_32FLOAT field = 'RedAvg' rastergis.exportCol2GDALImage(clumps, outimage, gdalformat, datatype, field)
-
rsgislib.rastergis.
exportCols2GDALImage
(clumps, outimage, gdalformat, datatype, fields, ratband=1, tempDIR=None)¶ Exports columns of the raster attribute table as bands in a GDAL image. Utility function, exports each column individually then stacks them.
Where:
- Parameters
clumps – is a string containing the name of the input image file with RAT
outimage – is a string containing the name of the output gdal file
gdalformat – is a string containing the GDAL format for the output file - eg ‘KEA’
datatype – is an int containing one of the values from rsgislib.TYPE_*
field – is a list of strings, providing the names of the column to be exported.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
clumps='./RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' outimage='./TestOutputs/RasterGIS/injune_p142_casi_rgb_export.kea' gdalformat = 'KEA' datatype = rsgislib.TYPE_32FLOAT fields = ['RedAvg','GreenAvg','BlueAvg'] rastergis.exportCols2GDALImage(clumps, outimage, gdalformat, datatype, fields)
-
rsgislib.rastergis.
exportClumps2Images
(clumps, outimgbase, binout, outimgext, gdalformat, ratband=1)¶ Exports each clump to a seperate raster which is the minimum extent for the clump.
Where:
- Parameters
clumps – is a string containing the name of the input image file with RAT
outimgbase – is a string containing the base name of the output image file (C + FID will be added to identify files).
outimgext – is a sting with the output file extension (e.g., kea) without the preceeding dot to be appended to the file name.
binout – is a boolean specifying whether the output images should be binary or if the pixel value should be the FID of the clump.
gdalformat – is a string containing the GDAL format for the output file - eg ‘KEA’
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
import rsgislib from rsgislib import rastergis clumps='./DefineTiles.kea' outimgbase='./Tiles/OutputImgTile_' outimgext='kea' gdalformat = 'KEA' binaryOut = False rastergis.exportClumps2Images(clumps, outimgbase, binaryOut, outimgext, gdalformat, ratband)
-
rsgislib.rastergis.
copyGDALATTColumns
(clumps, outimage, fields, copycolours=True, copyhist=True, ratband=1)¶ Copies GDAL RAT columns from one image to another
Where:
- Parameters
clumps – is a string containing the name and path for the image with RAT from which columns are to copied from.
outimage – is a string containing the name of the file to which the columns are to be copied.
fields – is a sequence of strings containing the names of the fields to copy
copycolours – is a bool specifying if the colour columns should be copied (default = True)
copyhist – is a bool specifying if the histogram should be copied (default = True)
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis table = './RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' image = './TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_cpcols.kea' fields = ['NIRAvg', 'BlueAvg', 'GreenAvg', 'RedAvg'] rastergis.copyGDALATTColumns(image, table, fields)
To copy a subset of columns from one RAT to a new file the following can be used:
import rsgislib import rsgislib.imageutils from rsgislib import rastergis ratband=1 table='inRAT.kea' output='outRAT_nir_only.kea' bands = [ratband] rsgislib.imageutils.selectImageBands(table, output,'KEA', rsgislib.TYPE_32INT, bands) fields = ['NIRAvg'] rastergis.copyGDALATTColumns(table, output, fields, copycolours=True, copyhist=True, ratband=ratband)
-
rsgislib.rastergis.
copyRAT
(clumps, outimage, ratband=1)¶ Copies a GDAL RAT from one image to another
Where:
- Parameters
clumps – is a string containing the name and path for the image with RAT from which columns are to copied from.
outimage – is a string containing the name of the file to which the columns are to be copied.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis clumps = './RATS/injune_p142_casi_sub_utm_clumps_elim_final_clumps_elim_final.kea' outimage = './TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_cptab.kea' rastergis.copyRAT(clumps, outimage)
-
rsgislib.rastergis.
interpolateClumpValues2Image
(clumpsImage, selectField, eastingsField, northingsField, methodStr, valueField, outputFile, gdalformat, gdaltype, ratBand)¶ Interpolates values from clumps to the whole image of pixels.
Where:
- Parameters
clumpsImage – is a string containing the name of the input clump file
selectField – is a string which defines the column name where a value of 1 defines the clumps which will be included in the analysis.
eastingsField – is a string which defines a column with a eastings for each clump.
northingsField – is a string which defines a column with a northings for each clump.
methodStr – is a string which defines a column with a value for each clump which will be used for the distance, nearestneighbour or naturalneighbour or naturalnearestneighbour or knearestneighbour or idwall anaylsis.
valueField – is a string which defines a column containing the values to be interpolated creating the new image.
outputFile – is a string for the path to the output image file.
gdalformat – is string defining the GDAL format of the output image.
datatype – is an containing one of the values from rsgislib.TYPE_*
ratBand – is the image band with which the RAT is associated.
-
rsgislib.rastergis.
importVecAtts
(clumps, vector, veclyr, fidcol, colnames, ratband=1)¶ Copies the attributes from an input shapefile to the RAT.
Where:
- Parameters
clumps – is a string containing the name of the input file with RAT
vector – is a string containing the file path of the input vector file
veclyr – is a string containing the layer name within the input vector file
fidcol – is a string with the name of a column which has the clumps pixel value associated with the vector feature.
colnames – is a list of strings specifying the columns to be copied to the RAT. If ‘None’ then all attributes will be copied.
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
from rsgislib import rastergis clumps = 'clumpsFiles.kea' vectorFile = 'vectorFile.shp' veclyr = 'vectorFile' rastergis.importVecAtts(clumps, vectorFile, veclyr, 'pxlval', None)
Colour Tables¶
-
rsgislib.rastergis.
colourClasses
(clumps, field, classcolours, ratband)¶ Sets a colour table for a set of classes within the attribute table
Where:
- Parameters
clumps – is a string containing the name of the input file
field – is a string containing the name of the input class field (class can be a string or integer).
classcolours – is dict mapping int class ids to an object having the following attributes: * red: int defining the red colour component (0 - 255) * green: int defining the green colour component (0 - 255) * blue: int defining the bluecolour component (0 - 255) * alpha: int defining the alpha colour component (0 - 255)
ratband – is an optional (default = 1) integer parameter specifying the image band to which the RAT is associated.
Example:
import collections from rsgislib import rastergis clumps='./TestOutputs/RasterGIS/injune_p142_casi_sub_utm_segs_col.kea' field = 'outClass' classcolours = {} colourCat = collections.namedtuple('ColourCat', ['red', 'green', 'blue', 'alpha']) classcolours[0] = colourCat(red=200, green=50, blue=50, alpha=255) classcolours[1] = colourCat(red=200, green=240, blue=50, alpha=255) rastergis.colourClasses(clumps, field, classcolours)
-
rsgislib.rastergis.ratutils.
setClassNamesColours
(clumpsImg, classNamesCol, classInfoDict)¶ A function to define a class names column and define the class colours.
classInfoDict = dict() classInfoDict[1] = {‘classname’:’Forest’, ‘red’:0, ‘green’:255, ‘blue’:0} classInfoDict[2] = {‘classname’:’Water’, ‘red’:0, ‘green’:0, ‘blue’:255}
- Parameters
clumpsImg – Input clumps image - expecting a classification (rather than segmentation) where the number is the pixel value.
classNamesCol – The output column for the class names.
classInfoDict – a dict where the key is the pixel value for the class.
Data Structures / Enums¶
-
rsgislib.rastergis.
BandAttStats
(band, minField=None, maxField=None, sumField=None, stdDevField=None, meanField=None)¶ This is passed to the populateRATWithStats function
-
rsgislib.rastergis.
FieldAttStats
(field, minField=None, maxField=None, sumField=None, stdDevField=None, meanField=None)¶ This is passed to the calcRelDiffNeighStats function
-
rsgislib.rastergis.
BandAttPercentiles
(percentile, fieldName)¶ This is passed to the populateRATWithPercentiles function
-
rsgislib.rastergis.
ShapeIndex
(colName, idx, colIdx=0)¶ This is passed to the calcShapeIndices function
-
rsgislib.rastergis.ratutils.
RSGISRATChangeVarInfo
(changeVarCol='', outChangeFeatCol='', noDataVals=[], thresMeasure=<RSGISRATThresMeasure.auto: 4>, thresDirection=<RSGISRATThresDirection.lower: 1>, exportPlot=None, showAllThreshPlot=False, lowerThreshold=0.0, upperThreshold=0.0)¶ A class to store the change variable information required for some of the change functions.
-
rsgislib.rastergis.ratutils.
RSGISRATThresMeasure
(value, names=None, *, module=None, qualname=None, type=None, start=1)¶ An enumeration.
-
rsgislib.rastergis.ratutils.
RSGISRATThresDirection
(value, names=None, *, module=None, qualname=None, type=None, start=1)¶ An enumeration.