EOReader is a multi-satellite reader allowing you to open optical and SAR data.

Overview

pypi Conda Tests Gitter pre-commit Apache

eoreader_logo EOReader

EOReader is a multi-satellite reader allowing you to open optical and SAR data.

Optical SAR
Sensors + Sentinel-2 & Theia
+ Sentinel-3 OLCI & SLSTR
+ Landsats 1 - 8
+ Sentinel-1
+ COSMO-Skymed
+ TerraSAR-X
+ RADARSAT-2

It also implements additional sensor-agnostic features:

EOReader works with xarrays.DataArray and geopandas.GeoDataFrames

Python Quickstart

The main features of EOReader are gathered hereunder. For optical data:

>> # Create the reader object and open satellite data >>> eoreader = Reader() >>> l5_prod = eoreader.open(l5_path) # The Reader will recognize the satellite type from its structure >>> # Get the footprint of the product (usable data) and its extent (envelope of the tile) >>> footprint = l5_prod.footprint() >>> extent = l5_prod.extent() >>> # Load some bands and index: they will all share the same metadata >>> bands = l5_prod.load([NDVI, GREEN, HILLSHADE, CLOUDS]) >>> # Create a stack with some other bands >>> stack = l5_prod.stack([NDWI, RED, SLOPE]) >>> # Read Metadata >>> mtd, namespace = l5_prod.read_mtd() ">
>>> from eoreader.reader import Reader
>>> from eoreader.bands.alias import *

>>> # Landsat-5 MSS path, can be found in CI/DATA
>>> l5_path = r"D:/eoreader/CI/DATA/LM05_L1TP_200029_19841014_20200902_02_T2.tar"

>>> # Create the reader object and open satellite data
>>> eoreader = Reader()
>>> l5_prod = eoreader.open(l5_path)  # The Reader will recognize the satellite type from its structure

>>> # Get the footprint of the product (usable data) and its extent (envelope of the tile)
>>> footprint = l5_prod.footprint()
>>> extent = l5_prod.extent()

>>> # Load some bands and index: they will all share the same metadata
>>> bands = l5_prod.load([NDVI, GREEN, HILLSHADE, CLOUDS])

>>> # Create a stack with some other bands
>>> stack = l5_prod.stack([NDWI, RED, SLOPE])

>>> # Read Metadata
>>> mtd, namespace = l5_prod.read_mtd()

For SAR data:

>> # Create the reader object and open satellite data >>> eoreader = Reader() >>> s1_prod = eoreader.open(s1_path) # The Reader will recognize the satellite type from its name >>> # Get the footprint of the product (usable data) and its extent (envelope of the tile) >>> footprint = s1_prod.footprint() >>> extent = s1_prod.extent() >>> # Load some bands and index: they will all share the same metadata >>> bands = s1_prod.load([VV, VV_DSPK, DEM]) >>> # Create a stack with some other bands >>> stack = s1_prod.stack([VV, VV_DSPK, SLOPE]) >>> # Read Metadata >>> mtd, namespace = s1_prod.read_mtd() ">
>>> from eoreader.reader import Reader
>>> from eoreader.bands.alias import *

>>> # Sentinel-1 GRD path, not provided in package
>>> s1_path = r"D:/eoreader/S1B_EW_GRDM_1SDH_20200422T080459_20200422T080559_021254_028559_784D.zip"

>>> # Create the reader object and open satellite data
>>> eoreader = Reader()
>>> s1_prod = eoreader.open(s1_path)  # The Reader will recognize the satellite type from its name

>>> # Get the footprint of the product (usable data) and its extent (envelope of the tile)
>>> footprint = s1_prod.footprint()
>>> extent = s1_prod.extent()

>>> # Load some bands and index: they will all share the same metadata
>>> bands = s1_prod.load([VV, VV_DSPK, DEM])

>>> # Create a stack with some other bands
>>> stack = s1_prod.stack([VV, VV_DSPK, SLOPE])

>>> # Read Metadata
>>> mtd, namespace = s1_prod.read_mtd()

Sentinel-3 and SAR products need SNAP gpt to be geocoded. Ensure that you have the folder containing your gpt executable in your PATH.

Documentation

The API documentation can be found here.

Examples

Available notebooks provided as examples:

Installation

Pip

You can install EOReader via pip:

pip install eoreader

EOReader mainly relies on geopandas and rasterio (through rioxarray).

On Windows and with pip, you may face installation issues due to GDAL. The well known workaround of installing from Gohlke's wheels also applies here. Please look at the rasterio page to learn more about that.

Conda

You can install EOReader via conda:

conda config --env --set channel_priority strict

conda install -c conda-forge eoreader

License

EOReader is licensed under Apache License v2.0. See LICENSE file for details.

Authors

EOReader has been created by ICube-SERTIT.

Credits

EOReader is built on top of amazing libs, without which it couldn't have been coded:

Comments
  • EOReader 0.17.0 and SAR: BUG whith DSPK bands

    EOReader 0.17.0 and SAR: BUG whith DSPK bands

    When I followed the document of https://eoreader.readthedocs.io/en/latest/notebooks/SAR.html#load-bands, some problems occurred.

    First, there are some bool values of band_names returned from s1_prod.has_band(band) are True, while they don't exist in get_existing_bands() image

    Second, I check the output file and there are only two tif files image which causes the code s1_prod.load(ok_bands, resolution=20.) to fail.

    Are these normal phenomenon?

    bug 
    opened by TK12331 25
  • SAOCOM L1A products are already calibrated

    SAOCOM L1A products are already calibrated

    I'm trying to read SAOCOM data without success.

    Here is a minimal example to reproduce my error:

    import os
    from pathlib import Path
    
    from eoreader.reader import Reader
    from eoreader.bands import *
    
    
    data_dir = os.path.abspath(os.path.join("..", "..", "data", "raw", "saocom"))
    saocom_file = "S1A_OPER_SAR_EOSSP__CORE_L1A_OLVF_20220317T145008"
    
    saocom_prod = Reader().open(data_dir, saocom_file)
    
    print(saocom_prod)
    

    eoreader.SaocomProduct 'S1A_OPER_SAR_EOSSP__CORE_L1A_OLVF_20220317T143007' Attributes: condensed_name: 20200801T103425_SAOCOM_VV_HH_VH_HV_SM_L1A path: /root/data/raw/saocom constellation: SAOCOM-1 sensor type: SAR product type: L1A default resolution: 10.0 acquisition datetime: 2020-08-01T10:34:25.550874 band mapping: VV: VV VV_DSPK: VV_DSPK HH: HH HH_DSPK: HH_DSPK VH: VH VH_DSPK: VH_DSPK HV: HV HV_DSPK: HV_DSPK needs extraction: True orbit direction: ASCENDING

    It appears to correctly read the data/metadata, but it fails at getting some of the bands:

    ok_bands = saocom_prod.get_existing_bands()
    saocom_prod.load(bands=[VV])
    

    Here is the traceback of the error: https://pastebin.com/SwL9D9Ju

    I need help to load the data as an xarray.

    Thanks!

    enhancement 
    opened by impresionista 23
  • Issue on page /api/eoreader.html

    Issue on page /api/eoreader.html

    I have an issue after trying to opening a sentinel 1 image: Code: l5_path = r"/media/michael/Sicherheit/S1B_IW_GRDH_1SDV_20210731T171709_20210731T171734_028041_035850_C4F8.zip" os.environ[DEM_PATH] = os.path.join("/media/michael/Sicherheit", "s1b-iw-grd-vv-20210731t171709-20210731t171734-028041-035850-001.tiff") eoreader = Reader() l5_prod = eoreader.open(l5_path) band_dict = l5_prod.load([VV])

    Failure: gpt: opção inválida: -q Traceback (most recent call last): File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 442, in get_band_paths exact_name=True, File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/sertit/files.py", line 986, in get_file_in_dir f"File with pattern {glob_pattern} not found in {directory}" FileNotFoundError: File with pattern *20210731T171709_S1_IW_GRD_VV.tif not found in /tmp/tmpl5_4fb7c/tmp_20210731T171709_S1_IW_GRD

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 787, in _pre_process_sar misc.run_cli(cmd_list) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/sertit/misc.py", line 354, in run_cli raise RuntimeError(f"Exe {cmd[0]} has failed.") RuntimeError: Exe gpt has failed.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "/home/michael/PycharmProjects/opencv_tut/ship.py", line 255, in band_dict = l5_prod.load([VV]) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/product.py", line 652, in load band_dict = self._load(bands, resolution, size) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 680, in _load bands = self._load_bands(band_list, resolution=resolution, size=size) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 622, in _load_bands band_paths = self.get_band_paths(bands, resolution) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 451, in get_band_paths all_band_paths = self._pre_process_sar(resolution) File "/home/michael/anaconda3/envs/opencv_tut/lib/python3.7/site-packages/eoreader/products/sar/sar_product.py", line 789, in _pre_process_sar raise RuntimeError("Something went wrong with SNAP!") from ex RuntimeError: Something went wrong with SNAP!

    bug 
    opened by paron2407 21
  • The alignment between EOReader and SNAP

    The alignment between EOReader and SNAP

    I process Sentinel-1 data with SNAP before, and now I want to align the processing results between EOReader and SNAP. I process GRD product using EOReader with step: Apply-Orbit-File -> ThermalNoiseRemoval -> Remove-GRD-Border-Noise -> Calibration-> Terrain-Correction. (for comparing the value of pixel, I remove step LinearToFromdB currently.

    The name of the GRD product I use is S1A_IW_GRDH_1SDV_20200308T121318_20200308T121343_031584_03A39B_5C41.zip, whose image shape is 25847 x 16731.

    However, I found some problems as followes:

    1. Comparation betweenCalibration product The value of tif file I generated from SNAP is 0-255(float64,but all the decimal value is 0), while the value of tif file I generated from EOReader is 0-123.4. Besides, the scale value between corresponding pixels is not constant.

    2. Comparation between Terrain-Correction product The value problem is as same as 1. The shape of tif file I generated from SNAP is 31668 x 21478, while the shape of tif file I generated from EOReader is 14372 x 10790.

    Why they aren't alignment? Or am I missing something?

    question 
    opened by TK12331 14
  • ENH: Support S3 LST L2

    ENH: Support S3 LST L2

    It would be great to support Sentinel-3 LST level 2 product: https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-3-slstr/product-types/level-2-lst

    Unless it is already possible, but after going thru documentation (https://eoreader.readthedocs.io/en/latest/notebooks/why_eoreader.html) I only find level-1, am I correct?

    wontfix 
    opened by Rapsodia86 11
  • ENH: STAC compliance

    ENH: STAC compliance

    It could be nice to make eoreader compliant with STAC item format, by:

    • ~~Changing the attributes names (i.e. extent to bbox, footprint to geometry)~~
    • ~~Creating a to_stac() function for every product~~
    • [x] Create a stac attribute implementing all STAC relevant features but keep legacy EOReader functions (footprint, extent...)
    • [x] Changing band names
    • [x] Add informations to the bands (centrale wavelength, bandwidth, gsd, ...)
    enhancement 
    opened by remi-braun 7
  • Missing ogr2ogr in PATH: error in ‘wgs84_extent’ when processing Sentinel-1 products

    Missing ogr2ogr in PATH: error in ‘wgs84_extent’ when processing Sentinel-1 products

    Assigning CRS to a GeoDataFrame without a geometry column is not supported. Use GeoDataFrame.set_geometry to set the active geometry column. Traceback (most recent call last): File "d:\SAR_DATA\process\eoreader-main\eoreader\products\sar\s1_product.py", line 187, in wgs84_extent raise InvalidProductError( eoreader.exceptions.InvalidProductError: Cannot determine the WGS84 extent of S1A_IW_GRDH_1SDV_20200308T121318_20200308T121343_031584_03A39B_5C41

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "C:\Users\10992.conda\envs\DL1\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\10992.conda\envs\DL1\lib\runpy.py", line 87, in run_code exec(code, run_globals) File "c:\Users\10992.vscode\extensions\ms-python.python-2022.5.11221002\pythonFiles\lib\python\debugpy_main.py", line 45, in cli.main() File "c:\Users\10992.vscode\extensions\ms-python.python-2022.5.11221002\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main run() File "c:\Users\10992.vscode\extensions\ms-python.python-2022.5.11221002\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file runpy.run_path(target_as_str, run_name=compat.force_str("main")) File "C:\Users\10992.conda\envs\DL1\lib\runpy.py", line 268, in run_path return _run_module_code(code, init_globals, run_name, File "C:\Users\10992.conda\envs\DL1\lib\runpy.py", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File "C:\Users\10992.conda\envs\DL1\lib\runpy.py", line 87, in run_code exec(code, run_globals) File "d:\SAR_DATA\process\eoreader-main\K.py", line 15, in s1_prod.wgs84_extent() File "C:\Users\10992.conda\envs\DL1\lib\site-packages\methodtools.py", line 72, in call return self.call(*args, **kwargs) File "d:\SAR_DATA\process\eoreader-main\eoreader_init.py", line 31, in wrapper return func(*args, **kwargs) File "d:\SAR_DATA\process\eoreader-main\eoreader\products\sar\s1_product.py", line 196, in wgs84_extent raise InvalidProductError(ex) from ex eoreader.exceptions.InvalidProductError: Cannot determine the WGS84 extent of S1A_IW_GRDH_1SDV_20200308T121318_20200308T121343_031584_03A39B_5C41

    installation 
    opened by TK12331 6
  • BUG: Fix multi-tile Planet data

    BUG: Fix multi-tile Planet data

    Some PlanetScope data may come as a bundle of several tiles: 2022-08-26_09h36_51

    For now, only the first one is processed, so add a mosaicing process before anything (create VRT of the stacks)

    Maybe it can be difficult to manage the metadata (name etc.) -> create synthetic metadata? How to manage cloud cover ?

    bug 0.19.0 
    opened by remi-braun 4
  • DEP: Drop Python 3.7 support

    DEP: Drop Python 3.7 support

    Python 3.7 is gradually abandonned by the community. References:

    • NEP-29 says numpy dropped support for Python 3.7 in December 2021.
    • pandas (Drop support for Python 3.7 pandas-dev/pandas#41678)
    • pyproj (DEP: Python 3.7 support pyproj4/pyproj#930)
    • xarray (DEP: Drop Python 3.7 Support pydata/xarray#6138)
    • rioxarray (DEP: Drop Python 3.7 support corteva/rioxarray#451)

    However, ArcGis Pro still uses Python 3.7 😓

    So, drop Python 3.7 support as soon as ArcGis Pro supports Python 3.8 ?

    0.19.0 
    opened by remi-braun 4
  • ENH: Replace custom spectral indices by spyndex library

    ENH: Replace custom spectral indices by spyndex library

    Now, all the spectral indices are hard coded in the index file. It could be way better to use an external and promising library named spyndex to replace the file.

    It would also avec the benefit of allowing (one way or another) the user to compute custom indices.

    enhancement 0.20.0 
    opened by remi-braun 3
  • ENH: Enabling the support of windows and AOI when loading bands

    ENH: Enabling the support of windows and AOI when loading bands

    When loading bands, enable the support of:

    Loading a window

    Loading an AOI

    • determine its extent
    • load only its window
    • ~~then crop the windowed array by the AOI~~

    :warning: Implementation limits

    ➡️Pay attention to non orthorectified or non projected bands.
    ✔️Ortho/project them entirely first to mimic the orthorectification of the whole VHR stacks before reading a band. ➡️What file to write on disk, only the whole files ?
    ✔️Always load, process nodata or clean pixels for the whole file, and then read a window (to complicated to manage a file per window)

    enhancement 0.19.0 
    opened by remi-braun 3
  • Capella data not loading

    Capella data not loading

    Hello

    I would like to ask some clarification regarding support for CAPELLA data for SAR. I have a zip file with CAPELLA data, but when I try to load the file, the outputting variable is empty and the code is not throwing any errors. When I was checking the reader function, it seems to me, that there is missing a class creation for Capella data and this is why it does not throw any error. Could you help me to understand if there is currently a support for Capella satellite?

    opened by koles289 2
  • ENH: Support Python 3.11

    ENH: Support Python 3.11

    Python 3.11 has been released for some times now and it would be great to officially support it.

    Unfortunately, h5py doesn't for now:

    • https://github.com/h5py/h5py/issues/2146
    • https://github.com/pydata/xarray/pull/7353

    Wait for this issue to be closed and add Python 3.11 into the weekly CI.

    enhancement waiting upstream 
    opened by remi-braun 0
  • OPTIM: Speeding up EOReader

    OPTIM: Speeding up EOReader

    It could be really useful to use external libraries to speed up EOReader and ensure the clusterization works properly:

    • [ ] Optimize the code using libraries such as numba, xarray-geospatial...
    • [ ] Make Dask really work (even if #4 is closed)
      • Ensure reading and writing is accelerated
      • Check if reprojection, geocoding, index computation can be daskified and/or optimized:
    • [ ] Enforce the window reading (#25)
    • [ ] Don't use SNAP for SAR data (#2)
    help wanted optimization 
    opened by remi-braun 0
  • ENH: Implement Maxar-ARD data

    ENH: Implement Maxar-ARD data

    It would be great to ingest Maxar ARD data. It is more or less handled by a Custom product, but this may be useful.

    Maybe create an ARDProduct as a baseclass ? More and more constellations are implementing such product type

    Some data is available in open source here: https://stacindex.org/catalogs/maxar-open-data-catalog-ard-format#/

    new product community driven 
    opened by remi-braun 0
  • ENH: Load bands as radiance

    ENH: Load bands as radiance

    For now, we can load bands "as is" and converted to reflectance.

    It would be great to allow the user to load bands as radiance too, as asked in #50.

    It may be also pertinent to differentiate TOA and BOA reflectances.

    enhancement community driven 
    opened by remi-braun 1
Releases(v0.19.0)
  • v0.19.0(Jan 3, 2023)

    0.19.0 (2023-01-03)

    Enhancements

    • ENH: Adding the support of Capella constellation (#74)
    • ENH: Allow the user to load bands with a window (pixels and geo) (#25, notebook)

    Bug Fixes

    • FIX: Fix extent computation for CSG products with Shapely 2.0
    • FIX: 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
    Source code(tar.gz)
    Source code(zip)
  • v0.18.1(Dec 8, 2022)

    0.18.1 (2022-12-08)

    Bug Fixes

    • FIX: Fix regression for missing EOReader aliases for spyndex spectral indices

    Other

    • DOC: Add latest DOI link
    Source code(tar.gz)
    Source code(zip)
  • v0.18.0(Dec 6, 2022)

    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 NIR and NARROW_NIR may be interchanged for some index ( see this discussion)
        • OSAVI formula has changed to stick with the original paper definition (see issue)
        • NDRE2/3 formula are fixed, now using VRE_2/3 and NDRE1 corresponds to NDREI and uses VRE_1
        • CI1 is renamed CI32 and CI2 is renamed CI21 for readability purposes
        • NDWI21 can be written NDWI2100 for homogeneity purposes
        • RDI (or DSI) uses now SWIR_1 instead of SWIR_2 (see this issue)
        • PANI equivalent is now BITM and is normalised ! (divided by 3)
        • SBI is normalized (divided by 2) to fit with BIXS definition
        • You may need to install the last spyndex directly from GitHub latest version to have all available indices
    • BREAKING CHANGES: Using pyresample to 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 CustomProduct initialization 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-2 mapping for B8 (NIR, 10m resolution, large spectral bandwidth) and B8A (NARROW_NIR, 20m resolution, narrow spectral bandwidth)

    Other

    • DOC: Add FAQ entry concerning SAR constellations extent KML files failing to be read (TLDR: needs ogr2ogr in 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.txt and setup.py to add pyresample and zarr
    Source code(tar.gz)
    Source code(zip)
  • v0.17.0(Oct 12, 2022)

    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_process when 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 DIMAP products 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-2 and DIMAP products (do not remove straylight mask)
    • FIX: Fixing reprojection resolution of VHR data
    • FIX: Computing Brightness Temperature of Landsat TIR bands instead of leaving them as is
    • FIX: Better management of Landsat Instrument values
    • FIX: Better radiometry attribute (adding brightness temperature and reflectance and brightness temperature values)
    • FIX: Changing Brilliance Temperature to the correct Brightness 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+...)
    Source code(tar.gz)
    Source code(zip)
  • v0.16.1(Aug 3, 2022)

    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 SkySat data that cannot been converted to reflectance and fix the radiometry field 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
    Source code(tar.gz)
    Source code(zip)
  • v0.16.0(Aug 1, 2022)

    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-3 products

    Bug Fixes

    • FIX: Fix quicklook media type with JP2 files
    • FIX: Fix Sentinel-3 SLSTR F1 bands based on F grid
    • FIX: Correct the UTM projection for Sentinel-3 data
    • FIX: Fix handling of zipped Sentinel-2 L2Ap
    • FIX: Fix zipped Sentinel-2 with other XML files in GRANULE subdirectories

    Other

    • Renaming master branch to main
    Source code(tar.gz)
    Source code(zip)
  • v0.15.1(Jun 2, 2022)

    0.15.1 (2022-06-02)

    Optimizations

    • OPTIM: Try to create Vision-1 footprint 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 Maxar Products 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_id for VHR products
      • adding the polarization channels for SAR products
    • FIX: Remove import of pystac in stac_utils
    • FIX: Fix bug for Vision-1 data looking for non-existing RPC files in case of ORTP product type
    • FIX: Fix quicklook regex for Vision-1 data
    • FIX: Fix regex for raw bands for extracted Sentinel-3 OLCI products
    • FIX: Fix PlanetScope identifying regex to handle products with a satellite_id containing a letter
    • FIX: Force metadata regex for Maxar products to look for a file with pattern {name}.XML to avoid other misplaced XML to be found in place of the true XML.
    • FIX: Fix regression for Landsat-7 footprint
    • FIX: Manage the case with cloud_cover = -999.0 for Maxar products (returns None)

    Other

    • CI: Add new optical products to be tested for end-to-end tests
    Source code(tar.gz)
    Source code(zip)
  • v0.15.0(May 30, 2022)

    0.15.0 (2022-05-30)

    Breaking Changes

    • BREAKING CHANGES: Optical becomes Spectral when more appropriate
    • BREAKING CHANGES: Platform and Sensor become Constellation when more appropriate, to fit STAC vocabulary (#29):
      • Platform enum becomes Constellation
      • prod.platform becomes prod.constellation
      • prod.sat_id becomes prod.constellation_id
    • BREAKING CHANGES: File alias is removed, replaced by *_bands files and proper imports in bands.__init__
    • BREAKING CHANGES: Product attribute band_names becomes bands in order to be STAC compliant (#29)
    • BREAKING CHANGES: Better use of NIR and NARROW_NIR in the indices file (according to the gsd of Sentinel-2 bands 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 PlanetScope data (#20)
    • ENH: Adding the GREEN1 mapped band, corresponding to PlanetScope GREEN I and Sentinel-3 OLCI Oa05 band
    • ENH: Handle some slightly broken Sentinel-2 products:
      • when the metadata files are corrupted or when the detfoo vectors are empty (#34)
      • with missing MSK prefix for QI_DATA files (i.e DETFOO instead of MSK_DETFOO)
    • ENH: Handle exception for corrupted bands (in Sentinel-2 and utils.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_angles for Optical Products to fill STAC View Extension (#29)
    • ENH: Extending get_raw_band_paths to every product (#31)
    • ENH: Adding a is_ortho attribute 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 COSMO product with only the h5 file 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_6 and spot_7 are removed, replaced by a unique spot file. This shouldn't affect the user.
    • INTERNAL: Some refactoring in VHR files
    • 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
    Source code(tar.gz)
    Source code(zip)
  • v0.14.0(Apr 14, 2022)

    Breaking Changes

    • BREAKING CHANGES: footprint, extent, wgs84_extent and crs properties 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_index becomes get_all_indices
    • BREAKING CHANGES: acquisition_datetime becomes datetime and default_resolutionbecomes resolution for CustomProduct in accepted keywords, and the metadata fields have been renamed according to the CustomFields enum

    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_filename public
    • ENH: Handling ICEYE pure SLC products
    • ENH: Allowing the user to choose if they want the GRD or SLC image for ICEYE products
    • 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 plot function 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 8 and 8A bands for Sentinel-2 and Sentinel-2 Theia products
    • FIX: Loading every optical band in reflectance (fixed for Sentinel-2 THEIA, Maxar, Planet and Vision-1 data) (#30)
    • FIX: Fixing ReferenceError: weakly-referenced object no longer exists when deleting an object
    • FIX: Do not set sea values to nodata when orthorectifying SAR data with SNAP
    • FIX: Handle Sentinel-2 data with PB < 02.07 as L2Ap products
    • FIX: Fixing nodata and offset for Sentinel-2 data with PB > 04.00
    • FIX: Handle new ICEYE metadata name's nomenclature
    • FIX: Fixing harmless regex error when searching for B1 path for Landsat products
    • FIX: Fixing platform for Sentinel-2 Theia

    Other

    • DOC: Creating a real base notebook and renaming the old one to optical
    • DOC: Better type hints (replacing XDS_TYPE by xr.DataArray)
    • CI: Using sertit.ci.reduce_verbosity instead of recreating the function
    Source code(tar.gz)
    Source code(zip)
  • v0.13.1(Mar 8, 2022)

    0.13.1 (2022-03-08)

    • FIX: Handling Sentinel-2 L2Ap data
    • FIX: Do not use --no-binary fiona,rasterio directly in requirements.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
    Source code(tar.gz)
    Source code(zip)
  • v0.13.0(Mar 2, 2022)

    0.13.0 (2022-03-02)

    • ENH: Adding the support of Landsat-9 sensor
    • 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,rasterio directly in requirements.txt
    • FIX: Removing useless outputComplex line in GPT graphs that is breaking SNAP on Linux
    • FIX: Removing the workarounds caused by some bugs of cloudpathlib and 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 TIR bands with Landsat-7
    • FIX: Fixing an error when additive/multiplicative coefficients are set to NULL for 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
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Feb 9, 2022)

    0.12.0 (2022-02-09)

    • ENH: Adding the support of Pleiades-Neo, Vision-1 and SAOCOM sensors
    • ENH: Adding a keyword to allow passing a specific DEM path in load/stack (for VHR orthorectification and DEM bands)
    • ENH: Adding the name of the DEM in DEM band (i.e. allow to compute the HILLSHADE with a DEM and the SLOPE with a DTM)
    • FIX: Sentinel-2 Processing Baseline 04.00: NARROW_NIR bands are now loaded correctly
    • FIX: Maxar products (with Multi band 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 SLSTR data (was set on CLEAN instead of NODATA)
    • FIX: Fixing default band for Custom stacks
    • FIX: Fixing get_existing_band_paths behavior for Custom stacks
    • FIX: Remove other never covered lines of code (archived RCM products, complex ICEYE products, others...)
    • FIX: Re-enabling loading str bands (regression)
    • FIX: Proper check for empty fields when parsing metadata
    • FIX: VHR _get_dem_path raises ValueError instead of TypeError
    • 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, \D and \s
    • FIX: Do not set long_name for RAW_CLOUDS arrays
    • FIX: Providing a URL DEM on Windows throws a OSError instead of a bare Exception
    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.11.2(Jan 19, 2022)

    • FIX: Fixing archived SAR processing
    • FIX: Needs extraction for RS2-SLC data as SNAP does not handle the product
    • FIX: Fixing the default name for cleaned bands for optical data (was set on CLEAN instead of NODATA)
    Source code(tar.gz)
    Source code(zip)
  • 0.11.1(Jan 17, 2022)

    • FIX: Fixing complex and orthorectified products for SAR data
    • FIX: Fixing RADARSAT-2 SLC product type
    • 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)
    • DOC: Updating the SAR notebook and documentation
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Jan 13, 2022)

    • BREAKING CHANGES: Renamed is_band to is_sat_band to better reflect that this function only checks optical and SAR bands
    • BREAKING CHANGES: Invalid pixels are not processed by default anymore! Only the nodata is set (to go a bit faster)
    • 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
    • FIX: Better handling of __all__ in __init__.py files
    • FIX: Ensure that extents and footprints are in UTM
    • FIX: Removing docs from wheel
    • FIX: Fixing TIR bands reading for Landsat data
    • OPTIM: Optimizing manage_invalid_pixels for Sentinel-2 data (processing baseline >= 04.00)
    • 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 Contributors section 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
    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Jan 4, 2022)

  • 0.10.0(Jan 4, 2022)

    • ENH: Adding has_bands to products, ingesting lists as a shortcut for testing the availability of multiple bands
    • ENH: Simplifying imports. Now you can replace:
      • from eoreader.bands.alias import RED, NDVI by from eoreader.bands import RED, NDVI,
      • from eoreader.products.optical.optical_product import OpticalProduct by from eoreader.products import OpticalProduct,
      • from eoreader.products.optical.s3_slstr_product import SlstrRadAdjustTuple by from eoreader.products import SlstrRadAdjustTuple, ...
    • OPTIM: Writing cloud bands on disk to speed up multiple calls to load or stack functions #17
    • FIX: Correctly naming cloud xarrays
    • FIX: Add missing SLEA (Spot Extended Area) product type to ICEYE data
    • FIX: Sentinel-2 clouds (with processing baseline >= 4.0) are now given with a rasterio shape (count, height, width)
    • CI: Remove pages stage and run only the tests when a Python file has changed
    • DOC: Updating notebooks
    • DOC: Updating copyright to 2022
    Source code(tar.gz)
    Source code(zip)
  • 0.9.5(Dec 14, 2021)

    • FIX: Do not force import methodtools (not existing lib in conda)
    • FIX: Using GRD resolution given by the constructors as default values for SLC products. Do not look it up in metadata as SLC resolution is NOT the GRD resolution !
    Source code(tar.gz)
    Source code(zip)
  • 0.9.4(Dec 13, 2021)

    • FIX: Caching properties and functions only for object instances
    • FIX: Fixing metadata reading for COSMO-SkyMed 1st Generation with Wide Region and 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)
    • INTERNAL: Creation of a class CosmoProduct handling generic methods for both COSMO-SkyMed generations
    Source code(tar.gz)
    Source code(zip)
  • 0.9.3(Dec 9, 2021)

    • FIX: Fixing the search for .TIL files for Maxar products (with on disk files)
    • FIX: Fixing the search for metadata files for Landsat products (with on disk files)
    • FIX: Fixing the search for metadata files for TerraSAR-X, TanDEM-X and PAZ SAR products (with on disk files)
    • FIX: Fixing SNAP files for TerraSAR-X, TanDEM-X and PAZ SAR products
    • FIX: Fixing when reading CRS code for DIMAP products
    Source code(tar.gz)
    Source code(zip)
  • 0.9.2(Dec 7, 2021)

    • FIX: Fixing flag type for Sentinel-3 data
    • FIX: Do not multiply the flags values by the radiance adjustment factor for Sentinel-3 SLSTR!
    • FIX: Fixing flag exception threshold for Sentinel-3 SLSTR
    • FIX: Fixing preprocessed band filenames for Sentinel-3 SLSTR
    Source code(tar.gz)
    Source code(zip)
  • 0.9.1(Dec 7, 2021)

    • FIX: Reader().valid_mtd now correctly accepts strings instead of only Platform objects
    • FIX: Better handling of Sentinel-2 product type
    • FIX: Save bands' new attributes in str (to pickle them)
    • FIX: Add a clear() function to clear products cache
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Dec 3, 2021)

    • 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 #7
    • ENH: Replace name by filename and read directly the true name of the product in the metadata #15
    • FIX: Sentinel-1 metadata file with archived products (discarding RFI folder in its search).
    • FIX: Add Quickbird, GeoEye and WorldView sensors in reader regexes.
    • FIX: Add scipy in requirements.txt and setup.py
    • DOC: Fix references to pcigeomatics that doesn't exist anymore (RADARSAT-2 and Constellation)
    • REQ: Update dask to fix a security issue (only in requirements as dask is not mandatory)
    Source code(tar.gz)
    Source code(zip)
  • 0.8.1(Oct 26, 2021)

  • 0.8.0(Oct 25, 2021)

    • BREAKING CHANGE: crs, footprint, extent, wgs84_extent are now properties !
    • BREAKING CHANGE: Removing raw gdaldem CLI from EOReader (the HILLSHADE and SLOPE bands are now slightly different !) #10
    • BREAKING CHANGE: HILLSHADE is given in float32 instead of uint8
    • BREAKING CHANGE: SLOPE is given in degrees instead of percents
    • 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, F2 for SLSTR, Oaxx for OLCI) #14
    • ENH: YELLOW band is mapped to Oa07 band of Sentinel-3 OLCI
    • ENH: Zipped Sentinel-3 products can now be processed
    • ENH: Allow the use of kwargs in load, mainly for rasters.read (and allowing ie. radiance adjustment in S3-SLSTR)
    • OPTIM: crs, footprint, extent, default_transform, wgs84_extent are cached (using @cached_property) #13
    • OPTIM: get_mean_sun_angles and default_transform are now cached (using @cache) #13
    • OPTIM: get_datetime: Look for the date only if datetime attribute is None #13
    • OPTIM: Better management of fspath for cloud-stored products (download the files only once)
    • OPTIM: Stop downloading/extracting files if not necessary
    • 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/write instead of rasters.read/write (for Dask management)
    • FIX: Fixing a bug in utils.write
    • FIX: Add .xml files from eoreader/data in the MANIFEST.in
    • FIX: Add forgotten @abstractmethod where needed
    • FIX: Better management of _tmp_process
    • FIX: Fixing minor bug when trying to read metadata with a POSIX path
    • FIX: Fixing the **kwargs omission in utils.read
    • FIX: Better management of _temp_process directory
    • FIX: Landsats and TSX: Can use other filenames now
    • DEPR: FAR_NIR band is removed
    • REQ: Using h5netcdf instead of netCDF4
    • DOC: 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
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Sep 23, 2021)

    • 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_DSPK and RV_DSPK SAR bands
    • ENH: Adding the YELLOW optical band (for WorldView-2, WorldView-3 and Sentinel-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
    • 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
    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.6.4(Sep 15, 2021)

  • 0.6.3(Sep 10, 2021)

    • ENH: Load works with string bands (prod.load('BLUE'))
    • FIX: Fixing missing _remove_tmp_process for products needing extraction
    • FIX: Remove multi converting for Sentinel-3
    Source code(tar.gz)
    Source code(zip)
  • 0.6.2(Sep 10, 2021)

    • FIX: Better handling of archives for products that needs extraction
    • FIX: TerraSAR-X products need to be extracted to be processed by SNAP !
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Sep 2, 2021)

    • ENH: Ensuring EOreader supports Dask
    • 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
    • DOC: Adding a DASK notebook
    • DOC: Updating notebooks
    Source code(tar.gz)
    Source code(zip)
Owner
ICube-SERTIT
ICube-SERTIT's repository
ICube-SERTIT
Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Ayush Mishra 3 May 6, 2022
Script that allows to download data with satellite's orbit height and create CSV with their change in time.

Satellite orbit height ◾ Requirements Python >= 3.8 Packages listen in reuirements.txt (run pip install -r requirements.txt) Account on Space Track ◾

Alicja Musiał 2 Jan 17, 2022
Python package for earth-observing satellite data processing

Satpy The Satpy package is a python library for reading and manipulating meteorological remote sensing data and writing it to various image and data f

PyTroll 882 Dec 27, 2022
Xarray backend to Copernicus Sentinel-1 satellite data products

xarray-sentinel WARNING: this product is a "technology preview" / pre-Alpha Xarray backend to explore and load Copernicus Sentinel-1 satellite data pr

B-Open 191 Dec 15, 2022
A package to fetch sentinel 2 Satellite data from Google.

Sentinel 2 Data Fetcher Installation Create a Virtual Environment and activate it. python3 -m venv venv . venv/bin/activate Install the Package via pi

null 1 Nov 18, 2021
Pure Python NetCDF file reader and writer

Pyncf Pure Python NetCDF file reading and writing. Introduction Inspired by the pyshp library, which provides simple pythonic and dependency free data

Karim Bahgat 14 Sep 30, 2022
Search and download Copernicus Sentinel satellite images

sentinelsat Sentinelsat makes searching, downloading and retrieving the metadata of Sentinel satellite images from the Copernicus Open Access Hub easy

null 837 Dec 28, 2022
A utility to search, download and process Landsat 8 satellite imagery

Landsat-util Landsat-util is a command line utility that makes it easy to search, download, and process Landsat imagery. Docs For full documentation v

Development Seed 681 Dec 7, 2022
Download and process satellite imagery in Python using Sentinel Hub services.

Description The sentinelhub Python package allows users to make OGC (WMS and WCS) web requests to download and process satellite images within your Py

Sentinel Hub 659 Dec 23, 2022
QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios

QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios, that I wrote in Python 3 for my own research and visualisation. It is currently unfinished (95%) but the core algorithm and app works. Here's an example snippet of the GUI where four deputy satellites are orbiting a single chief in LEO.

Samuel Low 9 Aug 23, 2022
Build, deploy and extract satellite public constellations with one command line.

SatExtractor Build, deploy and extract satellite public constellations with one command line. Table of Contents About The Project Getting Started Stru

Frontier Development Lab 70 Nov 18, 2022
A simple python script that, given a location and a date, uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed on the command-line.

What does it do? Given a location and a date, it uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed

Caio 42 Nov 26, 2022
Calculate & view the trajectory and live position of any earth-orbiting satellite

satellite-visualization A cross-platform application to calculate & view the trajectory and live position of any earth-orbiting satellite in 3D. This

Space Technology and Astronomy Cell - Open Source Society 3 Jan 8, 2022
Satellite imagery for dummies.

felicette Satellite imagery for dummies. What can you do with this tool? TL;DR: Generate JPEG earth imagery from coordinates/location name with public

Shivashis Padhi 1.8k Jan 3, 2023
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.

google-maps-at-88-mph The folks maintaining Google Maps regularly update the satellite imagery it serves its users, but outdated versions of the image

Noah Doersing 111 Sep 27, 2022
LEOGPS - Satellite Navigation with GPS on Python!

LEOGPS is an open-source Python software which performs relative satellite navigation between two formation flying satellites, with the objective of high accuracy relative positioning. Specifically, LEOGPS solves for the double-differenced baseline (using float ambiguity resolution) between satellites flying in formation in Low Earth Orbit (LEO).

Samuel Low 50 Dec 13, 2022
Open Data Cube analyses continental scale Earth Observation data through time

Open Data Cube Core Overview The Open Data Cube Core provides an integrated gridded data analysis environment for decades of analysis ready earth obse

Open Data Cube 410 Dec 13, 2022
GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.

Table of Contents What is GeoNode? Try out GeoNode Install Learn GeoNode Development Contributing Roadmap Showcase Most useful links Licensing What is

GeoNode Development Team 1.2k Dec 26, 2022
GebPy is a Python-based, open source tool for the generation of geological data of minerals, rocks and complete lithological sequences.

GebPy is a Python-based, open source tool for the generation of geological data of minerals, rocks and complete lithological sequences. The data can be generated randomly or with respect to user-defined constraints, for example a specific element concentration within minerals and rocks or the order of units within a complete lithological profile.

Maximilian Beeskow 16 Nov 29, 2022