Extend rasterio.mask to accept ndarrays. #3274
Draft
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.
This addresses a very awkward usage of masking. Only datasets are accepted in the functions in
rasterio.mask
making it very awkward to mask raster data in passes. Most of the underlying functions inrasterio.features
accept ndarrays as input with the exception of the importantgeometry_window
function.This PR updates
geometry_window
to accept either a dataset or ndarray + transform, consistent with the rest of the functions in that module. Now thatgeometry_window
can accept ndarrays, the functions inrasterio.mask
can now also easily support operating on ndarrays as well.In my day job, we have a dataset that is masked in several passes. Currently, the code clumsily uses MemoryFile as the only viable/publicly supported way to satisfy the API of rasterio. This results in lots of excess code. Now, hopefully, the outputs of mask can be passed back in as inputs to mask.