The object based image analysis features in RSGISLib are based around storing object attributes as a Raster Attribute Table (RAT), as described in the following paper:
Clewley, D.; Bunting, P.; Shepherd, J.; Gillingham, S.; Flood, N.; Dymond, J.; Lucas, R.; Armston, J.; Moghaddam, M. A Python-Based Open Source System for Geographic Object-Based Image Analysis (GEOBIA) Utilizing Raster Attribute Tables. Remote Sensing 2014, 6, 6111-6135. (open access)
However, data to be used as part of the analysis are often stored as attributes of a shapefile. A RAT can be created from a shapefile using the gdal_rasterize command and the copyShapefile2RAT function in RSGISLib using the following steps:
- Rasterise vector
This can done directly from the command line or by calling gdal_rasterize from a Python script using subprocess.
import subprocess input_vector = 'brig_re09_binary.shp' rasterised_vector = 'brig_re09_binary_raster.kea' rasterise_cmd = ['gdal_rasterize','-of','KEA', '-a','BGL', '-tr','30','30', input_vector, rasterised_vector] print('Running: ', ' '.join(rasterise_cmd)) subprocess.call(rasterise_cmd)
The above code sets the output raster pixel size to 30 x 30 m and uses the ‘BGL’ column from the shapefile (which is an integer) for the pixel values.
Note this image is only used to get the extent and pixel size of the final RAT image. If you have another image you wish to match the extent and pixel size to this can be used instead of rasterising the vector, in this case skip this step and use the existing image instead of ‘rasterised_vector’.
- Create RAT and copy shapefile attributes
from rsgislib import vectorutils import rsgislib input_vector = 'brig_re09_binary.shp' rasterised_vector = 'brig_re09_binary_raster.kea' output_rat_image = 'brig_re09_attributes.kea' vectorutils.copyShapefile2RAT(input_vector, rasterised_vector,output_rat_image)
This will copy all the attributes from the input shapefile to a RAT. Note the output format is always KEA as it has support for large attribute tables and stores them with compression.
To view the attributes open the file in TuiView. The output RAT can then be used as any other RAT, e.g., attributing objects with image statistics or using as part of a classification. For more details see other posts on object based image analysis.