What happens to your image
OpenAstroMap places astrophotographs on the sky with accurate coordinates. This is what happens to a file along the way — step by step, and the way it runs on this instance.
The path of an image
- 1
Upload
Before the first byte moves, the instance checks your quota — rejecting a file after it arrived would waste your time. A file may be up to 17 GB; from 67 MB on it goes in parts and can be resumed after an interruption instead of starting over.
- 2
Virus scan
ClamAV checks every original before anything opens it. What is recognised as malware is deleted; the image then shows the finding in your library.
- 3
Reading
A content hash recognises a file that is already there. The format is detected from the content, not the extension. Then the headers are read — FITS, XISF, EXIF and XMP — and location data is removed on the way (GPS, observing site), unless you turn that off. What was never stored cannot leak.
- 4
Stretching
Linear data from FITS, XISF or camera raw files is stretched for display — automatically from median and spread, Bayer images demosaiced first, an embedded colour profile respected. Large images are processed in strips so that even 200 megapixels go through. The parameters are stored: the same parameters give the same image, bit for bit.
- 5
Previews
The stretched image becomes a thumbnail, a preview (WebP) and a full-resolution version (JPEG) — without metadata.
- 6
Position on the sky
The position comes from coordinates in the header, from a solution you bring along (.wcs, .ini), or from plate solving: astrometry.net matches the star patterns in the image against a catalogue. What does not work, you place by hand — panoramas too.
- 7
Tiles
The image is projected onto the HEALPix grid and cut into HiPS tiles — the format observatories use to publish their sky surveys. That is how it sits exactly in its place in Aladin Lite, at every zoom level.
- 8
Visibility
Everything is private until you consent — for the community map and for your gallery, separately and revocable at any time, with immediate effect. Public images can be reported; moderation gives a reason for every decision, and you can appeal.
Your original
The original stays unchanged and belongs to you: only you can download it, with all the data it came with. Only the derived versions are shown to others — without metadata.
If something goes wrong along the way, an error report goes to whoever runs this instance — without personal data, not to third parties.
What it runs on
OpenAstroMap is built on free software. The main building blocks, with their licences:
In the browser
- Aladin Lite· GPL-3.0 ·The sky viewer in your browser (CDS, Strasbourg)
Processing
- astrometry.net· BSD-3-Clause ·Plate solving: finds where on the sky an image lies
- astropy· BSD-3-Clause ·Reads FITS headers and world coordinates (WCS)
- NumPy· BSD-3-Clause ·The arithmetic behind stretching, demosaicing and tiling
- libvips· LGPL-2.1+ ·Encodes previews and full resolution
- LibRaw (rawpy)· LGPL-2.1 ·Decodes camera raw files (CR3, NEF, ARW, DNG …)
- ExifTool· GPL-1.0+ ·Reads EXIF and XMP — and removes location data
- ClamAV· GPL-2.0 ·Virus scan of every upload, before anything reads it
Server
- PostgreSQL· PostgreSQL License ·The database — metadata, maps, consents
- FastAPI, Pydantic, SQLAlchemy· MIT ·The API between browser, database and storage
- Celery· BSD-3-Clause ·Runs the processing steps in the background
- Valkey· BSD-3-Clause ·Hands jobs to the workers
- Next.js, React· MIT ·The web interface you are reading
- Nginx· BSD-2-Clause ·Delivers sky tiles and checks access to them
Operation
Star catalogues and sky backgrounds come from observatories and projects that want to be credited — the map credits them; the full list and all licences are here: ATTRIBUTIONS.md · docs/licensing.md
Source code
The source code is open (AGPL-3.0) — for everyone who wants to know exactly: github.com/metronade/OpenAstroMap
This instance runs OpenAstroMap 0.6.0.