Skip to main content

An all-sky 3D dust map based on Gaia and LAMOST.

Project description

Read this in: English | 中文

dustmaps3d

🌌 An all-sky 3D dust extinction map based on Gaia and LAMOST

📄 Wang et al. (2025), An all-sky 3D dust map based on Gaia and LAMOST
📌 DOI: 10.12149/101620

📦 A Python package for easy access to the 3D dust map
📌 DOI: 10.12149/101619


📦 Installation

Install via pip:

pip install dustmaps3d

📦 Data File Notice

⚠️ The package does not include the data file. Upon first use, a ~400MB model file will be automatically downloaded from GitHub or the NADC mirror.

🚀 Automatic Download Mechanism

  • When dustmaps3d() is called, the package will attempt to download the file data_v3.fits.gz;
  • After the download, the file will be automatically decompressed into data_v3.fits and cached locally;
  • Subsequent calls will directly load from the cache without re-downloading.

🌐 What If the Download Fails?

If you're outside China, the default download source is GitHub. However, network issues (like connect timeout) may still occur. The package supports fallback to an alternative mirror:

  • Primary source (international users): GitHub Releases
  • 🌀 Backup source (Chinese mirror): NADC (currently under review, coming soon)

If both sources fail, you can manually download the data file.

📥 Manual Download (Recommended for Chinese Users)

  1. Visit the mirror link (coming soon)
  2. Download the file: data_v3.fits.gz
  3. Decompress it into data_v3.fits
  4. Place the file in the local cache directory (the location will be printed the first time you run the package)

Example path on Windows:
C:\Users\<username>\AppData\Local\dustmaps3d\data_v3.fits

Example path on Linux/macOS:
/home/<username>/.local/share/dustmaps3d/data_v3.fits


🚀 Usage

from dustmaps3d import dustmaps3d

l = [120.0]
b = [30.0]
d = [1.5]

EBV, dust, sigma, max_d = dustmaps3d(l, b, d)
print(f"EBV: {EBV.values[0]:.4f} [mag]")
print(f"Dust: {dust.values[0]:.4f} [mag/kpc]")
print(f"Sigma: {sigma.values[0]:.4f} [mag]")
print(f"Max distance: {max_d.values[0]:.4f} kpc")

Batch example with FITS:

import numpy as np
from astropy.table import Table
from dustmaps3d import dustmaps3d

data = Table.read('input.fits')   
l = data['l'].astype(float)
b = data['b'].astype(float)
d = data['d'].astype(float)

EBV, dust, sigma, max_d = dustmaps3d(l, b, d)

data['EBV_3d'] = EBV
data['dust'] = dust
data['sigma'] = sigma
data['max_distance'] = max_d
data.write('output.fits', overwrite=True)

🧠 Function Description

dustmaps3d(l, b, d, n_process=None)

Estimates 3D dust extinction and related quantities for given galactic coordinates and distances.

Input Type Description Unit
l np.ndarray Galactic longitude degrees
b np.ndarray Galactic latitude degrees
d np.ndarray Distance kpc

Returns:

Output Type Description Unit
EBV np.ndarray E(B–V) extinction mag
dust np.ndarray Dust density (d(EBV)/dx) mag/kpc
sigma np.ndarray Estimated uncertainty in E(B–V) mag
max_d np.ndarray Maximum reliable distance kpc

If d contains NaN, it will be automatically replaced by the maximum reliable distance along that line of sight (max_d).

If the input d exceeds max_d, it indicates the point lies beyond the model's reliable range. The returned values in this case are extrapolated and not guaranteed to be accurate.


⚡ Performance

  • Fully vectorized and optimized with NumPy
  • On a modern personal computer, evaluating 100 million stars takes only ~100 seconds

📜 Citation

If you use this model or the Python package, please cite both:

  • Wang, T. (2025), An all-sky 3D dust map based on Gaia and LAMOST. DOI: 10.12149/101620
  • dustmaps3d: A Python package for easy access to the 3D dust map. DOI: 10.12149/101619

🛠️ License

This project is open-source and distributed under the MIT License.


📫 Contact

If you have any questions, suggestions, or encounter issues using this package,
please feel free to contact the authors via GitHub issues or email.

🔗 GitHub Repository

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

dustmaps3d-2.2.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

dustmaps3d-2.2.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file dustmaps3d-2.2.1.tar.gz.

File metadata

  • Download URL: dustmaps3d-2.2.1.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for dustmaps3d-2.2.1.tar.gz
Algorithm Hash digest
SHA256 70e168b14f07dc1d6d594ccdfe09342af8e8023fb4db90ca5e74357e4b8c897e
MD5 88c798edd743d0d8909f816bdb0de75d
BLAKE2b-256 7759298ebd448c73eca7c00437040b205a8a001e247dbf01b272a39c029f68db

See more details on using hashes here.

File details

Details for the file dustmaps3d-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: dustmaps3d-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for dustmaps3d-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3959e5015d1885346a2db776d7bcb17b5bbdc9f57aab6a3d6d8e89a55331bf32
MD5 c5ab0226a6bd4d6a21d6d7682f4e03c7
BLAKE2b-256 7482ea78d5518f013d2590429660214c25365b489dba6e481b74d8074c07d459

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