Release History#
0.24.1 (2026-mm-dd)#
FIX: Better SNAP geo_region name to disambiguate between products
FIX: Fix subsetting SAR data with a window (cannot be done directly in the ESA SNAP Read Operator)
FIX: Fix
KeyErrorwhen loading a Landsat Collection-2 band from a STAC item whose asset name differs from the STAC common name (e.g.nir08instead ofnir) #307
0.24.0 (2026-05-05)#
BREAKING CHANGE: Using now
dict2xmlrather thandicttoxml#292ENH: Adding the support of
Satellogic(Aleph-1) constellation #229ENH: Add fallback for TSX/TDX extent when
SUPPORT/GEARTH_POLY.kmlis missing #290ENH: Handle windows when loading DEM bands
ENH: Better report errors with faulty HTML responses with STAC links
FIX: Fix border effect (extent replacing footprint) when computing the extent before the footprint for
UmbraproductsFIX: Ensure outputing quicklook paths as strings
FIX: Get correct buffer for windows in geographic CRS when subsetting SAR data
FIX: Fix SNAP fallback issue
FIX: Workaround for calibration polarisation issue: don’t specify any polarisation in case of single-polarisation product.
FIX: Fix several issues with S2 STAC products:
Add missing
_has_maskmethodFix
get_mean_sun_anglesand imports for MPC productsFix MPC name and condensed name
FIX: Fix conflict between resolution and window name in SAR orthorectified data
FIX: Add the possibility to override SAR predictor (and set back to 1)
FIX: Use the vector file instead of the WKT polygon in GPT graphs (seems more stable)
FIX: Fix regression for despeckle bands (outputting raw band instead)
FIX: Fix pixel size management in despeckling
FIX: Don’t try to hash
default_transformas kwargs may be unhashableFIX: Correctly propagate pixel size into band file names
FIX: Handle correctly missing
product.kmlin RS2 productsFIX: Handle windows when loading DEM bands
OPTIM: Better management of windows wrt whole files with SAR data
OPTIM: Don’t set a window name if band files if the window corresponds to the band extent #286
OPTIM: Don’t touch the raster (even if ortho) when computing the extent of SAR products
SNAP: SNAP-GPT - Subset in read operator instead of adding a subset operator
LINT: Lint YAML files
DOC: Update copyright to 2026
0.23.0 (2026-01-02)#
ENH: Adding the support of
VENUSsensor #235 - by @ArthurVincentCSENH: Desambiguate condensed name of Custom stack in case of creation of several objects with the same datetime and same constellation and product type
ENH: Fix corrupted Maxar products with incoherent width between .IMD and .TIL files #242
ENH: Add TerraSAR-X management of default resolution and pixel size for RE data
ENH: Add gain and offset for CustomProducts to cope with custom stacks in DN - by @oscarn2
ENH: Allow exogenous data in load and stack #273 - by @gsalgues
ENH: Export local incidence angles for SAR data - by @simone-tilia
ENH: Enhance plotting feature (remove PIL usage, manage nodata and pass kwargs to plotting functions)
ENH: Switch from Maxar to Vantor #280
ENH: Add Worldview-Legion calibration parameters for satellite 03 to 06 included
FIX: Write intermediate data for loaded bands also for Custom stacks
FIX: Fix regression when stacking with a custom nodata value with VHR data to be reprojected
FIX: Fix an unprecedented case with a PNEO having different name than usual (
DIM_PNEO3_STD_2025...instead ofDIM_PNEO3_2025...)FIX: Fix WV Legion wrong band order in Multi Spectral 1 mode #246
FIX: Collocate Planet spectral bands with masks for some rare cases where it fails
FIX: Loosen the constraints on PlanetScope stack name as it may change, from
Analytictocomposite, etc. #244FIX: Add a fallback in case of impossibleness of reading ICEYE
QUICKLOOK.kmlfileFIX: Manage the case of Maxar data with negative absolute calibration factor: don’t compute the reflectance and leave it as is.
FIX: Fix DEM management with RPC orthorectification: handle correctly the vertical CRS (see DEM notebook and
EOREADER_DEM_VCRSenvironment variable). #53FIX: Add
DISPLAYas DIMAP-V2 radiometric processings #249FIX: Change RADARSAT-2 file regex to identify the product, to avoid confusion with others #250
FIX: Add
SGFproduct type forSCNsensor mode for RADARSAT-2 #251FIX: Precise metadata regex for SuperView data #253
FIX: Handle old DIMAP V1 data #234
FIX: Handle GCPs in VHR data
FIX: Fix raw CRS exported as string rather than CRS object for Maxar data #255
FIX: Use only the number of range looks to derive the resolution and pixel_size of CSG data #256
FIX: Return an empty
lxml.Elementas metadata for S1 RTC ASF products instead ofNoneto ensure consistencyFIX: Set
EPSG:4326for rasters with empty CRS to be orthorectified with RPCsFIX: Fix multi-polarisation SAR data with swaths orthorectified independently (i.e. SAOCOM)
FIX: Manage more CSK formats - by @simone-tilia
FIX: Fix STAC product geometry with MPC #277
FIX: Add fallback behavior with empty KML files for SAR data
FIX: Fix loss of CRS when loading clouds from Sentinel-2 L2A
FIX: Force nodata when opening Dimap V2 masks
FIX: Factorize
extentcodeFIX: Remove useless columns from footprint vectors
FIX: Add a fallback for COSMO-SkyMed calibration regression in SNAP 13.0.0
OPTIM: Use raw band path over default band path to speed up the computation of image information (extent, footprint, CRS, transform) of SAR ortho products
OPTIM: Allow predictor = 3 with LZW compression when saving SAR intermediate data as SNAP handles it properly now. #173
CI: Filter some warnings in pytest
CI: Add some exception to coverage and add the report back into artifacts
CI: Add weekly tests on Python 3.13 and 3.14
DEPS: Test on SNAP 12 and 13 #213
DEPS: Drop support for Python 3.9 and add support for Python 3.13 and 3.14 #175
DEPS: Revamp deps
DOC: Update documentation, notebooks and docstrings
DOC: Add a CITATION file #262
0.22.4 (2025-07-07)#
FIX: Add workaround for
TvsT1+T2abstraction issue in Awesome Spectral Index #214FIX: Raise missing file not found exception - by @emmanuel-ferdman
FIX: Prune also
driverkeyword inutils.readFIX: Fix potential bug reading Umbra STAC JSON as GeoJSON in
pyogrio(workaround: usefiona)DOC: Fix jupyter cache for documentation notebook #211
DOC: Convert gfm admonitions to rst
0.22.3 (2025-05-05)#
FIX: Fix crash of _
reorder_loaded_bands_like_inputwith indices and associated_bands
0.22.2 (2025-04-18)#
FIX: Fix GPT graphs (mutiple errors, such a lonely
Subset, aLinearToFromdBstep not written, etc.)FIX: Fixed TSX and TDX Products Regex to properly identify Staring Spotlight products as
TsxProductandTdxProduct- by @guillemc23
0.22.1 (2025-04-04)#
FIX: Correct the logic behind saving a stack in uint16 in
product.stackFIX: Fix a regression disallowing to pass a custom nodata to
product.stackFIX: Fix COSMO GTC reading
0.22.0 (2025-03-25)#
BREAKING CHANGES: Remove deprecated features (#94, #95, #96)
resolutionkeyword if favor ofpixel_sizeGREEN1band in favor ofGREEN_1utils.stack_dictfunction in favor ofutils.stack(removebandargument)deprecated spectral indices in favor of awesome spectral index ones).
AFRI_1_6:AFRI1600AFRI_2_1:AFRI2100BSI:BINDGRI:NGRDINDRE1:NDREIRGI:RGRIWV_BI:NHFDWI:WI2015RDI:DSIDSWI:DSWI5GRI:DSWI4WV_SI:NDSIWVPANI:BITM
BREAKING CHANGES: Pass mask-related functions in private as their exposure is done via
loadnowBREAKING CHANGES: Update the resolution in band paths:
1000-00minstead of1000m, or0-50minstead of0-5m. SetEOREADER_LEGACY_BAND_NAME_RESOLUTIONto 1 to keep the older behaviorENH: Adding the support of masks (#101)
ENH: Adding the support of Sentinel-2 L2A specific bands (
AOT,SCLandWV) (#153)ENH: Adding the support of WorldView Legion constellation (#183)
ENH: Adding the support of Umbra constellation (only GEC file) (#114)
ENH: Add the ability to open a product with a context manager (#133)
ENH: Use the
windowargument to subset SAR data during SNAP pre-process (#186)ENH: Add a function computing the centroid of the footprint of the product
ENH: Write intermediary files as COG by default and add a environment variable
EOREADER_DEFAULT_DRIVERto overload the default driver (#181)ENH: Add a
pathattribute to the bands, corresponding to their path on diskENH: Manage COSMO-SkyMed
GTC(orthorectified) productsENH: Raise a proper exception in case of non-existing product path
FIX: Fix toa radiance to toa reflectance computation for VHR data
FIX: Save Cosmo quicklooks as PNG instead of GeoTiffs as they are not georeferenced
FIX: Fix
to_strfunction withas_list=FalseFIX: Correctly set the stack attributes when already existing on disk
FIX: Don’t convert stack to
uint16in memory withsave_as_intargument (only convert the version written on disk)FIX: Fix reading bands for Sentinel-2 L1C data from Element-84 which have different AWS endpoints between STAC files and their assets
FIX: Don’t warp multiple times VHR stacks
INTERNAL: Rationalize band paths and filename functions (still early work) (#31)
DOC: Add documentation on how EOReader can improve your data handling (#108)
DEPS: Add
ephemfor computing earth-sun distance (according to Maxar’s method from docs)
0.21.10 (2025-02-18)#
ENH: Allow the user to change the default resampling per product and free the
resolutionkeyword inloadandstack(#103)ENH: For Sentinel-2 L2A products, use the
MSK_CLDPRB_20mfor computing clouds, as they are more precise than legacy L1CMSK_CLOUDS_B00masks. (#174)FIX: Fix Sentinel-2 Theia footprints when the nodata area is wider than the data area (#201)
FIX: Pop
driverkeyword in stack function to only use it for writing, allowing people to save stack as COGs (#181, #202)FIX: Simplify L7 footprint (#198)
FIX: Make RPC reprojection work with DEM stored on cloud (#200)
FIX: Fix DIMAP V2 mask reprojection when all mask values are equal to 1 (resulting in a failure of computing the bands in case of nodata)
FIX: Fix import of
SaocomSensorModeandTsxProductfromeoreader.productFIX: Upgrade to v2.0.0 of projection STAC extension
DEPS: Add
tifffileas a dependency to allow writing COGs withdask(#181, #202)
0.21.9 (2025-01-22)#
FIX: Better management of temporary directories (name, cleaning, etc.)
FIX: Align
Sentinel-3 SLSTRclean band path creation on optical’s methodDOC: Update documentation (intersphinx mapping, …)
0.21.8 (2025-01-13)#
ENH: Add a new type (
BandsType) for list of BandTypeENH: Add a new environment variable
EOREADER_NOF_BANDS_IN_CHUNKSto control the number of the bands in chunks when usingdask. (#178)ENH: Allow
'auto'inEOREADER_TILE_SIZE, to setchunks="auto"when reading data. (#178)FIX: Fix stack
save_as_intto use updated int values - by @TabeaWFIX: Fixed PAZ Product Regex to properly identify PAZ ST products as
PAZProduct- by @guillemc23FIX: Fixed PNEO Product Regex to properly identify PNEO products as
PneoProduct- by @guillemc23FIX: Fixed preprocessing graph paths in order to support relative paths in more complex environments or contexts - by @guillemc23
FIX: Remove useless
_norm_difffunctionindices.pyFIX: Add a fallback in case
map-overlay.kmlis not readable forSentinel-1data (#180,#182)FIX: Remove warning about Dask’s lock and client
FIX: Don’t throw an error in case of missing cloud coverage, only a warning and set the cloud coverage to 0 #159
FIX: Use the sun elevation angle rather than the sun zenith angle for STAC #158
FIX: Create comparison operators for
BandNames, removing thexarray RuntimeWarningaboutsort order is undefined for incomparable objects.FIX: Add some missing
@cachearound time-consuming functionsFIX: Set correctly the SAR product type, with adding two types (
ORTHOandGEOCODED)FIX: Fix the computation of parametric spectral indices #193
FIX: Fix retrieval of quicklook path for SAOCOM when already computed
FIX: Write data using
windowed=Truefor very big rasters (> 50 Go) to avoid core dumpsFIX: Fix management of numpy temporary files saved on disk
OPTIM: Cache the access to any archived file list, as this operation is expensive when done with large archives stored on the cloud (and thus better done only once).
CI: Remove useless verbosity in CI
CI: GDAL performance tuning by tweaking
rasterio’s envINTERNAL: Switch from
setup.pytopyproject.toml#109INTERNAL: Use
ruffinstead ofblack+flake8+isortDOC: Update
conf.py(remove useless hunks and set Sphinx 7 as base)DOC: Added the PAZ product guide to the PAZ Product documentation instead of the TerraSAR-X one - by @guillemc23
DEPS: Pin
sertit>=1.44.1
0.21.7 (2024-11-08)#
FIX: Handle
ICEYEproducts with missing quicklookFIX: Fix
Sentinel-1name with weird PDFs names (i.e. ending with.SAFE-report...)FIX: Remove multi-swath workaround for
Cosmoproducts if SNAP > 11.0FIX: By default, try to assign a constellation (in a pure dummy way) to any
ProductcreatedFIX: Add ways of knowing if a constellation is a real one or not (i.e.
CUSTOMor template such asMaxar)FIX: Create
TDXandPAZ(completely inherited) classes to disambiguate their constellations
0.21.6 (2024-10-17)#
FIX: Fix (really) window’s name coming from a vector with an underscore after it
FIX: Fix clean band path for Sentinel-3 SLSTR products
FIX: Remove an ignored exception when deleting a Product (
ValueError: Unknown '__class__' name in 'covariance.compute' hyperparameters)
0.21.5 (2024-10-17)#
FIX: Fix window’s name coming from a vector with an underscore after it
FIX: Allow to load numpy pickles stored in S3 buckets
FIX: Add MS and PAN resolution in Landsat Products
0.21.4 (2024-10-08)#
DEPS: Don’t force using geopandas 1.0.0, 0.14.4 should be enough.
0.21.3 (2024-10-08)#
ENH: Allow the process of Sentinel-1 COGs (provided by the Copernicus DataSpace) for SNAP >= 10 (#172)
ENH: Add a
BandTypealias for any types that could be a band: a string, aBandNamesor any of its children: Spectral, SAR, DEM or Cloud band namesFIX: Anticipate Sentinel C and D platforms in Reader’s regexes
FIX: Resolve the inversion of resolution and pixel size between
stripmapandsliding_spotlighttypes forCapellaproductsFIX: Get better window name (if available) when writing bands on disk (in tmp folder)
FIX: Reject buggy Maxar products (with version 28.4) as the workaround would be too heavy to implement. (#106)
FIX: Fix Despeckle graph with SNAP10 (#177)
OPTIM: Save rasterized masks of DIMAP V2 products on disk to avoid recomputing them (
features.rasterizecould be a heavy computation that shouldn’t be done twice)COMPAT: EOReader works correctly with SNAP 10 (#165)
PUBLISH: Use PyPI’s Trusted Publisher Management mechanism
0.21.2 (2024-07-30)#
ENH:
to_strandto_band: add aas_listargument defaulting toTrue. When set as False, return a str fromto_strand a band fromto_band(#138). Thanks, @jsetty!FIX:
Sentinel-2product withStopIterationerror (#142)FIX: Fix error in looking for bands in
Sentinel-2 L1Carchived products (#168)FIX: Fix issue with geocoding with unzipped
Sentinel-3 OLCIproduct (#137)FIX: In
SPOTproducts, METADATA.DIM and IMAGERY.TIF must be at the root of the product (#145)FIX: Fix
Maxarproduct withQB02satellite ID (#140)FIX: Fix
ICEYEproduct when extent file (*.kml) not found (#135)FIX: Handle
RCMandRS2products that doesn’t bundle their extent in a KML file (#155)FIX: Handle wrongly recognized
Planetproducts because of the recursive nested mtd in the Reader (#169)FIX: Fix an unknown
Planetbug that just appeared ('...Path' has no len())FIX: Force the loading of
DimapV1bands infloat32FIX: Handle the case where
fionaisn’t installed anymore (withgeopandas 1.0)FIX: Don’t make
pystaca mandatory requirementOPTIM: Search correctly nested metadata in the Reader (without accidentally using a recursive glob)
CI: Fix S3 endpoint management with
sertit>=1.37CI: Remove for now end-to-end tests with Python 3.11 and 3.10.
INSTALL: Remove
pystac[validation](as it is an optional dependency) from setup.py, and create astacextra feature.
0.21.1 (2024-04-03)#
ENH: Add a
is_stackedparameters for EOReader’sProductto document either its bands are delivered stacked or file by file.FIX: Correct
SWIR_CIRRUSspectral band’s enum value (toSWIR_CIRRUSinstead ofCIRRUS), avoiding shadowing cloud bandCIRRUS(#131)FIX: Raise proper exception (
UnhandledArchiveError) for archived data that needs to be extracted before use. A warning wasn’t enough.FIX: Remove unused
pixel_spacingfor SAR ProductsFIX: Fix workaround for corrupted
Sentinel-2mask.
0.21.0.post0 (2024-01-08)#
FIX: Don’t force install
planetary-computerorstac-assetto use EOReaderDOC: Remove Twitter from README
0.21.0 (2024-01-08)#
BREAKING CHANGES: Rename
utils.stack_dicttoutils.stacksince we are stacking datasets and not dict anymore.BREAKING CHANGES: Band ID for Sentinel-3 OLCI are now int instead of band names (i.e.
7instead ofOa07. The names don’t change).ENH: Allow to use bands IDs, names and common name added to mapped names when trying to load a spectral band. (#111)
ENH: Manage Sentinel-2 as formatted on the cloud (Element84 or Sinergise’s way). (#104)
ENH: Handle Python 3.12. (#113)
ENH: Guard against S1 COG format, not yet handled by SNAP.
ENH: Calibration step for
Capellaproducts now exists in ESA SNAP. Add it in pre-processing.ENH: Handling of Sentinel-1 ASF and MPC RTC products. (#112, #118)
ENH: Handling of Sentinel-1 SM products.
ENH: Better handling of calibration step in SNAP for SAR data.
FIX: Fix jpg, png… quicklooks management when plotting
FIX: Fix an
xarrayissue when trying to compute percentiles when stacking bandsDEPS: Remove as many mention as possible to
cloudpathlibDEPS: Update minimum versions of some libraries
DOC: Add example about the output management (in
basenotebook, #117)DOC: Update copyright to 2024
GITHUB: Update bug template
CI: Enabling pre-commit.ci and dependabot bots
CI: Update pre-commit hooks
CI: Revamping
test_satellitesCI: Some refactoring and speed-ups
0.20.4 (2023-09-26)#
FIX: Don’t collocate a raster on itself
FIX: Better management of default pixel size for multi-resolution products (such as PAN band in Landsat)
FIX: Fixing the PAN GSD for Landsat-OLI products
FIX: Update some code to match
sertit>=1.29.0
0.20.3 (2023-07-31)#
Bug Fixes#
FIX: Use
autoas default dask chunk (instead of2048)FIX: Minor fix in RasterioError handling when reading bands
FIX: Fix Landsat L2 surface reflectance and temperature computation (#99)
FIX: Fixing TIR temperature conversion for Landsat-7
FIX: Test thermal bands in CI
FIX: Upgraded to EO STAC extension v1.1.0 (#83)
0.20.2 (2023-06-22)#
Bug Fixes#
FIX: Use already computed bands stored in
tmpfor Planet products
0.20.1 (2023-06-20)#
Bug Fixes#
FIX: Allow band aliases (such as
"CA"instead of"COASTAL_AEROSOL") in string in band mapping when creating Custom Stacks
Other#
COMPAT: Add the alias
GREEN_1for GREEN I band of PlanetScope data, in order to stay in the same pattern asVRE_x,SWIR_x…GREEN1will be deprecated in another release.
0.20.0 (2023-05-31)#
Breaking Changes#
Bug Fixes#
FIX: Collocate bands before trying to create spectral indices: resolve the case where their size mismatches (i.e. in case of window or change of native pixel size)
FIX: Landsat band masking when specifying a custom resolution and a custom window
FIX: Round the default pixel_size of custom stacks
FIX: Convert some fields of STAC items from non JSON serializable dtypes to correct ones
FIX: Fix erroneous property set to
_get_raw_crsfor Maxar products
Other#
ENH: Don’t load data into memory when computing indices, ensuring tasks are delayed a bit longer (#58)
DOCS: Add documentation about default CRS (#87)
DEPS: Dropping support of Python 3.8 (#81)
DEPS: Pin sertit to 1.27.0
INTERNAL: Better management of logs for deprecation warnings
INTERNAL: Refactoring
simplify_footprintinsertitlibraryCI: Test that STAC items are serializable when added to a catalog
0.19.4 (2023-04-12)#
Bug Fixes#
FIX: Removing calibration step from SNAP pre-processing graph for multi-swath
Cosmo-SkyMed 1st GENproducts (to avoid ending up with empty images after pre-process)FIX: Fixing the paths to Sentinel-2 quicklooks: using PVI instead of TCI file if no .jpg preview file is found (#84 , #85, thanks a lot @floriandeboissieu)
Other#
STAC: Updates in STAC management
INTERNAL: Use
geopandas.estimate_utm_crs()when possible
0.19.3 (2023-03-24)#
Bug Fixes#
OPTIM: Don’t recompute stacks if already existing on disk
FIX: Fixing
Custom Stackswhen specifyingdatetime=Noneon creationFIX: Fix regression for multi-swath DGM CSK data (huge region) (#78)
FIX: Fix calibration issues with CSK HR data (using fallback GPT graph by default)
Other#
OPTIM: Always use chunks when reading rasters (#58)
OPTIM: Speed up VRT virtual warping
OPTIM: Better management of dask’s usage
CI: Fix projection STAC extension’s new version number (1.1.0)
0.19.2 (2023-02-23)#
Bug Fixes#
FIX: Fixing stack when saved as integer for some special cases
FIX: Clipping negative reflectances to 0 (#79)
FIX: Fixing nodata management for Theia product
FIX: Fixing handling of SCS multi-swath
Cosmo-SkyMedproducts (#78)FIX: Writing spectral indices on disk to align with other bands (#80)
FIX: By default, calibration is not applied to slant range
CSGdata, avoiding producing an empty raster (#48)
Other#
OPTIM: Using warped VRT instead of reprojecting DEM/VHR stacks to UTM (#58)
TYPO: Fixing typos in typing
INTERNAL: Moving
EOREADER_NAMEandDATETIME_FMTinto__init__.pyINTERNAL: Moving stacking function into
utilsINTERNAL: Removing unused
cache_propertydecoratorINTERNAL: Factorizing
_loadfunctionCI: Using
assert_raster_almost_equal_magnitudein CI to better check according to bands’ content (sertit 1.24.0)DEPS: Officially handling Python 3.11 (adding weekly tests on Python 3.11) (#71)
DOC: Updating
CustomnotebookDOC: Updating jupyter cache to match new way of handling outputs in readthedocs
0.19.1 (2023-01-12)#
Bug Fixes#
FIX: Fixing a bug for DIMAP V2 products with GML masks opening without CRS: assigning first the raw CRS before converting to the product’s CRS
FIX: Fixing index creation when exotic bands not handled by ASI have been loaded in the same time (i.e. stacking
NDWIwithOa21band)
Other#
CLEAN: Removing useless GCP functions regarding Sentinel-3 data
DOC: Adding a
Remove CloudsnotebookLIB: Pinning
sertitto 1.22.0CI: Don’t run tests when only
__init__or__meta__is updatedCI: Some factorizing in
gitlab-ci
0.19.0 (2023-01-03)#
Enhancements#
Bug Fixes#
FIX: Fix extent computation for
CSGproducts with Shapely 2.0FIX: Shapely 2.0 deprecation warnings
Other#
DEPR: Add deprecation warning for EOReader spectral indices (used for legacy in 0.18.0) that are aliases of ASI names (#72):
AFRI_1_6:AFRI1600,AFRI_2_1:AFRI2100,BSI:BI,NDGRI:NGRDI,NDRE1:NDREI,RGI:RGRI,WV_BI:NHFD,WI:WI2015,RDI:DSI,DSWI:DSWI5,GRI:DSWI4,WV_SI:NDSIWV,PANI:BITM
DOC: Changing copyright from 2022 to 2023
0.18.1 (2022-12-08)#
Bug Fixes#
FIX: Fix regression for missing EOReader aliases for
spyndexspectral indicesFIX: Fix bug in footprint computation of DIMAP V1 data
Other#
DOC: Add latest DOI link
LIB: Pass to
sertit==1.21.0to handle windowed data in read natively
0.18.0 (2022-12-06)#
Breaking Changes#
BREAKING CHANGES: Refactoring spectral indices management (#47)
Using spyndex library, allowing to use all spectral indices listed here
SAR products may now compute indices if possible (see this list)
Old EOReader indices are still available for legacy purposes, with some changes:
For Sentinel-2 data, the band
NIRandNARROW_NIRmay be interchanged for some index ( see this discussion)OSAVI formula has changed to stick with the original paper definition (see issue)
NDRE2/3formula are fixed, now usingVRE_2/3andNDRE1corresponds toNDREIand usesVRE_1CI1is renamedCI32andCI2is renamedCI21for readability purposesNDWI21can be writtenNDWI2100for homogeneity purposesRDI(orDSI) uses nowSWIR_1instead ofSWIR_2(see this issue)PANIequivalent is nowBITMand is normalised! (divided by 3)SBIis normalized (divided by 2) to fit withBIXSdefinition⚠ You may need to install the last
spyndexdirectly from GitHub latest version to have all available indices
BREAKING CHANGES: Using
pyresampleto geocode Sentinel-3 data (#55)Cleaner: better conversion from swath to grid
Faster: Up to 4 times faster
Allows code refactoring between OLCI and SLSTR
BREAKING CHANGES: For SAR product types that are not available in the Data Access Portfolio, default resolution is now the pixel spacing instead of the rg x az resolution
Changes mainly Sentinel-1 default resolutions (except from IW mode)
Enhancements#
Bug Fixes#
FIX: Fixing
CustomProductinitialization when fields are set to None (instead of not declaring them)FIX: SNAP cannot handle float predictors other than 1! Set it to 1 when saving ortho SAR images to disk, in order for SNAP to be able to despeckle them. See SNAP issue. (#62)
FIX: Fixing mix in
Sentinel-2mapping forB8(NIR, 10m resolution, large spectral bandwidth) andB8A(NARROW_NIR, 20m resolution, narrow spectral bandwidth)
Other#
DOC: Add FAQ entry concerning SAR constellations extent KML files failing to be read (TLDR: needs
ogr2ogrin your PATH)DOC: Add Technical Note published in Remote Sensing MDPI in Readme
DOC: Update optical band mapping graphs (fix regression to 0.15.0 supported constellation)
DOC: Add information about DEM management in SAR notebook (#61)
DOC: Updating indices paragraphs
CI: Using actions/checkout@v3
CI: Updating versions of pre-commit hooks
LIBS: Updating
requirements.txtandsetup.pyto addpyresampleandzarr
0.17.0 (2022-10-12)#
Enhancements#
ENH: Adding the support of RapidEye constellation
ENH: Handling Planet data with multiple subdatasets (#45)
ENH: Adding the support of Landsat Level-2 products (#49)
ENH: Adding the support of Pleiades-Neo SEN and PRJ products (needs GDAL 3.5+ or rasterio 1.3.0+)
ENH: Adding the function
bands.is_thermal_bandENH: Adding the ability for optical custom stacks to load indices
ENH: Adding BAIM (MODIS Burned Area Index) spectral index
ENH: Better management of raw units of the bands of optical products
ENH: Copying files from
tmp_processwhen changing product’s output
Bug Fixes#
FIX: Stacks saved as integers on disk keep their original dtype (float32) in Python
FIX: Stacks with bands loaded “as is” are correctly saved as integers on disk (#52)
FIX: Using stack CRS (if projected) for
DIMAPproducts instead of recomputing from lat/lon, solving potential discrepancies between stack and product CRSFIX: Workaround for JP2 bug when updating an existing raster (maybe related to this bug)
FIX: Better management of SkySat datetime conversion from JSON to XML (deterministic way)
FIX: Fixing computation of invalid pixels for
Sentinel-2andDIMAPproducts (do not remove straylight mask)FIX: Fixing reprojection resolution of VHR data
FIX: Computing Brightness Temperature of
LandsatTIR bands instead of leaving them as isFIX: Better management of Landsat Instrument values
FIX: Better radiometry attribute (adding
brightness temperatureandreflectance and brightness temperaturevalues)FIX: Changing
Brilliance Temperatureto the correctBrightness TemperatureFIX: Fixing pandas FutureWarning
The frame.append method is deprecated and will be removed from pandas in a future version.FIX: Fixing DeprecationWarning
invalid escape sequence \.FIX: Manage correctly Planet dubious pixels (especially for 8 bands products)
Optimizations#
OPTIM: Reduce memory usage when updating all the bands attributes
OPTIM: Reduce memory usage when stacking as integers
Other#
DOC: Add the need of using SNAP 8.0 up-to-date or SNAP 9.0 (#42)
DOC: Add the STAC session in API documentation
DOC: Add warnings for shifts when orthorectifying DIMAP SEN products (using RPCs) (#53)
DOC: Add limitations to custom stacks
DEPS: Dropping support of Python 3.7 (#18)
DEPS: Update minimum version of libs (geopandas 0.11.0+, rasterio 1.3.0+…)
0.16.1 (2022-08-03)#
Bug Fixes#
FIX: Add the missing conversion to reflectance for
Sentinel-3 OLCIFIX: Better condition for the conversion to reflectance for
Sentinel-2 THEIAFIX: Add logs for
SkySatdata that cannot been converted to reflectance and fix theradiometryfield of its band xarraysFIX: Add the correct nodata (when overridden by the user) to stacks saved as uint16
Optimizations#
OPTIM: Reduce memory usage during stacking
Other#
CI: Test reflectance values
0.16.0 (2022-08-01)#
Enhancements#
ENH: Adding the support of SuperView-1 constellation (#21)
ENH: Adding the support of SPOT-4/5 constellations (#39)
ENH: Allow the possibility to pass a constellation (or a constellation list) to
Reader().open()to speed up the opening of a productENH: Add a quicklook search for
Sentinel-3products
Bug Fixes#
FIX: Fix quicklook media type with
JP2filesFIX: Fix
Sentinel-3 SLSTRF1bands based on F gridFIX: Correct the UTM projection for
Sentinel-3dataFIX: Fix handling of zipped
Sentinel-2 L2ApFIX: Fix zipped
Sentinel-2with other XML files in GRANULE subdirectories
Other#
Renaming
masterbranch tomain
0.15.1 (2022-06-02)#
Optimizations#
OPTIM: Try to create
Vision-1footprint from the preview file instead of from the stack.OPTIM: Create footprints for stacked products (i.e.
Maxar,SkySat,Custom…) without mask by opening only the first band of the stackOPTIM: Create footprints for
MaxarProducts with a resolution 10 times lower.OPTIM: Footprints have now maximum 50 vertices in order to avoid pixelized footprints
Bug Fixes#
FIX: Fixing condensed name to avoid duplicates:
adding the
job_idforVHRproductsadding the polarization channels for
SARproducts
FIX: Remove import of pystac in
stac_utilsFIX: Fix bug for
Vision-1data looking for non-existing RPC files in case ofORTPproduct typeFIX: Fix quicklook regex for
Vision-1dataFIX: Fix regex for raw bands for extracted
Sentinel-3 OLCIproductsFIX: Fix
PlanetScopeidentifying regex to handle products with a satellite_id containing a letterFIX: Force metadata regex for
Maxarproducts to look for a file with pattern{name}.XMLto avoid other misplaced XML to be found in place of the true XML.FIX: Fix regression for
Landsat-7footprintFIX: Manage the case with
cloud_cover = -999.0forMaxarproducts (returnsNone)
Other#
CI: Add new optical products to be tested for end-to-end tests
0.15.0 (2022-05-30)#
Breaking Changes#
BREAKING CHANGES:
OpticalbecomesSpectralwhen more appropriateBREAKING CHANGES:
PlatformandSensorbecomeConstellationwhen more appropriate, to fit STAC vocabulary (#29):Platformenum becomesConstellationprod.platformbecomesprod.constellationprod.sat_idbecomesprod.constellation_id
BREAKING CHANGES: File
aliasis removed, replaced by*_bandsfiles and proper imports inbands.__init__BREAKING CHANGES: Product attribute
band_namesbecomesbandsin order to be STAC compliant (#29)BREAKING CHANGES: Better use of
NIRandNARROW_NIRin theindicesfile (according to the gsd ofSentinel-2bands composing the indices)BREAKING CHANGES: Correcting Landsat product types to better manage processing levels and instrument. Landsat-8/9 condensed name may change!
Enhancements#
ENH: Adding the support of
SkySat(Collect) products (#20)ENH: Bands in mapping are now objects, instead of just IDs (#29). This allows us to:
Add band metadata (such as center wavelength, bandwidth…)
Map spectral bands between STAC spec and EOReader format (#29)
Add a better
__repr__functions
ENH: Handling 8 bands
PlanetScopedata (#20)ENH: Adding the
GREEN1mapped band, corresponding to PlanetScopeGREEN IandSentinel-3 OLCIOa05bandENH: Handle some slightly broken
Sentinel-2products:when the metadata files are corrupted or when the detfoo vectors are empty (#34)
with missing MSK prefix for QI_DATA files (i.e.
DETFOOinstead ofMSK_DETFOO)
ENH: Handle exception for corrupted bands (in
Sentinel-2andutils.read) (#34)ENH: Add a STAC object that can be used to retrieve STAC Items from every Product (
prod.stac.create_item()) (#29)ENH: Add a
get_mean_viewing_anglesfor Optical Products to fill STAC View Extension (#29)ENH: Extending
get_raw_band_pathsto every product (#31)ENH: Adding a
is_orthoattribute corresponding to when the product is already orthorectified/geocoded, in order to avoid computing heavy processes without wanting it (i.e. footprint…)ENH: Adding the instrument name of every constellation, under
prod.instrumentENH: Handling
COSMOproduct with only theh5file in it (if missing XML metadata file) (#36)
Optimizations#
OPTIM: Retrieve name from filename if possible
OPTIM: Retrieve extent from metadata when possible (for VHR data)
Bug Fixes#
FIX: Fixing the band mapping of
WorldView-2/3 Multi(8 bands)FIX: Retrieval (if possible) of Sentinel-1 unique ID (was missing from the product name, as it is not in the product preview)
FIX: Fixing PAZ/TDX MTD regex
FIX: Optical products: Only set cloud cover and radiometry attributes if spectral bands are asked
Other#
INTERNAL: File
spot_6andspot_7are removed, replaced by a uniquespotfile. This shouldn’t affect the user.INTERNAL: Refactoring Landsat-XX products into
LandsatProduct, this should be invisible for user.INTERNAL: Some refactoring in
VHRfilesWARNINGS: Filter warnings from
__init__CI: Do not process two times the zipped Sentinel-1 in end-to-end tests and manage when the runner kills SNAP
DOC: Adding a STAC notebook
DOC: Various updates
0.14.0 (2022-04-14)#
Breaking Changes#
BREAKING CHANGES:
footprint,extent,wgs84_extentandcrsproperties are converted back to methods in order to prevent side effects of expensive computation when displaying the object when debugging (rollback before version 0.8.0)BREAKING CHANGES:
get_all_indexbecomesget_all_indicesBREAKING CHANGES:
acquisition_datetimebecomesdatetimeanddefault_resolutionbecomesresolutionforCustomProductin accepted keywords, and the metadata fields have been renamed according to theCustomFieldsenum
Enhancements#
ENH: Adding spectral indices:
Shadow Index (
SI)Global Vegetation Moisture Index (
GVMI)Soil Brightness Index (
SBI), Soil Cuirass Index (SCI)Panchromatic mocking Index (
PANI)Green-to-Red ratio Index (
GRI)Soil Adjusted Vegetation Index (
SAVI)Optimized Soil Adjusted Vegetation Index (
OSAVI)Visible Atmospherically Resistant Index (Green) (
VARI)Enhanced Vegetation Index (
EVI)Chlorophyll Index RedEdge VRE_3/VRE_2 (
CI1)Chlorophyll Index RedEdge VRE_2/VRE_1 (
CI2)Normalized Difference Moisture Index (with SWIR_21) (
NDMI21)
ENH: Making SAR attribute
snap_filenamepublicENH: Handling
ICEYEpure SLC productsENH: Allowing the user to choose if they want the GRD or SLC image for
ICEYEproductsENH: Add the possibility to directly load the cloud cover for optical data (and add it in the band attributes) (#28)
ENH: Add the possibility to retrieve the quicklook path (if existing) and add the
plotfunction allowing the user to plot the quicklook (if existing) (#28)ENH: Add the possibility to retrieve the orbit direction (and add it in the band attributes) (#28)
Bug Fixes#
FIX: Fixing the inversion between
8and8Abands forSentinel-2andSentinel-2 TheiaproductsFIX: Loading every optical band in reflectance (fixed for
Sentinel-2 THEIA,Maxar,PlanetandVision-1data) (#30)FIX: Fixing
ReferenceError: weakly-referenced object no longer existswhen deleting an objectFIX: Do not set sea values to nodata when orthorectifying SAR data with SNAP
FIX: Handle
Sentinel-2data with PB < 02.07 asL2ApproductsFIX: Fixing nodata and offset for
Sentinel-2data with PB > 04.00FIX: Handle new
ICEYEmetadata name’s nomenclatureFIX: Fixing harmless regex error when searching for B1 path for
LandsatproductsFIX: Fixing platform for
Sentinel-2 Theia
Other#
DOC: Creating a real
basenotebook and renaming the old one toopticalDOC: Better type hints (replacing
XDS_TYPEbyxr.DataArray)CI: Using
sertit.ci.reduce_verbosityinstead of recreating the function
0.13.1 (2022-03-08)#
Bug Fixes#
FIX: Handling
Sentinel-2 L2ApdataFIX: Do not use
--no-binary fiona,rasteriodirectly inrequirements.txt(breaks on Windows)FIX: Fixing stacking with string bands
FIX: Better
__repr__functionFIX: Read README as UTF-8 in setup.py
Other#
CI: Adding a tag for choosing the runners
DOC: Fixing cartopy/GEOS conflicts making the documentation build to fail
0.13.0 (2022-03-02)#
Enhancements#
ENH: Adding the support of
Landsat-9sensorENH: Support Sentinel-2 with missing datatake metadata file(sometimes happens with data downloaded from AWS buckets and converted to .SAFE)
Bug Fixes#
FIX: Using default SAR resolution from official Copernicus Data Access Portfolio (2014-2022) ( Sentinel-2 default resolution goes to 10.0 m!)
FIX: Use
--no-binary fiona,rasteriodirectly inrequirements.txtFIX: Removing useless
outputComplexline in GPT graphs that is breaking SNAP on LinuxFIX: Removing the workarounds caused by some bugs of
cloudpathliband enabling retrieval of nested SAR products (TSX, TDX, PAZ, RCM) from S3 compatible storage.FIX: Do not process nodata for a band already existing
FIX: Fixing an error when reading
TIRbands with Landsat-7FIX: Fixing an error when additive/multiplicative coefficients are set to
NULLfor Landsat dataFIX: Returning sun angles always as float (some
Sentinel-3angles were returned asnp.array)
Other#
CI: Do not try to process SAR end to end if GPT cannot be found
CI: Publishing wheel from GitHub instead of Gitlab
REPO: Setting GitHub as the main repository and using new Gitlab runners
0.12.0 (2022-02-09)#
Enhancements#
ENH: Adding the support of
Pleiades-Neo,Vision-1andSAOCOMsensorsENH: Adding a keyword to allow passing a specific DEM path in
load/stack(for VHR orthorectification andDEMbands)ENH: Adding the name of the DEM in DEM band (i.e. allow to compute the
HILLSHADEwith a DEM and theSLOPEwith a DTM)
Bug Fixes#
FIX:
Sentinel-2Processing Baseline 04.00:NARROW_NIRbands are now loaded correctlyFIX:
Maxarproducts (withMultiband ID) are now correctly handledFIX: Using
COPDEM-30(GLO-30) by default for SNAP as it appears that the retrieval has been fixed.FIX: Fixing the default name for cleaned bands for
Sentinel-3 SLSTRdata (was set onCLEANinstead ofNODATA)FIX: Fixing default band for Custom stacks
FIX: Fixing
get_existing_band_pathsbehavior for Custom stacksFIX: Remove other never covered lines of code (archived
RCMproducts, complexICEYEproducts, others…)FIX: Re-enabling loading str bands (regression)
FIX: Proper check for empty fields when parsing metadata
FIX: VHR
_get_dem_pathraisesValueErrorinstead ofTypeErrorFIX: Pre-process SAR bands before despeckling if not existing (was OK in most of the cases, but broke in some cases, especially with CI folder activated and S3 compatible storage)
FIX: Remove warning
invalid escape sequence \.,\w,\Dand\sFIX: Do not set
long_nameforRAW_CLOUDSarraysFIX: Providing a URL DEM on Windows throws a
OSErrorinstead of a bareException
Optimizations#
OPTIM: Do not pre-process existing Sentinel-3 geocoded bands
OPTIM: Do not look for valid metadata further than a given nested level in product’s directory (for extracted products)
Other#
CI: Using another (faster) runner
CI: Add on disk and end-to-end tests
CI: Do not write tmp files when running on disk tests
CI: Coverage:
Get coverage as HTML
Remove useless lines from coverage
Combine coverage of S3 and on disk tests
DOC: Adding a DEM notebook
0.11.2 (2022-01-19)#
Bug Fixes#
FIX: Fixing archived SAR processing
FIX: Needs extraction for
RS2-SLCdata as SNAP does not handle the productFIX: Fixing the default name for cleaned bands for optical data (was set on
CLEANinstead ofNODATA)
0.11.1 (2022-01-17)#
Bug Fixes#
FIX: Fixing complex and orthorectified products for
SARdataFIX: Fixing
RADARSAT-2SLCproduct type
Optimizations#
OPTIM: Only preprocessing wanted SAR bands (instead of all existing)
OPTIM: Do not interpolate nan values by default when writing SAR bands to disk (using a keyword instead)
Other#
DOC: Updating the SAR notebook and documentation
0.11.0 (2022-01-13)#
Breaking Changes#
BREAKING CHANGES: Renamed
is_bandtois_sat_bandto better reflect that this function only checks optical and SAR bandsBREAKING CHANGES: Invalid pixels are not processed by default anymore! Only the nodata is set (to go a bit faster)
Enhancements#
ENH: Allowing the user to choose the pixel processing for optical bands: raw band, only nodata or total cleaning of defective pixels (#16)
ENH: Adding a CustomProduct, allowing the user to load any stack as an EOReader Product!
ENH: Check if a band exists before trying to load it
Bug Fixes#
FIX: Better handling of
__all__in__init__.pyfilesFIX: Ensure that extents and footprints are in UTM
FIX: Removing docs from wheel
FIX: Fixing
TIRbands reading for Landsat data
Optimizations#
OPTIM: Optimizing
manage_invalid_pixelsforSentinel-2data (processing baseline >= 04.00)
Other#
DOC: Update README, documentation and notebooks
DOC: Water Extraction notebook has been refined to show how to manage multiple products
DOC: Update the installation paragraph in README
DOC: Adding a
For Contributorssection in the documentation (contributing, release history and GitHub repository)DOC: Remove doc testing in GitHub (as the docs are built with readthedocs)
INTERNAL: Better management of project metadata (version…) in a dedicated file
0.10.1 (2022-01-04)#
Bug Fixes#
FIX: Resolve a bug when
methodtoolsis not present (for conda package)
0.10.0 (2022-01-04)#
Enhancements#
ENH: Adding
has_bandsto products, ingesting lists as a shortcut for testing the availability of multiple bandsENH: Simplifying imports. Now you can replace:
from eoreader.bands.alias import RED, NDVIbyfrom eoreader.bands import RED, NDVI,from eoreader.products.optical.optical_product import OpticalProductbyfrom eoreader.products import OpticalProduct,from eoreader.products.optical.s3_slstr_product import SlstrRadAdjustTuplebyfrom eoreader.products import SlstrRadAdjustTuple, …
Optimizations#
OPTIM: Writing cloud bands on disk to speed up multiple calls to
loadorstackfunctions (#17)
Bug Fixes#
FIX: Correctly naming cloud xarrays
FIX: Add missing
SLEA(Spot Extended Area) product type toICEYEdataFIX: Sentinel-2 clouds (with processing baseline >= 4.0) are now given with a rasterio shape (
count,height,width)
Other#
CI: Remove
pagesstage and run only the tests when a Python file has changedDOC: Updating notebooks
DOC: Updating copyright to 2022
0.9.5 (2021-12-14)#
Bug Fixes#
FIX: Do not force import
methodtools(not existing lib in conda)FIX: Using
GRDresolution given by the constructors as default values forSLCproducts. Do not look it up in metadata as SLC resolution is NOT the GRD resolution!
0.9.4 (2021-12-13)#
Bug Fixes#
FIX: Caching properties and functions only for object instances
FIX: Fixing metadata reading for
COSMO-SkyMed 1st GenerationwithWide Regionand complex product type (handling of multiple swaths)FIX: Updates of SNAP GPT graphs for complex SAR data
FIX: Interpolate nodata inside SAR images (badly handled by SNAP -> fill the gaps that shouldn’t exist)
Other#
INTERNAL: Creation of a class
CosmoProducthandling generic methods for bothCOSMO-SkyMedgenerations
0.9.3 (2021-12-09)#
Bug Fixes#
FIX: Fixing the search for
.TILfiles forMaxarproducts (with on disk files)FIX: Fixing the search for metadata files for
Landsatproducts (with on disk files)FIX: Fixing the search for metadata files for
TerraSAR-X,TanDEM-XandPAZ SARproducts (with on disk files)FIX: Fixing SNAP files for
TerraSAR-X,TanDEM-XandPAZ SARproductsFIX: Fixing when reading CRS code for
DIMAPproducts
0.9.2 (2021-12-07)#
Bug Fixes#
FIX: Fixing flag type for
Sentinel-3dataFIX: Do not multiply the flags values by the radiance adjustment factor for
Sentinel-3 SLSTR!FIX: Fixing flag exception threshold for
Sentinel-3 SLSTRFIX: Fixing preprocessed band filenames for
Sentinel-3 SLSTR
0.9.1 (2021-12-07)#
Bug Fixes#
FIX:
Reader().valid_mtdnow correctly accepts strings instead of onlyPlatformobjectsFIX: Better handling of
Sentinel-2product typeFIX: Save bands’ new attributes in
str(to pickle them)FIX: Add a
clear()function to clear products cache
0.9.0 (2021-12-06)#
Enhancements#
ENH: Adding the support of the ICEYE sensor
ENH: Adding the support of the COSMO-SkyMed 2nd Generation sensor
ENH: Adding some attributes to bands and stack:
sensor,sensor_id,product_type,acquisition_date,condensed_name#7ENH: Replace name by filename and read directly the true name of the product in the metadata (#15)
Bug Fixes#
FIX:
Sentinel-1metadata file with archived products (discarding RFI folder in its search).FIX: Add
Quickbird,GeoEyeandWorldViewsensors inreaderregexes.FIX: Add scipy in
requirements.txtandsetup.py
Other#
DOC: Fix references to
pcigeomaticsthat doesn’t exist anymore (RADARSAT-2 and Constellation)REQ: Update
daskto fix a security issue (only in requirements asdaskis not mandatory)
0.8.1 (2021-10-26)#
Bug Fixes#
FIX: Do not force
chunkinutils.readif dask is not installed
0.8.0 (2021-10-25)#
Breaking Changes#
BREAKING CHANGE:
crs,footprint,extent,wgs84_extentare now properties!BREAKING CHANGE: Removing raw
gdaldemCLI from EOReader (theHILLSHADEandSLOPEbands are now slightly different!) (#10)BREAKING CHANGE:
HILLSHADEis given infloat32instead ofuint8BREAKING CHANGE:
SLOPEis given in degrees instead of percents
Enhancements#
ENH: Adding the support of the PAZ SAR sensor
ENH: Adding the support of the Sentinel-2 processed with the processing baseline 4.0 (#11)
ENH: Removing SNAP from Sentinel-3 pre-process -> Freeing optical data from SNAP dependency! (#12)
ENH: Enabling the use of other S3-SLSTR suffixes than
an(stripe A at nadir position)ENH: Thermal bands of Sentinel-3 SLSTR can now be used
ENH: All bands of Sentinel-3 SLSTR/OLCI can now be used (
S7,F1,F2for SLSTR,Oaxxfor OLCI) (#14)ENH:
YELLOWband is mapped toOa07band of Sentinel-3 OLCIENH: Zipped Sentinel-3 products can now be processed
ENH: Allow the use of
kwargsinload, mainly forrasters.read(and allowing i.e. radiance adjustment in S3-SLSTR)
Optimizations#
OPTIM:
crs,footprint,extent,default_transform,wgs84_extentare cached ( using@cached_property) (#13)OPTIM:
get_mean_sun_anglesanddefault_transformare now cached ( using@cache) (#13)OPTIM:
get_datetime: Look for the date only ifdatetimeattribute is None (#13)OPTIM: Better management of
fspathfor cloud-stored products (download the files only once)OPTIM: Stop downloading/extracting files if not necessary
Bug Fixes#
FIX: Bands are correctly ordered in stacks
FIX: Only load a band once, even if asked several time in the bands
FIX: Use band size for cleaning optical pixel (instead of user resolution/size)
FIX: Always take the absolute value of the resolution when converting it to strings (for filenames)
FIX: Take the default resolution if nothing is given when converting it to strings (for filenames)
FIX: Always use
utils.read/writeinstead ofrasters.read/write(for Dask management)FIX: Fixing a bug in
utils.writeFIX: Add .xml files from
eoreader/datain the MANIFEST.inFIX: Add forgotten
@abstractmethodwhere neededFIX: Better management of
_tmp_processFIX: Fixing minor bug when trying to read metadata with a POSIX path
FIX: Fixing the
**kwargsomission inutils.readFIX: Better management of
_temp_processdirectoryFIX: Landsats and TSX: Can use other filenames now
Other#
DEPR:
FAR_NIRband is removedREQ: Using
h5netcdfinstead ofnetCDF4DOC: Add a Context paragraph in the README
DOC: Add a Conda x SNAP question in the FAQ
DOC: Creation of a Sentinel-3 notebook
DOC: Updates of notebooks
DOC: Numerous updates
0.7.1 (2021-09-29)#
Bug Fixes#
FIX: Fixing a bug when opening archived Sentinel-1 (wrong metadata file found)
DOC: Updating CSS and readme
0.7.0 (2021-09-23)#
Enhancements#
ENH: Implementing RADARSAT-Constellation products (as
RCM)ENH: Implementing Maxar products (such as
GE01, WV02, WV03, WV04, but others should be supported too)ENH: Implementing TanDEM-X products (as
TDX)ENH: Adding
RH,RV,RH_DSPKandRV_DSPKSAR bandsENH: Adding the
YELLOWoptical band (forWorldView-2,WorldView-3andSentinel-3 OLCI)ENH: Adding WorldView index (without the ones using SWIR)
ENH: Loading by size -> round resolution to the closest meter (or decimeter for resolution < 1.0m)
ENH: Super class for VHR data
Bug Fixes#
FIX: Fixing reading PlanetScope archived products (error in read band)
FIX: Fix band name with complex resolutions
FIX: Fixing minor bug in RADARSAT-2 data when looking for product type
FIX: Fixing SAR band search in BEAM-DIMAP files
FIX: Fixing python version in environment.yml
FIX: Discard unused MIR and FNIR bands
FIX: Check for existence of given path when reading any product
FIX: Workaround for a bug involving some downloaded but badly formatted archives for Sentinel-2
FIX: Allow NARROW_NIR for and DIMAP data (== NIR)
FIX: Better management of writeable band folder
Other#
DOC: Fix documentation of the NDWI index
DOC: Update graph for optical band mapping
CI: Adding a test loading invalid band name
CI: Setting CI log level to DEBUG
CI: Accelerating the CI processes
0.6.4 (2021-09-15)#
Bug Fixes#
FIX: Sentinel-3 band mapping (
Coastal Aerosol<->03,BLUE<->04)
Other#
DOC: Adding an interactive graph for optical band mapping
0.6.3 (2021-09-10)#
Bug Fixes#
FIX: Load works with string bands (
prod.load('BLUE'))FIX: Fixing missing
_remove_tmp_processfor products needing extractionFIX: Remove multi converting for Sentinel-3
0.6.2 (2021-09-10)#
Bug Fixes#
FIX: Better handling of archives for products that needs extraction
FIX: TerraSAR-X products need to be extracted to be processed by SNAP!
0.6.1 (2021-09-10)#
Bug Fixes#
FIX: Fixing critical bug for Sentinel-3 (mapping between clean bands and SNAP bands)
0.6.0 (2021-09-02)#
Enhancements#
ENH: Ensuring EOReader supports Dask
Bug Fixes#
FIX: Fixing and adding BAIS2 index in alias
FIX: Fixing GLI index
FIX: Fixing a bug when writing reprojected DIMAP band
FIX: Fixing a bug with SCS Cosmo-SkyMed data
Other#
DOC: Adding a DASK notebook
DOC: Updating notebooks
0.5.0 (2021-08-24)#
Breaking Changes#
BREAKING CHANGE: Read metadata/namespaces only once and store it as a private member. Keep accessing it through the
read_mtdfunction (#9) WARNING: Breaking change for Landsat:read_mtd()loses the argumentforce_pd=Trueas it always returns an Etree
Enhancements#
ENH: Adding the BAIS2 index
ENH: Reads Sentinel-3 global attributes as metadata:
absolute_orbit_numbercommentcontactcreation_timehistoryinstitutionnetCDF_versionproduct_namereferencesresolutionsourcestart_offsetstart_timestop_timetitleac_subsampling_factor(OLCIonly)al_subsampling_factor(OLCIonly)track_offset(SLSTRonly)
ENH: Refining Despeckle Graph (#6) to use a more usual filter (
Refined Lee)ENH: Allowing the user to open the datatake metadata for Sentinel-2 products
Bug Fixes#
FIX: Decoupling classic metadata reading from the name as EOReader accepts now modified product names (#9)
FIX: Better handling of cloud-stored DEM (raising an exception for non-ortho DIMAP data as GDAL and rasterio does not handle that case)
FIX:
environment.ymlto respect the stricter use offile:syntax. See here for more information.FIX: Fixing bug when opening an archive product with
namemode and nested dictionary (when looking for a filename instead of the directory name)
Other#
CI: Fixing
test_dems_httpsand resetting DEM afterwardCI: Fixing DEM and ds2 database management
DOC: Adding a FAQ page and enhancing the Main Features page (#3)
DOC: Read Metadata has its own paragraph in Main Features
0.4.8 (2021-07-23)#
Enhancements#
ENH: Allowing
stackto take single band in input instead of a list
Bug Fixes#
FIX: Fixing a regression loading optical bands which have been previously cleaned (Landsat, Theia, possibly PlanetScope)
FIX:
loadandstackalways returnsfloat32arrays
Other#
CI: Testing if loading 2 times a band gives the same result
0.4.7.post0 (2021-07-23)#
Bug Fixes#
FIX: Fixing a regression loading Landsat bands which have been previously cleaned
0.4.7 (2021-07-23)#
Enhancements#
ENH: Adding a
default_transformfunction returning data from default band (without warping it) -> mappingcalculate_default_transformfromrasterioENH: Adding a
clean_tmpfunction allowing the user to clean the product’s temporary output by handENH: Simplifying DEM warping code
Bug Fixes#
FIX:
DIMAPproducts return always projected (in UTM) default bands (get_default_band_pathuses_get_default_utm_band)FIX: Theia Footprint returns a
GeoDataFrameinstead of aGeoSeriesFIX: Better management of the
sizekeyword withloadandstackfunctionsFIX: Landsat retrieval of multipart cleaned bands (like
SWIR_1)FIX: Some typehints fixes
FIX: Sentinel-3 open sun angles with NetCDF files stored in the cloud
FIX: Silently pass the writing of clean bands if we cannot (like if permission error)
Other#
CI: Do not reinstall everything if not needed (only PyYAML)
CI: renaming
buildstage intolintCI: simplifying geometry comparison
CI: Testing the
sizekeyword for every sensor
0.4.6 (2021-07-19)#
Bug Fixes#
FIX: Fixing no data for Sentinel-3 cloud bands
FIX: In alias:
DeprecationWarning: using non-Enums in containment checks will raise TypeError in Python 3.8
Other#
CI: Set default S3 client to point to unistra’s bucket
CI: Tox SNAP relay S3_DB_URL_ROOT
0.4.5 (2021-07-13)#
Bug Fixes#
FIX: Adding condensed name in the search when loading S3-SLSTR clouds
FIX: Fixing no data for Sentinel-3 bands processed by SNAP
FIX: Fix bug when stack path’s directory doesn’t exist
0.4.4 (2021-07-13)#
Bug Fixes#
FIX: Do not verbose empty lists when loading optical bands
FIX: Sentinel-3: Bands processed by SNAP are written with the condensed name as suffix
0.4.3.post1 (2021-07-08)#
Bug Fixes#
FIX: Fixing another bug for DEM_PATH using S3 Paths
Other#
DOC: Add a DOI
0.4.3.post0 (2021-07-08)#
Bug Fixes#
FIX: Fixing DEM_PATH using S3 Paths
0.4.3 (2021-07-05)#
Enhancements#
ENH: Optimizing loading cloud bands for DIMAP Products
stackaccepts**kwargsin order to pass options torioxarray.to_raster()
Bug Fixes#
FIX: Fixing not found masks with S3+zip Sentinel-2 products
FIX: Fixing some type hints
Other#
CI: Fixing network directories with pathlib
0.4.2 (2021-07-01)#
Enhancements#
ENH: Enabling the use of products stored in the cloud (S3, S3 compatible storage, Google, Azure…) through
cloudpathlibENH: Using correct band names in long_name
Other#
CI: Use pre-computed cleaned band if existing
DOC: Adding examples for using S3 data, especially for S3 compatible storage
0.4.1.post0 (2021-06-21)#
Bug Fixes#
FIX: cloud mask values were inverted in Sentinel-2 cloud masks
FIX: Landsat collection 2 cloud masks are now OK
0.4.1 (2021-06-21)#
Bug Fixes#
FIX: Improving stacks saved as uint16:
Only satellite bands and index are scaled (*10.000)
DEM bands are just rounded
Cloud bands (booleans) are saved as is
FIX: Fixing a rasterization bug affecting S2 and DIMAP masks, happening when the vectors have another size than the image
FIX: Adding a warning on bad georeferencing when using GS and GT Landsat products
Other#
CI: Minor updates in documentation and code
0.4.0 (2021-06-10)#
Enhancements#
ENH: Adding THR data support:
PlanetScope
Pleiades
SPOT-6/7
ENH: Better handling of SNAP DEMs (using External DEM and other available SNAP DEMs)
Bug Fixes#
FIX: More robust way of looking for
datadirectoryFIX: Bug fix in
stackthat causes some bands to be inexplicably empty sometimesFIX: Bug fix in
alias.isindexFIX: Forcing extent to UTM
Optimizations#
OPTIM: Write clean bands on disk to avoid redoing invalid pixel computation and allow the user to remove them on deletion
OPTIM:
prod.has_bands/prod.get_existing_bandsdo not orthorectify/despeckle SAR bands anymore
Other#
CI: Adding a bimonthly test for SNAP processes
DOC: Adding two new notebooks (SAR and VHR data)
DOC: Completing the documentation
0.3.4 (2021-05-28)#
BREAKING CHANGES:
read_mtd()returns a dict for the namespace map in order to manage multi namespace XMLsENH: Introduced support for DEM files from web urls (starting with http(s)://)
FIX: Landsat Zenith angle computation (mixing elevation and zenith angle)
CI: Adding weekly tests (
toxon Python 3.7, 3.8, 3.9 on Linux and Windows)DOC: Updating documentation, setting DEM path as an environment variable
0.3.3 (2021-05-21)#
Migrating documentation to sphinx and readthedocs
Refactoring documentation and ReadMe
Bug correction when loading invalid masks for S2 sensor (fiona.errors.UnsupportedGeometryTypeError)
0.3.2.post2 (2021-05-04)#
Bug when reading cloud mask on Linux
Log update in
product._check_dem_path()README & documentation updates
0.3.2.post1 (2021-05-04)#
0.3.2 (2021-05-04)#
In case of DEM bands, checks if the DEM is set and exists and raise an exception if not
Setting minimum versions in setup.py and in requirements.txt
ReadMe improvement
Updating docs
0.3.1-post2 (2021-05-03)#
Bug in NDVI formula, typo when passing to xarray
0.3.1-post1 (2021-04-30)#
Correcting a broken link in setup.py
Setting a minimum version of sertit
Footprint:
Fixing a bug in the default function
Optimization for S2 and S2-Theia sensors
Fixing L7 footprint which was too complex due to nodata stripes
CI:
Testing footprints and extent
Resolving non update of gitlab documentation
Changing the resolution of CI processes (to a multiple of the real resolution to speed up the computation)
0.3.1 (2021-04-29)#
Multiple optimizations when reading and processing the bands
Bug resolutions:
S2-Theia masks
SAR DSPK bands always recomputed
SAR nodata set to 0 as SNAP expects it
Bad mask nodata setting when computing invalid pixels
Inverted default resolution between L4/5 MSS and TM sensors
Removing useless logs when missing DEM but no computed DEM bands
Adding copyright headers to every python files
Fixing and adding examples
0.3.0 (2021-04-28)#
Going Open Source