Changes
0.7.0 (2026-02-03)
Cloud Mask Handling: Resolved a bug in the
merge_tifs()function to properly handle “No Data” values in the output cloud mask, ensuring seamless mosaic mask generation.Custom Projections: Added an optional
projection_outputparameter, allowing users to define a custom CRS for the output mosaic (defaults to EPSG:4326).Automated Grid Cropping: Added an optional
grid_cropparameter; when enabled, the final result is automatically clipped to the specific geometry of the input grid tile.Filter_scenes Function: Redesigned the
filter_scenesfunction now use the geometry of grid or bbox to filter the downloaded images for scenes that intersect mosaic region.Mosaic Generation Algorithm Refactor: Completely refactored the
merge_scene()function, implementing a new merging logic based on NumPy arrays and binary mask filling to improve mosaic composition.- New Example Notebook: Added experimental Jupyter notebooks for function demonstrations:
smosaic-introduction: Example of creating RGB mosaics on the BDC_SM_V2 grid for a tile in Mato Grosso state
Documentation: Added comprehensive Sphinx documentation with API reference for all functions, usage examples, and detailed parameter descriptions.
Command Line Interface: Added a CLI (Command Line Interface) using Click framework, providing command-line access to mosaic generation with configurable options.
0.6.0 (2025-12-22)
Standardized Output Resolution: Added new
reproject_tif()function that ensures all output mosaics maintain consistent 10,-10 pixel sizeProjection Consistency: All output mosaics now maintain uniform spatial reference system using the standardized Albers projection
Sentinel-2 Baseline Correction Refactor: Redesigned the baseline correction function to properly handle Sentinel-2 processing baseline numbers
Enhanced Output Bands Refactor: Completely redesigned mosaic outputs to include provenance and cloud bands by default alongside requested spectral bands
- Mosaic Profiles: Added
profileparameter to mosaic function, providing pre-configured band selections instead of manually selecting bands. Currently supports two profiles: urban_analysis: Pre-selects RGB (Red,Green,Blue) bands along withNDVIandNDBIindicescrop_condition: Pre-selects four vegetation indices:NDVI,EVI,EVI2, andSAVI
- Mosaic Profiles: Added
- Spectral Indices Calculation: Added
smosaic_spectral_indices()function to generate spectral indices mosaics, currently supporting five indices: ndvi: Normalized Difference Vegetation Indexevi: Enhanced Vegetation Indexevi2: Two-band Enhanced Vegetation Indexsavi: Soil-Adjusted Vegetation Indexndbi: Normalized Difference Built-up Index
- Spectral Indices Calculation: Added
- New Example Notebooks: Added experimental Jupyter notebooks for article demonstrations:
smosaic-introduction: Example of creating RGB mosaics for a scene in Pará statesmosaic-bdc-favelas-sp: Experiment on generating image mosaics for monitoring favelas in São Paulo statesmosaic-agricultural-monitoring-pr: Experiment on generating image mosaics for agricultural monitoring in Paraná state
Sentinel-2/MSI Level-1C: Added full support for S2_L1C_BUNDLE-1 data. 🛰️
Fmask external cloud support: Added support for Fmask (algorithm for detecting clouds and cloud shadows).
0.5.0 (2025-11-17)
- Notebook to Script Migration: Replaced Jupyter notebooks with Python script examples:
smosaic-closest-to-date.py: Example of creating mosaics using closest-to-date selectionsmosaic-data-cube.py: Example of generating temporal data cubessmosaic-mosaic.py: General mosaic generation example
New Provenance Band: Added automatic generation of provenance band indicating the origin date of each selected best pixel in the composition
Cloud Band Support: Added automatic cloud band generation alongside user-requested bands
File Integrity Verification: Added automatic TIFF file corruption check in
download_stream()functionSentinel-2 Baseline Correction: Added new function to correct images based on Sentinel-2 processing baseline number
Mosaic Algorithm Refactor: Completely redesigned
merge_scene()function with improved best-pixel mosaic generationConda Environment Guide: Added
conda-environment.mddocumentation for creating Conda environments to install and run the libraryEnhanced Output Bands: All mosaic outputs now include provenance and cloud bands by default alongside requested spectral bands
Progress Tracking: Enhanced library logging output with detailed progress tracking, displaying percentage completion per scene and band during mosaic generation
0.4.0 (2025-11-10)
- New Mosaic Build Methods: Added two new scene ordering functions for mosaic generation:
ctd(Closest to Date): Build mosaics by selecting images closest to a reference datechrono(Chronological): Build mosaics by ordering scenes by acquisition date
- Enhanced Mosaic Function: The
mosaic()function now supports three build methods: lcf: Least cloud cover first (existing)ctd: Closest to reference date (new)chrono: Chronological order (new)
- Enhanced Mosaic Function: The
New Utility Function: Added
days_between_dates()function in utils module for date interval calculations- New Notebook: Added example notebook:
smosaic-closest-to-date.ipynb: A complete example of creating Sentinel-2 image mosaic by selecting images closest to a reference date
0.3.0 (2025-10-31)
Architectural Refactor: Split single file smosaic_core.py into modular package structure with specialized modules.
- Breaking Changes:
All functions now distributed across dedicated modules (smosaic_clip_raster, smosaic_merge_scene, etc.)
Update imports to reference new modules (e.g., from smosaic_clip_raster import clip_raster)
Enhanced Mosaic Function: Added support for monthly periods, with proper date handling.
- New Notebook: Added example notebook:
smosaic-monitoring-expansion-favelas-sp.ipynb: A complete example of creating monthly Sentinel-2 image mosaics for monitoring the expansion of favelas in São Paulo.
0.2.5 (2025-10-18)
Fix: Resolved an import error with numpy, pyproj, shapely, requests, rasterio and pystac-client modules.
0.2.2 (2025-10-15)
Fix: Fixed a bug in the
mosaicfunction, now it generates both single-date mosaics and data cubes correctly.
0.2.0 (2025-10-10)
Multi-band Support: It is now possible to create an mosaic with more than one band.
Refactored Library Code: Adjusted imports and the use of libraries in the code, removing imports of individual functions.
- New Notebooks: Added several example notebooks:
smosaic-introduction.ipynb: A complete example of creating a Sentinel-2 multi-band mosaic for Luis Eduardo Magalhaes - BA.smosaic-data-cube.ipynb: A complete example of creating a Sentinel-2 10 days data cube for a given bbox.
Data Cube Support: Added support for data cube generation using
end_year,end_month,end_dayandduration_daysparameters.Refactor filter_scenes Function: Completely refactored
filter_scenesfunction now use the grid geometry instead of the colleciton.json file.Implemented parallel processing: to significantly speed up mosaic generation by processing multiple time steps concurrently.✨
0.0.1 (2025-06-04)
Initial Release: First implementation of
mosaicfunction, withcollection_get_data,get_dataset_extents,merge_tifsandclip_rasterfunctions.Completed the smosaic exemple notebook.
Sentinel 2: Added full support for Sentinel 2 data. 🛰️
COG Support: Added output as Cloud Optimized GeoTIFFs (COGs) with RasterIO.