Skip to main content

FOSCAT

FOSCAT (Field cOmpression via Scattering CovariAnce Transform) is a Python library for wavelet/scattering-based statistical analysis, synthesis, denoising, and deep learning on 2D fields and on the sphere with HEALPix pixelisation.

The central idea: any spatial field can be summarised by a compact vector of scattering-covariance statistics Φ(d) — encoding multi-scale, cross-orientation correlations beyond what a power spectrum captures. FOSCAT can then synthesise a new field matching those statistics, use them as a loss for denoising or component separation, or feed them into neural-network architectures that operate directly on spherical geometry.

Docs PyPI CI License


Install

pip install foscat

Full environment for running the example notebooks:

micromamba create -n foscat python=3.10
micromamba activate foscat
pip install foscat torch healpy xarray gcsfs zarr jupyterlab matplotlib scipy

Backend note: FOSCAT uses PyTorch as its only active backend (TensorFlow and NumPy backends are no longer maintained).


Minimal HEALPix synthesis

import numpy as np
import foscat.scat_cov as sc
from foscat.Synthesis import Loss, Synthesis

nside = 64
target_map = np.random.randn(12 * nside**2)

# build the scattering operator and compute target statistics
scat_op     = sc.funct(KERNELSZ=5, NORIENT=4, nstep_max=4, all_type='float64')
target_stat = scat_op.eval(target_map)

# define a differentiable loss
def synth_loss(x, scat_op, args):
    ref  = args[0]
    stat = scat_op.eval(x)
    return stat.reduce_mean_batch((stat - ref) ** 2)

loss   = Loss(synth_loss, scat_op, target_stat)
solver = Synthesis([loss], eta=0.03)

x0     = np.random.randn(12 * nside**2)
result = solver.run(x0, NUM_EPOCHS=300, EVAL_FREQUENCY=10)

What FOSCAT can do

Capability Entry point Example notebook
HEALPix synthesis foscat.scat_cov.funct + Synthesis Demo_Synthesis.ipynb
2D image synthesis foscat.scat_cov2D.funct + Synthesis Synthesis2D.ipynb
Denoising two-loss synthesis (statistics + fidelity) Denoising-2D.ipynb
Component separation multi-loss synthesis Remove_CMB.ipynb
Local spherical analysis cell_ids in FoCUS / HealpixUNet local_foscat.ipynb
Spherical U-Net (regression/segmentation) HealpixUNet CNN_local.ipynb, CNN_ecmwf.ipynb

Example notebooks are maintained in demo-foscat-pangeo-eosc.


Documentation

Full documentation (installation, mathematical background, API reference, user guide) is published at:

https://jmdelouis.github.io/FOSCAT/

To build the docs locally:

cd docs_sphinx
make install   # pip install requirements.txt
make html      # → _build/html/index.html
make livehtml  # live-reload on save (requires sphinx-autobuild)

Citation

If you use FOSCAT in a publication, please cite:

@software{foscat,
  author  = {Delouis, Jean-Marc and Foulquier, Theo},
  title   = {{FOSCAT}: Field cOmpression via Scattering CovariAnce Transform},
  year    = {2026},
  url     = {https://github.com/jmdelouis/FOSCAT},
  version = {2026.04.1},
}

The underlying statistical framework is described in:

  • Allys et al. (2019), Rwst, a comprehensive statistical description of the non-Gaussian structures in the ISM, A&A 629, A115.
  • Allys et al. (2020), New interpretable statistics for large-scale structure analysis and generation, Phys. Rev. D 102, 103506.

License

BSD 3-Clause. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foscat-2026.6.1.tar.gz (224.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foscat-2026.6.1-py3-none-any.whl (244.1 kB view details)

Uploaded Python 3

File details

Details for the file foscat-2026.6.1.tar.gz.

File metadata

  • Download URL: foscat-2026.6.1.tar.gz
  • Upload date:
  • Size: 224.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for foscat-2026.6.1.tar.gz
Algorithm Hash digest
SHA256 3d2518fca343143085a51acfd5176433ca07713ea0e9d5b80307cd696737131e
MD5 86b88cfa5de958448edbb39329bd268c
BLAKE2b-256 336626a30f0c1327dc9419013a34c1af411040b1126b725556d78e14ea2f9a43

See more details on using hashes here.

File details

Details for the file foscat-2026.6.1-py3-none-any.whl.

File metadata

  • Download URL: foscat-2026.6.1-py3-none-any.whl
  • Upload date:
  • Size: 244.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for foscat-2026.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f3f32f4b7f4a481345f493e57d38acbc0a827df9fc510af95a7d03d5ea6093c3
MD5 b0f902aa5f67703f76f8721188d3d5b2
BLAKE2b-256 65cbaf68f5797e8bed885b5436bc1aa25236700930786ff5881298d7dcc1dbbc

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2026.6.1 This release

2 files

2026.4.1

2 files

2026.2.7

2 files

2026.2.6

2 files

2026.2.5

2 files

2026.2.3

2 files

2026.2.2

2 files

2026.2.1

2 files

2026.1.1

2 files

2025.11.1

2 files

2025.10.2

2 files

2025.9.5

2 files

2025.9.4

2 files

2025.9.3

2 files

2025.9.1

2 files

2025.8.4

2 files

2025.8.3

2 files

2025.7.3

2 files

2025.7.2

2 files

2025.7.1

2 files

2025.6.3

2 files

2025.6.1

2 files

2025.5.2

2 files

2025.5.0

2 files

2025.3.0

2 files

3.9.0

2 files

3.8.2

2 files

3.8.0

2 files

3.7.3

2 files

3.7.2

2 files

3.7.1

2 files

3.7.0

2 files

3.6.1

2 files

3.6.0

2 files

3.4.0

2 files

3.3.6

2 files

3.3.5

2 files

3.3.4

2 files

3.3.3

2 files

3.3.1

2 files

3.3.0

2 files

3.2.0

2 files

3.1.6

2 files

3.1.5

2 files

3.1.4

2 files

3.1.3

2 files

3.1.2

2 files

3.1.1

2 files

3.1.0

2 files

3.0.47

2 files

3.0.46

2 files

3.0.45

2 files

3.0.44

2 files

3.0.43

2 files

3.0.42

2 files

3.0.41

2 files

3.0.40

2 files

3.0.36

2 files

3.0.35

2 files

3.0.34

2 files

3.0.33

2 files

3.0.32

2 files

3.0.31

2 files

3.0.30

2 files

3.0.29

2 files

3.0.28

2 files

3.0.27

2 files

3.0.26

2 files

3.0.25

2 files

3.0.24

2 files

3.0.23

2 files

3.0.22

2 files

3.0.21

2 files

3.0.20

2 files

3.0.19

2 files

3.0.18

2 files

3.0.17

2 files

3.0.16

2 files

3.0.14

2 files

3.0.13

2 files

3.0.11

2 files

3.0.10

2 files

3.0.9

2 files

3.0.8

2 files

3.0.7

2 files

3.0.6

2 files

3.0.5

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.3.8

2 files

2.3.7

2 files

2.3.6

2 files

2.3.5

2 files

2.3.4

2 files

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.4

2 files

2.1.3

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.9.6

2 files

1.9.5

2 files

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.1.14

2 files

1.1.12

2 files

1.1.11

2 files

1.1.10

2 files

1.1.2

2 files

1.1.0

2 files

1.0.91

2 files

1.0.9

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page