Converting a map coordinate to a pixel location
When you receive a map coordinate as user input or from some other source, you must be able to convert it back to the appropriate pixel location on a raster.
Getting ready
We will use the SatImage raster available at https://github.com/GeospatialPython/Learn/raw/master/SatImage.zip
Place this raster in your /qgis_data/rasters
directory.
How to do it...
Similar to the previous recipe, we will define a function, extract the GDAL GeoTransform
object from our raster, and use it for the conversion.
Start QGIS.
From the Plugins menu, select Python Console.
We need to import the
gdal
module:from osgeo import gdal
Then, we need to define the reusable function that does the coordinate to pixel conversion. We get the GDAL
GeoTransform
object containing the raster georeferencing information and the map x, y coordinates:def world2Pixel(geoMatrix, x, y): ulX = geoMatrix[0] ulY = geoMatrix[3] xDist = geoMatrix...