Releases: sertit/eoreader
Releases · sertit/eoreader
v0.18.0
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
- For Sentinel-2 data, the band
- Using spyndex library, allowing to use all spectral 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
- ENH: Adding the support of Harmonized Landsat-Sentinel constellation (#49)
- ENH: Adding the support of GEOSAT-2 constellation (#59)
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 (https://forum.step.esa.int/t/exception-found-when-reading-compressed-tif/654/7). (#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
v0.17.0
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 Pleides Neo SEN and PRJ products (needs GDAL 3.5+ or rasterio 1.3.0+)
- ENH: Adding the function
bands.is_thermal_band - ENH: 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 discrepencies between stack and product CRS - FIX: 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 is - FIX: Better management of Landsat Instrument values
- FIX: Better radiometry attribute (adding
brightness temperatureandreflectance and brightness temperaturevalues) - FIX: Changing
Brilliance Temperatureto the correctBrightness Temperature - FIX: 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 (geopadans 0.11.0+, rasterio 1.3.0+...)
v0.16.1
0.16.1 (2022-08-03)
Bug Fixes
- FIX: Add the missing conversion to reflectance for
Sentinel-3 OLCI - FIX: Better condition for the conversion to reflectance for
Sentinel-2 THEIA - FIX: Add logs for
SkySatdata that cannot been converted to reflectance and fix theradiometryfield of its band xarrays - FIX: 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
v0.16.0
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 product - ENH: Add a quicklook search for
Sentinel-3products
Bug Fixes
- FIX: Fix quicklook media type with
JP2files - FIX: Fix
Sentinel-3 SLSTRF1bands based on F grid - FIX: Correct the UTM projection for
Sentinel-3data - FIX: Fix handling of zipped
Sentinel-2 L2Ap - FIX: Fix zipped
Sentinel-2with other XML files in GRANULE subdirectories
Other
- Renaming
masterbranch tomain
v0.15.1
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 stack - OPTIM: 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_idforVHRproducts - adding the polarization channels for
SARproducts
- adding the
- FIX: Remove import of pystac in
stac_utils - FIX: Fix bug for
Vision-1data looking for non-existing RPC files in case ofORTPproduct type - FIX: Fix quicklook regex for
Vision-1data - FIX: Fix regex for raw bands for extracted
Sentinel-3 OLCIproducts - FIX: Fix
PlanetScopeidentifying regex to handle products with a satellite_id containing a letter - FIX: 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-7footprint - FIX: Manage the case with
cloud_cover = -999.0forMaxarproducts (returnsNone)
Other
- CI: Add new optical products to be tested for end-to-end tests
v0.15.0
0.15.0 (2022-05-30)
Breaking Changes
- BREAKING CHANGES:
OpticalbecomesSpectralwhen more appropriate - BREAKING 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 OLCIOa05band - ENH: 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.instrument - ENH: 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)
- OPTIM: Refactoring Landsat-XX products into
LandsatProduct, this should bee invisible for user.
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: Some refactoring in
VHRfiles - WARNINGS: 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
v0.14.0
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_indices - BREAKING 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)
- Shadow Index (
- ENH: Making SAR attribute
snap_filenamepublic - ENH: Handling
ICEYEpure SLC products - ENH: Allowing the user to choose if they want the GRD or SLC image for
ICEYEproducts - ENH: 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 Theiaproducts - FIX: 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 object - FIX: Do not set sea values to nodata when orthorectifying SAR data with SNAP
- FIX: Handle
Sentinel-2data with PB < 02.07 asL2Approducts - FIX: Fixing nodata and offset for
Sentinel-2data with PB > 04.00 - FIX: Handle new
ICEYEmetadata name's nomenclature - FIX: Fixing harmless regex error when searching for B1 path for
Landsatproducts - FIX: Fixing platform for
Sentinel-2 Theia
Other
- DOC: Creating a real
basenotebook and renaming the old one tooptical - DOC: Better type hints (replacing
XDS_TYPEbyxr.DataArray) - CI: Using
sertit.ci.reduce_verbosityinstead of recreating the function
v0.13.1
0.13.1 (2022-03-08)
- FIX: Handling
Sentinel-2 L2Apdata - FIX: Do not use
--no-binary fiona,rasteriodirectly inrequirements.txt(breaks on Windows) - FIX: Fixing stacking with string bands
- FIX: Better
__repr__function - CI: Adding a tag for choosing the runners
- DOC: Fixing cartopy/GEOS conflicts making the documentation build to fail
v0.13.0
0.13.0 (2022-03-02)
- ENH: Adding the support of
Landsat-9sensor - ENH: Support Sentinel-2 with missing datatake metadata file(sometimes happens with data downloaded from AWS buckets and converted to .SAFE)
- 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.txt - FIX: Removing useless
outputComplexline in GPT graphs that is breaking SNAP on Linux - FIX: 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-7 - FIX: Fixing an error when additive/multiplicative coefficients are set to
NULLfor Landsat data - 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
v0.12.0
0.12.0 (2022-02-09)
- ENH: Adding the support of
Pleiades-Neo,Vision-1andSAOCOMsensors - ENH: 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) - FIX:
Sentinel-2Processing Baseline 04.00:NARROW_NIRbands are now loaded correctly - FIX:
Maxarproducts (withMultiband ID) are now correctly handled - FIX: 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 stacks - FIX: 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 ofTypeError - FIX: 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\s - FIX: Do not set
long_nameforRAW_CLOUDSarrays - FIX: Providing a URL DEM on Windows throws a
OSErrorinstead of a bareException - 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)
- 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