diff --git a/content/04-adass2024-ipyaladin-demo.ipynb b/content/04-adass2024-ipyaladin-demo.ipynb new file mode 100644 index 0000000..7535fbf --- /dev/null +++ b/content/04-adass2024-ipyaladin-demo.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first cells here are required to make the notebooks work without any installation in a browser. A normal notebook running on your personal machine would start later." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install ipyaladin\n", + "%pip install sidecar" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import micropip\n", + "from pathlib import Path\n", + "# cdshealpix and mocpy install\n", + "whl_paths = list(Path.cwd().glob(pattern=\"pyodide/wheels/*\"))\n", + "await micropip.install(\"emfs:\" + str(path) for path in whl_paths)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the true beginning of the story\n", + "\n", + "# ADASS 2024 - ipyaladin demonstration" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ipyaladin import Aladin\n", + "from sidecar import Sidecar" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin = Aladin()\n", + "with Sidecar(title=\"aladin_output\"):\n", + " display(aladin)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.target = \"M1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from astropy.coordinates import SkyCoord" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "coo_perseus = SkyCoord.from_name(\"Perseus Cluster\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.target = coo_perseus" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import astropy.units as u\n", + "from astropy.coordinates import Angle" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.fov = Angle(25 * u.arcmin)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "estimated_dimension = aladin.fov\n", + "estimated_dimension" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from regions import CircleSkyRegion" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.add_graphic_overlay_from_region(\n", + " CircleSkyRegion(coo_perseus, estimated_dimension),\n", + " color=\"salmon\", line_dash=[5], \n", + " name=\"cluster_dimension\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.add_fits(\"chandra.fits\", name=\"chandra\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from mocpy import MOC" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gaia_galcan_coverage = MOC.from_vizier_table(\"I/356/galcand\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.add_moc(gaia_galcan_coverage, \n", + " color=\"seagreen\",\n", + " name=\"gaia_galcan\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from astroquery.mocserver import MOCServer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "MOCServer.find_datasets(meta_data=\"*Euclid*\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.survey = \"CDS/P/Euclid/ERO/FirstImages\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "euclid_cutout = aladin.get_view_as_fits()[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(np.flipud(np.moveaxis(euclid_cutout.data, 0, -1)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.wcs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from astroquery.vizier import Vizier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "extra_galactic = Vizier(catalog=\"I/356/galcand\", \n", + " row_limit=-1).query_region(coo_perseus, radius=estimated_dimension)[0]\n", + "extra_galactic" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.add_table(\n", + " extra_galactic[extra_galactic[\"Class\"] \n", + " == \"GALAXY\"], \n", + " shape=\"circle\",\n", + " source_size=15, \n", + " color=\"lightblue\", \n", + " name=\"galaxies\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.add_table(\n", + " extra_galactic[extra_galactic[\"Class\"] \n", + " != \"GALAXY\"], \n", + " shape=\"circle\",\n", + " source_size=15, \n", + " color=\"pink\", \n", + " name=\"galaxies\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.selected_objects[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aladin.selected_objects[1]" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}