I get a series of NDVI rasters every 2 weeks and need to calculate changes. The rasters overlap, but are different in area. The resolution is also a little different in each raster,

raster 1: -0.34533, 0.34533
raster 2: -0.35001, 0.35001

This can change slightly with every raster.

I am trying to automate the process with python, GDAL. the rasters are between 1gb-20gb in size.

I think i am almost there, but when i try to change the pixel size of the rasters to match, there seems to be a shift, which messes up the calcs.

If i can get the pixel sizes to match, i should then be able to calc the differences.

here is the code for adjusting the pixel size:

WorkingFolder = 'C:/Users/me/Desktop/NDVI/Testing/'

for f in os.listdir(WorkingFolder): 
    print (f)
    fName, fExt = os.path.splitext(f)
    if fExt.lower() == '.tif':

        ds = gdal.OpenShared(os.path.join(WorkingFolder,f),gdalconst.GA_Update)
        gt = ds.GetGeoTransform()

        gtLst = list(gt)

        gtLst[1] = 0.36
        gtLst[5] = -0.36

        # apply the changes

Has anyone done anything similar? or know a better solution for matching big tiffs to subtract? I believe that i am able to match the extents and do all other calculations, but the pixels are driving me crazy

  • I don't know where the rasters came from, but it would probably be better to actually resample them instead of shifting them arbitrarily. This can be done with nearest-neighbor resampling using gdalwarp, which also has an entry point in the python bindings – mikewatt Aug 27 at 18:58
  • yeah, i dont want the shift. i'm trying to match the rasters pixel size, array shape, etc to do a ndvi-ndvi on them. I'm really new with gdal so i'll have to look over gdalwarp and see if that would work – Messak Aug 27 at 19:06
  • Do they have the same number of rows and columns? Also check this message from the gdal-dev mailing list – Marcelo Villa Aug 27 at 19:29
  • not initially, but i have the python that generates matching rows and columns – Messak Aug 27 at 19:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.