Skip to main content

Bring colors to Euclid tiles!

Project description

Logo

Bring colors to Euclid tiles!

Azul(ero)* downloads and merges VIS and NIR observations over a MER tile. It detects and inpaints bad pixels (hot and cold pixels, saturated stars...), and combines the 4 channels (I, Y, J, H) into an sRGB image.

*I started this project when Euclid EROs came out...

License

Apache-2.0

Disclaimer

⚠️ This is a beta version! ⚠️

  • The tool is far from perfect and can be frustrating.
  • Error cases are not handled and messages may be cryptic or misleading.
  • Please make sure to read the "How to help?" section below before using this version.

Installation and setup

Install the azulero package with:

pip install azulero

If you wish to access Euclid-internal data, setup the ~/.netrc file for eas-dps-rest-ops.esac.esa.int and euclidsoc.esac.esa.int with your Euclid credentials:

machine eas-dps-rest-ops.esac.esa.int
  login <login>
  password <password>
machine euclidsoc.esac.esa.int
  login <login>
  password <password>

Basic usage

The typical workflow is as follows:

  • 📥 Download the MER-processed FITS file of your tiles with azul retrieve.
  • ✂️ Optionally select the region to be processed with azul crop.
  • 🌟 Blend the channels and inpaint artifacts with azul process.

Usage:

azul [--workspace <workspace>] retrieve [--dsr <dataset_release>] [--from <provider>] <tile_indices>
azul [--workspace <workspace>] crop <tile_index>
azul [--workspace <workspace>] process <tile_slicing>

with:

  • <workspace> - The parent directory to save everything, in which one folder per tile will be created (defaults to the current directory).
  • <dataset_release> - The dataset release of the tiles to be downloaded (defaults to a list of known releases).
  • <provider> - The data archive name.
  • <tile_indices> - The space-separated list of tiles to be downloaded.
  • <tile_index> - A single tile index.
  • <tile_slicing> - A single tile index, optionally followed by a slicing à-la NumPy.

Example

Here is an example output and the commands which produced it below:

processed

Credit: Antoine Basset, CNES/ESA Euclid/Euclid Consortium/NASA/Q1-2025

azul retrieve 102159776 --from sas
azul crop 102159776
azul process 102159776[5500:7500,5000:7000] -w 2000 --nirl 0.1 --jr 0.9 --ib 0.5 -a 0.5 -b -1

I have post-processed the output to my liking:

postprocessed

Credit: Antoine Basset, CNES/ESA Euclid/Euclid Consortium/NASA/Q1-2025

The two thick blue rings 💍 are artifacts of the VIS instrument known as ghosts. To my knowledge, the galaxy in the center has never been resolved this way. Rendering the image allowed me to discover this is a splendid polar-ring 💍 galaxy! The previously unseen golden structure top left may be an Einstein ring 💍 or a collisional ring 💍 -- the question remains open.

As you can see, getting a nice image required a bit of parametrization. This is because we are using the public Q1 data. DR1 data, to be published in 2026, have a much better signal-to-noise ratio, and default parameters give very good results. I already rendered the DR1 version of this field; I cannot share it today, but I can already tell you it is mesmerizing 😏

Advanced usage

One day I'll find some time to write something useful here... 🤔

In the meantime, please read the algorithm description and check help messages:

azul -h
azul retrieve -h
azul crop -h
azul process -h

How to help?

  • Report bugs, request features, tell me what you think of the tool and results...
  • Mention myself (Dr Antoine Basset, CNES) and/or azulero when you publish images processed with this tool.
  • Share with me your images, I'm curious!

Contributors

  • Dr Mischa Schirmer (MPIA): Azul's color blending is freely inspired by that Mischa's script eummy.py.
  • Téo Bouvard (Thales): drafed retrieve.
  • Rollin Gimenez (CNES): Fixed packaging.
  • Kane Nguyen-Kim (IAP): Provided URLs for retrieving public data.

Acknowledgements

  • 🔥 Congratulations to the whole Euclid community; The mosaics are simply unbelievable!
  • 😍 Thank you also for answering my dummy questions on the contents of the images I posted.

Project details


Download files

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

Source Distribution

azulero-0.4.3.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

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

azulero-0.4.3-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file azulero-0.4.3.tar.gz.

File metadata

  • Download URL: azulero-0.4.3.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for azulero-0.4.3.tar.gz
Algorithm Hash digest
SHA256 4306d115b06a85daa8e5dddeb1ebfb15e7f2f0c4be6e9fc360a8ecec72f3bb92
MD5 658bba1df95b308f0cae4e2cfc4b543c
BLAKE2b-256 a7b0f89e811f2b71d325b49605ca7266064277c96f249a2a74b3df998c37cb8d

See more details on using hashes here.

File details

Details for the file azulero-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: azulero-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for azulero-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c0d7d1311cb449b84dd2bcfffd79efec2a4c1165159fd0f18618920b5e2394ba
MD5 cc3c64f41d4022ee05d7dbb5e3074bcb
BLAKE2b-256 22be236e2766a9b8aa0233ce2a94960e8d965f15de5ec8cdc3a41527b268c71e

See more details on using hashes here.

Supported by

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