Did you enjoy
nprocs=integer Number of threads for parallel computing
Did you enjoy
nprocs=integer Number of threads for parallel computing
As this is crucial, I am adding more people, so maybe we move this to the right direction ![]()
@neteler @wenzeslaus @martinl @annakrat
what would you suggest to aim for a metadata structure, that will be after used by tools? beside wavelength and other band wise metadata we must add additional ones to make processing possible. For now all the metadata stored by i.hyper has a dummy scheme, as it is simply written in comments and then parsed. We should update this somehow in a better way, then refactor all the i.hyper tools to follow it, then build other tools based on that. That metadata scheme should also be extendable. Any hints?
Thanks, will try, so far exporting the whole rast3d and running r.mapcalc on each band takes few minutes, then I r.to.rast3d with all of the metadata in description
One suggestion is to use write the metadata into a JSON and save them with the 3D raster (e.g. grid3/<mapname>/hyper.json). I am sending Alen a separate email with AI-generated code that could be a good start.
Only 2d mapcalc is parallel for now. I am not sure whether the 3D can be similarly parallelized.
Alen told me he reads all his needs (by chunk) in a numpy array, then computes everything and writes back, though I understand the attraction for that as a prototype, it puts r3.mapcalc into a drawer. But then, I also preferred the r.mapcalc at this point too for speed reasons. We have to think a bit about all that eventually.
For atmospheric correction, I will need to read several things from the images header. Non exhaustive list:
Integration of libradtran input generation into SMAC, getting there. Need to get timestamp in, it is using todayβs date as satellite acquisition dateβ¦
As discussed, i Will dig in @annakrat suggestions, then suggest a metadata structure (what you wrote + other) and when agreed, try to implement it and refactor all the other modules to account it.
also, can you add in i.hyper.explore the option of min/max manual threshold values? I need to see the curves output from i.hyper.SMAC, but there are few negative values, and one huge positive value ruining the quality of the reflectance curves. Thank you
Ok!
My plan is to dig into it in the second part of February.
For now:
After that (testing + PR) It will be the time to jump on other functionalities under the same metadata:
I wanted also to add a module for soil moisture content, starting with NRAL.
Hi, looking forward to a unified and detailed metadata system, so I can continue building hyper addons directly with them.
I am using Tanager Agri sample of Kanpur (India) for i.hyper.smac
When you start working on Soil Moisture, please do check with me if it is not already in my TODO/DONE list
@mazingaro Please indicate the day when the PR for metadata is live, so I can be sure to start modifying codes to adopt the structure, thanks a million
GitHub - YannChemin/libsixsv: C + OpenMP port of 6s V2.1. atmospheric correction library Β· GitHub >This is the main 6S engine behind i.atcorr, but its vectorised version, and distributed with OpenMP on multi-core, or on GPU Offload. This is the core engine for i.atcorr2 and i.hyper.atcorr. The library has a dev version that has C includes and Python bindings (import libsixsv). The repository has a Debian building part that builds the Debian Package for distribution if needed.
Still under construction
We will write here immediately after the PR
Looks great! Do we need extra metadata that is not on this list?
Hi @mazingaro
copy and paste in a local editor for best view.
This is the full list of metadata that would be best for radiance (L1) raster3d information for processing i.hyper.atcorr. Some can be preprocessed on import of the data in GRASS, some metadata are needed to store atmospheric correction parameters found.
Acquisition geometry (eliminate required sza=, vza=, raa=, altitude=,
doy=)
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββ¬ββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ
β Key β Example β
Why useful β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Acquisition time β 2024-06-15T10:23:45Z β Auto-compute doy;
optionally drive solar position β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Scene center latitude β 45.23 β Combined with time
β auto sza/saa via possol β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Scene center longitude β 6.78 β Same
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Sun zenith angle β 34.5 β Direct read β drop
sza= requirement β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Sun azimuth angle β 162.3 β Needed for terrain
correction; currently always CLI β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β View zenith angle β 8.2 β Mean VZA for push-
broom sensors β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β View azimuth angle β 100.0 β For RAA computation
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ€
β Sensor altitude β 705.0 β Constant per
sensor; > 900 = satellite convention β
ββββββββββββββββββββββββββ΄βββββββββββββββββββββββ΄ββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ
Radiometry (critical for physical correctness)
βββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ
β Key β Example β Why useful
β
βββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ€
β Radiance units β W/(m2 sr um) β Assumed but never validated; W/(m2
sr nm) = Γ1000 error β
βββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ€
β Radiance scale β 0.01 β If stored as scaled integers (many
L1 products) β
βββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ€
β Radiance offset β 0.0 β Same β L_physical = scale Γ DN +
offset β
βββββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββ
These are per-band in ENVI headers; a scene-wide version handles most
cases.
Scene-mean atmosphere (populate aod_val=, h2o_val=, ozone= defaults)
ββββββββββββββββββββββββββ¬ββββββββββ¬βββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ
β Key β Example β Why useful
β
ββββββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ€
β AOD 550nm β 0.12 β From AERONET/MODIS matchup at
acquisition time β
ββββββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ€
β Column H2O (g/cm2) β 2.1 β From ECMWF/MODIS at acquisition
time β
ββββββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ€
β Ozone (DU) β 310 β From OMI/Copernicus climatology
β
ββββββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ€
β Surface pressure (hPa) β 900.0 β DEM-derived scene mean; seeds
cfg->surface_pressure β
ββββββββββββββββββββββββββΌββββββββββΌβββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ€
β Atmosphere model β midsum β Geographic/seasonal climatology
β
ββββββββββββββββββββββββββ΄ββββββββββ΄βββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ
Proposed extended format
Hyperspectral Metadata:
Valid Bands: 224
Acquisition time: 2024-06-15T10:23:45Z
Scene center latitude: 45.234
Scene center longitude: 6.782
Sun zenith angle: 34.52
Sun azimuth angle: 162.3
View zenith angle: 8.2
View azimuth angle: 278.1
Sensor altitude: 705.0
Radiance units: W/(m2 sr um)
Radiance scale: 1.0
Radiance offset: 0.0
AOD 550nm: 0.12
Column H2O (g/cm2): 2.1
Ozone (DU): 312
Surface pressure (hPa): 900.0
Atmosphere model: midsum
Band 1: 400.5 nm, FWHM: 5.2 nm
Band 2: 405.5 nm, FWHM: 5.2 nm
β¦
Priority ranking
Proposed output metadata groups
Physical quantity
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ
β Key β Example β
Why β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ€
β Data type β Surface reflectance (BOA) β Distinguishes from
radiance, TOA reflectance, NBAR β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ€
β Units β dimensionless β Explicit; avoids
confusion with scaled integer products β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ€
β Valid range β -0.01 to 1.50 β Matches the clip
bounds in the correction loop β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ€
β BRDF normalization β NBAR (Ross-Li) or none β Critical: NBAR
output has different angular meaning β
ββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄βββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββ
Correction provenance
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ¬ββββ
ββββββββββββββββββββββββββββββββββββββββ
β Key β Example β
Why β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββΌββββ
ββββββββββββββββββββββββββββββββββββββββ€
β Source radiance map β L_DESIS_20240615 β
Full traceability back to input β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββΌββββ
ββββββββββββββββββββββββββββββββββββββββ€
β Processing datetime β 2026-03-19T14:32:00Z β
Reproducibility β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββΌββββ
ββββββββββββββββββββββββββββββββββββββββ€
β Software β i.hyper.atcorr 2.0.0 / libgrass_sixsv 8.6 β
Version locking β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββΌββββ
ββββββββββββββββββββββββββββββββββββββββ€
β LUT file β /data/scene.lut β
Which LUT was used (or βcomputed inlineβ) β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββ΄ββββ
ββββββββββββββββββββββββββββββββββββββββ
6SV geometry and atmosphere used
These are the actual values consumed by the correction β not
defaults, but what was actually applied:
ββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Key β Example
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Sun zenith angle (deg) β 34.52
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Sun azimuth angle (deg) β 162.3
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β View zenith angle (deg) β 8.2
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Relative azimuth angle (deg) β 115.9
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Day of year β 167
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Sensor altitude (km) β 705.0
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Atmosphere model β midsum
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Aerosol model β continental
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β AOD 550nm β 0.12 or per-pixel map: aod_ddv
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Column H2O (g/cm2) β 2.1 or per-pixel map: h2o_retrieved
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Ozone (DU) β 312
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Surface pressure (hPa) β 900.0
β
ββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
The per-pixel map: form matters β downstream tools need to
know whether the correction was spatially uniform or
heterogeneous.
Processing flags applied
ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ¬βββββββββ
βββββββββββββββββββββββββββββββββββββββββββ
β Key β Example β
Why β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β AOD retrieval β DDV (-a) β
Affects AOD provenance β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β H2O retrieval β 940nm band-depth (-w) β Same
for H2O β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β O3 retrieval β Chappuis (-z) or fixed β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β Pressure retrieval β O2-A (-p) or fixed β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β Quality mask β yes (-m) β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β OE retrieval β joint AOD+H2O (-e) β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β MAP regularisation β yes (-r) β
Changes spectral smoothness of output β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β Adjacency correction β PSF 1.0 km or none β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β Spatial smoothing β 3.0 px or none β
β
β sigma β β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β Vector RT (Stokes) β yes (-P) or scalar β
β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β SRF gas correction β reptran fine or none β
Triggered automatically; affects narrow-band β
β β β
sensors β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββΌβββββββββ
βββββββββββββββββββββββββββββββββββββββββββ€
β FlexBRDF β MCD43 7-band disaggregation or β
β
β β none β
β
ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββ΄βββββββββ
βββββββββββββββββββββββββββββββββββββββββββ
Quality / masked bands
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ
β Key β Example β
Why β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ€
β Gas-masked bands β 107-112, 136-141, 168-175 β Bands where T_down
Γ T_up < 0.10; must not use for indices β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ€
β Masked pixel count β 1234 β From quality
bitmask (-m flag) β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ€
β DASF output map β dasf_scene β If DASF was
computed β
ββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄βββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ
The gas-masked bands list is particularly important β it is currently
computed inside the correction loop but never
recorded anywhere, so downstream spectral analysis tools have no way
to know which bands are unreliable without
rerunning the correction.
For the uncertainty output map specifically
If uncertainty= is written, it needs its own metadata:
ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β Key β Example β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β Data type β Reflectance uncertainty (1-sigma) β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β Units β dimensionless β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β Uncertainty model β NEdL propagation + AOD sigma=0.04 β
ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ€
β Source reflectance map β rho_surface β
ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββ
Priority ranking
Hi, another angle at finding basic geological information from i.hyper. addons, please update about the availability of the new metadata system
Hi,
yet another angle at analysis an image by specific absorption bands.