Sometimes, during the course of data processing even through the spatial information is correct there can be problems with the projection information, either it it lost, not stored in a format the software can understand or is stored slightly differently to other datasets with the same projection. In these situations, the easiest solution is to just copy the correct projection across. Within RSGISLib there are some functions for this within imageutils. For example if you want to copy the projection from an existing image:
from rsgislib import imageutils inputImage = 'image_without_projection.kea' refImage = 'image_with_projection.kea' imageutils.copyProjFromImage(inputImage, refImage)
You can also assign a projection using a Well Known Text (WKT) file (in this example ‘UTM50S.wkt’, stored in the same directory):
from rsgislib import imageutils inputImage = 'image_without_projection.kea' imageutils.assignProj(inputImage, wktFile='UTM50S.wkt')
Note: this syntax requires version of RSGISLib 2.3 or later
If you don’t have RSGISLib installed there is a script to assign a projection within PML’s ARSF Tools repository on GitHub which just requires the GDAL Python bindings.
Usage is simple, to assign a projection from a WKT file:
python assign_projection.py --wkt 'UTM50S.wkt' image_without_projection.kea
If you have a lot of files which need the projection assigning you can use:
python assign_projection.py --wkt 'UTM50S' *.kea
This will work under both Unix-like and Windows operating systems.
As well as a WKT file you can also use Proj4 strings, for example:
python assign_projection.py \ --proj4 '+proj=utm +zone=55 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs' \ image_without_projection.kea
A list of WKT files and Proj4 strings are available from spatialreference.org. You can also get the WKT string from an existing dataset using:
Or a Proj4 string using:
gdalinfo -proj4 image_with_projection.kea