WarpedVRT and resampling ?


vincent.sarago@...
 

This was previously discussed on multiple Issues and PR: 
https://github.com/mapbox/rasterio/issues/1206
https://github.com/mapbox/rasterio/pull/1238
https://github.com/mapbox/rasterio/pull/1239

While working with https://github.com/cogeotiff/rio-tiler on different data format (Int16, Float ...) I've encountered some strange behavior when using non-nearest resampling algorithm. 

## Contexte 

When working with `WarpedVRT` you can choose the resampling algorithm twice: 
```
with WarpedVRT(src, resampling=enums.Resampling.nearest) as vrt:
    arr = vrt.read(out_shape=(1, 512, 512, resampling=enums.Resampling.nearest))
```
Sean try to explain this in https://github.com/mapbox/rasterio/pull/1238#issuecomment-353123776

rio-tiler code: https://github.com/cogeotiff/rio-tiler/blob/master/rio_tiler/utils.py#L296-L321

## Behavior 

On the images attached we can see that there are `blurry` lines on the bottom. Those lines appear on the bottom of the tile returned by `rio-tiler` (bottom of the WarpedVRT returned value). 

Observation: 
- Only visible when working on Linux (https://github.com/RemotePixel/amazonlinux-gdal/tree/gdal2.4.0, or with rasterio wheels) 
- Only with Int16 data with negative NoData 
- Not visible when using gdalwarp directly
- Visible only when not using `resampling=enums.Resampling.nearest` in WarpedVRT params

I'm not 100% to understand what is going on and if I should or should not use `enums.Resampling.nearest`  as default resampling in WarpedVRT params so I'm looking for guidance here. 

Thanks,

Vincent 

Join main@rasterio.groups.io to automatically receive all group messages.