Python GDAL – How to Take Cell Size from Raster using Python, GDAL, or Rasterio

gdalpythonpython-2.7rasterio

How to take cell size per X,Y using simple python or GDAL or RASTERIO?
and hot to count how many pixels have my raster with some packages..

I have find some code but is pyqgis and I don't need this package :

ras  = QgsRasterLayer("C:/Users/myname/raster.tif")
pixelSizeX= ras.rasterUnitsPerPixelX()
pixelSizeY = ras.rasterUnitsPerPixelY()

print pixelSizeX
print pixelSizeY

Best Answer

With PyQGIS

ras  = QgsRasterLayer("raster.tif")
pixelSizeX= ras.rasterUnitsPerPixelX()
pixelSizeY = ras.rasterUnitsPerPixelY()
print pixelSizeX
2.11668210081
print pixelSizeY
2.11685012701

With GDAL

from osgeo import gdal
raster = gdal.Open('raster.tif')
gt =raster.GetGeoTransform()
print gt
(258012.37107330866, 2.11668210080698, 0.0, 163176.6385398821, 0.0, -2.1168501270110074)
pixelSizeX = gt[1]
pixelSizeY =-gt[5]
print pixelSizeX
2.11668210080698
print pixelSizeY
2.1168501270110074

With Rasterio

import rasterio
raster =  rasterio.open('raster.tif')
gt = raster.affine
print gt
Affine(2.11668210080698, 0.0, 258012.37107330866,
   0.0, -2.1168501270110074, 163176.6385398821)
pixelSizeX = gt[0]
pixelSizeY =-gt[4]
print pixelSizeX
2.11668210080698
print pixelSizeY
2.1168501270110074

Or (from sgillies)

pixelSizeX, pixelSizeY  = raster.res
print pixelSizeX
2.11668210081
print pixelSizeY
2.11685012701
Related Question