{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Advanced GUI\n", "\n", "Demonstration of the GUIs that can be produced by mixing ipyaladin with other widgets." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from ipyaladin import Aladin\n", "import ipywidgets as widgets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "aladin = Aladin(target=\"orion\", fov=2)\n", "\n", "survey_selector = widgets.ToggleButtons(\n", " options=[\"P/DSS2/color\", \"P/2MASS/color\", \"P/DSS2/red\"],\n", " description=\"Image:\",\n", " disabled=False,\n", " tooltips=[\"DSS2 color\", \"2MASS color\", \"DSS2 red\"],\n", ")\n", "\n", "\n", "def on_survey_value_change(change: dict) -> None:\n", " \"\"\"Survey change callback.\n", "\n", " Parameters\n", " ----------\n", " change : dict\n", " The change dictionary.\n", " \"\"\"\n", " aladin.survey = change[\"new\"]\n", "\n", "\n", "survey_selector.observe(on_survey_value_change, names=\"value\")\n", "\n", "\n", "survey_overlay_selector = widgets.ToggleButtons(\n", " options=[\n", " \"P/DSS2/color\",\n", " \"P/2MASS/color\",\n", " \"P/DSS2/red\",\n", " \"P/XMM/PN/color\",\n", " \"P/GLIMPSE360\",\n", " ],\n", " description=\"Overlay:\",\n", " disabled=False,\n", " tooltips=[\n", " \"DSS2 color\",\n", " \"2MASS color\",\n", " \"DSS2 red\",\n", " \"P/XMM/PN/color\",\n", " \"P/GLIMPSE360\",\n", " ],\n", ")\n", "\n", "\n", "def on_survey_overlay_value_change(change: dict) -> None:\n", " \"\"\"Survey overlay change callback.\n", "\n", " Parameters\n", " ----------\n", " change : dict\n", " The change dictionary.\n", " \"\"\"\n", " aladin.overlay_survey = change[\"new\"]\n", " aladin.overlay_survey_opacity = aladin.overlay_survey_opacity + 0.00000001\n", "\n", "\n", "survey_overlay_selector.observe(on_survey_overlay_value_change, names=\"value\")\n", "\n", "opacity_slider = widgets.FloatSlider(\n", " value=0.0,\n", " min=0.0,\n", " max=1.0,\n", " step=0.01,\n", " description=\"Opacity:\",\n", " disabled=False,\n", " continuous_update=True,\n", " orientation=\"horizontal\",\n", " readout=False,\n", " readout_format=\".1f\",\n", ")\n", "\n", "\n", "def on_surveyoverlay_opacity_value_change(change: dict) -> None:\n", " \"\"\"Survey overlay opacity change callback.\n", "\n", " Parameters\n", " ----------\n", " change : dict\n", " The change dictionary.\n", " \"\"\"\n", " aladin.overlay_survey_opacity = change[\"new\"]\n", "\n", "\n", "opacity_slider.observe(on_surveyoverlay_opacity_value_change, names=\"value\")\n", "\n", "\n", "zoom_slider = widgets.FloatSlider(\n", " value=180 / aladin.fov.deg,\n", " min=1,\n", " max=400,\n", " step=1,\n", " description=\"Zoom:\",\n", " disabled=False,\n", " continuous_update=True,\n", " orientation=\"horizontal\",\n", " readout=False,\n", " readout_format=\".1f\",\n", ")\n", "\n", "\n", "def on_zoom_slider_value_change(change: dict) -> None:\n", " \"\"\"Zoom slider change callback.\n", "\n", " Parameters\n", " ----------\n", " change : dict\n", " The change dictionary.\n", " \"\"\"\n", " aladin.fov = 180 / change[\"new\"]\n", "\n", "\n", "zoom_slider.observe(on_zoom_slider_value_change, names=\"value\")\n", "\n", "\n", "widgets.VBox(\n", " [aladin, survey_selector, survey_overlay_selector, opacity_slider, zoom_slider]\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.3" }, "vscode": { "interpreter": { "hash": "85bb43f988bdbdc027a50b6d744a62eda8a76617af1f4f9b115d38242716dbac" } } }, "nbformat": 4, "nbformat_minor": 4 }