Hi Sean. I patched rasterio as you suggested and intermediate file now looks like this (I'm trying now with a public dataset): https://gist.github.com/drnextgis/3cbdbace7b5b8b80c3c6169b109bf9db
But when I read it with GDAL using non-nearest algorithm I'm getting the following error: >>> from osgeo import gdal>>> from osgeo.gdal import gdalconst>>> url = >>> "/tmp/rasterio-boundless.vrt">>> ds = gdal.OpenEx(url)>>> image = >>> ds.ReadAsArray(xoff=0, yoff=0, xsize=64, ysize=64, buf_xsize=10, >>> buf_ysize=10, resample_alg=gdalconst.GRIORA_Cubic) ERROR 4: /tmp/dummy.tif: No such file or directory but with NearestNeighbour it works without error: >>> from osgeo import gdal>>> from osgeo.gdal import gdalconst>>> url = >>> "/tmp/rasterio-boundless.vrt">>> ds = gdal.OpenEx(url)>>> image = >>> ds.ReadAsArray(xoff=0, yoff=0, xsize=64, ysize=64, buf_xsize=10, >>> buf_ysize=10, resample_alg=gdalconst.GRIORA_NearestNeighbour)>>> >>> image.shape(3, 10, 10) I would be very appreciated if Even could explain why GDAL behaves differently depending on resample_alg. On Thu, Aug 27, 2020 at 6:39 PM Sean Gillies <s...@mapbox.com> wrote: > Hi Denis, Even, > > On Thu, Aug 27, 2020 at 8:08 AM Even Rouault <even.roua...@spatialys.com> > wrote: > >> On jeudi 27 août 2020 15:08:02 CEST Denis Rykov wrote: >> >> > I found the culprit. If remove this section from each band definition in >> >> > VRT file then everything works fine: >> >> > >> >> > <ComplexSource> >> >> > <SourceFilename relativeToVRT="1" shared="0">dummy.tif</SourceFilename> >> >> > <SourceBand>3</SourceBand> >> >> > <SourceProperties BlockXSize="128" BlockYSize="128" >> >> > RasterXSize="40961" RasterYSize="139265" dataType="Byte" /> >> >> > <SrcRect xOff="0" xSize="1" yOff="0" ySize="1" /> >> >> > <DstRect xOff="0" xSize="1" yOff="0" ySize="1" /> >> >> > <ScaleRatio>0</ScaleRatio> >> >> > <ScaleOffset>0.0</ScaleOffset></ComplexSource >> >> >> >> I'm perhaps missing something, but the above snippet added by RasterIO >> doesn't make sense to me. It just sets the pixel at (0,0) to 0. I bet it is >> completely useless. It would make more sense to have xSize/ySize of DstRect >> to cover the whole raster. And as <NoDataValue> is set on the >> VRTRasterBand, this should be used to fill the target raster anyway. >> >> >> >> As far as why overviews of the original VRT aren't used is concerned, I'm >> not sure why. I'd have expected it to work, but I must be missing something. >> >> >> >> Even >> > > That's a rasterio bug: the background "dummy.tif" source should > be <DstRect xOff="0" xSize="40961" yOff="0" ySize="139265" />. I'm working > on a patch for this. > > This VRT background fill is different from nodata. The scale offset could > be different from the nodata value. BTW, It takes advantage of GDAL > shortcuts predicated on scale ratio. The "dummy.tif" file is never opened > and doesn't even exist. > > -- > Sean Gillies > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/gdal-dev
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev