{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###### ***Note: This notebook is featured in an [instructional video](https://youtu.be/cL9Hd7cKnNU) on visualizing time series data in `pywwt`. Follow the link to see its creation in action!***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing Time Series Data with `pywwt`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import dependencies." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from astropy.coordinates import SkyCoord\n", "from astropy.table import Table\n", "from astropy.time import Time, TimeDelta\n", "from astropy import units as u\n", "from datetime import datetime\n", "from pywwt.jupyter import WWTJupyterWidget" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieve a catalog of gamma ray bursts." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bursts = Table.read('../data/grb_table_lite.ecsv', format='ascii.ecsv')\n", "bursts # print out out to get a sense of what the data are like" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Adjust the date formatting to match what WWT accepts:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bursts['dates_JD'] = Time(bursts['dates_JD'], format='jd').isot\n", "bursts.rename_column('dates_JD', 'dates_ISO')\n", "bursts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Upload the table to `pywwt`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wwt = WWTJupyterWidget()\n", "wwt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*If you're using JupyterLab* and not just a plain Jupyter notebook, you can move the WWT view to a separate window pane. This is **extremely** useful since it lets you keep on typing code without scrolling WWT out of view. Here's how you do that:\n", "\n", "![Right click and select \"Create New View for Output\"](../data/separate-pane-instructions.jpg)\n", "\n", "If you don't get a menu when you right-click, or the menu doesn't look like the one pictured, you are using a plain Jupyter notebook and will have to scroll back and forth." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lay = wwt.layers.add_table_layer(table=bursts, frame='Sky',\n", " lon_att='ra', lat_att='dec')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lay.size_scale *= 20" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lay.time_series = True\n", "lay.time_att = 'dates_ISO'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "lay.time_decay = 1 * u.yr\n", "wwt.get_current_time()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Manipulate time and watch the gamma ray bursts appear." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "grb1 = bursts[0]\n", "wwt.center_on_coordinates(SkyCoord(grb1['ra'], grb1['dec'],\n", " unit=u.deg))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wwt.set_current_time( (Time(grb1['dates_ISO'], format='isot')\n", " - TimeDelta(3 * u.second)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wwt.get_current_time()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wwt.play_time(rate=3e6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can find out more about adding layers [in our documentation](https://pywwt.readthedocs.io/en/stable/layers.html) and contact us with any comments or questions at the [WorldWide Telescope Forum](https://wwt-forum.org/) or by opening an issue or pull request at [`pywwt`'s main GitHub repository](https://github.com/WorldWideTelescope/pywwt). Thank you for trying out this example notebook on visualizing time series data in `pywwt`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Credits\n", "\n", "This notebook was prepared by O. Justin Otor." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }