Position-Velocity Diagrams from Disks¶
Authors¶
Adam Ginsburg, Eric Koch
Learning Goals¶
- Extract a position-velocity diagram from a spectral cube of a protoplanetary disk using pvextractor
- Extract a position-velocity diagram from a spectral cube of a protoplanetary disk using reproject via spectral-cube using a region mask
Keywords¶
cube, pv-diagram
Summary¶
In this tutorial, we will extract position-velocity (PV) diagrams from a cube of a disk and plot them.
Requirements¶
!pip install --upgrade spectral-cube git+https://github.com/radio-astro-tools/pvextractor.git@61e118aaf28e2d746deeccf06af8fdd7f405b815 radio-beam regions reproject
%pip install -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt
%pip install --pre -U astroquery
Collecting spectral-cube (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 14)) Cloning https://github.com/radio-astro-tools/spectral-cube/ to /tmp/pip-install-68r3afwo/spectral-cube_47c7c3cfc112439b96acad3565e0d647 Running command git clone --filter=blob:none --quiet https://github.com/radio-astro-tools/spectral-cube/ /tmp/pip-install-68r3afwo/spectral-cube_47c7c3cfc112439b96acad3565e0d647
Resolved https://github.com/radio-astro-tools/spectral-cube/ to commit 8ae6705d7e64739cbb08904efc660dbed98874ab
Installing build dependencies ... -
\
|
/
done
Getting requirements to build wheel ... -
done
Preparing metadata (pyproject.toml) ... -
done Collecting radio-beam (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 15)) Cloning https://github.com/radio-astro-tools/radio-beam/ to /tmp/pip-install-68r3afwo/radio-beam_1e8ce13498e44401baaef27115318a70 Running command git clone --filter=blob:none --quiet https://github.com/radio-astro-tools/radio-beam/ /tmp/pip-install-68r3afwo/radio-beam_1e8ce13498e44401baaef27115318a70
Resolved https://github.com/radio-astro-tools/radio-beam/ to commit 325cad35689eb71d9959a9e341281713c991fb1d
Installing build dependencies ... -
\
|
/
done
Getting requirements to build wheel ... -
done
Preparing metadata (pyproject.toml) ... -
done Collecting pvextractor (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 16)) Cloning https://github.com/radio-astro-tools/pvextractor/ to /tmp/pip-install-68r3afwo/pvextractor_1cda2091b95a4a7ebbb2e2134d9a50f3 Running command git clone --filter=blob:none --quiet https://github.com/radio-astro-tools/pvextractor/ /tmp/pip-install-68r3afwo/pvextractor_1cda2091b95a4a7ebbb2e2134d9a50f3
Resolved https://github.com/radio-astro-tools/pvextractor/ to commit d5803d85f262981c30c03282fa4b56e748a40331 Running command git submodule update --init --recursive -q
Installing build dependencies ... -
\
|
/
done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... -
done Requirement already satisfied: requests in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 2)) (2.32.3) Requirement already satisfied: beautifulsoup4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 3)) (4.12.3) Requirement already satisfied: notebook==6.5.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (6.5.2) Requirement already satisfied: numpy in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 7)) (1.26.4) Requirement already satisfied: scipy in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 8)) (1.13.1) Requirement already satisfied: matplotlib==3.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (3.7.0) Requirement already satisfied: astropy in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 10)) (6.1.0) Requirement already satisfied: regions in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 11)) (0.9) Requirement already satisfied: aplpy in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (2.1.0) Requirement already satisfied: astroquery in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (0.4.8.dev9321) Requirement already satisfied: dask-image in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2024.5.3) Requirement already satisfied: casatools in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 19)) (6.6.4.34) Requirement already satisfied: casatasks in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 20)) (6.6.4.34) Requirement already satisfied: dask[complete] in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from -r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (2024.5.2)
Requirement already satisfied: jinja2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (3.1.4) Requirement already satisfied: tornado>=6.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (6.4) Requirement already satisfied: pyzmq>=17 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (26.0.3) Requirement already satisfied: argon2-cffi in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (23.1.0) Requirement already satisfied: traitlets>=4.2.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (5.14.3) Requirement already satisfied: jupyter-core>=4.6.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (5.7.2) Requirement already satisfied: jupyter-client>=5.3.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (8.6.2) Requirement already satisfied: ipython-genutils in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.2.0) Requirement already satisfied: nbformat in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (5.10.4) Requirement already satisfied: nbconvert>=5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (7.16.4) Requirement already satisfied: nest-asyncio>=1.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.6.0) Requirement already satisfied: ipykernel in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (6.29.4) Requirement already satisfied: Send2Trash>=1.8.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.8.3) Requirement already satisfied: terminado>=0.8.3 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.18.1) Requirement already satisfied: prometheus-client in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.20.0) Requirement already satisfied: nbclassic>=0.4.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.1.0) Requirement already satisfied: contourpy>=1.0.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (1.2.1) Requirement already satisfied: cycler>=0.10 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (4.53.0) Requirement already satisfied: kiwisolver>=1.0.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (1.4.5) Requirement already satisfied: packaging>=20.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (24.0) Requirement already satisfied: pillow>=6.2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (10.3.0) Requirement already satisfied: pyparsing>=2.3.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (3.1.2) Requirement already satisfied: python-dateutil>=2.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from matplotlib==3.7->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 9)) (2.9.0.post0) Requirement already satisfied: charset-normalizer<4,>=2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 2)) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 2)) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 2)) (2.2.1) Requirement already satisfied: certifi>=2017.4.17 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 2)) (2024.6.2) Requirement already satisfied: soupsieve>1.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from beautifulsoup4->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 3)) (2.5)
Requirement already satisfied: pyerfa>=2.0.1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 10)) (2.0.1.4) Requirement already satisfied: astropy-iers-data>=0.2024.4.29.0.28.48 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 10)) (0.2024.6.3.0.31.14) Requirement already satisfied: PyYAML>=3.13 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 10)) (6.0.1)
Requirement already satisfied: reproject>=0.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.13.1) Requirement already satisfied: pyregion>=2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (2.2.0) Requirement already satisfied: pyavm>=0.9.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.9.6) Requirement already satisfied: scikit-image>=0.14 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.23.2) Requirement already satisfied: shapely>=1.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (2.0.4) Requirement already satisfied: html5lib>=0.999 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (1.1) Requirement already satisfied: keyring>=15.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (25.2.1) Requirement already satisfied: pyvo>=1.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (1.5.2)
Requirement already satisfied: six in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from spectral-cube->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 14)) (1.16.0) Requirement already satisfied: joblib in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from spectral-cube->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 14)) (1.4.2) Requirement already satisfied: casa-formats-io in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from spectral-cube->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 14)) (0.3.0) Requirement already satisfied: qtpy>=2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from pvextractor->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 16)) (2.4.1)
Requirement already satisfied: click>=8.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (8.1.7) Requirement already satisfied: cloudpickle>=1.5.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (3.0.0) Requirement already satisfied: fsspec>=2021.09.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (2024.6.0) Requirement already satisfied: partd>=1.2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (1.4.2) Requirement already satisfied: toolz>=0.10.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (0.12.1) Requirement already satisfied: importlib-metadata>=4.13.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (7.1.0) Requirement already satisfied: pyarrow>=7.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (16.1.0) Requirement already satisfied: pyarrow-hotfix in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (0.6) Requirement already satisfied: lz4>=4.3.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (4.3.3) Requirement already satisfied: pandas>=2.0.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2.2.2) Requirement already satisfied: pims>=0.4.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (0.6.1) Requirement already satisfied: tifffile>=2018.10.18 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2024.5.22) Requirement already satisfied: casaconfig in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from casatools->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 19)) (1.0.0)
Requirement already satisfied: dask-expr<1.2,>=1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (1.1.2)
Requirement already satisfied: webencodings in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from html5lib>=0.999->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (0.5.1) Requirement already satisfied: zipp>=0.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from importlib-metadata>=4.13.0->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (3.19.1)
Requirement already satisfied: platformdirs>=2.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-core>=4.6.1->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (4.2.2) Requirement already satisfied: jaraco.classes in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (3.4.0) Requirement already satisfied: jaraco.functools in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (4.0.1) Requirement already satisfied: jaraco.context in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (5.3.0) Requirement already satisfied: SecretStorage>=3.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (3.3.3) Requirement already satisfied: jeepney>=0.4.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (0.8.0)
Requirement already satisfied: notebook-shim>=0.2.3 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.2.4)
Requirement already satisfied: bleach!=5.0.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (6.1.0) Requirement already satisfied: defusedxml in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.7.1) Requirement already satisfied: jupyterlab-pygments in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.3.0) Requirement already satisfied: markupsafe>=2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.1.5) Requirement already satisfied: mistune<4,>=2.0.3 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (3.0.2) Requirement already satisfied: nbclient>=0.5.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.10.0) Requirement already satisfied: pandocfilters>=1.4.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.5.1) Requirement already satisfied: pygments>=2.4.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.18.0) Requirement already satisfied: tinycss2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbconvert>=5->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.3.0) Requirement already satisfied: fastjsonschema>=2.15 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.19.1) Requirement already satisfied: jsonschema>=2.6 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (4.22.0)
Requirement already satisfied: pytz>=2020.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from pandas>=2.0.0->dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2024.1) Requirement already satisfied: tzdata>=2022.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from pandas>=2.0.0->dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2024.1) Requirement already satisfied: locket in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from partd>=1.2.0->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (1.0.0)
Requirement already satisfied: imageio in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from pims>=0.4.1->dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (2.34.1) Requirement already satisfied: slicerator>=0.9.8 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from pims>=0.4.1->dask-image->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 18)) (1.1.0)
Requirement already satisfied: astropy-healpix>=0.6 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from reproject>=0.4->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (1.0.3) Requirement already satisfied: zarr in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from reproject>=0.4->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (2.18.2)
Requirement already satisfied: networkx>=2.8 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from scikit-image>=0.14->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (3.3) Requirement already satisfied: lazy-loader>=0.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from scikit-image>=0.14->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.4)
Requirement already satisfied: ptyprocess in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from terminado>=0.8.3->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.7.0)
Requirement already satisfied: argon2-cffi-bindings in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from argon2-cffi->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (21.2.0) Requirement already satisfied: bokeh>=2.4.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (3.4.1) Requirement already satisfied: distributed==2024.5.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (2024.5.2)
Requirement already satisfied: msgpack>=1.0.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from distributed==2024.5.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (1.0.8) Requirement already satisfied: psutil>=5.7.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from distributed==2024.5.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (5.9.8) Requirement already satisfied: sortedcontainers>=2.0.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from distributed==2024.5.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (2.4.0) Requirement already satisfied: tblib>=1.6.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from distributed==2024.5.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (3.0.0) Requirement already satisfied: zict>=3.0.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from distributed==2024.5.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (3.0.0) Requirement already satisfied: comm>=0.1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.2.2) Requirement already satisfied: debugpy>=1.6.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.8.1) Requirement already satisfied: ipython>=7.23.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (8.25.0) Requirement already satisfied: matplotlib-inline>=0.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.1.7)
Requirement already satisfied: xyzservices>=2021.09.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from bokeh>=2.4.2->dask[complete]->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 17)) (2024.4.0)
Requirement already satisfied: decorator in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (5.1.1) Requirement already satisfied: jedi>=0.16 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.19.1) Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (3.0.46) Requirement already satisfied: stack-data in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.6.3) Requirement already satisfied: exceptiongroup in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.2.1) Requirement already satisfied: typing-extensions>=4.6 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (4.12.1) Requirement already satisfied: pexpect>4.3 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (4.9.0)
Requirement already satisfied: attrs>=22.2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (23.2.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2023.12.1) Requirement already satisfied: referencing>=0.28.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.35.1) Requirement already satisfied: rpds-py>=0.7.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.18.1)
Requirement already satisfied: jupyter-server<3,>=1.8 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.14.1)
Requirement already satisfied: cryptography>=2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from SecretStorage>=3.2->keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (42.0.7)
Requirement already satisfied: cffi>=1.0.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.16.0)
Requirement already satisfied: more-itertools in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jaraco.classes->keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (10.2.0)
Requirement already satisfied: backports.tarfile in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jaraco.context->keyring>=15.0->astroquery->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 13)) (1.2.0)
Requirement already satisfied: asciitree in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from zarr->reproject>=0.4->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.3.3) Requirement already satisfied: numcodecs>=0.10.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from zarr->reproject>=0.4->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.12.1) Requirement already satisfied: fasteners in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from zarr->reproject>=0.4->aplpy->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 12)) (0.19) Requirement already satisfied: pycparser in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.22)
Requirement already satisfied: parso<0.9.0,>=0.8.3 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jedi>=0.16->ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.8.4)
Requirement already satisfied: anyio>=3.1.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (4.4.0) Requirement already satisfied: jupyter-events>=0.9.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.10.0) Requirement already satisfied: jupyter-server-terminals>=0.4.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.5.3) Requirement already satisfied: overrides>=5.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (7.7.0) Requirement already satisfied: websocket-client>=1.7 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.8.0)
Requirement already satisfied: wcwidth in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.2.13)
Requirement already satisfied: executing>=1.2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.0.1) Requirement already satisfied: asttokens>=2.1.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.4.1) Requirement already satisfied: pure-eval in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from stack-data->ipython>=7.23.1->ipykernel->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.2.2) Requirement already satisfied: sniffio>=1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from anyio>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.3.1)
Requirement already satisfied: python-json-logger>=2.0.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.0.7) Requirement already satisfied: rfc3339-validator in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.1.4) Requirement already satisfied: rfc3986-validator>=0.1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (0.1.1)
Requirement already satisfied: fqdn in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.5.1) Requirement already satisfied: isoduration in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (20.11.0) Requirement already satisfied: jsonpointer>1.13 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.4) Requirement already satisfied: uri-template in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.3.0) Requirement already satisfied: webcolors>=1.11 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.13)
Requirement already satisfied: arrow>=0.15.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (1.3.0)
Requirement already satisfied: types-python-dateutil>=2.8.10 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.9.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook==6.5.2->-r https://github.com/radio-astro-tools/tutorials/raw/master/requirements.txt (line 5)) (2.9.0.20240316)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: astroquery in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (0.4.8.dev9321)
Requirement already satisfied: numpy>=1.20 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (1.26.4) Requirement already satisfied: astropy>=5.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (6.1.0) Requirement already satisfied: requests>=2.19 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (2.32.3) Requirement already satisfied: beautifulsoup4>=4.8 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (4.12.3) Requirement already satisfied: html5lib>=0.999 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (1.1) Requirement already satisfied: keyring>=15.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (25.2.1) Requirement already satisfied: pyvo>=1.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astroquery) (1.5.2) Requirement already satisfied: pyerfa>=2.0.1.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy>=5.0->astroquery) (2.0.1.4) Requirement already satisfied: astropy-iers-data>=0.2024.4.29.0.28.48 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy>=5.0->astroquery) (0.2024.6.3.0.31.14) Requirement already satisfied: PyYAML>=3.13 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy>=5.0->astroquery) (6.0.1) Requirement already satisfied: packaging>=19.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from astropy>=5.0->astroquery) (24.0)
Requirement already satisfied: soupsieve>1.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from beautifulsoup4>=4.8->astroquery) (2.5) Requirement already satisfied: six>=1.9 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from html5lib>=0.999->astroquery) (1.16.0) Requirement already satisfied: webencodings in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from html5lib>=0.999->astroquery) (0.5.1) Requirement already satisfied: jaraco.classes in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (3.4.0) Requirement already satisfied: jaraco.functools in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (4.0.1) Requirement already satisfied: jaraco.context in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (5.3.0) Requirement already satisfied: importlib-metadata>=4.11.4 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (7.1.0) Requirement already satisfied: SecretStorage>=3.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (3.3.3) Requirement already satisfied: jeepney>=0.4.2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from keyring>=15.0->astroquery) (0.8.0) Requirement already satisfied: charset-normalizer<4,>=2 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests>=2.19->astroquery) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests>=2.19->astroquery) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests>=2.19->astroquery) (2.2.1) Requirement already satisfied: certifi>=2017.4.17 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from requests>=2.19->astroquery) (2024.6.2)
Requirement already satisfied: zipp>=0.5 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from importlib-metadata>=4.11.4->keyring>=15.0->astroquery) (3.19.1) Requirement already satisfied: cryptography>=2.0 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from SecretStorage>=3.2->keyring>=15.0->astroquery) (42.0.7)
Requirement already satisfied: more-itertools in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jaraco.classes->keyring>=15.0->astroquery) (10.2.0) Requirement already satisfied: backports.tarfile in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from jaraco.context->keyring>=15.0->astroquery) (1.2.0)
Requirement already satisfied: cffi>=1.12 in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from cryptography>=2.0->SecretStorage>=3.2->keyring>=15.0->astroquery) (1.16.0) Requirement already satisfied: pycparser in /opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=2.0->SecretStorage>=3.2->keyring>=15.0->astroquery) (2.22)
Note: you may need to restart the kernel to use updated packages.
import numpy as np
from astropy.utils.data import download_file
from spectral_cube import SpectralCube
from astropy import wcs
import os
import pylab as pl
# set so that these display properly on black backgrounds
pl.rcParams['figure.facecolor']='w'
import radio_beam
from astropy import units as u
We download a 2GB cube from the MAPS survey:
filename = 'HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits'
if not os.path.exists(filename):
try:
filename = download_file('ftp://ftp.cv.nrao.edu/NRAO-staff/rloomis/MAPS/HD_163296/images/CO/0.15arcsec/HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits', cache=True, timeout=10)
except:
import ftplib
ftp = ftplib.FTP('ftp.cv.nrao.edu')
ftp.login()
ftp.cwd('NRAO-staff/rloomis/MAPS/HD_163296/images/CO/0.15arcsec')
with open('HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits', 'wb') as fp:
ftp.retrbinary('RETR HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits', fp.write)
ftp.quit()
# import ftplib
# ftp = ftplib.FTP('ftp.cv.nrao.edu')
# ftp.login()
# ftp.cwd('NRAO-staff/rloomis/MAPS/HD_163296/images/CO/0.15arcsec')
# with open('HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits', 'wb') as fp:
# ftp.retrbinary('RETR HD_163296_CO_220GHz.0.15arcsec.JvMcorr.image.pbcor.fits', fp.write)
# ftp.quit()
We load the cube using the dask
backend, which allows for some parallelization:
cube = SpectralCube.read(filename, use_dask=True)
cube
DaskSpectralCube with shape=(127, 2048, 2048) and unit=Jy / beam and chunk size (127, 514, 514): n_x: 2048 type_x: RA---SIN unit_x: deg range: 269.082528 deg: 269.094790 deg n_y: 2048 type_y: DEC--SIN unit_y: deg range: -21.961977 deg: -21.950605 deg n_s: 127 type_s: FREQ unit_s: Hz range: 230523958206.200 Hz:230543336804.442 Hz
mx = cube.max(axis=0)
A quick look at the image cube shows that there is a disk rotated about 45 degrees in the center of the frame:
pl.imshow(mx.value, origin='lower')
<matplotlib.image.AxesImage at 0x7f3e9ce5b310>
We can draw an ellipse around the disk to downselect only it:
import regions
center = regions.PixCoord(1024, 1024)
ellipse = regions.EllipsePixelRegion(center, width=550, height=400, angle=45*u.deg)
ax = pl.gca()
ax.imshow(mx.value, origin='lower')
ellipse.plot(ax=ax, facecolor='none', edgecolor='red', lw=2)
<matplotlib.patches.Ellipse at 0x7f3deb9382b0>
We make a cutout by creating a subcube using the ellipse region as a mask:
cutout = cube.subcube_from_regions([ellipse])
cutout
DaskSpectralCube with shape=(127, 481, 481) and unit=Jy / beam and chunk size (127, 244, 244): n_x: 481 type_x: RA---SIN unit_x: deg range: 269.087219 deg: 269.090094 deg n_y: 481 type_y: DEC--SIN unit_y: deg range: -21.957622 deg: -21.954955 deg n_s: 127 type_s: FREQ unit_s: Hz range: 230523958206.200 Hz:230543336804.442 Hz
Then we want to extract a position-velocity diagram across the disk.
We specify a width of 200 pixels (we could go to ~400) so we average across the short axis of the disk:
import pvextractor
path = pvextractor.Path([(0,0), (481,481)], width=200)
We show the path overlaid on our cutout disk:
ax = pl.subplot(111, projection=cutout.wcs.celestial)
ax.imshow(cutout.max(axis=0).value, origin='lower')
path.show_on_axis(ax, spacing=5, alpha=0.7, linewidth=0.25)
<matplotlib.collections.PatchCollection at 0x7f3deb9ec0d0>
Then, we extract the PV diagram. We choose spacing=5 to average over 5 pixels. This averaging isn't necessary, but does make the operation a little faster and increases the signal-to-noise ratio per spatial bin.
pv = pvextractor.extract_pv_slice(cutout.with_spectral_unit(u.km/u.s, velocity_convention='radio'), path, spacing=5)
And plot the resulting diagram:
ax = pl.subplot(111, projection=wcs.WCS(pv.header))
im = ax.imshow(pv.data)
cb = pl.colorbar(mappable=im)
cb.set_label("Brightness Temperature [K]")
ax.set_aspect(1)
Second approach¶
We can also reproject the whole cube by rotating 45 degrees.
This requires making our own new header, which is a bit tedious, but effective.
header = cutout.wcs.to_header()
header['NAXIS'] = 3
header['NAXIS1'] = 600
header['NAXIS2'] = 400
header['NAXIS3'] = cutout.shape[0]
angle = 45*u.deg
header['CD1_1'] = np.cos(angle).value * np.abs(cube.wcs.wcs.cdelt[0])
header['CD2_1'] = -np.sin(angle).value * np.abs(cube.wcs.wcs.cdelt[0])
header['CD1_2'] = np.sin(angle).value * np.abs(cube.wcs.wcs.cdelt[1])
header['CD2_2'] = np.cos(angle).value * np.abs(cube.wcs.wcs.cdelt[1])
header['CD3_3'] = cube.wcs.wcs.cdelt[2]
header['CRPIX1'] = 300
header['CRPIX2'] = 200
We then reproject the whole cube, which takes a minute or two:
reproj = cutout.reproject(header)
WARNING: PossiblySlowWarning: This function (<function BaseSpectralCube.reproject at 0x7f3e71029090>) requires loading the entire cube into memory and may therefore be slow. [spectral_cube.utils]
reproj
DaskSpectralCube with shape=(127, 400, 600) and unit=Jy / beam and chunk size (127, 363, 363): n_x: 600 type_x: RA---SIN unit_x: deg range: 269.086547 deg: 269.090774 deg n_y: 400 type_y: DEC--SIN unit_y: deg range: -21.958249 deg: -21.954328 deg n_s: 127 type_s: FREQ unit_s: Hz range: 230523958206.200 Hz:230543336804.442 Hz
rmax = reproj.max(axis=0)
rmax.quicklook()
Then, the position-velocity diagram is easy: we just take the average along the short axis:
pv2 = reproj.with_spectral_unit(u.km/u.s, velocity_convention='radio').mean(axis=1)
WARNING: WCSWarning: Slicing across a celestial axis results in an invalid WCS, so the celestial projection (SIN) is being removed. The WCS indices being kept were [0 2]. [spectral_cube.wcs_utils]
ax = pl.subplot(111, projection=wcs.WCS(pv2.header))
im = ax.imshow(pv2.data)
cb = pl.colorbar(mappable=im)
cb.set_label("Brightness Temperature [K]")
ax.set_aspect(4)