Observed since 20 Oct, 19:35 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
adjeff
Library that provides utilities to simulate adjacency effects.
Adjeff simulates and corrects the adjacency effect in Sentinel-2 imagery: the light that the atmosphere scatters from neighbouring pixels into the one observed.
$$\rho_{toa} = \rho_{atm} + T^\downarrow \frac{T^\uparrow_{dir},\rho_s + T^\uparrow_{dif},(\rho_s \ast P)}{1 - s,(\rho_s \ast P)}$$
Adjeff is managed with pixi: Smart-G and part of its dependencies come from conda-forge.
git clone https://github.com/walcark/Adjeff.git && cd Adjeff
pixi install -e gpu # or -e cpu, without Smart-G simulations
export SMARTG_DIR_AUXDATA=/path/to/smartg/auxdata
Simulations need a CUDA 12.6 GPU and the Smart-G auxiliary data. Analysis, PSF models and the 5S formulas run on CPU.
import adjeff
from adjeff.core import KingPSF, S2Band, disk_image_dict
from adjeff.modules.models import Unif2Surface
from adjeff.optim import TrainingImages
bands = [S2Band.B03]
cfg = adjeff.make_full_config(bands, aot=0.2, rh=50.0, h=0.0, sza=30.0, vza=5.0)
# Bright disks of 1, 5 and 50 km on a dark ground, 120 m pixels.
disks = [
disk_image_dict(radius=r, res_km=0.12, rho_max=0.5, bands=bands, n=1999)
for r in (1.0, 5.0, 50.0)
]
# Simulate their radiative terms, rho_toa and rho_unif (GPU).
disks = adjeff.run_forward_pipeline(disks, **cfg)
# Fit the King PSF that recovers rho_s from rho_unif.
model = adjeff.make_model(
Unif2Surface, KingPSF, bands, res_km=0.12, n=1999,
init_parameters={"sigma": 0.5, "gamma": 2.0},
)
tree = adjeff.fit(model, TrainingImages(disks))
# Correct a scene carrying rho_unif and the radiative terms.
corrected = adjeff.apply_psf(disks[0], tree, S2Band.B03)
adjeff.fit_psf(scene, bands, KingPSF, ...) does the same in one call,
at the mean atmosphere of a loaded product.
| User guide | Concepts, configuration, samplers, PSF, fitting, cache, logging |
| Notebooks | Six worked examples, from a synthetic scene to a PSF fitted and measured |
| Changelog | What changed, and why |
| Roadmap | Open questions and planned work |
pixi install -e dev
pixi run -e dev all # format, lint, mypy --strict, tests
pixi run -e dev-gpu test-integration # Smart-G tests, on GPU
Apache-2.0.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
daskEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | dask>=2024.1.0 | runtime |
joblibEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | joblib>=1.3.0 | runtime |
numpyEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | numpy>=2.0.0 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | pydantic>=2.12.5 | runtime |
rasterioEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | rasterio>=1.3.0 | runtime |
scipyEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | scipy>=1.10.0 | runtime |
structlogEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | structlog>=24.0.0 | runtime |
torchEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | torch>=2.0.0 | runtime |
tqdmEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | tqdm>=4.0.0 | runtime |
xarrayEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | xarray>=2026.1.0 | runtime |
xsweepEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | xsweep>=0.4.0 | runtime |
zarrEnvironment{
"extras": "",
"marker": null,
"requires_python": "<3.13,>=3.11",
"evaluation": "NOT_EVALUATED"
} | zarr>=3.0.0 | runtime |
bdist_wheel · 135.5 KB · Python py3
sdist · 1,549.63 KB · Python source
Observed since 20 Oct, 19:35 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:b568d4155528e7fbd11fc23904bdf343bbb252e9ae3fc7f916662bc4617fb04d