The stactools raster footprint utility uses a class for footprint creation. You can override any of the core steps (extract, densify, reproject, simplify) by subclassing. The primary motivation was the ability to use a custom reprojection function, specifically a custom implementation for the sinusoidal projection used by MODIS and VIIRS. By moving to functions only, we've lost that.
We could:
Add a class to the footprint.py module that the existing functions in that module would use. This would keep the the API simple (just function imports and calls) for standard use-cases, but allow subclassing when needed.
Do nothing. If you need different functionality in a specific step, write a custom function, import the others you need, and string them together yourself.
The stactools raster footprint utility uses a class for footprint creation. You can override any of the core steps (extract, densify, reproject, simplify) by subclassing. The primary motivation was the ability to use a custom reprojection function, specifically a custom implementation for the sinusoidal projection used by MODIS and VIIRS. By moving to functions only, we've lost that.
We could:
footprint.py
module that the existing functions in that module would use. This would keep the the API simple (just function imports and calls) for standard use-cases, but allow subclassing when needed.I'm leaning toward the "Do nothing" option