Skip to main content

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

Project description

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

Note: Installing the package does not include the data file.
The ~400 MB model data will be automatically downloaded from GitHub on first use.
⚠️ If you experience network issues when downloading from GitHub,
you can manually download the data from NADC:
🔗 https://nadc.china-vo.org/res/r101619/


🚀 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[0]:.4f} [mag]")
print(f"Dust: {dust[0]:.4f} [mag/kpc]")
print(f"Sigma: {sigma[0]:.4f} [mag]")
print(f"Max distance: {max_d.iloc[0]:.4f} kpc")

Batch example with FITS:

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

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

    # To enable multi-process parallelization, specify the 'n_process' parameter with the desired number of processes (e.g., n_process=4). If omitted, the function will run in single-threaded mode and does not require wrapping inside a main() function.
    EBV, dust, sigma, max_d = dustmaps3d(l, b, d, n_process=4)

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


# When using multiprocessing, wrap the main routine in this conditional statement to ensure compatibility with Windows operating system.
if __name__ == '__main__':
    main()

🧠 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
n_process int, optional Number of processes for parallel computing

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
  • Supports multiprocessing with n_process argument
  • On a modern personal computer, evaluating 100 million stars takes only ~100 seconds

📂 Data Version

This version uses data_v2.1.parquet, released under v2.1


📜 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.1.6.tar.gz (6.0 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.1.6-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dustmaps3d-2.1.6.tar.gz
Algorithm Hash digest
SHA256 f0945dfc8e99b7cc179758b6684db8c299aa1feeccdff622e6134d247f104df1
MD5 35854a3e4327ca61b16dcf05675578e6
BLAKE2b-256 d5afb1cc17e4f776cdb8635b264ec25c5990651f8798a4195b1c657354a74d49

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dustmaps3d-2.1.6-py3-none-any.whl
  • Upload date:
  • Size: 6.3 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.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 10f59807ecd2e42442f1f96fc221a8e7326278ce182c3298db084d2e5747eafd
MD5 8ef29cfec4cc9c21cda9ab975a4ba5ee
BLAKE2b-256 0ded52cfd72e9d61dfb1e7c8c3b89295dbc7966fab54a3f13938b6af8288099e

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