Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Remote-sensing opensource python library reading optical and SAR constellations, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.
EOReader is a remote-sensing opensource python library reading optical and SAR constellations, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.
EOReader implements sensor-agnostic features:
load
: Load many band types:
stack
: Stack all these type of bandsEOReader works mainly with:
xarrays.DataArray
and xarrays.Dataset
for raster datageopandas.GeoDataFrames
for vector data (extents, footprints...)EOReader allows you ta load and stack spectral bands, spetrcal indices, DEM and cloud bands agnostically from every handled optical constellation:
from eoreader.reader import Reader
from eoreader.bands import *
# Sentinel-2 path
s2_path = "S2B_MSIL1C_20181126T022319_N0207_R103_T51PWM_20181126T050025.SAFE"
# Create the reader object and open satellite data
reader = Reader()
# The reader will recognize the constellation from its product structure
s2_prod = reader.open(s2_path)
# Load some bands and index
bands = s2_prod.load([NDVI, GREEN, CLOUDS])
# Create a stack with some bands
stack = s2_prod.stack([RED, GREEN, BLUE], stack_path="s2_rgb_stack.tif")
EOReader aligns spectral bands from every handled sensor in order to make any call to a band generic:
In the same way, you can import and stack radar band from any handled SAR constellation, with the same pattern.
from eoreader.reader import Reader
from eoreader.bands import *
# Sentinel-1 GRD path
s1_path = "S1B_EW_GRDM_1SDH_20200422T080459_20200422T080559_021254_028559_784D.zip"
# Create the reader object and open satellite data
reader = Reader()
# The reader will recognize the constellation from its product structure
s1_prod = reader.open(s1_path)
# Load some bands and index
bands = s1_prod.load([VV, VH])
# Create a stack with some bands
stack = s1_prod.stack([VV_DSPK, VH_DSPK], stack_path="s1_stack.tif")
⚠️SNAP and SAR
SAR products need
ESA SNAP
free software to be orthorectified and calibrated. Ensure that you have the folder containing yourgpt
executable in yourPATH
. If you are using SNAP 8.0, be sure to have your software up-to-date (SNAP version >= 8.0).
The API documentation can be found here.
Available notebooks provided as examples:
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.
You can install EOReader via conda:
conda config --env --set channel_priority strict
conda install -c conda-forge eoreader
As one of the Copernicus Emergency Management Service Rapid Mapping and Risk and Recovery Mapping operators, SERTIT needs to deliver geoinformation (such as flood or fire delineation, landslides mapping, etc.) based on multiple EO constellations.
In rapid mapping, it is always important to have access to various sensor types, resolutions, and satellites. Indeed, SAR sensors are able to detect through clouds and during nighttime (which is particularly useful during flood and storm events), while optical sensors benefit from of multi spectral bands to better analyze and classify the crisis information.
As every minute counts in the production of geoinformation in an emergency mode, it seemed crucial to harmonize the ground on which are built our production tools, in order to make them as sensor-agnostic as possible.
This is why SERTIT decided to decouple the sensor handling from the extraction algorithms: the latter should be able to ingest semantic bands
(i.e. RED
or VV
) without worrying about how to load the specific sensor band or in what unit it is.
The assumption was made that all the spectral bands from optical sensors could be mapped between each other, in addition to the natural mapping between SAR bands.
Thus, thanks to EOReader, these tools are made independent to the constellation:
✅ the algorithm (and its developer) can focus on its core tasks (such as extraction) without taking into account the sensor characteristics
(how to load a band, which band correspond to which band number, …)
✅ new sensor addition is effortless (if existing in EOReader) and requires no algorithm modification
✅ maintenance is simplified and the code quality is significantly improved
✅ testing is also simplified as the sensor-related parts are tested in EOReader library
However, keep in mind that the support of all the constellations used in CEMS is done in the best effort mode, especially for commercial data. Indeed, we may not have faced every product type, sensor mode or order configuration, so some details may be missing. If this happens to you, do not hesitate to make a PR or write an issue about that !
Enrichir ArcgisPro grâce à des processus personnalisés d'observation de la Terre
[ PDF ]FLORIA, a custom python pipeline for urban flood extraction from SAR multi-sensors, supported by U-Net convolutional network.
Cutting-edge developments in rapid mapping
EOReader is licensed under Apache License v2.0. See LICENSE file for details.
EOReader has been created by ICube-SERTIT.
EOReader is built on top of amazing libs, without which it couldn't have been coded:
FAQs
Remote-sensing opensource python library reading optical and SAR constellations, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.
We found that eoreader demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.