Solves #408 (incompatibility between crop and downsampling) #448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #408.
Phew, this was a tough one! It turns out that
Raster.crop()
was not very thoroughly implemented in the case when data is not loaded. A few things to pay attention to:rio.DatasetReader.read
is actually more complex than it seems when either of cropping or downsampling need to be executed. One needs to make sure that Window and out_shape really match. The window shape can actually be misleading because with optionboundless=False
(default), the window will be cropped if it extends beyond the raster extent. It makes sense after all...Doing so, I noticed that our downsampling functionality is actually slightly wrong, see issue #447. Basically, the sampling interval is not exactly constant.
Because of that, one does not get exactly the same result if cropping a downsampled raster with or without data loaded (see commented test). This should be fixed together with #447.
Decided to also modify
Raster.info()
to print to screen by default, as mentioned in #361.