{ "cells": [ { "cell_type": "markdown", "id": "fa35cceea9f5339f", "metadata": {}, "source": [ "# Identifying and acquiring relevant X-ray observations" ] }, { "cell_type": "markdown", "id": "f64edf29", "metadata": {}, "source": [ "This tutorial will explain the basic concepts and components of the X-ray astronomy Python module 'Democratising Archival X-ray Astronomy' (DAXA). We will particularly focus on the various 'mission' classes (implemented for each of the X-ray telescopes that DAXA supports), and the functionality that allows for large numbers of observations to be selected and downloaded.\n", "\n", "DAXA mission classes allow the user to interact with and search various X-ray telescope archives, all through an identical interface, within a single module, and through Python commands. It should be simple for anyone with a passing familiarity with Python to identify and acquire X-ray data relevant to their research." ] }, { "cell_type": "markdown", "id": "405be864", "metadata": {}, "source": [ "## Import Statements" ] }, { "cell_type": "code", "execution_count": 1, "id": "7bbdf260", "metadata": {}, "outputs": [], "source": [ "from daxa.mission import MISS_INDEX, XMMPointed, Chandra, eRASS1DE, eROSITACalPV, NuSTARPointed, Swift, \\\n", " ROSATAllSky, ROSATPointed, ASCA, INTEGRALPointed, Suzaku\n", "\n", "from datetime import date\n", "import numpy as np\n", "from astropy.units import Quantity" ] }, { "cell_type": "markdown", "id": "49a0a5b2", "metadata": {}, "source": [ "## What missions are available?" ] }, { "cell_type": "markdown", "id": "539b359b", "metadata": {}, "source": [ "We have implemented support for access and searching the archives of many X-ray telescopes; we would also be willing to provide an interface to the data archives of other X-ray telescopes, if feasible - please feel free to reach out using the support page if you think there is one we should add.\n", "\n", "Some telescopes (such as the ROSATPointed/ROSATAllSky and eROSITACalPV/eRASS1DE classes) are not uniquely represented by a single DAXA mission - this is generally the case when the telescope in question has been used in distinctly different ways (e.g. ROSAT had a survey phase and a pointed phase), such that the data for one mode may not be relevant to all applications." ] }, { "cell_type": "code", "execution_count": 2, "id": "cf321585", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'xmm_pointed': daxa.mission.xmm.XMMPointed,\n", " 'nustar_pointed': daxa.mission.nustar.NuSTARPointed,\n", " 'erosita_calpv': daxa.mission.erosita.eROSITACalPV,\n", " 'erosita_all_sky_de_dr1': daxa.mission.erosita.eRASS1DE,\n", " 'chandra': daxa.mission.chandra.Chandra,\n", " 'rosat_all_sky': daxa.mission.rosat.ROSATAllSky,\n", " 'rosat_pointed': daxa.mission.rosat.ROSATPointed,\n", " 'swift': daxa.mission.swift.Swift,\n", " 'suzaku': daxa.mission.suzaku.Suzaku,\n", " 'asca': daxa.mission.asca.ASCA,\n", " 'integral_pointed': daxa.mission.integral.INTEGRALPointed}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "MISS_INDEX" ] }, { "cell_type": "markdown", "id": "f76aa35c", "metadata": {}, "source": [ "### XMM-Pointed" ] }, { "cell_type": "markdown", "id": "fdf6ccb4", "metadata": {}, "source": [ "This class is for acquiring XMM-Newton data, particularly that taken when the telescope is pointing at specific targets; i.e. it cannot be used to filter and download data taken when the telescope is slewing from one target to the next. XMM is still in use, so the number of observations that are available are constantly increasing - this also means that some data are still in a proprietary period, and DAXA will not be able to access them. **Note that only raw, unprocessed, data can currently be downloaded for XMM using DAXA.**\n", "\n", "The three EPIC instruments are supported (PN, MOS1, and MOS2), as well as the two grating spectrometers (RGS1 and RGS2). We also support the acquisition of XMM optical monitor (OM) data, but support for processing it is more limited.\n", "\n", "\n", "Values that can be passed to the `insts` argument of XMMPointed on declaration (either as single strings or as part of a list):\n", "\n", "* PN\n", "* MOS1\n", "* MOS2\n", "* RGS1\n", "* RGS2\n", "* OM" ] }, { "cell_type": "code", "execution_count": 3, "id": "b925a55d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/xmm.py:83: UserWarning: 140 of the 17701 observations located for this mission have been removed due to NaN RA or Dec values\n", " self._fetch_obs_info()\n" ] } ], "source": [ "xm = XMMPointed()" ] }, { "cell_type": "markdown", "id": "eec13300", "metadata": {}, "source": [ "### Chandra" ] }, { "cell_type": "markdown", "id": "bee904af", "metadata": {}, "source": [ "The class for acquiring Chandra data, specifically taken when pointing at a target - Chandra does not have easily accessible 'slew' data, and this class does not consider it at all.\n", "\n", "Data from all instruments can be downloaded by DAXA - though unlike XMM there are not data being taken simultaneously, so each ObsID is generally only associated with one instrument. Note though that the gratings (HETG and LETG) are used _with_ another instrument, so cannot be passed by themselves.\n", "\n", "**Note that the standard format of Chandra data can be downloaded using DAXA, allowing for the use of the standard Chandra re-processing scripts. This standard download includes pre-made images.**\n", "\n", "Values that can be passed to the `insts` argument of Chandra (either as single string or as part of a list):\n", "\n", "* ACIS-I\n", "* ACIS-S\n", "* HRC-I\n", "* HRC-S\n", "* LETG [an instrument that this grating was used with must be specified]\n", "* HETG [an instrument that this grating was used with must be specified]" ] }, { "cell_type": "code", "execution_count": 4, "id": "a7a9725c", "metadata": {}, "outputs": [], "source": [ "ch = Chandra()" ] }, { "cell_type": "markdown", "id": "c04cba03", "metadata": {}, "source": [ "### eROSITA All-Sky DR1 (German Half)" ] }, { "cell_type": "markdown", "id": "2a8fc8a6", "metadata": {}, "source": [ "The class for acquiring data from the first data release by the German part of the eROSITA consortium - this covers half the sky to 1/8th the planned final survey depth of eROSITA. All of this data is taken in survey mode, where the telescope is constantly slewing. **Note that the data downloads can include pre-generated images and exposure maps.**\n", "\n", "The eROSITA telescope is made up of 7 telescope modules that observe simultaneously, and which can be individually selected on declaration with the `insts` argument - ***it is not recommended to use DAXA to limit the telescope modules being considered, as we crudely modify the event lists to remove events from non-selected telescope modules***.\n", "\n", "Values that can be passed to the `insts` argument of eRASS1DE (either as a single string or as part of a list):\n", "\n", "* TM1\n", "* TM2\n", "* TM3\n", "* TM4\n", "* TM5\n", "* TM6\n", "* TM7" ] }, { "cell_type": "code", "execution_count": 5, "id": "8c7e7083", "metadata": {}, "outputs": [], "source": [ "ea = eRASS1DE()" ] }, { "cell_type": "markdown", "id": "0089cc1c", "metadata": {}, "source": [ "### eROSITA Calibration and Performance Verification" ] }, { "cell_type": "markdown", "id": "c0f721ae", "metadata": {}, "source": [ "This class provides DAXA access to the data from the calibration and performance verification stages of the eROSITA mission, including all pointed observations and survey regions (such as the eROSITA Final Equatorial-Depth Survey; eFEDS). **Note that _only_ event list data can be downloaded for this class.**\n", "\n", "The eROSITA telescope is made up of 7 telescope modules that observe simultaneously, and which can be individually selected on declaration with the `insts` argument - ***it is not recommended to use DAXA to limit the telescope modules being considered, as we crudely modify the event lists to remove events from non-selected telescope modules***.\n", "\n", "Values that can be passed to the `insts` argument of eROSITACalPV (either as a single string or as part of a list):\n", "\n", "* TM1\n", "* TM2\n", "* TM3\n", "* TM4\n", "* TM5\n", "* TM6\n", "* TM7" ] }, { "cell_type": "code", "execution_count": 6, "id": "913152cd", "metadata": {}, "outputs": [], "source": [ "ecpv = eROSITACalPV()" ] }, { "cell_type": "markdown", "id": "5719c62a", "metadata": {}, "source": [ "### NuSTAR-Pointed" ] }, { "cell_type": "markdown", "id": "15150a32", "metadata": {}, "source": [ "This class is for acquiring NuSTAR data, particularly that taken when the telescope is pointing at specific targets; i.e. it cannot be used to filter and download data taken when the telescope is slewing from one target to the next. NuSTAR is still in use, so the number of observations that are available are constantly increasing - this also means that some data are still in a proprietary period, and DAXA will not be able to access them. **Note that data downloads can optionally include pre-generated images**\n", "\n", "NuSTAR has two instruments that observe simultaneously, and are essentially identical, Focal Plane Module A & B.\n", "\n", "Values that can be passed to the `insts` argument of NuSTARPointed on declaration (either as single strings or as part of a list):\n", "\n", "* FPMA\n", "* FPMB" ] }, { "cell_type": "code", "execution_count": 7, "id": "bf746442", "metadata": {}, "outputs": [], "source": [ "nu = NuSTARPointed()" ] }, { "cell_type": "markdown", "id": "0378739f", "metadata": {}, "source": [ "### Swift" ] }, { "cell_type": "markdown", "id": "2f0d2b65", "metadata": {}, "source": [ "This class is for acquiring Swift data. Swift is still in use, so the number of observations that are available are constantly increasing. Also, due to the Swift's primary mission of rapid transient follow-up, and how observations are split up, the table of available observations is unusually large (only INTEGRAL is comparable) - **as such this class may take several minutes to declare, depending on your internet connection**.\n", "\n", "Swift has three instruments that generally observe simultaneously; the X-ray Telescope (XRT), the Burst Alert Telescope (BAT) which is has poor spatial resolution but has a large field of view and is sensitive to very high energy photons, and the Ultraviolet and Optical Telescope (UVOT). **Note that data downloads can optionally include pre-generated images, but not for BAT observations.**\n", "\n", "Values that can be passed to the `insts` argument of Swift on declaration (either as single strings or as part of a list); the XRT and BAT instruments are selected by default:\n", "\n", "* XRT\n", "* BAT\n", "* UVOT" ] }, { "cell_type": "code", "execution_count": 8, "id": "5c14a3e8", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/swift.py:122: UserWarning: 599 of the 354020 observations located for Swift have been removed due to all instrument exposures being zero.\n", " self._fetch_obs_info()\n", "/Users/dt237/code/DAXA/daxa/mission/swift.py:122: UserWarning: 17 of the 354020 observations located for Swift have been removed due to all chosen instrument (XRT, BAT) exposures being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "sw = Swift()" ] }, { "cell_type": "markdown", "id": "a08e3d23", "metadata": {}, "source": [ "### ROSAT All-Sky Survey" ] }, { "cell_type": "markdown", "id": "3265faf0", "metadata": {}, "source": [ "This class provides access to data taken by ROSAT during its all-sky survey. Though ROSAT had multiple instruments, this was all taken with the position-sensitive proportional counters (PSPC) - specifically with the 'PSPC-C' instrument (ROSAT had two PSPC instruments). The initial all-sky survey was abandoned after an accidental pass over the sun destroyed PSPC-C, but follow-up observations with PSPC-B were taken towards the end of ROSAT's lifetime to complete the survey (**these are not included in this class**).\n", "\n", "**Note: Data acquired through this class will include just event lists by default, but can also include pre-generated images and exposure maps.**" ] }, { "cell_type": "code", "execution_count": 9, "id": "be5cca74", "metadata": {}, "outputs": [], "source": [ "ra = ROSATAllSky()" ] }, { "cell_type": "markdown", "id": "38daf9d1", "metadata": {}, "source": [ "### ROSAT-Pointed" ] }, { "cell_type": "markdown", "id": "e8cc636f", "metadata": {}, "source": [ "This class provides access to data taken by ROSAT during the pointed phase of its lifetime (including follow-up observations used to complete the all-sky survey). ROSAT instruments could not observe simultaneously, so each separate observation uses a single instrument. **Note: Data acquired through this class will include just event lists by default, but can also include pre-generated images (PSPC & HRI) and exposure maps (just PSPC).**\n", "\n", "Values that can be passed to the `insts` argument of ROSATPointed on declaration (either as single strings or as part of a list):\n", "\n", "* PSPCB\n", "* PSPCC\n", "* HRI" ] }, { "cell_type": "code", "execution_count": 10, "id": "bbf56b58", "metadata": {}, "outputs": [], "source": [ "rp = ROSATPointed()" ] }, { "cell_type": "markdown", "id": "4dc94f5c", "metadata": {}, "source": [ "### Suzaku" ] }, { "cell_type": "markdown", "id": "224808fe", "metadata": {}, "source": [ "This class provides access to data taken by the Suzaku X-ray telescope during pointed observations (data taken while slewing are not included in the public archive). **Note: Data acquired through this class will include just event lists by default, but can also include pre-generated images.**\n", "\n", "We provide access to XIS data, but not XRS (as the cooling system was damaged soon after launch) or HXD (as it was not an imaging instrument).\n", "\n", "Values that can be passed to the `insts` argument of Suzaku on declaration (either as single strings or as part of a list):\n", "\n", "* XIS0\n", "* XIS1\n", "* XIS2\n", "* XIS3" ] }, { "cell_type": "code", "execution_count": 11, "id": "391573de", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/suzaku.py:109: UserWarning: 14 of the 3055 observations located for Suzaku have been removed due to all instrument exposures being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "su = Suzaku()" ] }, { "cell_type": "markdown", "id": "ffc8a32f", "metadata": {}, "source": [ "### ASCA" ] }, { "cell_type": "markdown", "id": "9ac9695b", "metadata": {}, "source": [ "This class provides access to data taken by the ASCA X-ray telescope during pointed observations (we cannot find anywhere to access the data taken whilst slewing). **Note: Data acquired through this class will include just event lists by default, but can also include pre-generated images, spectra, and lightcurves.**\n", "\n", "\n", "Values that can be passed to the `insts` argument of ASCA on declaration (either as single strings or as part of a list):\n", "\n", "* SIS0\n", "* SIS1\n", "* GIS2\n", "* GIS3" ] }, { "cell_type": "code", "execution_count": 12, "id": "739d0dd4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/asca.py:125: UserWarning: 5 of the 3079 observations located for ASCA have been removed due to all instrument exposures being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "asca = ASCA()" ] }, { "cell_type": "markdown", "id": "fc5010cd", "metadata": {}, "source": [ "### INTEGRAL-Pointed" ] }, { "cell_type": "markdown", "id": "aa4e6477", "metadata": {}, "source": [ "This class is for acquiring INTEGRAL data. INTEGRAL is still in use, so the number of observations that are available are still increasing (_though operations will see around the end of 2024_). The table of available observations is unusually large (only Swift is comparable) - **as such this class may take several minutes to declare, depending on your internet connection**.\n", "\n", "INTEGRAl has a selection of instruments that cover different parts of the X-ray and Gamma-ray energy range - most of them are based on the 'coded mask' technology, and so have very limited spatial resolution. **Note that only raw data/calibration files can be downloaded through DAXA, there are no pre-processed images available**.\n", "\n", "Values that can be passed to the `insts` argument of INTEGRALPointed on declaration (either as single strings or as part of a list):\n", "\n", "* JEMX1\n", "* JEMX2\n", "* ISGRI\n", "* PICsIT\n", "* SPI" ] }, { "cell_type": "code", "execution_count": 13, "id": "4fe3792f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/integral.py:110: UserWarning: 241 of the 205930 observations located for INTEGRAL have been removed due to all instrument exposures being zero.\n", " self._fetch_obs_info()\n", "/Users/dt237/code/DAXA/daxa/mission/integral.py:110: UserWarning: 7403 of the 205930 observations located for INTEGRAL have been removed due to all chosen instrument (JEMX1, JEMX2, ISGRI) exposures being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "inte = INTEGRALPointed()" ] }, { "cell_type": "markdown", "id": "de20de1e", "metadata": {}, "source": [ "## Mission properties" ] }, { "cell_type": "markdown", "id": "3d2ed064", "metadata": {}, "source": [ "Here we run through the basic properties that each of the DAXA mission classes share. We also show examples, particularly in cases where differences between telescopes result in us assigning different values for particular properties." ] }, { "cell_type": "markdown", "id": "92db12d1", "metadata": {}, "source": [ "### Name" ] }, { "cell_type": "markdown", "id": "0fc6ff1d", "metadata": {}, "source": [ "The name assigned to each mission class, so that they can be differentiated both by the user and by DAXA functions. Each mission class has two names, the 'internal DAXA name' (used by DAXA to identify missions) and the 'pretty name', which is typically in a more aethsetically pleasing format.\n", "\n", "For instance, we show the 'name' and 'pretty name' of the XMMPointed and eROSITA All-Sky Survey 1 classes:" ] }, { "cell_type": "code", "execution_count": 14, "id": "8311e438", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xmm_pointed\n", "XMM-Newton Pointed \n", "\n", "erosita_all_sky_de_dr1\n", "eRASS DE:1\n" ] } ], "source": [ "print(xm.name)\n", "print(xm.pretty_name, '\\n')\n", "\n", "print(ea.name)\n", "print(ea.pretty_name)" ] }, { "cell_type": "markdown", "id": "d113a40f", "metadata": {}, "source": [ "### All Instruments & Chosen Instruments" ] }, { "cell_type": "markdown", "id": "c7432d30", "metadata": {}, "source": [ "Most telescopes have multiple instruments, though not all are necessarily selected by default. This can be for a number of reasons, but is generally because they either aren't suited to archival/serindipitious science (which is the primary reason this module exists) or because they aren't X-ray telescopes (like the optical monitors on XMM and Swift). \n", "\n", "The instruments whose data is to be acquired are generally specified when the mission class is declared (using the `insts` argument), but can also be set through the `chosen_instruments` property.\n", "\n", "Every available instrument for a mission is stored in the `all_mission_instruments` property:" ] }, { "cell_type": "code", "execution_count": 15, "id": "7af6f2f0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['PSPCB', 'PSPCC', 'HRI']\n", "['ACIS-I', 'ACIS-S', 'HRC-I', 'HRC-S', 'HETG', 'LETG']\n" ] } ], "source": [ "print(rp.all_mission_instruments)\n", "print(ch.all_mission_instruments)" ] }, { "cell_type": "markdown", "id": "232e0d03", "metadata": {}, "source": [ "The selected instruments (normally specified on declaration) are stored in the `chosen_instruments` property, which can also be set:" ] }, { "cell_type": "code", "execution_count": 16, "id": "74edb595", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['PSPCB', 'PSPCC', 'HRI']\n", "['ACIS-I', 'ACIS-S', 'HRC-I', 'HRC-S']\n", "['ACIS-I', 'ACIS-S']\n" ] } ], "source": [ "print(rp.chosen_instruments)\n", "print(ch.chosen_instruments)\n", "ch.chosen_instruments = ['ACIS-I', 'ACIS-S']\n", "print(ch.chosen_instruments)" ] }, { "cell_type": "markdown", "id": "c1b10d64", "metadata": {}, "source": [ "### ObsID Regular Expression" ] }, { "cell_type": "markdown", "id": "eb309849", "metadata": {}, "source": [ "Each of the mission's observations are uniquely identified by an 'ObsID', and each telescope/mission has a different format of ObsID (generally just made up of numeric characters) - there are points where the mission class may have to check the format of a supplied ObsID, and it does that by comparing to the ObsID regular expression:" ] }, { "cell_type": "code", "execution_count": 17, "id": "eeef607e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "^[0-9]{10}$\n", "^(RH|rh|RP|rp|RF|rf|WH|wh|WP|wp|WF|wf)\\d{6}([A-Z]\\d{2}|)$\n" ] } ], "source": [ "print(xm.id_regex)\n", "print(rp.id_regex)" ] }, { "cell_type": "markdown", "id": "e26806ba", "metadata": {}, "source": [ "### Field of View" ] }, { "cell_type": "markdown", "id": "0fe5ba9c", "metadata": {}, "source": [ "The field of view (FoV) values attached to DAXA mission classes represent the half-width (or radius) of the region of sky that a telescope/instrument observes. Given that each telescope instrument tends to have a unique geometry, this is a simplification, but it is beneficial to have a single number that represents how much of the sky an instrument can see.\n", "\n", "In the simplest cases, the FoV property is just a single quantity, meaning that there is either only one instrument, or that every instrument has the same field of view. In other cases there may be multiple instruments associated with a mission, in which case they will all have their own entry in a FoV dictionary.\n", "\n", "Finally, some telescopes (such as Chandra) have instruments which have irregular geometries (the ACIS-S and HRC-S chips), or that are frequently used in different observational modes that enable and disable different parts of the sensor. As such the actual coverage of the FoV can vary dramatically, in cases like these we will have gone with the half-width of the longest possible side of the field of view." ] }, { "cell_type": "code", "execution_count": 18, "id": "386f8181", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "XMM-Newton Pointed - 15.0 arcmin \n", "\n", "ROSAT Pointed - {'PSPCB': , 'PSPCC': , 'HRI': } \n", "\n", "Swift - {'XRT': , 'BAT': , 'UVOT': } \n", "\n", "Chandra - {'ACIS-I': , 'ACIS-S': , 'HRC-I': , 'HRC-S': }\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/td/gw9qkx6d3szb1nkt_cfvcbzm000vzl/T/ipykernel_23287/579883568.py:4: UserWarning: Chandra FoV are difficult to define, as they can be strongly dependant on observation mode; as such take these as very approximate.\n", " print(ch.pretty_name, '-', ch.fov)\n" ] } ], "source": [ "print(xm.pretty_name, '-', xm.fov, '\\n')\n", "print(rp.pretty_name, '-', rp.fov, '\\n')\n", "print(sw.pretty_name, '-', sw.fov, '\\n')\n", "print(ch.pretty_name, '-', ch.fov)" ] }, { "cell_type": "markdown", "id": "9a72c7d5", "metadata": {}, "source": [ "### Coordinate Frame" ] }, { "cell_type": "markdown", "id": "63293d42", "metadata": {}, "source": [ "This property contains the coordinate frame for the central positions of observations taken by the mission - this is largely irrelevant to the user, and will be used in cases where the mission class needs to compare an input coordinate to an observation coordinate. \n", "\n", "Also, practically speaking the difference between the ICRS and FK5 frames (most commonly used) is neglible compared to the typical spatial uncertainty involved in X-ray data:" ] }, { "cell_type": "code", "execution_count": 19, "id": "493b9e53", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "print(ch.coord_frame)\n", "print(asca.coord_frame)" ] }, { "cell_type": "markdown", "id": "85081e4e", "metadata": {}, "source": [ "### Pre-processed Energy Bands" ] }, { "cell_type": "markdown", "id": "1a9ff45a", "metadata": {}, "source": [ "This property will contain the upper and lower energy bounds available for pre-processed data products for a particular mission (if their online dataset supplies energy-bound data products) - these energy bounds are provided on an instrument level (as some missions provide different energy-bound products for different instruments). The left hand column indicates the lower energy bound, and the right hand column the upper energy bound. \n", "\n", "An energy bound being present here does not guarantee that all products supplied by the mission online dataset are available in that bound - e.g. some missions provide bound images and a single, general, exposure map." ] }, { "cell_type": "code", "execution_count": 20, "id": "b9c656d7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'PSPCB': ,\n", " 'PSPCC': ,\n", " 'HRI': }" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rp.preprocessed_energy_bands" ] }, { "cell_type": "markdown", "id": "92c06a6a", "metadata": {}, "source": [ "If the mission in question cannot provide pre-processed data products that are energy bound, then an error will be raised:" ] }, { "cell_type": "code", "execution_count": 21, "id": "d497e4ef", "metadata": {}, "outputs": [ { "ename": "PreProcessedNotSupportedError", "evalue": "This mission's archive does not supply pre-processed products within specific energy bands. ", "output_type": "error", "traceback": [ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[0;31mPreProcessedNotSupportedError\u001B[0m Traceback (most recent call last)", "Cell \u001B[0;32mIn [21], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43minte\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mpreprocessed_energy_bands\u001B[49m\n", "File \u001B[0;32m~/code/DAXA/daxa/mission/base.py:730\u001B[0m, in \u001B[0;36mBaseMission.preprocessed_energy_bands\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 727\u001B[0m \u001B[38;5;66;03m# If this attribute is not set then we're going to assume that the archive doesn't provide any products\u001B[39;00m\n\u001B[1;32m 728\u001B[0m \u001B[38;5;66;03m# which are energy bound\u001B[39;00m\n\u001B[1;32m 729\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_template_en_trans \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[0;32m--> 730\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m PreProcessedNotSupportedError(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mThis mission\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124ms archive does not supply pre-processed products within \u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 731\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mspecific energy bands.\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 733\u001B[0m \u001B[38;5;66;03m# The attribute is organized as a nested dictionary - with two possible configurations, one with instrument\u001B[39;00m\n\u001B[1;32m 734\u001B[0m \u001B[38;5;66;03m# names as top level keys, then lower level keys being lower energy bounds, and the\u001B[39;00m\n\u001B[1;32m 735\u001B[0m \u001B[38;5;66;03m# lowest level keys being upper energy bounds - the other configuration is the same, but doesn't have top\u001B[39;00m\n\u001B[1;32m 736\u001B[0m \u001B[38;5;66;03m# level instrument keys (these then apply to all instruments of a mission).\u001B[39;00m\n\u001B[1;32m 737\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(\u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_template_en_trans\u001B[38;5;241m.\u001B[39mkeys())[\u001B[38;5;241m0\u001B[39m], Quantity):\n", "\u001B[0;31mPreProcessedNotSupportedError\u001B[0m: This mission's archive does not supply pre-processed products within specific energy bands. " ] } ], "source": [ "inte.preprocessed_energy_bands" ] }, { "cell_type": "markdown", "id": "d09594cd", "metadata": {}, "source": [ "### Observation Information" ] }, { "cell_type": "markdown", "id": "cc18fe8c", "metadata": {}, "source": [ "One of the most important properties of a DAXA mission class - this returns a dataframe of all the observations that are associated with a mission. This can include observations that are not yet publicly available (i.e. they are still in a proprietary period), but will never include observations that are planned but haven't been taken yet. \n", "\n", "In most cases this data is dynamically updated when a mission is declared (i.e. the table is pulled down from a mission server) - this is not the case for eROSITACalPV and eRASS1DE. **Please also note that the Swift and INTEGRALPointed missions have very large `all_obs_info` tables due to the way their data/observations are organised.**\n", "\n", "Some information will be constant across telescopes, and some will be mission specific. We present truncated versions of `all_obs_info` for every DAXA mission as of the current date:" ] }, { "cell_type": "code", "execution_count": 22, "id": "7552e901", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'24-April-2024'" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "date.today().strftime('%d-%B-%Y')" ] }, { "cell_type": "code", "execution_count": 23, "id": "3099460c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDstartscience_usabledurationproprietary_end_daterevolutionproprietary_usableend
064.92541555.99944000001101012001-08-19 07:05:23True0 days 09:08:332002-09-29310True2001-08-19 16:13:56
1263.674950-32.58167000017302012001-03-09 12:44:21True0 days 04:44:432002-05-25229True2001-03-09 17:29:04
2263.674950-32.58167000017303012001-03-09 17:30:16True0 days 02:36:022002-05-25229True2001-03-09 20:06:18
3263.674950-32.58167000017304012001-03-09 09:41:25True0 days 03:00:592002-05-25229True2001-03-09 12:42:24
499.3499956.13527800017305012002-09-17 18:35:28True0 days 06:05:392004-12-31508True2002-09-18 00:41:07
.................................
17556137.21116755.37908309241401012024-04-11 19:58:54True0 days 04:41:40NaT4458False2024-04-12 00:40:34
17557116.748000-45.49072209220408012024-04-14 06:14:32True0 days 06:43:20NaT4459False2024-04-14 12:57:52
17558179.71937558.58358309241417012024-04-14 02:14:33True0 days 02:13:20NaT4459False2024-04-14 04:27:53
17559153.94854254.52036109241418012024-04-13 19:51:03True0 days 05:48:20NaT4459False2024-04-14 01:39:23
17560287.9565004.98272209349901012024-04-14 14:56:52True0 days 18:35:00NaT4459False2024-04-15 09:31:52
\n", "

17561 rows × 10 columns

\n", "
" ], "text/plain": [ " ra dec ObsID start science_usable \\\n", "0 64.925415 55.999440 0000110101 2001-08-19 07:05:23 True \n", "1 263.674950 -32.581670 0001730201 2001-03-09 12:44:21 True \n", "2 263.674950 -32.581670 0001730301 2001-03-09 17:30:16 True \n", "3 263.674950 -32.581670 0001730401 2001-03-09 09:41:25 True \n", "4 99.349995 6.135278 0001730501 2002-09-17 18:35:28 True \n", "... ... ... ... ... ... \n", "17556 137.211167 55.379083 0924140101 2024-04-11 19:58:54 True \n", "17557 116.748000 -45.490722 0922040801 2024-04-14 06:14:32 True \n", "17558 179.719375 58.583583 0924141701 2024-04-14 02:14:33 True \n", "17559 153.948542 54.520361 0924141801 2024-04-13 19:51:03 True \n", "17560 287.956500 4.982722 0934990101 2024-04-14 14:56:52 True \n", "\n", " duration proprietary_end_date revolution proprietary_usable \\\n", "0 0 days 09:08:33 2002-09-29 310 True \n", "1 0 days 04:44:43 2002-05-25 229 True \n", "2 0 days 02:36:02 2002-05-25 229 True \n", "3 0 days 03:00:59 2002-05-25 229 True \n", "4 0 days 06:05:39 2004-12-31 508 True \n", "... ... ... ... ... \n", "17556 0 days 04:41:40 NaT 4458 False \n", "17557 0 days 06:43:20 NaT 4459 False \n", "17558 0 days 02:13:20 NaT 4459 False \n", "17559 0 days 05:48:20 NaT 4459 False \n", "17560 0 days 18:35:00 NaT 4459 False \n", "\n", " end \n", "0 2001-08-19 16:13:56 \n", "1 2001-03-09 17:29:04 \n", "2 2001-03-09 20:06:18 \n", "3 2001-03-09 12:42:24 \n", "4 2002-09-18 00:41:07 \n", "... ... \n", "17556 2024-04-12 00:40:34 \n", "17557 2024-04-14 12:57:52 \n", "17558 2024-04-14 04:27:53 \n", "17559 2024-04-14 01:39:23 \n", "17560 2024-04-15 09:31:52 \n", "\n", "[17561 rows x 10 columns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xm.all_obs_info" ] }, { "cell_type": "code", "execution_count": 24, "id": "c92c0a35", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usableproprietary_usablestartenddurationproprietary_end_datetarget_categoryinstrumentgratingdata_mode
0274.43140-33.018836616TrueTrue2006-02-24 04:33:41.0000032007-09-21 00:26:11.000003573 days 19:52:302007-02-28GSACIS-SHETGCC_000A8
183.6329222.014477587TrueTrue2007-02-03 09:58:57.0000002008-07-21 21:53:57.000000534 days 11:55:002008-02-06SNRACIS-SHETGTE_0077C
2202.5000047.2000013814TrueTrue2012-09-20 07:21:41.9999992012-09-22 12:47:41.9999992 days 05:26:002013-10-11NGSACIS-SNONETE_00958
3266.41667-29.0078113842TrueTrue2012-07-21 11:52:41.0000022012-07-23 17:08:41.0000022 days 05:16:002012-07-25NGSACIS-SHETGTE_008D0
4316.7245838.7494213651TrueTrue2012-02-13 20:18:26.9999972012-02-16 00:51:26.9999972 days 04:33:002013-02-21MISCHRC-SLETGDEFAULT
..........................................
23136332.1700045.7423124644TrueTrue2020-09-29 01:23:47.0000032020-09-29 01:23:47.0000030 days 00:00:002020-09-30CALHRC-INONEDEFAULT
2313784.91458-69.743611203TrueTrue1999-08-31 03:28:53.0000031999-08-31 03:28:53.0000030 days 00:00:002003-06-16GSHRC-INONE
23138332.1701045.742301336TrueTrue1999-10-03 21:48:53.0000041999-10-03 21:48:53.0000040 days 00:00:001999-12-14CALHRC-INONE
23139350.8575058.814831409TrueTrue1999-10-23 18:29:33.9999991999-10-23 18:29:33.9999990 days 00:00:001999-12-09SNRHRC-INONE
23140332.1700045.7423124645TrueTrue2020-10-25 12:05:32.0000012020-10-25 12:05:32.0000010 days 00:00:002020-10-27CALHRC-SNONESCENTER
\n", "

23141 rows × 13 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable proprietary_usable \\\n", "0 274.43140 -33.01883 6616 True True \n", "1 83.63292 22.01447 7587 True True \n", "2 202.50000 47.20000 13814 True True \n", "3 266.41667 -29.00781 13842 True True \n", "4 316.72458 38.74942 13651 True True \n", "... ... ... ... ... ... \n", "23136 332.17000 45.74231 24644 True True \n", "23137 84.91458 -69.74361 1203 True True \n", "23138 332.17010 45.74230 1336 True True \n", "23139 350.85750 58.81483 1409 True True \n", "23140 332.17000 45.74231 24645 True True \n", "\n", " start end duration \\\n", "0 2006-02-24 04:33:41.000003 2007-09-21 00:26:11.000003 573 days 19:52:30 \n", "1 2007-02-03 09:58:57.000000 2008-07-21 21:53:57.000000 534 days 11:55:00 \n", "2 2012-09-20 07:21:41.999999 2012-09-22 12:47:41.999999 2 days 05:26:00 \n", "3 2012-07-21 11:52:41.000002 2012-07-23 17:08:41.000002 2 days 05:16:00 \n", "4 2012-02-13 20:18:26.999997 2012-02-16 00:51:26.999997 2 days 04:33:00 \n", "... ... ... ... \n", "23136 2020-09-29 01:23:47.000003 2020-09-29 01:23:47.000003 0 days 00:00:00 \n", "23137 1999-08-31 03:28:53.000003 1999-08-31 03:28:53.000003 0 days 00:00:00 \n", "23138 1999-10-03 21:48:53.000004 1999-10-03 21:48:53.000004 0 days 00:00:00 \n", "23139 1999-10-23 18:29:33.999999 1999-10-23 18:29:33.999999 0 days 00:00:00 \n", "23140 2020-10-25 12:05:32.000001 2020-10-25 12:05:32.000001 0 days 00:00:00 \n", "\n", " proprietary_end_date target_category instrument grating data_mode \n", "0 2007-02-28 GS ACIS-S HETG CC_000A8 \n", "1 2008-02-06 SNR ACIS-S HETG TE_0077C \n", "2 2013-10-11 NGS ACIS-S NONE TE_00958 \n", "3 2012-07-25 NGS ACIS-S HETG TE_008D0 \n", "4 2013-02-21 MISC HRC-S LETG DEFAULT \n", "... ... ... ... ... ... \n", "23136 2020-09-30 CAL HRC-I NONE DEFAULT \n", "23137 2003-06-16 GS HRC-I NONE \n", "23138 1999-12-14 CAL HRC-I NONE \n", "23139 1999-12-09 SNR HRC-I NONE \n", "23140 2020-10-27 CAL HRC-S NONE SCENTER \n", "\n", "[23141 rows x 13 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch.all_obs_info" ] }, { "cell_type": "code", "execution_count": 25, "id": "cbb95211", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationra_minra_maxdec_mindec_maxneigh_obs
0116.70329742.008289117048True2020-04-15 10:13:392020-04-19 02:13:483 days 16:00:09114.725275118.68131940.543.5114045,118045,122045,113048,121048,112051,1160...
1120.65934142.008289121048True2020-04-17 10:14:322020-04-21 10:13:373 days 23:59:05118.681319122.63736340.543.5118045,122045,117048,125048,116051,119051,1230...
2124.61538542.008289125048True2020-04-19 14:14:562020-04-23 14:14:203 days 23:59:24122.637363126.59340740.543.5122045,126045,121048,129048,123051,127051,0000...
3128.57142942.008289129048True2020-04-21 18:15:192020-04-25 18:14:563 days 23:59:37126.593407130.54945140.543.5126045,130045,125048,133048,127051,131051,0000...
4132.52747342.008289133048True2020-04-23 22:15:472020-04-28 02:15:104 days 03:59:23130.549451134.50549540.543.5130045,134045,129048,136048,131051,135051,0000...
.......................................
2442220.000000-87.045181220177True2020-03-19 20:42:362020-04-03 04:43:2514 days 08:00:49200.000000240.000000-88.5-85.5001180,191174,214174,236174,259174,180177,2601...
2443260.000000-87.045181260177TrueNaT2020-04-05 12:43:45NaT240.000000280.000000-88.5-85.5001180,236174,259174,281174,304174,220177,3001...
2444300.000000-87.045181300177True2020-03-28 16:42:432020-04-09 04:42:2611 days 11:59:43280.000000320.000000-88.5-85.5001180,259174,281174,304174,326174,260177,3401...
2445340.000000-87.045181340177True2020-03-31 20:42:372020-04-12 00:44:2611 days 04:01:49320.000000360.000000-88.5-85.5001180,304174,326174,349174,011174,300177,0201...
24460.000000-90.000000001180True2020-03-26 00:45:062020-04-06 12:45:5311 days 12:00:470.000000360.000000-90.0-88.5020177,060177,100177,140177,180177,220177,2601...
\n", "

2447 rows × 12 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start \\\n", "0 116.703297 42.008289 117048 True 2020-04-15 10:13:39 \n", "1 120.659341 42.008289 121048 True 2020-04-17 10:14:32 \n", "2 124.615385 42.008289 125048 True 2020-04-19 14:14:56 \n", "3 128.571429 42.008289 129048 True 2020-04-21 18:15:19 \n", "4 132.527473 42.008289 133048 True 2020-04-23 22:15:47 \n", "... ... ... ... ... ... \n", "2442 220.000000 -87.045181 220177 True 2020-03-19 20:42:36 \n", "2443 260.000000 -87.045181 260177 True NaT \n", "2444 300.000000 -87.045181 300177 True 2020-03-28 16:42:43 \n", "2445 340.000000 -87.045181 340177 True 2020-03-31 20:42:37 \n", "2446 0.000000 -90.000000 001180 True 2020-03-26 00:45:06 \n", "\n", " end duration ra_min ra_max dec_min \\\n", "0 2020-04-19 02:13:48 3 days 16:00:09 114.725275 118.681319 40.5 \n", "1 2020-04-21 10:13:37 3 days 23:59:05 118.681319 122.637363 40.5 \n", "2 2020-04-23 14:14:20 3 days 23:59:24 122.637363 126.593407 40.5 \n", "3 2020-04-25 18:14:56 3 days 23:59:37 126.593407 130.549451 40.5 \n", "4 2020-04-28 02:15:10 4 days 03:59:23 130.549451 134.505495 40.5 \n", "... ... ... ... ... ... \n", "2442 2020-04-03 04:43:25 14 days 08:00:49 200.000000 240.000000 -88.5 \n", "2443 2020-04-05 12:43:45 NaT 240.000000 280.000000 -88.5 \n", "2444 2020-04-09 04:42:26 11 days 11:59:43 280.000000 320.000000 -88.5 \n", "2445 2020-04-12 00:44:26 11 days 04:01:49 320.000000 360.000000 -88.5 \n", "2446 2020-04-06 12:45:53 11 days 12:00:47 0.000000 360.000000 -90.0 \n", "\n", " dec_max neigh_obs \n", "0 43.5 114045,118045,122045,113048,121048,112051,1160... \n", "1 43.5 118045,122045,117048,125048,116051,119051,1230... \n", "2 43.5 122045,126045,121048,129048,123051,127051,0000... \n", "3 43.5 126045,130045,125048,133048,127051,131051,0000... \n", "4 43.5 130045,134045,129048,136048,131051,135051,0000... \n", "... ... ... \n", "2442 -85.5 001180,191174,214174,236174,259174,180177,2601... \n", "2443 -85.5 001180,236174,259174,281174,304174,220177,3001... \n", "2444 -85.5 001180,259174,281174,304174,326174,260177,3401... \n", "2445 -85.5 001180,304174,326174,349174,011174,300177,0201... \n", "2446 -88.5 020177,060177,100177,140177,180177,220177,2601... \n", "\n", "[2447 rows x 12 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ea.all_obs_info" ] }, { "cell_type": "code", "execution_count": 26, "id": "b1ae1d09", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationField_NameField_Typeactive_insts
0129.5500001.500000300007True2019-11-03 02:42:502019-11-04 03:36:3789627.0EFEDSSURVEYTM1,TM2,TM3,TM4,TM5,TM6,TM7
1133.8600001.500000300008True2019-11-04 03:49:162019-11-05 05:16:3991643.0EFEDSSURVEYTM1,TM2,TM3,TM4,TM5,TM6,TM7
2138.1400001.500000300009True2019-11-05 05:29:182019-11-06 06:40:0690648.0EFEDSSURVEYTM1,TM2,TM3,TM4,TM5,TM6,TM7
3142.4500001.500000300010True2019-11-06 07:24:462019-11-07 08:20:0889722.0EFEDSSURVEYTM1,TM2,TM3,TM4,TM5,TM6,TM7
4130.331300-78.963400300004True2019-11-16 23:14:402019-11-18 18:17:12154952.0ETA_CHASURVEYTM1,TM2,TM3,TM4,TM5,TM6,TM7
.................................
165284.146250-37.909167700008True2019-10-24 11:11:192019-10-25 08:55:5278273.01RXS_J185635_375433EXTRAGALACTIC_FIELDSTM1,TM2,TM3,TM4,TM5,TM6,TM7
166281.54077179.873726900060True2019-09-24 15:27:062019-09-24 21:30:3221806.03C390_3EXTRAGALACTIC_FIELDSTM6
167281.50027579.885376900068True2019-09-28 15:49:512019-09-28 21:30:3220441.03C390_3EXTRAGALACTIC_FIELDSTM6
168281.48941079.888214900069True2019-09-29 15:23:242019-09-29 21:30:3722033.03C390_3EXTRAGALACTIC_FIELDSTM6
169281.47827179.891029900070True2019-09-30 15:23:242019-09-30 21:30:3222028.03C390_3EXTRAGALACTIC_FIELDSTM5,TM6,TM7
\n", "

170 rows × 10 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start \\\n", "0 129.550000 1.500000 300007 True 2019-11-03 02:42:50 \n", "1 133.860000 1.500000 300008 True 2019-11-04 03:49:16 \n", "2 138.140000 1.500000 300009 True 2019-11-05 05:29:18 \n", "3 142.450000 1.500000 300010 True 2019-11-06 07:24:46 \n", "4 130.331300 -78.963400 300004 True 2019-11-16 23:14:40 \n", ".. ... ... ... ... ... \n", "165 284.146250 -37.909167 700008 True 2019-10-24 11:11:19 \n", "166 281.540771 79.873726 900060 True 2019-09-24 15:27:06 \n", "167 281.500275 79.885376 900068 True 2019-09-28 15:49:51 \n", "168 281.489410 79.888214 900069 True 2019-09-29 15:23:24 \n", "169 281.478271 79.891029 900070 True 2019-09-30 15:23:24 \n", "\n", " end duration Field_Name Field_Type \\\n", "0 2019-11-04 03:36:37 89627.0 EFEDS SURVEY \n", "1 2019-11-05 05:16:39 91643.0 EFEDS SURVEY \n", "2 2019-11-06 06:40:06 90648.0 EFEDS SURVEY \n", "3 2019-11-07 08:20:08 89722.0 EFEDS SURVEY \n", "4 2019-11-18 18:17:12 154952.0 ETA_CHA SURVEY \n", ".. ... ... ... ... \n", "165 2019-10-25 08:55:52 78273.0 1RXS_J185635_375433 EXTRAGALACTIC_FIELDS \n", "166 2019-09-24 21:30:32 21806.0 3C390_3 EXTRAGALACTIC_FIELDS \n", "167 2019-09-28 21:30:32 20441.0 3C390_3 EXTRAGALACTIC_FIELDS \n", "168 2019-09-29 21:30:37 22033.0 3C390_3 EXTRAGALACTIC_FIELDS \n", "169 2019-09-30 21:30:32 22028.0 3C390_3 EXTRAGALACTIC_FIELDS \n", "\n", " active_insts \n", "0 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", "1 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", "2 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", "3 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", "4 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", ".. ... \n", "165 TM1,TM2,TM3,TM4,TM5,TM6,TM7 \n", "166 TM6 \n", "167 TM6 \n", "168 TM6 \n", "169 TM5,TM6,TM7 \n", "\n", "[170 rows x 10 columns]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ecpv.all_obs_info" ] }, { "cell_type": "code", "execution_count": 27, "id": "24ca3a30", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usableproprietary_usablestartenddurationproprietary_end_datetarget_categoryexposure_aexposure_bontime_aontime_bnupsdoutissue_flag
083.8281-69.246540001014013TrueTrue2013-06-29 01:16:07.1839982013-07-05 08:51:07.1840046 days 07:35:00.0000062015-09-17 00:00:00SNR5 days 11:20:425 days 11:09:585 days 20:32:485 days 20:33:4621191
183.7759-69.267740001014016TrueTrue2014-04-22 21:06:07.1839992014-04-29 09:31:07.1839986 days 12:24:59.9999992015-09-17 00:00:00SNR4 days 23:56:474 days 23:35:175 days 08:14:465 days 08:14:0901
283.8965-69.247740001014023TrueTrue2014-08-01 23:46:07.1839982014-08-08 02:41:07.1840006 days 02:55:00.0000022015-09-17 00:00:00SNR4 days 22:46:564 days 22:35:325 days 07:01:075 days 07:02:5500
3340.653029.698560401031004TrueTrue2018-11-28 22:21:09.1840002018-12-08 17:16:09.1839979 days 18:54:59.9999972019-12-25 00:00:00AGN4 days 17:35:584 days 17:01:435 days 02:48:255 days 02:49:4300
4344.4048-36.976560901012002TrueFalse2023-11-02 06:06:09.1840032023-11-10 11:41:09.1840048 days 05:35:00.0000012024-05-20 00:00:00AGN4 days 11:03:164 days 10:06:554 days 19:02:154 days 19:02:3600
...................................................
54770.00000.000020627025001TrueTrue2022-06-04 00:08:52.1839972022-06-04 00:26:09.1840040 days 00:17:17.0000072022-06-13 00:00:00SOL0 days 00:00:000 days 00:00:000 days 00:00:000 days 00:00:0001
54780.00000.000020624008001TrueTrue2022-06-04 00:26:09.1840042022-06-04 02:01:09.1840020 days 01:34:59.9999982022-06-13 00:00:00SOL0 days 00:00:000 days 00:00:000 days 00:00:000 days 00:00:0001
54790.00000.000020624001002TrueTrue2022-06-04 02:01:09.1840022022-06-04 03:06:09.1840030 days 01:05:00.0000012022-06-13 00:00:00SOL0 days 00:00:000 days 00:00:000 days 00:00:000 days 00:00:0001
54800.00000.000020601030002TrueTrue2022-06-04 03:06:09.1840032022-06-04 03:26:09.1840040 days 00:20:00.0000012022-06-13 00:00:00SOL0 days 00:00:000 days 00:00:000 days 00:00:000 days 00:00:0000
54810.00000.000080802021002TrueTrue2022-06-16 21:56:09.1840012022-06-16 22:16:09.1840020 days 00:20:00.0000012023-01-11 00:00:00TOO0 days 00:00:000 days 00:00:000 days 00:00:000 days 00:00:0000
\n", "

5482 rows × 16 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable proprietary_usable \\\n", "0 83.8281 -69.2465 40001014013 True True \n", "1 83.7759 -69.2677 40001014016 True True \n", "2 83.8965 -69.2477 40001014023 True True \n", "3 340.6530 29.6985 60401031004 True True \n", "4 344.4048 -36.9765 60901012002 True False \n", "... ... ... ... ... ... \n", "5477 0.0000 0.0000 20627025001 True True \n", "5478 0.0000 0.0000 20624008001 True True \n", "5479 0.0000 0.0000 20624001002 True True \n", "5480 0.0000 0.0000 20601030002 True True \n", "5481 0.0000 0.0000 80802021002 True True \n", "\n", " start end \\\n", "0 2013-06-29 01:16:07.183998 2013-07-05 08:51:07.184004 \n", "1 2014-04-22 21:06:07.183999 2014-04-29 09:31:07.183998 \n", "2 2014-08-01 23:46:07.183998 2014-08-08 02:41:07.184000 \n", "3 2018-11-28 22:21:09.184000 2018-12-08 17:16:09.183997 \n", "4 2023-11-02 06:06:09.184003 2023-11-10 11:41:09.184004 \n", "... ... ... \n", "5477 2022-06-04 00:08:52.183997 2022-06-04 00:26:09.184004 \n", "5478 2022-06-04 00:26:09.184004 2022-06-04 02:01:09.184002 \n", "5479 2022-06-04 02:01:09.184002 2022-06-04 03:06:09.184003 \n", "5480 2022-06-04 03:06:09.184003 2022-06-04 03:26:09.184004 \n", "5481 2022-06-16 21:56:09.184001 2022-06-16 22:16:09.184002 \n", "\n", " duration proprietary_end_date target_category \\\n", "0 6 days 07:35:00.000006 2015-09-17 00:00:00 SNR \n", "1 6 days 12:24:59.999999 2015-09-17 00:00:00 SNR \n", "2 6 days 02:55:00.000002 2015-09-17 00:00:00 SNR \n", "3 9 days 18:54:59.999997 2019-12-25 00:00:00 AGN \n", "4 8 days 05:35:00.000001 2024-05-20 00:00:00 AGN \n", "... ... ... ... \n", "5477 0 days 00:17:17.000007 2022-06-13 00:00:00 SOL \n", "5478 0 days 01:34:59.999998 2022-06-13 00:00:00 SOL \n", "5479 0 days 01:05:00.000001 2022-06-13 00:00:00 SOL \n", "5480 0 days 00:20:00.000001 2022-06-13 00:00:00 SOL \n", "5481 0 days 00:20:00.000001 2023-01-11 00:00:00 TOO \n", "\n", " exposure_a exposure_b ontime_a ontime_b \\\n", "0 5 days 11:20:42 5 days 11:09:58 5 days 20:32:48 5 days 20:33:46 \n", "1 4 days 23:56:47 4 days 23:35:17 5 days 08:14:46 5 days 08:14:09 \n", "2 4 days 22:46:56 4 days 22:35:32 5 days 07:01:07 5 days 07:02:55 \n", "3 4 days 17:35:58 4 days 17:01:43 5 days 02:48:25 5 days 02:49:43 \n", "4 4 days 11:03:16 4 days 10:06:55 4 days 19:02:15 4 days 19:02:36 \n", "... ... ... ... ... \n", "5477 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 \n", "5478 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 \n", "5479 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 \n", "5480 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 \n", "5481 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 0 days 00:00:00 \n", "\n", " nupsdout issue_flag \n", "0 2119 1 \n", "1 0 1 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "... ... ... \n", "5477 0 1 \n", "5478 0 1 \n", "5479 0 1 \n", "5480 0 0 \n", "5481 0 0 \n", "\n", "[5482 rows x 16 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nu.all_obs_info" ] }, { "cell_type": "code", "execution_count": 28, "id": "3edffeee", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationtarget_categoryxrt_exposurebat_exposureuvot_exposure
0328.7073916.8936400173780007True2005-12-25 00:42:01.9999992005-12-28 00:00:23.0000002 days 23:18:21.000001MISC1 days 02:44:09.0140001 days 00:04:101 days 02:40:01.030000
139.95079-25.2189700131560002True2005-06-03 23:59:00.9999982005-06-06 22:47:30.0000022 days 22:48:29.000004MISC0 days 22:36:12.9460000 days 22:52:030 days 17:46:44.297000
2228.4611530.8765900164268014True2005-12-03 01:00:00.9999962005-12-06 00:07:43.0000002 days 23:07:42.000004MISC0 days 19:38:55.3840000 days 19:59:150 days 00:00:00
3350.649585.7499000148833003True2005-08-06 00:26:11.9999962005-08-09 00:50:56.0000033 days 00:24:44.000007MISC0 days 19:04:07.1250000 days 19:23:360 days 18:21:43.023000
475.2782345.2851300321174011True2008-08-31 02:25:00.9999982008-09-03 00:34:06.9999982 days 22:09:06MISC0 days 18:49:28.9700000 days 21:08:01.6500000 days 18:24:15.039000
....................................
353399225.01926-35.0182700067092005True2005-01-23 13:07:01.0000042005-01-23 23:15:55.9999960 days 10:08:54.999992MISC0 days 00:00:000 days 02:57:510 days 00:00:00
35340077.63318-14.9672200074164018True2011-05-03 12:25:59.0000022011-05-03 17:31:53.9999990 days 05:05:54.999997MISC0 days 00:00:000 days 00:05:310 days 00:00:00
3534017.30920-73.7153100048706113True2019-03-04 23:56:36.0000012019-03-05 00:51:04.9999970 days 00:54:28.999996MISC0 days 00:00:000 days 00:01:010 days 00:00:53.499000
35340251.8854526.3855403111918013True2022-12-25 10:22:35.9999992022-12-25 10:32:25.9999990 days 00:09:50MISC0 days 00:00:000 days 00:00:020 days 00:00:00
35340320.08971-5.0105700076384008True2023-05-24 11:05:38.0000032023-05-24 12:42:01.9999990 days 01:36:23.999996MISC0 days 00:00:000 days 00:07:140 days 00:00:00
\n", "

353404 rows × 11 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable \\\n", "0 328.70739 16.89364 00173780007 True \n", "1 39.95079 -25.21897 00131560002 True \n", "2 228.46115 30.87659 00164268014 True \n", "3 350.64958 5.74990 00148833003 True \n", "4 75.27823 45.28513 00321174011 True \n", "... ... ... ... ... \n", "353399 225.01926 -35.01827 00067092005 True \n", "353400 77.63318 -14.96722 00074164018 True \n", "353401 7.30920 -73.71531 00048706113 True \n", "353402 51.88545 26.38554 03111918013 True \n", "353403 20.08971 -5.01057 00076384008 True \n", "\n", " start end \\\n", "0 2005-12-25 00:42:01.999999 2005-12-28 00:00:23.000000 \n", "1 2005-06-03 23:59:00.999998 2005-06-06 22:47:30.000002 \n", "2 2005-12-03 01:00:00.999996 2005-12-06 00:07:43.000000 \n", "3 2005-08-06 00:26:11.999996 2005-08-09 00:50:56.000003 \n", "4 2008-08-31 02:25:00.999998 2008-09-03 00:34:06.999998 \n", "... ... ... \n", "353399 2005-01-23 13:07:01.000004 2005-01-23 23:15:55.999996 \n", "353400 2011-05-03 12:25:59.000002 2011-05-03 17:31:53.999999 \n", "353401 2019-03-04 23:56:36.000001 2019-03-05 00:51:04.999997 \n", "353402 2022-12-25 10:22:35.999999 2022-12-25 10:32:25.999999 \n", "353403 2023-05-24 11:05:38.000003 2023-05-24 12:42:01.999999 \n", "\n", " duration target_category xrt_exposure \\\n", "0 2 days 23:18:21.000001 MISC 1 days 02:44:09.014000 \n", "1 2 days 22:48:29.000004 MISC 0 days 22:36:12.946000 \n", "2 2 days 23:07:42.000004 MISC 0 days 19:38:55.384000 \n", "3 3 days 00:24:44.000007 MISC 0 days 19:04:07.125000 \n", "4 2 days 22:09:06 MISC 0 days 18:49:28.970000 \n", "... ... ... ... \n", "353399 0 days 10:08:54.999992 MISC 0 days 00:00:00 \n", "353400 0 days 05:05:54.999997 MISC 0 days 00:00:00 \n", "353401 0 days 00:54:28.999996 MISC 0 days 00:00:00 \n", "353402 0 days 00:09:50 MISC 0 days 00:00:00 \n", "353403 0 days 01:36:23.999996 MISC 0 days 00:00:00 \n", "\n", " bat_exposure uvot_exposure \n", "0 1 days 00:04:10 1 days 02:40:01.030000 \n", "1 0 days 22:52:03 0 days 17:46:44.297000 \n", "2 0 days 19:59:15 0 days 00:00:00 \n", "3 0 days 19:23:36 0 days 18:21:43.023000 \n", "4 0 days 21:08:01.650000 0 days 18:24:15.039000 \n", "... ... ... \n", "353399 0 days 02:57:51 0 days 00:00:00 \n", "353400 0 days 00:05:31 0 days 00:00:00 \n", "353401 0 days 00:01:01 0 days 00:00:53.499000 \n", "353402 0 days 00:00:02 0 days 00:00:00 \n", "353403 0 days 00:07:14 0 days 00:00:00 \n", "\n", "[353404 rows x 11 columns]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sw.all_obs_info" ] }, { "cell_type": "code", "execution_count": 29, "id": "81650437", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationtarget_category
0263.5708867.500RS930521N00True1990-07-111991-08-130 days 11:19:06ASK
1276.4253367.500RS930522N00True1990-07-111991-08-130 days 11:18:11ASK
296.42533-67.500RS932908N00True1990-07-111991-08-130 days 05:47:48ASK
383.57088-67.500RS932907N00True1990-07-111991-08-130 days 05:47:39ASK
4267.2710061.875RS930625N00True1990-07-111991-08-130 days 03:44:35ASK
...........................
1373289.08783-61.875RS932827N00True1990-09-101990-10-080 days 00:02:44ASK
1374350.17942-33.750RS932354N00True1990-11-091990-12-020 days 00:02:42ASK
1375278.17942-61.875RS932826N00True1990-09-041990-09-300 days 00:02:42ASK
1376273.75000-45.000RS932537N00True1990-09-071990-09-230 days 00:02:42ASK
1377280.46275-50.625RS932634N00True1990-09-131990-10-010 days 00:02:34ASK
\n", "

1378 rows × 8 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start end \\\n", "0 263.57088 67.500 RS930521N00 True 1990-07-11 1991-08-13 \n", "1 276.42533 67.500 RS930522N00 True 1990-07-11 1991-08-13 \n", "2 96.42533 -67.500 RS932908N00 True 1990-07-11 1991-08-13 \n", "3 83.57088 -67.500 RS932907N00 True 1990-07-11 1991-08-13 \n", "4 267.27100 61.875 RS930625N00 True 1990-07-11 1991-08-13 \n", "... ... ... ... ... ... ... \n", "1373 289.08783 -61.875 RS932827N00 True 1990-09-10 1990-10-08 \n", "1374 350.17942 -33.750 RS932354N00 True 1990-11-09 1990-12-02 \n", "1375 278.17942 -61.875 RS932826N00 True 1990-09-04 1990-09-30 \n", "1376 273.75000 -45.000 RS932537N00 True 1990-09-07 1990-09-23 \n", "1377 280.46275 -50.625 RS932634N00 True 1990-09-13 1990-10-01 \n", "\n", " duration target_category \n", "0 0 days 11:19:06 ASK \n", "1 0 days 11:18:11 ASK \n", "2 0 days 05:47:48 ASK \n", "3 0 days 05:47:39 ASK \n", "4 0 days 03:44:35 ASK \n", "... ... ... \n", "1373 0 days 00:02:44 ASK \n", "1374 0 days 00:02:42 ASK \n", "1375 0 days 00:02:42 ASK \n", "1376 0 days 00:02:42 ASK \n", "1377 0 days 00:02:34 ASK \n", "\n", "[1378 rows x 8 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ra.all_obs_info" ] }, { "cell_type": "code", "execution_count": 30, "id": "47256b6e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationinstrumentwith_filtertarget_categorytarget_nameproc_revfits_type
0163.180057.4800RH701867A01True1995-04-15 23:24:16.0000011995-05-11 14:24:47.0000012 days 13:29:32HRINAGNLOCKMAN HOLE2RFITS V4.
1203.650037.9100RH900717N00True1997-06-04 16:13:00.9999981997-07-13 22:26:45.0000042 days 07:58:33HRINMISCDEEP SURVEY2RDF 4_0
2163.180057.4800RH701867A04True1997-04-15 21:51:16.9999981997-04-28 16:37:45.9999982 days 06:33:41HRINAGNLOCKMAN HOLE2RFITS V3.
3350.870058.8100RH500444N00True1995-12-23 22:18:36.9999991996-02-01 10:17:53.9999982 days 02:07:27HRINSNRCAS A2RDF 3_4
4163.180057.4800RH701867A02True1996-05-01 02:09:33.0000021996-05-29 15:31:24.9999972 days 01:05:24HRINAGNLOCKMAN HOLE2RFITS V4.
..........................................
1142684.2900-80.4700RP999998A02False1991-10-20 04:07:51.9999981991-11-01 22:43:43.0000030 days 00:00:00PSPCBNEGEIdle Point2RDF 3_4
1142793.1800-81.8300RH150094N00False1990-07-29 22:13:42.9999971990-07-29 22:56:58.9999980 days 00:00:00HRINSTRCalibration Source2RFITS V4.
11428218.1540-44.2031RH001034N00False1997-08-28 00:29:42.0000001997-08-28 01:09:58.9999970 days 00:00:00HRINMISC2RDF 4_2
11429258.1383-23.3850RH800067M01False1991-03-19 20:33:48.9999971991-03-19 20:35:59.9999970 days 00:00:00HRINGCLOPHIUCHUS CLUSTER2RFITS V3.
11430205.4270-62.3400RH001027N00False1997-08-25 04:54:58.0000031997-08-25 05:18:28.0000000 days 00:00:00HRINMISC2RDF 4_2
\n", "

11431 rows × 13 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable \\\n", "0 163.1800 57.4800 RH701867A01 True \n", "1 203.6500 37.9100 RH900717N00 True \n", "2 163.1800 57.4800 RH701867A04 True \n", "3 350.8700 58.8100 RH500444N00 True \n", "4 163.1800 57.4800 RH701867A02 True \n", "... ... ... ... ... \n", "11426 84.2900 -80.4700 RP999998A02 False \n", "11427 93.1800 -81.8300 RH150094N00 False \n", "11428 218.1540 -44.2031 RH001034N00 False \n", "11429 258.1383 -23.3850 RH800067M01 False \n", "11430 205.4270 -62.3400 RH001027N00 False \n", "\n", " start end duration \\\n", "0 1995-04-15 23:24:16.000001 1995-05-11 14:24:47.000001 2 days 13:29:32 \n", "1 1997-06-04 16:13:00.999998 1997-07-13 22:26:45.000004 2 days 07:58:33 \n", "2 1997-04-15 21:51:16.999998 1997-04-28 16:37:45.999998 2 days 06:33:41 \n", "3 1995-12-23 22:18:36.999999 1996-02-01 10:17:53.999998 2 days 02:07:27 \n", "4 1996-05-01 02:09:33.000002 1996-05-29 15:31:24.999997 2 days 01:05:24 \n", "... ... ... ... \n", "11426 1991-10-20 04:07:51.999998 1991-11-01 22:43:43.000003 0 days 00:00:00 \n", "11427 1990-07-29 22:13:42.999997 1990-07-29 22:56:58.999998 0 days 00:00:00 \n", "11428 1997-08-28 00:29:42.000000 1997-08-28 01:09:58.999997 0 days 00:00:00 \n", "11429 1991-03-19 20:33:48.999997 1991-03-19 20:35:59.999997 0 days 00:00:00 \n", "11430 1997-08-25 04:54:58.000003 1997-08-25 05:18:28.000000 0 days 00:00:00 \n", "\n", " instrument with_filter target_category target_name proc_rev \\\n", "0 HRI N AGN LOCKMAN HOLE 2 \n", "1 HRI N MISC DEEP SURVEY 2 \n", "2 HRI N AGN LOCKMAN HOLE 2 \n", "3 HRI N SNR CAS A 2 \n", "4 HRI N AGN LOCKMAN HOLE 2 \n", "... ... ... ... ... ... \n", "11426 PSPCB N EGE Idle Point 2 \n", "11427 HRI N STR Calibration Source 2 \n", "11428 HRI N MISC 2 \n", "11429 HRI N GCL OPHIUCHUS CLUSTER 2 \n", "11430 HRI N MISC 2 \n", "\n", " fits_type \n", "0 RFITS V4. \n", "1 RDF 4_0 \n", "2 RFITS V3. \n", "3 RDF 3_4 \n", "4 RFITS V4. \n", "... ... \n", "11426 RDF 3_4 \n", "11427 RFITS V4. \n", "11428 RDF 4_2 \n", "11429 RFITS V3. \n", "11430 RDF 4_2 \n", "\n", "[11431 rows x 13 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rp.all_obs_info" ] }, { "cell_type": "code", "execution_count": 31, "id": "43b9d09d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationtarget_categoryxis0_expoxis0_num_modesxis1_expoxis1_num_modesxis2_expoxis2_num_modesxis3_expoxis3_num_modes
091.1523-86.6779701018010True2006-04-13 16:24:07.9999982006-04-14 01:52:19.0000010 days 09:28:11.000003EGS0 days 05:29:41.70000020 days 05:29:41.70000020 days 05:29:25.70000020 days 05:29:33.7000002
148.9864-85.5003404019010True2009-07-16 14:26:31.0000012009-07-18 03:30:15.9999981 days 13:03:44.999997GS0 days 17:31:24.30000020 days 17:31:24.30000020 days 00:00:0000 days 17:31:24.3000002
2239.2836-79.2302703059010True2008-10-13 15:35:23.9999972008-10-15 21:37:21.0000002 days 06:01:57.000003EGS0 days 22:49:5720 days 22:49:43.50000020 days 00:00:0000 days 22:49:35.5000002
3265.9438-76.3446705013010True2010-04-14 00:16:05.0000022010-04-14 16:45:11.0000020 days 16:29:06EGS0 days 11:46:23.60000020 days 11:46:18.30000020 days 00:00:0000 days 11:46:292
474.6207-75.2810404036010True2009-06-14 01:51:18.0000032009-06-16 13:27:19.0000022 days 11:36:00.999999GS1 days 05:42:37.80000021 days 05:42:37.80000020 days 00:00:0001 days 05:42:29.8000002
...................................................
3036247.653782.9256706004010True2011-04-16 00:38:47.0000032011-04-16 10:23:15.0000000 days 09:44:27.999997EGS0 days 05:13:55.70000030 days 05:13:4220 days 00:00:0000 days 05:13:55.6000002
3037116.726185.6829804031010True2010-02-08 09:53:43.9999992010-02-08 18:15:19.0000020 days 08:21:35.000003GCL0 days 05:19:5610 days 05:19:5610 days 00:00:0000 days 05:19:561
3038112.815885.6965804030010True2010-02-08 18:18:12.0000012010-02-09 12:00:25.0000040 days 17:42:13.000003GCL0 days 10:17:39.10000020 days 10:17:39.10000020 days 00:00:0000 days 10:17:39.1000002
3039112.834085.6974804030020True2010-02-10 04:18:27.9999972010-02-11 06:00:24.0000021 days 01:41:56.000005GCL0 days 14:36:01.10000020 days 14:36:01.10000020 days 00:00:0000 days 14:36:01.1000002
3040264.608087.3047705012010True2010-04-26 23:41:56.0000002010-04-27 10:16:15.0000010 days 10:34:19.000001EGS0 days 05:37:59.60000020 days 05:37:59.60000020 days 00:00:0000 days 05:37:59.6000002
\n", "

3041 rows × 16 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start \\\n", "0 91.1523 -86.6779 701018010 True 2006-04-13 16:24:07.999998 \n", "1 48.9864 -85.5003 404019010 True 2009-07-16 14:26:31.000001 \n", "2 239.2836 -79.2302 703059010 True 2008-10-13 15:35:23.999997 \n", "3 265.9438 -76.3446 705013010 True 2010-04-14 00:16:05.000002 \n", "4 74.6207 -75.2810 404036010 True 2009-06-14 01:51:18.000003 \n", "... ... ... ... ... ... \n", "3036 247.6537 82.9256 706004010 True 2011-04-16 00:38:47.000003 \n", "3037 116.7261 85.6829 804031010 True 2010-02-08 09:53:43.999999 \n", "3038 112.8158 85.6965 804030010 True 2010-02-08 18:18:12.000001 \n", "3039 112.8340 85.6974 804030020 True 2010-02-10 04:18:27.999997 \n", "3040 264.6080 87.3047 705012010 True 2010-04-26 23:41:56.000000 \n", "\n", " end duration target_category \\\n", "0 2006-04-14 01:52:19.000001 0 days 09:28:11.000003 EGS \n", "1 2009-07-18 03:30:15.999998 1 days 13:03:44.999997 GS \n", "2 2008-10-15 21:37:21.000000 2 days 06:01:57.000003 EGS \n", "3 2010-04-14 16:45:11.000002 0 days 16:29:06 EGS \n", "4 2009-06-16 13:27:19.000002 2 days 11:36:00.999999 GS \n", "... ... ... ... \n", "3036 2011-04-16 10:23:15.000000 0 days 09:44:27.999997 EGS \n", "3037 2010-02-08 18:15:19.000002 0 days 08:21:35.000003 GCL \n", "3038 2010-02-09 12:00:25.000004 0 days 17:42:13.000003 GCL \n", "3039 2010-02-11 06:00:24.000002 1 days 01:41:56.000005 GCL \n", "3040 2010-04-27 10:16:15.000001 0 days 10:34:19.000001 EGS \n", "\n", " xis0_expo xis0_num_modes xis1_expo \\\n", "0 0 days 05:29:41.700000 2 0 days 05:29:41.700000 \n", "1 0 days 17:31:24.300000 2 0 days 17:31:24.300000 \n", "2 0 days 22:49:57 2 0 days 22:49:43.500000 \n", "3 0 days 11:46:23.600000 2 0 days 11:46:18.300000 \n", "4 1 days 05:42:37.800000 2 1 days 05:42:37.800000 \n", "... ... ... ... \n", "3036 0 days 05:13:55.700000 3 0 days 05:13:42 \n", "3037 0 days 05:19:56 1 0 days 05:19:56 \n", "3038 0 days 10:17:39.100000 2 0 days 10:17:39.100000 \n", "3039 0 days 14:36:01.100000 2 0 days 14:36:01.100000 \n", "3040 0 days 05:37:59.600000 2 0 days 05:37:59.600000 \n", "\n", " xis1_num_modes xis2_expo xis2_num_modes \\\n", "0 2 0 days 05:29:25.700000 2 \n", "1 2 0 days 00:00:00 0 \n", "2 2 0 days 00:00:00 0 \n", "3 2 0 days 00:00:00 0 \n", "4 2 0 days 00:00:00 0 \n", "... ... ... ... \n", "3036 2 0 days 00:00:00 0 \n", "3037 1 0 days 00:00:00 0 \n", "3038 2 0 days 00:00:00 0 \n", "3039 2 0 days 00:00:00 0 \n", "3040 2 0 days 00:00:00 0 \n", "\n", " xis3_expo xis3_num_modes \n", "0 0 days 05:29:33.700000 2 \n", "1 0 days 17:31:24.300000 2 \n", "2 0 days 22:49:35.500000 2 \n", "3 0 days 11:46:29 2 \n", "4 1 days 05:42:29.800000 2 \n", "... ... ... \n", "3036 0 days 05:13:55.600000 2 \n", "3037 0 days 05:19:56 1 \n", "3038 0 days 10:17:39.100000 2 \n", "3039 0 days 14:36:01.100000 2 \n", "3040 0 days 05:37:59.600000 2 \n", "\n", "[3041 rows x 16 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "su.all_obs_info" ] }, { "cell_type": "code", "execution_count": 32, "id": "f23283d1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationtarget_categorysis_exposuregis_exposure
0288.01165.054248002000True2000-03-23 05:52:13.4402000-04-04 00:00:25.92011 days 18:08:12.480000XRB5 days 07:25:045 days 14:47:28
1253.554039.815878002000True2000-03-01 12:08:12.4802000-03-11 00:00:51.8409 days 11:52:39.360000AGN4 days 00:45:045 days 04:32:16
214.3115-22.443177036000True1999-12-03 11:50:38.4001999-12-15 19:00:28.80012 days 07:09:50.400000AGN4 days 08:14:085 days 00:42:40
3203.8856-34.337877003000True1999-07-19 00:40:19.2001999-07-29 15:40:27.84010 days 15:00:08.640000AGN4 days 02:03:124 days 16:33:20
4266.4864-28.942948004000True2000-03-11 00:08:29.7602000-03-22 00:00:43.20010 days 23:52:13.440000XRB3 days 22:37:044 days 07:30:24
.................................
306987.7568-32.232177010010True1999-10-11 13:47:08.1601999-10-11 14:19:32.1600 days 00:32:24AGN0 days 00:06:400 days 00:06:40
3070150.6550-58.629515000090True1993-08-05 18:31:58.0801993-08-05 19:12:43.2000 days 00:40:45.120000GS0 days 00:06:560 days 00:05:52
3071335.1555-24.734966013000True1998-11-16 16:24:48.9601998-11-18 17:34:39.3602 days 01:09:50.400000NGS0 days 14:38:240 days 00:00:00
3072333.8738-17.822377002000True1999-11-17 04:45:41.7601999-11-19 01:35:54.2401 days 20:50:12.480000AGN0 days 16:30:240 days 00:00:00
3073244.9340-15.849340022010True1993-08-16 08:40:42.2401993-08-16 10:20:21.1200 days 01:39:38.880000XRB0 days 00:53:040 days 00:00:00
\n", "

3074 rows × 10 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start \\\n", "0 288.0116 5.0542 48002000 True 2000-03-23 05:52:13.440 \n", "1 253.5540 39.8158 78002000 True 2000-03-01 12:08:12.480 \n", "2 14.3115 -22.4431 77036000 True 1999-12-03 11:50:38.400 \n", "3 203.8856 -34.3378 77003000 True 1999-07-19 00:40:19.200 \n", "4 266.4864 -28.9429 48004000 True 2000-03-11 00:08:29.760 \n", "... ... ... ... ... ... \n", "3069 87.7568 -32.2321 77010010 True 1999-10-11 13:47:08.160 \n", "3070 150.6550 -58.6295 15000090 True 1993-08-05 18:31:58.080 \n", "3071 335.1555 -24.7349 66013000 True 1998-11-16 16:24:48.960 \n", "3072 333.8738 -17.8223 77002000 True 1999-11-17 04:45:41.760 \n", "3073 244.9340 -15.8493 40022010 True 1993-08-16 08:40:42.240 \n", "\n", " end duration target_category \\\n", "0 2000-04-04 00:00:25.920 11 days 18:08:12.480000 XRB \n", "1 2000-03-11 00:00:51.840 9 days 11:52:39.360000 AGN \n", "2 1999-12-15 19:00:28.800 12 days 07:09:50.400000 AGN \n", "3 1999-07-29 15:40:27.840 10 days 15:00:08.640000 AGN \n", "4 2000-03-22 00:00:43.200 10 days 23:52:13.440000 XRB \n", "... ... ... ... \n", "3069 1999-10-11 14:19:32.160 0 days 00:32:24 AGN \n", "3070 1993-08-05 19:12:43.200 0 days 00:40:45.120000 GS \n", "3071 1998-11-18 17:34:39.360 2 days 01:09:50.400000 NGS \n", "3072 1999-11-19 01:35:54.240 1 days 20:50:12.480000 AGN \n", "3073 1993-08-16 10:20:21.120 0 days 01:39:38.880000 XRB \n", "\n", " sis_exposure gis_exposure \n", "0 5 days 07:25:04 5 days 14:47:28 \n", "1 4 days 00:45:04 5 days 04:32:16 \n", "2 4 days 08:14:08 5 days 00:42:40 \n", "3 4 days 02:03:12 4 days 16:33:20 \n", "4 3 days 22:37:04 4 days 07:30:24 \n", "... ... ... \n", "3069 0 days 00:06:40 0 days 00:06:40 \n", "3070 0 days 00:06:56 0 days 00:05:52 \n", "3071 0 days 14:38:24 0 days 00:00:00 \n", "3072 0 days 16:30:24 0 days 00:00:00 \n", "3073 0 days 00:53:04 0 days 00:00:00 \n", "\n", "[3074 rows x 10 columns]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "asca.all_obs_info" ] }, { "cell_type": "code", "execution_count": 33, "id": "2e4b8db1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usableproprietary_usablestartenddurationtarget_categoryjemx1_exposurejemx2_exposureisgri_exposurepicsit_exposurespi_exposurescw_ver
0294.97232-89.65222218500510010TrueTrue2020-01-22 20:40:39.7513432020-01-22 22:17:46.7546760 days 01:37:07.003333MISC0 days 01:36:120 days 01:36:120 days 01:36:100 days 00:28:290 days 01:36:12001
1117.47166-89.57144218600510010TrueTrue2020-01-25 11:40:02.8818112020-01-25 12:38:50.8838290 days 00:58:48.002018MISC0 days 00:57:570 days 00:57:570 days 00:57:550 days 00:57:270 days 00:57:57001
2166.19875-89.54264229200810010TrueTrue2020-11-02 08:42:24.9280422020-11-02 09:41:14.9300220 days 00:58:50.001980MISC0 days 00:58:000 days 00:58:000 days 00:57:440 days 00:57:290 days 00:58:00001
3130.24533-89.51414209300110010TrueTrue2019-05-21 07:51:13.0395542019-05-21 08:24:33.0411230 days 00:33:20.001569MISC0 days 00:32:250 days 00:32:250 days 00:32:230 days 00:32:040 days 00:32:25001
4125.61337-89.47669209300370010TrueTrue2019-05-21 22:51:03.0821452019-05-21 23:24:24.0837150 days 00:33:21.001570MISC0 days 00:32:300 days 00:32:300 days 00:32:280 days 00:32:020 days 00:32:30001
................................................
198281341.9090388.90408260500570010TrueTrue2023-02-12 08:47:47.3889302023-02-12 09:17:47.3900840 days 00:30:00.001154MISC0 days 00:29:110 days 00:29:110 days 00:29:100 days 00:28:440 days 00:29:11001
198282153.5011688.91008260500660010TrueTrue2023-02-12 13:36:15.4003192023-02-12 14:06:15.4015520 days 00:30:00.001233MISC0 days 00:28:400 days 00:28:400 days 00:29:090 days 00:00:000 days 00:29:10001
198283213.6487989.06850260900540010TrueTrue2023-02-22 18:05:50.9788842023-02-22 19:29:20.9820450 days 01:23:30.003161MISC0 days 01:21:280 days 01:21:000 days 01:21:090 days 00:28:330 days 01:20:57001
198284268.1181689.32161260700500010TrueTrue2023-02-17 10:30:57.6953282023-02-17 11:00:58.6964760 days 00:30:01.001148MISC0 days 00:29:100 days 00:29:100 days 00:29:100 days 00:28:470 days 00:29:12001
1982856.6206789.56795261300370010TrueTrue2023-03-05 00:34:23.6400852023-03-05 01:04:23.6411700 days 00:30:00.001085MISC0 days 00:29:040 days 00:29:040 days 00:29:480 days 00:29:190 days 00:29:52001
\n", "

198286 rows × 15 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable proprietary_usable \\\n", "0 294.97232 -89.65222 218500510010 True True \n", "1 117.47166 -89.57144 218600510010 True True \n", "2 166.19875 -89.54264 229200810010 True True \n", "3 130.24533 -89.51414 209300110010 True True \n", "4 125.61337 -89.47669 209300370010 True True \n", "... ... ... ... ... ... \n", "198281 341.90903 88.90408 260500570010 True True \n", "198282 153.50116 88.91008 260500660010 True True \n", "198283 213.64879 89.06850 260900540010 True True \n", "198284 268.11816 89.32161 260700500010 True True \n", "198285 6.62067 89.56795 261300370010 True True \n", "\n", " start end \\\n", "0 2020-01-22 20:40:39.751343 2020-01-22 22:17:46.754676 \n", "1 2020-01-25 11:40:02.881811 2020-01-25 12:38:50.883829 \n", "2 2020-11-02 08:42:24.928042 2020-11-02 09:41:14.930022 \n", "3 2019-05-21 07:51:13.039554 2019-05-21 08:24:33.041123 \n", "4 2019-05-21 22:51:03.082145 2019-05-21 23:24:24.083715 \n", "... ... ... \n", "198281 2023-02-12 08:47:47.388930 2023-02-12 09:17:47.390084 \n", "198282 2023-02-12 13:36:15.400319 2023-02-12 14:06:15.401552 \n", "198283 2023-02-22 18:05:50.978884 2023-02-22 19:29:20.982045 \n", "198284 2023-02-17 10:30:57.695328 2023-02-17 11:00:58.696476 \n", "198285 2023-03-05 00:34:23.640085 2023-03-05 01:04:23.641170 \n", "\n", " duration target_category jemx1_exposure jemx2_exposure \\\n", "0 0 days 01:37:07.003333 MISC 0 days 01:36:12 0 days 01:36:12 \n", "1 0 days 00:58:48.002018 MISC 0 days 00:57:57 0 days 00:57:57 \n", "2 0 days 00:58:50.001980 MISC 0 days 00:58:00 0 days 00:58:00 \n", "3 0 days 00:33:20.001569 MISC 0 days 00:32:25 0 days 00:32:25 \n", "4 0 days 00:33:21.001570 MISC 0 days 00:32:30 0 days 00:32:30 \n", "... ... ... ... ... \n", "198281 0 days 00:30:00.001154 MISC 0 days 00:29:11 0 days 00:29:11 \n", "198282 0 days 00:30:00.001233 MISC 0 days 00:28:40 0 days 00:28:40 \n", "198283 0 days 01:23:30.003161 MISC 0 days 01:21:28 0 days 01:21:00 \n", "198284 0 days 00:30:01.001148 MISC 0 days 00:29:10 0 days 00:29:10 \n", "198285 0 days 00:30:00.001085 MISC 0 days 00:29:04 0 days 00:29:04 \n", "\n", " isgri_exposure picsit_exposure spi_exposure scw_ver \n", "0 0 days 01:36:10 0 days 00:28:29 0 days 01:36:12 001 \n", "1 0 days 00:57:55 0 days 00:57:27 0 days 00:57:57 001 \n", "2 0 days 00:57:44 0 days 00:57:29 0 days 00:58:00 001 \n", "3 0 days 00:32:23 0 days 00:32:04 0 days 00:32:25 001 \n", "4 0 days 00:32:28 0 days 00:32:02 0 days 00:32:30 001 \n", "... ... ... ... ... \n", "198281 0 days 00:29:10 0 days 00:28:44 0 days 00:29:11 001 \n", "198282 0 days 00:29:09 0 days 00:00:00 0 days 00:29:10 001 \n", "198283 0 days 01:21:09 0 days 00:28:33 0 days 01:20:57 001 \n", "198284 0 days 00:29:10 0 days 00:28:47 0 days 00:29:12 001 \n", "198285 0 days 00:29:48 0 days 00:29:19 0 days 00:29:52 001 \n", "\n", "[198286 rows x 15 columns]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inte.all_obs_info" ] }, { "cell_type": "markdown", "id": "a0e9870a", "metadata": {}, "source": [ "### Filter Array" ] }, { "cell_type": "markdown", "id": "7815612c", "metadata": {}, "source": [ "This is unlikely to ever be accessed directly by the user, but is what defines the observations that a mission currently deems to be accepted/selected. It is a boolean numpy array with a length equal to the number of observations in the all_obs_info dataframe, a `True` value means the observation is accepted and a `False` value means it is excluded; all observations start off as accepted.\n", "\n", "Various filtering methods can be used to adjust the filter array and set the observations which are to be downloaded/included in a DAXA archive, depending on your particular sample and science case. \n", "\n", "It is also possible to manually set this filter array, as is demonstrated below:" ] }, { "cell_type": "code", "execution_count": 34, "id": "a7a3b494", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ True, True, True, ..., True, True, True])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The filter array defaults to all True, so all observations are accepted\n", "xm.filter_array" ] }, { "cell_type": "code", "execution_count": 35, "id": "7eb783f5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([False, True, True, ..., True, True, True])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Demonstrating manually setting a filter array - it must be boolean and be the same length as the\n", "# 'all_obs_info' table, otherewise it will not be accepted\n", "demo_filt_arr = np.full(len(xm.all_obs_info), True)\n", "demo_filt_arr[0] = False\n", "xm.filter_array = demo_filt_arr\n", "xm.filter_array" ] }, { "cell_type": "markdown", "id": "dba8d57c", "metadata": {}, "source": [ "## Selecting relevant observations" ] }, { "cell_type": "markdown", "id": "77b245b6", "metadata": {}, "source": [ "Few users will wish to download, process, and maintain ___complete___ observation archives, preferring to just locate data that may be relevant to the sources that they are studying. This can be achieved with the use of several filtering methods which are built into all DAXA missions.\n", "\n", "Here we introduce the different filtering methods that are currently implemented for DAXA missions, but we do not provide detailed demonstrations of their use; that is [left to specific case studies](../../tutorials.casestudies.html) designed to show scientists with different needs how DAXA can be used in ways that are most relevant to them." ] }, { "cell_type": "markdown", "id": "bd2243d6", "metadata": {}, "source": [ "### Filtering on ObsID" ] }, { "cell_type": "markdown", "id": "1d9fb360", "metadata": {}, "source": [ "The most basic filtering method available can be used when you already know which observation(s) you are interested in - if you have the ObsID(s) you can just pass them to the `filter_on_obs_ids` method, and select only that data:" ] }, { "cell_type": "code", "execution_count": 36, "id": "db1f04f5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_obs_ids in module daxa.mission.base:\n", "\n", "filter_on_obs_ids(allowed_obs_ids: Union[str, List[str]]) method of daxa.mission.xmm.XMMPointed instance\n", " This filtering method will select only observations with IDs specified by the allowed_obs_ids argument.\n", " \n", " Please be aware that filtering methods are cumulative, so running another method will not remove the\n", " filtering that has already been applied, you can use the reset_filter method for that.\n", " \n", " :param str/List[str] allowed_obs_ids: The ObsID (or list of ObsIDs) that you wish to be let\n", " through the filter.\n" ] } ], "source": [ "help(xm.filter_on_obs_ids)" ] }, { "cell_type": "markdown", "id": "fe57b124", "metadata": {}, "source": [ "### Filtering on position" ] }, { "cell_type": "markdown", "id": "7cc440a9", "metadata": {}, "source": [ "Arguably the most useful type of filtering supported by DAXA missions, the `filter_on_positions` method allows us to search for observations that are relevant to specific positions on the sky (generally these will represent particular objects). A search can be performed either for a single position, or for a whole sample.\n", "\n", "The `search_distance` argument controls how close the central coordinate of an observation must be to a search position for that observation to be accepted. The default search positions are defined by the field-of-view of the telescope (if a mission has multiple instruments with different field-of-views then each instrument will be searched with the correct field-of-view). The user may also specify their own search distance value (or values), and it is also possible to specify a different search distance for every position.\n", "\n", "The `return_pos_obs_info` argument controls whether a dataframe is returned that links passed positions to particular observations that are relevant to them - this dataframe would not include positions that are determined to have no relevant observations." ] }, { "cell_type": "code", "execution_count": 37, "id": "27cf162d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_positions in module daxa.mission.base:\n", "\n", "filter_on_positions(positions: Union[list, numpy.ndarray, astropy.coordinates.sky_coordinate.SkyCoord], search_distance: Union[astropy.units.quantity.Quantity, float, int, list, numpy.ndarray, dict] = None, return_pos_obs_info: bool = False) -> Optional[pandas.core.frame.DataFrame] method of daxa.mission.xmm.XMMPointed instance\n", " This method allows you to filter the observations available for a mission based on a set of coordinates for\n", " which you wish to locate observations. The method searches for observations by the current mission that have\n", " central coordinates within the distance set by the search_distance argument.\n", " \n", " Please be aware that filtering methods are cumulative, so running another method will not remove the\n", " filtering that has already been applied, you can use the reset_filter method for that.\n", " \n", " :param list/np.ndarray/SkyCoord positions: The positions for which you wish to search for observations. They\n", " can be passed either as a list or nested list (i.e. [r, d] OR [[r1, d1], [r2, d2]]), a numpy array, or\n", " an already defined SkyCoord. If a list or array is passed then the coordinates are assumed to be in\n", " degrees, and the default mission frame will be used.\n", " :param Quantity/float/int/list/np.ndarray/dict search_distance: The distance within which to search for\n", " observations by this mission. Distance may be specified either as an Astropy Quantity that can be\n", " converted to degrees (a float/integer will be assumed to be in units of degrees), as a dictionary of\n", " quantities/floats/ints where the keys are names of different instruments (possibly with different field\n", " of views), or as a non-scalar Quantity, list, or numpy array with one entry per set of coordinates (for\n", " when you wish to use different search distances for each object). The default is None, in which case a\n", " value of 1.2 times the approximate field of view defined for each instrument will be used; where different\n", " instruments have different FoVs, observation searches will be undertaken on an instrument-by-instrument\n", " basis using the different field of views.\n", " :param bool return_pos_obs_info: Allows this method to return information (in the form of a Pandas dataframe)\n", " which identifies the positions which have been associated with observations, and the observations they have\n", " been associated with. Default is False.\n", " :return: If return_pos_obs_info is True, then a dataframe containing information on which ObsIDs are relevant\n", " to which positions will be returned. If return_pos_obs_info is False, then None will be returned.\n", " :rtype: Union[None,pd.DataFrame]\n" ] } ], "source": [ "help(xm.filter_on_positions)" ] }, { "cell_type": "markdown", "id": "6bb0374b", "metadata": {}, "source": [ "### Filtering on name" ] }, { "cell_type": "markdown", "id": "c1ad7495", "metadata": {}, "source": [ "If you are interested in data relevant to named objects, you can pass the name(s) to the `filter_on_name` method. It will use a lookup service (specifically Sesame), to locate coordinates for the object(s), and then pass that to the `filter_on_positions` method. \n", "\n", "Bear in mind that you are reliant on the lookup service having accurate central coordinates for the named object, so it could be worth checking with your own coordinates and using `filter_on_positions` directly if you can't find any observations!" ] }, { "cell_type": "code", "execution_count": 38, "id": "34659b01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_name in module daxa.mission.base:\n", "\n", "filter_on_name(object_name: Union[str, List[str]], search_distance: Union[astropy.units.quantity.Quantity, float, int, list, numpy.ndarray, dict] = None, parse_name: bool = False) method of daxa.mission.xmm.XMMPointed instance\n", " This method wraps the 'filter_on_positions' method, and allows you to filter the mission's observations so\n", " that it contains data on a single (or a list of) specific objects. The names are passed by the user, and\n", " then parsed into coordinates using the Sesame resolver. Those coordinates and the search distance are\n", " then used to find observations that might be relevant.\n", " \n", " :param str/List[str] object_name: The name(s) of objects you would like to search for.\n", " :param Quantity/float/int/list/np.ndarray/dict search_distance: The distance within which to search for\n", " observations by this mission. Distance may be specified either as an Astropy Quantity that can be\n", " converted to degrees (a float/integer will be assumed to be in units of degrees), as a dictionary of\n", " quantities/floats/ints where the keys are names of different instruments (possibly with different field\n", " of views), or as a non-scalar Quantity, list, or numpy array with one entry per set of coordinates (for\n", " when you wish to use different search distances for each object). The default is None, in which case a\n", " value of 1.2 times the approximate field of view defined for each instrument will be used; where different\n", " instruments have different FoVs, observation searches will be undertaken on an instrument-by-instrument\n", " basis using the different field of views.\n", " :param bool parse_name: Whether to attempt extracting the coordinates from the name by parsing with a regex.\n", " For objects catalog names that have J-coordinates embedded in their names, e.g.,\n", " 'CRTS SSS100805 J194428-420209', this may be much faster than a Sesame query for the same object name.\n" ] } ], "source": [ "help(xm.filter_on_name)" ] }, { "cell_type": "markdown", "id": "a65868bc", "metadata": {}, "source": [ "### Filtering on target type" ] }, { "cell_type": "markdown", "id": "b2a0c56c", "metadata": {}, "source": [ "It is possible to filter observations based on the type of object that was the original target of the observation. **Warning: this should be used with significant caution, as our object taxonomy may not be granular enough to represent all different types of astronomical objects, and conversions between the different target types used by different missions and our target types is imperfect!**\n", "\n", "Here we display the DAXA source type taxonomy, the short form codes on the left are what should be passed to the `filter_on_target_type` method - the user may pass either a single target type, or a list of them:" ] }, { "cell_type": "code", "execution_count": 39, "id": "4defee9e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "╒═══════════════╤═══════════════════════════════════════════════╕\n", "│ Target Type │ Description │\n", "╞═══════════════╪═══════════════════════════════════════════════╡\n", "│ AGN │ Active Galaxies and Quasars │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ BLZ │ Blazars │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ CV │ Cataclysmic Variables │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ CAL │ Calibration Observation (possibly of objects) │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ EGS │ Extragalactic Surveys │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ GCL │ Galaxy Clusters │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ GS │ Galactic Survey │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ ASK │ All Sky Survey │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ MAG │ Magnetars and Rotation-Powered Pulsars │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ NGS │ Normal and Starburst Galaxies │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ NS │ Neutron stars and Black Holes │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ STR │ Non-degenerate and White Dwarf Stars │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ OAGN │ Obscured Active Galaxies and Quasars │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ SNE │ Non-ToO Supernovae │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ SNR │ Supernova Remnants and Galactic diffuse │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ SOL │ Solar System Observations │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ ULX │ Ultra-luminous X-ray Sources │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ XRB │ X-ray Binaries │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ TOO │ Targets of Opportunity │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ EGE │ Extended galactic or extragalactic │\n", "├───────────────┼───────────────────────────────────────────────┤\n", "│ MISC │ Catch-all for other sources │\n", "╘═══════════════╧═══════════════════════════════════════════════╛\n" ] } ], "source": [ "xm.show_allowed_target_types()" ] }, { "cell_type": "code", "execution_count": 40, "id": "dc81d777", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_target_type in module daxa.mission.base:\n", "\n", "filter_on_target_type(target_type: Union[str, List[str]]) method of daxa.mission.xmm.XMMPointed instance\n", " This method allows the filtering of observations based on what type of object their target source was. It\n", " is only supported for missions that have that data available, and will raise an exception for those\n", " missions that don't support this filtering.\n", " \n", " WARNING: You should not trust these target types without question, they are the result of crude mappings, and\n", " some may be incorrect. They also don't take into account sources that might serendipitously appear in\n", " a particular observation.\n", " \n", " :param str/List[str] target_type: The types of target source you would like to find observations of. For\n", " allowed types, please use the 'show_allowed_target_types' method. Can either be a single type, or\n", " a list of types.\n" ] } ], "source": [ "help(xm.filter_on_target_type)" ] }, { "cell_type": "markdown", "id": "70eb1e03", "metadata": {}, "source": [ "### Filtering on time" ] }, { "cell_type": "markdown", "id": "dae2f675", "metadata": {}, "source": [ "Observations can be filtered on ___when___ they were taken, with the user specifying a time frame (defined by a start and end date-time) from which they wish to select observations. By default any observation that coincides with that time window (either starting in it, ending in it, or starting and ending outside but being taken during it) will be selected - it is also possible to require that an observation must have taken place entirely within the time window.\n", "\n", "___Warning: Observations of survey missions like eRASS1DE and ROSATAllSky may repeatedly visit a particular location, and all that data may be incorporated as one observation, meaning that there may not constant coverage in such an observation___" ] }, { "cell_type": "code", "execution_count": 41, "id": "120cf282", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_time in module daxa.mission.base:\n", "\n", "filter_on_time(start_datetime: datetime.datetime, end_datetime: datetime.datetime, over_run: bool = True) method of daxa.mission.xmm.XMMPointed instance\n", " This method allows you to filter observations for this mission based on when they were taken. A start\n", " and end time are passed by the user, and observations that fall within that window are allowed through\n", " the filter. The exact behaviour of this filtering method is controlled by the over_run argument, if set\n", " to True then observations with a start or end within the search window will be selected, but if False\n", " then only observations with a start AND end within the window are selected.\n", " \n", " Please be aware that filtering methods are cumulative, so running another method will not remove the\n", " filtering that has already been applied, you can use the reset_filter method for that.\n", " \n", " :param datetime start_datetime: The beginning of the time window in which to search for observations.\n", " :param datetime end_datetime: The end of the time window in which to search for observations.\n", " :param bool over_run: This controls whether selected observations have to be entirely within the passed\n", " time window or whether either a start or end time can be within the search window. If set\n", " to True then observations with a start or end within the search window will be selected, but if False\n", " then only observations with a start AND end within the window are selected. Default is True.\n" ] } ], "source": [ "help(xm.filter_on_time)" ] }, { "cell_type": "markdown", "id": "6523aa28", "metadata": {}, "source": [ "### Filtering on time & position" ] }, { "cell_type": "markdown", "id": "a2a04005", "metadata": {}, "source": [ "A method of filtering that combines positional and temporal filtering, so that observations of a particular position, within a particular time window, can be located. The user ___does not___ have to filter for one position-time combination at a time - they may pass a set of positions, with a corresponding set of time windows, and find all the observations that fulfill those requirements.\n", "\n", "The `filter_on_positions_at_time` method supports the same arguments passed to `filter_on_positions` and `filter_on_time`, which set search distances from the passed coordinate (`search_distance`), whether a dataframe linking particular input coordinates to particular selected observations (`return_obs_info`), and whether only observations that start and end within the specified time period should be considered (`over_run`). " ] }, { "cell_type": "code", "execution_count": 42, "id": "656fdf7b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on method filter_on_positions_at_time in module daxa.mission.base:\n", "\n", "filter_on_positions_at_time(positions: Union[list, numpy.ndarray, astropy.coordinates.sky_coordinate.SkyCoord], start_datetimes: Union[numpy.ndarray, datetime.datetime], end_datetimes: Union[numpy.ndarray, datetime.datetime], search_distance: Union[astropy.units.quantity.Quantity, float, int, list, numpy.ndarray, dict] = None, return_obs_info: bool = False, over_run: bool = True) method of daxa.mission.xmm.XMMPointed instance\n", " This method allows you to filter the observations available for a mission based on a set of coordinates for\n", " which you wish to locate observations that were taken within a certain time frame. The method spatially\n", " searches for observations that have central coordinates within the distance set by the search_distance\n", " argument, and temporally by start and end times passed by the user; and observations that fall within that\n", " window are allowed through the filter.\n", " \n", " The exact behaviour of the temporal filtering method is controlled by the over_run argument, if set\n", " to True then observations with a start or end within the search window will be selected, but if False\n", " then only observations with a start AND end within the window are selected.\n", " \n", " Please be aware that filtering methods are cumulative, so running another method will not remove the\n", " filtering that has already been applied, you can use the reset_filter method for that.\n", " \n", " :param list/np.ndarray/SkyCoord positions: The positions for which you wish to search for observations. They\n", " can be passed either as a list or nested list (i.e. [r, d] OR [[r1, d1], [r2, d2]]), a numpy array, or\n", " an already defined SkyCoord. If a list or array is passed then the coordinates are assumed to be in\n", " degrees, and the default mission frame will be used.\n", " :param np.array(datetime)/datetime start_datetimes: The beginnings of time windows in which to search for\n", " observations. There should be one entry per position passed.\n", " :param np.array(datetime)/datetime end_datetimes: The endings of time windows in which to search for\n", " observations. There should be one entry per position passed.\n", " :param Quantity/float/int/list/np.ndarray/dict search_distance: The distance within which to search for\n", " observations by this mission. Distance may be specified either as an Astropy Quantity that can be\n", " converted to degrees (a float/integer will be assumed to be in units of degrees), as a dictionary of\n", " quantities/floats/ints where the keys are names of different instruments (possibly with different field\n", " of views), or as a non-scalar Quantity, list, or numpy array with one entry per set of coordinates (for\n", " when you wish to use different search distances for each object). The default is None, in which case a\n", " value of 1.2 times the approximate field of view defined for each instrument will be used; where different\n", " instruments have different FoVs, observation searches will be undertaken on an instrument-by-instrument\n", " basis using the different field of views.\n", " :param bool return_obs_info: Allows this method to return information (in the form of a Pandas dataframe)\n", " which identifies the positions which have been associated with observations, in the specified time\n", " frame, and the observations they have been associated with. Default is False.\n", " :param bool over_run: This controls whether selected observations have to be entirely within the passed\n", " time window or whether either a start or end time can be within the search window. If set\n", " to True then observations with a start or end within the search window will be selected, but if False\n", " then only observations with a start AND end within the window are selected. Default is True.\n" ] } ], "source": [ "help(xm.filter_on_positions_at_time)" ] }, { "cell_type": "markdown", "id": "1dbe4908", "metadata": {}, "source": [ "## Downloading data" ] }, { "cell_type": "markdown", "id": "05d1c969", "metadata": {}, "source": [ "Once the user has decided upon a set of observations, for a particular mission, that are relevant to their research - the next step is often to download them. This section specifies what can be downloaded, and how to download it." ] }, { "cell_type": "markdown", "id": "5e791456", "metadata": {}, "source": [ "### What can be downloaded?" ] }, { "cell_type": "markdown", "id": "d0c6a6a5", "metadata": {}, "source": [ "The exact data that can be downloaded depends on what a particular mission has made available on their online archive - Event lists are available for all missions bar INTEGRAL, and most missions support the acquisition of pre-generated images, but not all (INTEGRAL and eROSITA CalPV) for instance).\n", "\n", "We make a distinction between 'raw' and 'pre-processed' data, which is necessarily fuzzy due to the disparate natures of the various data archives we have to deal with. Broadly speaking '**raw**' data means either absolutely raw files that need to be processed into initial event lists (the case with XMMPointed) or just event lists (uncleaned and pre-cleaned); '**pre-processed**' data includes pre-processed data products such as images, exposure maps, and background maps.\n", "\n", "**This means that the user can either set up an archive using the pre-processed data, or re-process data using DAXA interfaces to the various telescope backend software packages.**\n", "\n", "Pre-processed products are downloaded by default (in addition to the raw data), but when setting up an Archive you can choose between using pre-processed data or re-processing the raw data; if you do not wish to acquire pre-processed data products, you can pass `download_products=False` to the download method (see below). \n", "\n", "**Event lists are considered raw data (i.e. not pre-processed) for most missions, and will always be downloaded**" ] }, { "cell_type": "markdown", "id": "778e4abd", "metadata": {}, "source": [ "#### XMM-Newton" ] }, { "cell_type": "markdown", "id": "33cdd790", "metadata": {}, "source": [ "_Currently_ we only support the acquisition of raw data." ] }, { "cell_type": "markdown", "id": "c3a7357c", "metadata": {}, "source": [ "#### Chandra" ] }, { "cell_type": "markdown", "id": "400cf94a", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Full FoV image (if an Archive is constructed including pre-processed Chandra data, this is what is included).\n", "* High-resolution central image." ] }, { "cell_type": "markdown", "id": "32e8acdf", "metadata": {}, "source": [ "#### eROSITA All-Sky DR1 (German Half)" ] }, { "cell_type": "markdown", "id": "f9e2089d", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images\n", "* Exposure maps\n", "* Background maps" ] }, { "cell_type": "markdown", "id": "be40bd92", "metadata": {}, "source": [ "#### eROSITA Calibration and Performance Verification" ] }, { "cell_type": "markdown", "id": "c736bede", "metadata": {}, "source": [ "No pre-processed data products are available, only event lists." ] }, { "cell_type": "markdown", "id": "48e40bfb", "metadata": {}, "source": [ "#### NuSTAR-Pointed" ] }, { "cell_type": "markdown", "id": "7187ccad", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images" ] }, { "cell_type": "markdown", "id": "6a0f577f", "metadata": {}, "source": [ "#### Swift" ] }, { "cell_type": "markdown", "id": "78484caa", "metadata": {}, "source": [ "The following data products can be downloaded (_no products are available for BAT, only raw data_):\n", "\n", "* Images (XRT and UVOT)\n", "* Exposure maps (XRT and UVOT)" ] }, { "cell_type": "markdown", "id": "6baacffa", "metadata": {}, "source": [ "#### ROSAT All-Sky Survey" ] }, { "cell_type": "markdown", "id": "71591752", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images\n", "* Exposure maps" ] }, { "cell_type": "markdown", "id": "9e13fd47", "metadata": {}, "source": [ "#### ROSAT-Pointed" ] }, { "cell_type": "markdown", "id": "cbc75231", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images\n", "* Exposure maps (only PSPC, no HRI)" ] }, { "cell_type": "markdown", "id": "00778b5e", "metadata": {}, "source": [ "#### Suzaku" ] }, { "cell_type": "markdown", "id": "b6430514", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images" ] }, { "cell_type": "markdown", "id": "9b4c4021", "metadata": {}, "source": [ "#### ASCA" ] }, { "cell_type": "markdown", "id": "cdfa6a1b", "metadata": {}, "source": [ "The following data products can be downloaded:\n", "\n", "* Images (SIS0 + SIS1, and GIS2 + GIS3)\n", "* Exposure maps\n", "* Lightcurves (not included in Archive constructed from pre-processed data)\n", "* Spectra (not included in Archive constructed from pre-processed data)" ] }, { "cell_type": "markdown", "id": "e1960d01", "metadata": {}, "source": [ "#### INTEGRAL-Pointed" ] }, { "cell_type": "markdown", "id": "6802504c", "metadata": {}, "source": [ "No pre-processed data (nor even event lists) are available to download for INTEGRAL, only raw data and calibration files." ] }, { "cell_type": "markdown", "id": "0f09143d", "metadata": {}, "source": [ "### How can it be downloaded?" ] }, { "cell_type": "markdown", "id": "2046bc29", "metadata": {}, "source": [ "The selected data can be downloaded using the `download` method that is built into each mission class.\n", "\n", "If multiple observations have been selected, then downloads can be multi-threaded; this can sometimes offer a speed benefit, though only if the archive and user internet connections are not saturated by the download. The number of cores used can be set via the `num_cores` argument; by defualt this is set to the NUM_CORES DAXA constant, which can either be set by the user in the DAXA configuration file/by setting the value of daxa.NUM_CORES, or will be 90% of the cores of the system.\n", "\n", "**Note that it is not necessary to manually activate the download method if you will be creating a DAXA Archive from the filtered mission objects, as that will be done on archive initialisation - [see the Archive tutorial for more information.](archives.html)**\n", "\n", "Here we demonstrate a simple XMM download, as well as a Chandra download that includes pre-generated images (standard Chandra reprocessing scripts can be used on this downloaded data):" ] }, { "cell_type": "code", "execution_count": 43, "id": "27f26c00", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading XMM-Newton Pointed data: 100%|██████████████████████████████████████| 1/1 [00:32<00:00, 32.13s/it]\n", "Downloading Chandra data: 100%|█████████████████████████████████████████████████| 1/1 [00:31<00:00, 31.23s/it]\n" ] } ], "source": [ "xm.filter_on_obs_ids('0201903501')\n", "xm.download(num_cores=1)\n", "\n", "ch.filter_on_obs_ids('3205')\n", "ch.download(num_cores=1, download_products=True)" ] }, { "cell_type": "markdown", "id": "8fe9ac7e", "metadata": {}, "source": [ "## Getting paths to downloaded mission data products" ] }, { "cell_type": "markdown", "id": "c15eca44", "metadata": {}, "source": [ "If pre-processed data have been downloaded, it is possible to use methods built into the mission class to retrieve the paths to various data products. **If you intend on using an XGA archive, using these methods should not be necessary** as the data will be moved to the Archive processed data storage structure, but it may still be useful if you just wish to use DAXA to download data.\n", "\n", "There are four different get methods:\n", "\n", "* `get_evt_list_path` - to retrieve event lists.\n", "* `get_image_path` - to retrieve images.\n", "* `get_expmap_path` - to retrieve exposure maps.\n", "* `get_background_path` - to retrieve background maps.\n", "\n", "They are very easy to use - only the ObsID, instrument (in most cases, not necessary if the mission has only one instrument per ObsID), and lower/upper energy bound (for images, exposure maps, and background maps - though if the products only have one energy band it will be completed automatically) need to be provided. They also provide helpful, detailed, error messages if what is requested isn't possible.\n", "\n", "Here we retrive the path to the event list (note that we do not need to pass the instrument name, as Chandra has only one per ObsID):" ] }, { "cell_type": "code", "execution_count": 44, "id": "4e51a101", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/Users/dt237/code/DAXA/docs/source/notebooks/tutorials/daxa_output/chandra_raw/3205/primary/acisf03205N006_evt2.fits'" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch.get_evt_list_path('3205')" ] }, { "cell_type": "markdown", "id": "eb142475", "metadata": {}, "source": [ "We can also retrieve the path to the full-FoV image (again we don't need to pass instrument in this specific instance, nor do we need to pass energy bounds because Chandra only supplies one): " ] }, { "cell_type": "code", "execution_count": 45, "id": "a94eae60", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/Users/dt237/code/DAXA/docs/source/notebooks/tutorials/daxa_output/chandra_raw/3205/primary/acisf03205N006_full_img2.fits'" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch.get_image_path('3205')" ] }, { "cell_type": "markdown", "id": "4b2d4b05", "metadata": {}, "source": [ "A more typical way of using this function would be this:" ] }, { "cell_type": "code", "execution_count": 46, "id": "43a5bbcd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/Users/dt237/code/DAXA/docs/source/notebooks/tutorials/daxa_output/chandra_raw/3205/primary/acisf03205N006_full_img2.fits'" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch.get_image_path('3205', Quantity(0.5, 'keV'), Quantity(7, 'keV'), 'ACIS-I')" ] }, { "cell_type": "markdown", "id": "7cbc8389", "metadata": {}, "source": [ "The get methods for exposure and background map paths operate identically to the image path method, though will show an error for Chandra:" ] }, { "cell_type": "code", "execution_count": 47, "id": "7609dc16", "metadata": {}, "outputs": [ { "ename": "PreProcessedNotSupportedError", "evalue": "This mission (Chandra) does not support the download of pre-processed exposure maps, so a path cannot be provided. ", "output_type": "error", "traceback": [ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[0;31mPreProcessedNotSupportedError\u001B[0m Traceback (most recent call last)", "Cell \u001B[0;32mIn [47], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mch\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_expmap_path\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43m3205\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mQuantity\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m0.5\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mkeV\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mQuantity\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m7\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mkeV\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mACIS-I\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\n", "File \u001B[0;32m~/code/DAXA/daxa/mission/base.py:2034\u001B[0m, in \u001B[0;36mBaseMission.get_expmap_path\u001B[0;34m(self, obs_id, lo_en, hi_en, inst)\u001B[0m\n\u001B[1;32m 2022\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 2023\u001B[0m \u001B[38;5;124;03mA get method that provides the path to a downloaded pre-generated exposure map for the current mission (if\u001B[39;00m\n\u001B[1;32m 2024\u001B[0m \u001B[38;5;124;03mavailable). This method will not work if pre-processed data have not been downloaded.\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 2031\u001B[0m \u001B[38;5;124;03m:rtype: str\u001B[39;00m\n\u001B[1;32m 2032\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 2033\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_template_exp_name \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[0;32m-> 2034\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m PreProcessedNotSupportedError(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mThis mission (\u001B[39m\u001B[38;5;132;01m{m}\u001B[39;00m\u001B[38;5;124m) does not support the download of pre-processed \u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 2035\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mexposure maps, so a path cannot be \u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 2036\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mprovided.\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;241m.\u001B[39mformat(m\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpretty_name))\n\u001B[1;32m 2038\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m lo_en \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m 2039\u001B[0m \u001B[38;5;66;03m# We make sure that the provided energy bounds are in keV\u001B[39;00m\n\u001B[1;32m 2040\u001B[0m lo_en \u001B[38;5;241m=\u001B[39m lo_en\u001B[38;5;241m.\u001B[39mto(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mkeV\u001B[39m\u001B[38;5;124m'\u001B[39m)\n", "\u001B[0;31mPreProcessedNotSupportedError\u001B[0m: This mission (Chandra) does not support the download of pre-processed exposure maps, so a path cannot be provided. " ] } ], "source": [ "ch.get_expmap_path('3205', Quantity(0.5, 'keV'), Quantity(7, 'keV'), 'ACIS-I')" ] }, { "cell_type": "markdown", "id": "4788610c", "metadata": {}, "source": [ "## Saving mission state" ] }, { "cell_type": "markdown", "id": "f8304146", "metadata": {}, "source": [ "It is possible to save the current 'state' of a mission object to a file - which in turn can be used to reload a mission class and have it be in that same state. This is primarily used by internal DAXA methods, to allow saved archives to reinstate their constituent mission classes when they are loaded back in.\n", "\n", "However, it is also possible to do this manually, in order to reload missions as they were when they were saved. The save file could also be shared with other users, to allow them to create a mission in the same state.\n", "\n", "**The state of the mission includes the filtering procedures performed upon it, and the current filtered data** - this means that the observations selected when the mission was saved will be reloaded exactly, and the same filtering steps can be re-applied on reload to update the mission (if more observations have become available).\n", "\n", "Saving a mission state is simple - call the `save()` method and pass a root storage directory and optionally a file name (if this is not supplied the save file will be the mission name + '\\_state.json'):" ] }, { "cell_type": "code", "execution_count": 48, "id": "f5daa8b5", "metadata": {}, "outputs": [], "source": [ "xm.save(\"demo_save/\", \"demo_xmm_save.json\")" ] }, { "cell_type": "markdown", "id": "87fabb31", "metadata": {}, "source": [ "A mission can then be reinstated from the file on declaration:" ] }, { "cell_type": "code", "execution_count": 49, "id": "1fca5913", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/xmm.py:83: UserWarning: 140 of the 17701 observations located for this mission have been removed due to NaN RA or Dec values\n", " self._fetch_obs_info()\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDstartscience_usabledurationproprietary_end_daterevolutionproprietary_usableend
3527149.592285-11.059702019035012004-06-17 10:38:28True0 days 04:08:332004-06-17828True2004-06-17 14:47:01
\n", "
" ], "text/plain": [ " ra dec ObsID start science_usable \\\n", "3527 149.592285 -11.0597 0201903501 2004-06-17 10:38:28 True \n", "\n", " duration proprietary_end_date revolution proprietary_usable \\\n", "3527 0 days 04:08:33 2004-06-17 828 True \n", "\n", " end \n", "3527 2004-06-17 14:47:01 " ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reinstated_xm = XMMPointed(save_file_path=\"demo_save/demo_xmm_save.json\")\n", "reinstated_xm.filtered_obs_info" ] }, { "cell_type": "markdown", "id": "b31f37a1", "metadata": {}, "source": [ "If some time has passed since the mission state was saved, and you wish to re-run the original filtering procedures to check if new data are available, you can call the `update()` method." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.0" } }, "nbformat": 4, "nbformat_minor": 5 }