{ "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" ] }, { "metadata": { "ExecuteTime": { "end_time": "2025-03-14T03:05:36.013554Z", "start_time": "2025-03-14T03:05:33.857035Z" } }, "cell_type": "code", "source": [ "from datetime import date\n", "\n", "import numpy as np\n", "from astropy.units import Quantity\n", "\n", "from daxa.mission import MISS_INDEX, XMMPointed, Chandra, eRASS1DE, eROSITACalPV, NuSTARPointed, Swift, \\\n", " ROSATAllSky, ROSATPointed, ASCA, INTEGRALPointed, Suzaku, XRISMPointed" ], "id": "3b7785016dec59d5", "outputs": [], "execution_count": 1 }, { "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,\n", " 'xrism_pointed': daxa.mission.xrism.XRISMPointed}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "MISS_INDEX" ] }, { "cell_type": "markdown", "id": "f76aa35c", "metadata": {}, "source": [ "### XMM-Pointed" ] }, { "metadata": {}, "cell_type": "markdown", "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\n", "\n", "**IMPORTANT NOTE** - We have found that the configuration of some HPCs prevents the AstroQuery module (used as the default way to download XMM data) from connecting to the internet. The XMMPointed mission can also acquire observation information, and data, from the HEASARC archive. If AstroQuery fails with a connection problem, the mission will automatically failover to the HEASARC method, and the user may also manually set the data-acquisition method with the `use_heasarc` argument when setting up the mission." ], "id": "b249e21a9b6fac33" }, { "metadata": { "ExecuteTime": { "end_time": "2025-03-14T03:05:48.890156Z", "start_time": "2025-03-14T03:05:42.755507Z" } }, "cell_type": "code", "source": "xm = XMMPointed()", "id": "25d1df51003c33c5", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/xmm.py:106: UserWarning: 150 of the 18210 observations located for this mission have been removed due to NaN RA or Dec values\n", " self._fetch_obs_info()\n" ] } ], "execution_count": 2 }, { "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": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/nustar.py:108: UserWarning: 884 of the 5668 observations located for NuSTARPointed have been removed due to all instrument on-times being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "nu = NuSTARPointed()" ] }, { "cell_type": "markdown", "id": "de929e2e-b901-4b82-9506-61b36b18016c", "metadata": {}, "source": [ "### XRISM-Pointed" ] }, { "cell_type": "markdown", "id": "bdd2f37e-cb1d-4ede-8260-0135caab9f8a", "metadata": {}, "source": [ "This class is for acquiring XRISM 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. XRISM 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", "XRISM has two instruments that can observe simultaneously, but are fundamentally different in their purpose, design, and capabilities. \n", "\n", "The **RESOLVE** instrument has a very low spatial resolution (6x6 pixels, covering ~3 arcmin field of view), but has an exceptionally high spectral resolution; it is a micro-calorimeter instrument, and is more suited to high-resolution spectroscopy of extended objects than any grating spectrometer, both as you don't have to deal with line-broadening due to the dispersion of extended emission (a problem with RGS for instance) and because it has some spatial resolution.\n", "\n", "The **XTEND** instrument is a very wide field ($38\\times38$ arcmin) CCD spectro-imaging detector, with a much higher spatial resolution than RESOLVE, but vastly lower spectral resolution. The PSF size is typical of missions like Suzaku and ASCA (a bit larger than XMM, and much larger than Chandra).\n", "\n", "Values that can be passed to the `insts` argument of XRISMPointed on declaration (either as single strings or as part of a list):\n", "\n", "* RESOLVE\n", "* XTEND" ] }, { "cell_type": "code", "execution_count": 8, "id": "b1ce15d6-0541-4e06-8d20-7cf7a8cd4da6", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/xrism.py:122: UserWarning: 205 of the 421 observations located for XRISM Pointed have been removed due to all instrument exposures being zero.\n", " self._fetch_obs_info()\n" ] } ], "source": [ "xr = XRISMPointed()" ] }, { "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": 9, "id": "5c14a3e8", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/swift.py:122: UserWarning: 651 of the 373850 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 373850 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": 10, "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": 11, "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": 12, "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", "/Users/dt237/code/DAXA/daxa/mission/suzaku.py:297: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '['EGS' 'GS' 'EGS' ... 'GCL' 'GCL' 'EGS']' has dtype incompatible with int16, please explicitly cast to a compatible dtype first.\n", " rel_suzaku.loc[type_recog, 'target_category'] = rel_suzaku.loc[type_recog, 'target_category'].apply(\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": 13, "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": 14, "id": "4fe3792f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/integral.py:110: UserWarning: 241 of the 213970 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: 7986 of the 213970 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": 15, "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": 16, "id": "7af6f2f0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['PSPCB', 'PSPCC', 'HRI']\n", "['ACIS', 'HRC', '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": 17, "id": "74edb595", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['PSPCB', 'PSPCC', 'HRI']\n", "['ACIS', 'HRC']\n", "['ACIS']\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/chandra.py:182: UserWarning: Some instrument names were converted to alternative forms expected by this module, the instrument names are now; ACIS\n", " new_insts = super().check_inst_names(new_insts)\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": 18, "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": 19, "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': , 'HRC': }\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/td/gw9qkx6d3szb1nkt_cfvcbzm000vzl/T/ipykernel_56140/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": 20, "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": 21, "id": "b9c656d7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'PSPCB': ,\n", " 'PSPCC': ,\n", " 'HRI': }" ] }, "execution_count": 21, "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": 22, "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[22], 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:740\u001B[0m, in \u001B[0;36mBaseMission.preprocessed_energy_bands\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 737\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 738\u001B[0m \u001B[38;5;66;03m# which are energy bound\u001B[39;00m\n\u001B[1;32m 739\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--> 740\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 741\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 743\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 744\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 745\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 746\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 747\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": 23, "id": "7552e901", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'03-February-2025'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "date.today().strftime('%d-%B-%Y')" ] }, { "cell_type": "code", "execution_count": 24, "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
.................................
17981261.62187571.09397209408702012025-01-23 06:07:23True0 days 07:35:33NaT4601False2025-01-23 13:42:56
1798238.445500-1.02458309541910012025-01-22 17:42:20True0 days 10:50:002025-07-304601False2025-01-23 04:32:20
17983230.33370814.06958309425605012025-01-12 00:50:19True0 days 04:46:40NaT4596False2025-01-12 05:36:59
1798448.432667-18.11011109437705012025-01-23 23:59:23True1 days 03:48:20NaT4602False2025-01-25 03:47:43
17985291.83137565.56511109530107012025-01-25 05:31:05True0 days 08:03:202025-08-034602False2025-01-25 13:34:25
\n", "

17986 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", "17981 261.621875 71.093972 0940870201 2025-01-23 06:07:23 True \n", "17982 38.445500 -1.024583 0954191001 2025-01-22 17:42:20 True \n", "17983 230.333708 14.069583 0942560501 2025-01-12 00:50:19 True \n", "17984 48.432667 -18.110111 0943770501 2025-01-23 23:59:23 True \n", "17985 291.831375 65.565111 0953010701 2025-01-25 05:31:05 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", "17981 0 days 07:35:33 NaT 4601 False \n", "17982 0 days 10:50:00 2025-07-30 4601 False \n", "17983 0 days 04:46:40 NaT 4596 False \n", "17984 1 days 03:48:20 NaT 4602 False \n", "17985 0 days 08:03:20 2025-08-03 4602 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", "17981 2025-01-23 13:42:56 \n", "17982 2025-01-23 04:32:20 \n", "17983 2025-01-12 05:36:59 \n", "17984 2025-01-25 03:47:43 \n", "17985 2025-01-25 13:34:25 \n", "\n", "[17986 rows x 10 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xm.all_obs_info" ] }, { "cell_type": "code", "execution_count": 25, "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-28GSACISHETGCC_000A8
183.6329222.014477587TrueTrue2007-02-03 09:58:57.0000002008-07-21 21:53:57.000000534 days 11:55:002008-02-06SNRACISHETGTE_0077C
2202.5000047.2000013814TrueTrue2012-09-20 07:21:41.9999992012-09-22 12:47:41.9999992 days 05:26:002013-10-11NGSACISNONETE_00958
3266.41667-29.0078113842TrueTrue2012-07-21 11:52:41.0000022012-07-23 17:08:41.0000022 days 05:16:002012-07-25NGSACISHETGTE_008D0
4316.7245838.7494213651TrueTrue2012-02-13 20:18:26.9999972012-02-16 00:51:26.9999972 days 04:33:002013-02-21MISCHRCLETGDEFAULT
..........................................
24781332.1700045.7423124644TrueTrue2020-09-29 01:23:47.0000032020-09-29 01:23:47.0000030 days 00:00:002020-09-30CALHRCNONEDEFAULT
24782332.1701045.742301336TrueTrue1999-10-03 21:48:53.0000041999-10-03 21:48:53.0000040 days 00:00:001999-12-14CALHRCNONE
2478354.197080.589971153TrueTrue1999-09-05 04:29:00.9999981999-09-05 04:29:00.9999980 days 00:00:002002-10-04CALHRCNONESCENTER
2478484.91458-69.7436162437TrueTrue1999-09-05 00:50:10.9999971999-09-05 00:50:10.9999970 days 00:00:002002-03-27GSHRCNONESCENTER
2478584.91458-69.743611203TrueTrue1999-08-31 03:28:53.0000031999-08-31 03:28:53.0000030 days 00:00:002003-06-16GSHRCNONE
\n", "

24786 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", "24781 332.17000 45.74231 24644 True True \n", "24782 332.17010 45.74230 1336 True True \n", "24783 54.19708 0.58997 1153 True True \n", "24784 84.91458 -69.74361 62437 True True \n", "24785 84.91458 -69.74361 1203 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", "24781 2020-09-29 01:23:47.000003 2020-09-29 01:23:47.000003 0 days 00:00:00 \n", "24782 1999-10-03 21:48:53.000004 1999-10-03 21:48:53.000004 0 days 00:00:00 \n", "24783 1999-09-05 04:29:00.999998 1999-09-05 04:29:00.999998 0 days 00:00:00 \n", "24784 1999-09-05 00:50:10.999997 1999-09-05 00:50:10.999997 0 days 00:00:00 \n", "24785 1999-08-31 03:28:53.000003 1999-08-31 03:28:53.000003 0 days 00:00:00 \n", "\n", " proprietary_end_date target_category instrument grating data_mode \n", "0 2007-02-28 GS ACIS HETG CC_000A8 \n", "1 2008-02-06 SNR ACIS HETG TE_0077C \n", "2 2013-10-11 NGS ACIS NONE TE_00958 \n", "3 2012-07-25 NGS ACIS HETG TE_008D0 \n", "4 2013-02-21 MISC HRC LETG DEFAULT \n", "... ... ... ... ... ... \n", "24781 2020-09-30 CAL HRC NONE DEFAULT \n", "24782 1999-12-14 CAL HRC NONE \n", "24783 2002-10-04 CAL HRC NONE SCENTER \n", "24784 2002-03-27 GS HRC NONE SCENTER \n", "24785 2003-06-16 GS HRC NONE \n", "\n", "[24786 rows x 13 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch.all_obs_info" ] }, { "cell_type": "code", "execution_count": 26, "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.045181260177True2020-03-25 16:41:002020-04-05 12:43:4510 days 20:02:45240.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 2020-03-25 16:41:00 \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 10 days 20:02:45 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": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ea.all_obs_info" ] }, { "cell_type": "code", "execution_count": 27, "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": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ecpv.all_obs_info" ] }, { "cell_type": "code", "execution_count": 28, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usableproprietary_usablestartenddurationproprietary_end_datetarget_categoryexposure_aexposure_bontime_aontime_bnupsdoutissue_flagtarget_name
083.8281-69.246640001014013TrueTrue2013-06-29 01:16:10.5602013-07-05 08:51:04.3206 days 07:34:53.7600002015-09-17MISC5 days 11:20:425 days 11:09:585 days 20:32:485 days 20:33:4621191SN1987A
183.7759-69.267840001014016TrueTrue2014-04-22 21:06:02.8802014-04-29 09:31:06.2406 days 12:25:03.3600002015-09-17MISC4 days 23:56:474 days 23:35:175 days 08:14:465 days 08:14:0901SN1987A
283.8965-69.247840001014023TrueTrue2014-08-01 23:46:10.5602014-08-08 02:41:08.1606 days 02:54:57.6000002015-09-17MISC4 days 22:46:564 days 22:35:325 days 07:01:075 days 07:02:5500SN1987A
3340.653029.698560401031004TrueTrue2018-11-28 22:21:12.9602018-12-08 17:16:13.4409 days 18:55:00.4800002019-12-25AGN4 days 17:35:584 days 17:01:435 days 02:48:255 days 02:49:4300Ark_564
4344.4048-36.976660901012002TrueTrue2023-11-02 06:06:11.5202023-11-10 11:41:08.1608 days 05:34:56.6400002024-05-20AGN4 days 11:03:164 days 10:06:554 days 19:02:154 days 19:02:3600MS_22549m3712
......................................................
477983.674722.091010013011001TrueTrue2012-07-25 09:01:09.1202012-07-25 10:36:02.8800 days 01:34:53.7600002014-09-23CAL0 days 00:00:440 days 00:00:470 days 00:01:400 days 00:01:4001Crab_oa11
4780277.0668-36.971290801012002TrueTrue2022-06-09 18:11:05.2802022-06-09 18:31:06.2400 days 00:20:00.9600002022-06-20TOO0 days 00:00:400 days 00:00:400 days 00:00:430 days 00:00:43001A_1744m361_SADA_22159
478184.6870-64.111110601308003TrueTrue2020-04-07 21:14:15.3602020-04-07 21:15:50.4000 days 00:01:35.0400002020-04-17CAL0 days 00:00:290 days 00:00:280 days 00:00:310 days 00:00:3101LMC_X3
4782201.3151-43.024300501005002TrueFalse2019-09-06 00:41:11.0402019-09-06 17:41:08.1600 days 16:59:57.120000NaTMISC0 days 00:00:000 days 08:44:210 days 00:00:000 days 09:35:0901Cen_A_FPMB
478375.580424.718730460015003TrueTrue2020-03-17 18:31:06.2402020-03-17 18:31:49.4400 days 00:00:43.2000002020-04-17GS0 days 00:00:000 days 00:00:010 days 00:00:000 days 00:00:0101V1062_Tau
\n", "

4784 rows × 17 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable proprietary_usable \\\n", "0 83.8281 -69.2466 40001014013 True True \n", "1 83.7759 -69.2678 40001014016 True True \n", "2 83.8965 -69.2478 40001014023 True True \n", "3 340.6530 29.6985 60401031004 True True \n", "4 344.4048 -36.9766 60901012002 True True \n", "... ... ... ... ... ... \n", "4779 83.6747 22.0910 10013011001 True True \n", "4780 277.0668 -36.9712 90801012002 True True \n", "4781 84.6870 -64.1111 10601308003 True True \n", "4782 201.3151 -43.0243 00501005002 True False \n", "4783 75.5804 24.7187 30460015003 True True \n", "\n", " start end duration \\\n", "0 2013-06-29 01:16:10.560 2013-07-05 08:51:04.320 6 days 07:34:53.760000 \n", "1 2014-04-22 21:06:02.880 2014-04-29 09:31:06.240 6 days 12:25:03.360000 \n", "2 2014-08-01 23:46:10.560 2014-08-08 02:41:08.160 6 days 02:54:57.600000 \n", "3 2018-11-28 22:21:12.960 2018-12-08 17:16:13.440 9 days 18:55:00.480000 \n", "4 2023-11-02 06:06:11.520 2023-11-10 11:41:08.160 8 days 05:34:56.640000 \n", "... ... ... ... \n", "4779 2012-07-25 09:01:09.120 2012-07-25 10:36:02.880 0 days 01:34:53.760000 \n", "4780 2022-06-09 18:11:05.280 2022-06-09 18:31:06.240 0 days 00:20:00.960000 \n", "4781 2020-04-07 21:14:15.360 2020-04-07 21:15:50.400 0 days 00:01:35.040000 \n", "4782 2019-09-06 00:41:11.040 2019-09-06 17:41:08.160 0 days 16:59:57.120000 \n", "4783 2020-03-17 18:31:06.240 2020-03-17 18:31:49.440 0 days 00:00:43.200000 \n", "\n", " proprietary_end_date target_category exposure_a exposure_b \\\n", "0 2015-09-17 MISC 5 days 11:20:42 5 days 11:09:58 \n", "1 2015-09-17 MISC 4 days 23:56:47 4 days 23:35:17 \n", "2 2015-09-17 MISC 4 days 22:46:56 4 days 22:35:32 \n", "3 2019-12-25 AGN 4 days 17:35:58 4 days 17:01:43 \n", "4 2024-05-20 AGN 4 days 11:03:16 4 days 10:06:55 \n", "... ... ... ... ... \n", "4779 2014-09-23 CAL 0 days 00:00:44 0 days 00:00:47 \n", "4780 2022-06-20 TOO 0 days 00:00:40 0 days 00:00:40 \n", "4781 2020-04-17 CAL 0 days 00:00:29 0 days 00:00:28 \n", "4782 NaT MISC 0 days 00:00:00 0 days 08:44:21 \n", "4783 2020-04-17 GS 0 days 00:00:00 0 days 00:00:01 \n", "\n", " ontime_a ontime_b nupsdout issue_flag \\\n", "0 5 days 20:32:48 5 days 20:33:46 2119 1 \n", "1 5 days 08:14:46 5 days 08:14:09 0 1 \n", "2 5 days 07:01:07 5 days 07:02:55 0 0 \n", "3 5 days 02:48:25 5 days 02:49:43 0 0 \n", "4 4 days 19:02:15 4 days 19:02:36 0 0 \n", "... ... ... ... ... \n", "4779 0 days 00:01:40 0 days 00:01:40 0 1 \n", "4780 0 days 00:00:43 0 days 00:00:43 0 0 \n", "4781 0 days 00:00:31 0 days 00:00:31 0 1 \n", "4782 0 days 00:00:00 0 days 09:35:09 0 1 \n", "4783 0 days 00:00:00 0 days 00:00:01 0 1 \n", "\n", " target_name \n", "0 SN1987A \n", "1 SN1987A \n", "2 SN1987A \n", "3 Ark_564 \n", "4 MS_22549m3712 \n", "... ... \n", "4779 Crab_oa11 \n", "4780 1A_1744m361_SADA_22159 \n", "4781 LMC_X3 \n", "4782 Cen_A_FPMB \n", "4783 V1062_Tau \n", "\n", "[4784 rows x 17 columns]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nu.all_obs_info" ] }, { "cell_type": "code", "execution_count": 29, "id": "3e0169ea-55fb-4529-85e7-4e262938c5d8", "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_usablestartenddurationtarget_categoryexposurextend_exposureresolve_modextend_mode1-2xtend_mode3-4xtend_dataclass1-2xtend_dataclass3-4
0174.75746-37.73904300050010TrueFalse2024-07-18 04:58:03.9999962024-07-27 16:16:04.0000029 days 11:18:00MISC5 days 05:20:10.3958904 days 07:18:31.905700PX_NORMALWINDOW2WINDOW131100010320000A0
1194.9436327.94653300073010TrueFalse2024-07-09 07:17:03.9999982024-07-18 04:58:03.9999968 days 21:41:00MISC4 days 15:41:41.0786504 days 03:07:12.354140PX_NORMALWINDOW1300000A0
2227.794315.82455300053010TrueFalse2024-07-27 16:16:04.0000022024-08-04 19:17:03.9999988 days 03:01:00MISC4 days 10:26:25.5818904 days 01:17:20.064500PX_NORMALWINDOW1300000A0
383.86674-69.26864300021010TrueFalse2024-06-17 18:20:04.0000012024-06-22 14:01:04.0000024 days 19:41:00MISC4 days 00:54:26.1557702 days 00:58:03.841690PX_NORMALWINDOW1300000A0
4287.793569.09746300055010TrueFalse2024-04-23 01:42:03.9999982024-04-30 22:58:03.9999967 days 21:16:00MISC3 days 20:22:06.9083303 days 03:44:15.456360PX_NORMALWINDOW1300000A0
...................................................
211326.2489838.36689100009090TrueFalse2024-04-21 22:17:03.9999982024-04-22 01:32:04.0000010 days 03:15:00MISC0 days 02:10:11.9375000 days 00:01:37.860930PX_NORMALWINDOW1BURST31200010
212326.1855738.39637100009130TrueFalse2024-04-22 17:27:03.9999982024-04-22 20:39:04.0000030 days 03:12:00MISC0 days 02:08:15.9375000 days 00:01:44.405190PX_NORMALWINDOW1BURST31200010
213326.1811338.37132100009120TrueFalse2024-04-22 14:15:04.0000002024-04-22 17:27:03.9999980 days 03:12:00MISC0 days 02:06:540 days 00:01:35.437130PX_NORMALWINDOW1BURST31200010
214326.2029238.33973100009040TrueFalse2024-04-20 23:54:03.9999972024-04-21 03:18:04.0000000 days 03:24:00MISC0 days 02:05:050 days 00:01:24.833010PX_NORMALWINDOW1BURST31200010
215299.5969335.21531000107000TrueFalse2023-11-03 20:31:04.0000002023-11-03 23:51:04.0000000 days 03:20:00MISC0 days 01:50:10.5184299990 days 00:00:00PX_NORMALWINDOW130000050
\n", "

216 rows × 16 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable proprietary_usable \\\n", "0 174.75746 -37.73904 300050010 True False \n", "1 194.94363 27.94653 300073010 True False \n", "2 227.79431 5.82455 300053010 True False \n", "3 83.86674 -69.26864 300021010 True False \n", "4 287.79356 9.09746 300055010 True False \n", ".. ... ... ... ... ... \n", "211 326.24898 38.36689 100009090 True False \n", "212 326.18557 38.39637 100009130 True False \n", "213 326.18113 38.37132 100009120 True False \n", "214 326.20292 38.33973 100009040 True False \n", "215 299.59693 35.21531 000107000 True False \n", "\n", " start end duration \\\n", "0 2024-07-18 04:58:03.999996 2024-07-27 16:16:04.000002 9 days 11:18:00 \n", "1 2024-07-09 07:17:03.999998 2024-07-18 04:58:03.999996 8 days 21:41:00 \n", "2 2024-07-27 16:16:04.000002 2024-08-04 19:17:03.999998 8 days 03:01:00 \n", "3 2024-06-17 18:20:04.000001 2024-06-22 14:01:04.000002 4 days 19:41:00 \n", "4 2024-04-23 01:42:03.999998 2024-04-30 22:58:03.999996 7 days 21:16:00 \n", ".. ... ... ... \n", "211 2024-04-21 22:17:03.999998 2024-04-22 01:32:04.000001 0 days 03:15:00 \n", "212 2024-04-22 17:27:03.999998 2024-04-22 20:39:04.000003 0 days 03:12:00 \n", "213 2024-04-22 14:15:04.000000 2024-04-22 17:27:03.999998 0 days 03:12:00 \n", "214 2024-04-20 23:54:03.999997 2024-04-21 03:18:04.000000 0 days 03:24:00 \n", "215 2023-11-03 20:31:04.000000 2023-11-03 23:51:04.000000 0 days 03:20:00 \n", "\n", " target_category exposure xtend_exposure \\\n", "0 MISC 5 days 05:20:10.395890 4 days 07:18:31.905700 \n", "1 MISC 4 days 15:41:41.078650 4 days 03:07:12.354140 \n", "2 MISC 4 days 10:26:25.581890 4 days 01:17:20.064500 \n", "3 MISC 4 days 00:54:26.155770 2 days 00:58:03.841690 \n", "4 MISC 3 days 20:22:06.908330 3 days 03:44:15.456360 \n", ".. ... ... ... \n", "211 MISC 0 days 02:10:11.937500 0 days 00:01:37.860930 \n", "212 MISC 0 days 02:08:15.937500 0 days 00:01:44.405190 \n", "213 MISC 0 days 02:06:54 0 days 00:01:35.437130 \n", "214 MISC 0 days 02:05:05 0 days 00:01:24.833010 \n", "215 MISC 0 days 01:50:10.518429999 0 days 00:00:00 \n", "\n", " resolve_mode xtend_mode1-2 xtend_mode3-4 xtend_dataclass1-2 \\\n", "0 PX_NORMAL WINDOW2 WINDOW1 31100010 \n", "1 PX_NORMAL WINDOW1 300000A0 \n", "2 PX_NORMAL WINDOW1 300000A0 \n", "3 PX_NORMAL WINDOW1 300000A0 \n", "4 PX_NORMAL WINDOW1 300000A0 \n", ".. ... ... ... ... \n", "211 PX_NORMAL WINDOW1BURST 31200010 \n", "212 PX_NORMAL WINDOW1BURST 31200010 \n", "213 PX_NORMAL WINDOW1BURST 31200010 \n", "214 PX_NORMAL WINDOW1BURST 31200010 \n", "215 PX_NORMAL WINDOW1 30000050 \n", "\n", " xtend_dataclass3-4 \n", "0 320000A0 \n", "1 \n", "2 \n", "3 \n", "4 \n", ".. ... \n", "211 \n", "212 \n", "213 \n", "214 \n", "215 \n", "\n", "[216 rows x 16 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xr.all_obs_info" ] }, { "cell_type": "code", "execution_count": 30, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
radecObsIDscience_usablestartenddurationtarget_categoryxrt_exposurebat_exposureuvot_exposureroll_angle
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.030000224.66184
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.29700037.50837
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:00146.36382
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.02300049.28614
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.03900081.38752
.......................................
373177172.13889-84.9915800068196002True2005-10-02 11:44:21.9999982005-10-02 11:48:22.0000000 days 00:04:00.000002MISC0 days 00:00:000 days 00:00:130 days 00:00:0016.33025
37317857.33072-85.0027200067386002True2005-05-26 23:59:00.9999982005-05-27 01:23:15.0000000 days 01:24:14.000002MISC0 days 00:00:000 days 00:02:350 days 00:00:006.33332
373179172.06705-85.0096100074488015True2007-04-03 05:10:59.9999982007-04-03 06:47:40.0000040 days 01:36:40.000006MISC0 days 00:00:000 days 00:02:510 days 00:00:00200.09891
37318057.06398-85.0251800074476005True2006-11-29 23:33:01.0000022006-11-30 01:19:36.0000020 days 01:46:35MISC0 days 00:00:000 days 00:02:260 days 00:00:00188.38622
373181343.92600-85.0336700068170001True2005-09-29 02:59:00.9999982005-09-29 04:39:25.0000040 days 01:40:24.000006MISC0 days 00:00:000 days 00:03:250 days 00:00:00201.59320
\n", "

373182 rows × 12 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", "373177 172.13889 -84.99158 00068196002 True \n", "373178 57.33072 -85.00272 00067386002 True \n", "373179 172.06705 -85.00961 00074488015 True \n", "373180 57.06398 -85.02518 00074476005 True \n", "373181 343.92600 -85.03367 00068170001 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", "373177 2005-10-02 11:44:21.999998 2005-10-02 11:48:22.000000 \n", "373178 2005-05-26 23:59:00.999998 2005-05-27 01:23:15.000000 \n", "373179 2007-04-03 05:10:59.999998 2007-04-03 06:47:40.000004 \n", "373180 2006-11-29 23:33:01.000002 2006-11-30 01:19:36.000002 \n", "373181 2005-09-29 02:59:00.999998 2005-09-29 04:39:25.000004 \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", "373177 0 days 00:04:00.000002 MISC 0 days 00:00:00 \n", "373178 0 days 01:24:14.000002 MISC 0 days 00:00:00 \n", "373179 0 days 01:36:40.000006 MISC 0 days 00:00:00 \n", "373180 0 days 01:46:35 MISC 0 days 00:00:00 \n", "373181 0 days 01:40:24.000006 MISC 0 days 00:00:00 \n", "\n", " bat_exposure uvot_exposure roll_angle \n", "0 1 days 00:04:10 1 days 02:40:01.030000 224.66184 \n", "1 0 days 22:52:03 0 days 17:46:44.297000 37.50837 \n", "2 0 days 19:59:15 0 days 00:00:00 146.36382 \n", "3 0 days 19:23:36 0 days 18:21:43.023000 49.28614 \n", "4 0 days 21:08:01.650000 0 days 18:24:15.039000 81.38752 \n", "... ... ... ... \n", "373177 0 days 00:00:13 0 days 00:00:00 16.33025 \n", "373178 0 days 00:02:35 0 days 00:00:00 6.33332 \n", "373179 0 days 00:02:51 0 days 00:00:00 200.09891 \n", "373180 0 days 00:02:26 0 days 00:00:00 188.38622 \n", "373181 0 days 00:03:25 0 days 00:00:00 201.59320 \n", "\n", "[373182 rows x 12 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sw.all_obs_info" ] }, { "cell_type": "code", "execution_count": 31, "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
1374278.17942-61.875RS932826N00True1990-09-041990-09-300 days 00:02:42ASK
1375273.75000-45.000RS932537N00True1990-09-071990-09-230 days 00:02:42ASK
1376350.17942-33.750RS932354N00True1990-11-091990-12-020 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 278.17942 -61.875 RS932826N00 True 1990-09-04 1990-09-30 \n", "1375 273.75000 -45.000 RS932537N00 True 1990-09-07 1990-09-23 \n", "1376 350.17942 -33.750 RS932354N00 True 1990-11-09 1990-12-02 \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": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ra.all_obs_info" ] }, { "cell_type": "code", "execution_count": 32, "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.1857.48RH701867A01True1995-04-15 23:24:16.0000011995-05-11 14:24:47.0000012 days 13:29:32HRINAGNLOCKMAN HOLE2RFITS V4.
1203.6537.91RH900717N00True1997-06-04 16:13:00.9999981997-07-13 22:26:45.0000042 days 07:58:33HRINMISCDEEP SURVEY2RDF 4_0
2163.1857.48RH701867A04True1997-04-15 21:51:16.9999981997-04-28 16:37:45.9999982 days 06:33:41HRINAGNLOCKMAN HOLE2RFITS V3.
3350.8758.81RH500444N00True1995-12-23 22:18:36.9999991996-02-01 10:17:53.9999982 days 02:07:27HRINSNRCAS A2RDF 3_4
4163.1857.48RH701867A02True1996-05-01 02:09:33.0000021996-05-29 15:31:24.9999972 days 01:05:24HRINAGNLOCKMAN HOLE2RFITS V4.
..........................................
11426107.17-49.55RH703919N00False1998-12-02 20:07:49.0000021998-12-02 21:52:51.0000010 days 00:00:00HRINAGN2RFITS V4.
11427107.17-49.55RH703918N00False1998-12-01 21:47:20.9999961998-12-01 23:37:05.9999980 days 00:00:00HRINAGN2RFITS V4.
11428107.17-49.55RH703920N00False1998-12-03 19:53:49.0000041998-12-03 20:07:53.9999960 days 00:00:00HRINAGN2RFITS V4.
11429107.17-49.55RH703921N00False1998-12-04 19:49:02.0000001998-12-04 21:35:54.0000040 days 00:00:00HRINAGN2RFITS V4.
11430107.17-49.55RH703922N00False1998-12-05 18:02:20.9999961998-12-05 18:16:26.9999990 days 00:00:00HRINAGN2RFITS V4.
\n", "

11431 rows × 13 columns

\n", "
" ], "text/plain": [ " ra dec ObsID science_usable start \\\n", "0 163.18 57.48 RH701867A01 True 1995-04-15 23:24:16.000001 \n", "1 203.65 37.91 RH900717N00 True 1997-06-04 16:13:00.999998 \n", "2 163.18 57.48 RH701867A04 True 1997-04-15 21:51:16.999998 \n", "3 350.87 58.81 RH500444N00 True 1995-12-23 22:18:36.999999 \n", "4 163.18 57.48 RH701867A02 True 1996-05-01 02:09:33.000002 \n", "... ... ... ... ... ... \n", "11426 107.17 -49.55 RH703919N00 False 1998-12-02 20:07:49.000002 \n", "11427 107.17 -49.55 RH703918N00 False 1998-12-01 21:47:20.999996 \n", "11428 107.17 -49.55 RH703920N00 False 1998-12-03 19:53:49.000004 \n", "11429 107.17 -49.55 RH703921N00 False 1998-12-04 19:49:02.000000 \n", "11430 107.17 -49.55 RH703922N00 False 1998-12-05 18:02:20.999996 \n", "\n", " end duration instrument with_filter \\\n", "0 1995-05-11 14:24:47.000001 2 days 13:29:32 HRI N \n", "1 1997-07-13 22:26:45.000004 2 days 07:58:33 HRI N \n", "2 1997-04-28 16:37:45.999998 2 days 06:33:41 HRI N \n", "3 1996-02-01 10:17:53.999998 2 days 02:07:27 HRI N \n", "4 1996-05-29 15:31:24.999997 2 days 01:05:24 HRI N \n", "... ... ... ... ... \n", "11426 1998-12-02 21:52:51.000001 0 days 00:00:00 HRI N \n", "11427 1998-12-01 23:37:05.999998 0 days 00:00:00 HRI N \n", "11428 1998-12-03 20:07:53.999996 0 days 00:00:00 HRI N \n", "11429 1998-12-04 21:35:54.000004 0 days 00:00:00 HRI N \n", "11430 1998-12-05 18:16:26.999999 0 days 00:00:00 HRI N \n", "\n", " target_category target_name proc_rev fits_type \n", "0 AGN LOCKMAN HOLE 2 RFITS V4. \n", "1 MISC DEEP SURVEY 2 RDF 4_0 \n", "2 AGN LOCKMAN HOLE 2 RFITS V3. \n", "3 SNR CAS A 2 RDF 3_4 \n", "4 AGN LOCKMAN HOLE 2 RFITS V4. \n", "... ... ... ... ... \n", "11426 AGN 2 RFITS V4. \n", "11427 AGN 2 RFITS V4. \n", "11428 AGN 2 RFITS V4. \n", "11429 AGN 2 RFITS V4. \n", "11430 AGN 2 RFITS V4. \n", "\n", "[11431 rows x 13 columns]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rp.all_obs_info" ] }, { "cell_type": "code", "execution_count": 33, "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": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "su.all_obs_info" ] }, { "cell_type": "code", "execution_count": 34, "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
3071333.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
3072335.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
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 333.8738 -17.8223 77002000 True 1999-11-17 04:45:41.760 \n", "3072 335.1555 -24.7349 66013000 True 1998-11-16 16:24:48.960 \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 1999-11-19 01:35:54.240 1 days 20:50:12.480000 AGN \n", "3072 1998-11-18 17:34:39.360 2 days 01:09:50.400000 NGS \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 16:30:24 0 days 00:00:00 \n", "3072 0 days 14:38: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": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "asca.all_obs_info" ] }, { "cell_type": "code", "execution_count": 35, "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
................................................
205738268.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
205739177.3169189.40664267800540010TrueTrue2023-08-25 08:38:46.2746892023-08-25 09:08:48.2759690 days 00:30:02.001280MISC0 days 00:28:500 days 00:28:500 days 00:29:080 days 00:00:000 days 00:29:10001
205740183.6847189.46394267600300010TrueTrue2023-08-19 11:23:45.8555512023-08-19 11:54:48.8573660 days 00:31:03.001815MISC0 days 00:30:080 days 00:30:080 days 00:30:060 days 00:29:470 days 00:30:08001
205741185.4559689.47636267600290010TrueTrue2023-08-19 11:11:57.8548642023-08-19 11:21:50.8554400 days 00:09:53.000576MISC0 days 00:09:340 days 00:09:340 days 00:09:320 days 00:00:000 days 00:09:34001
2057426.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", "

205743 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", "205738 268.11816 89.32161 260700500010 True True \n", "205739 177.31691 89.40664 267800540010 True True \n", "205740 183.68471 89.46394 267600300010 True True \n", "205741 185.45596 89.47636 267600290010 True True \n", "205742 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", "205738 2023-02-17 10:30:57.695328 2023-02-17 11:00:58.696476 \n", "205739 2023-08-25 08:38:46.274689 2023-08-25 09:08:48.275969 \n", "205740 2023-08-19 11:23:45.855551 2023-08-19 11:54:48.857366 \n", "205741 2023-08-19 11:11:57.854864 2023-08-19 11:21:50.855440 \n", "205742 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", "205738 0 days 00:30:01.001148 MISC 0 days 00:29:10 0 days 00:29:10 \n", "205739 0 days 00:30:02.001280 MISC 0 days 00:28:50 0 days 00:28:50 \n", "205740 0 days 00:31:03.001815 MISC 0 days 00:30:08 0 days 00:30:08 \n", "205741 0 days 00:09:53.000576 MISC 0 days 00:09:34 0 days 00:09:34 \n", "205742 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", "205738 0 days 00:29:10 0 days 00:28:47 0 days 00:29:12 001 \n", "205739 0 days 00:29:08 0 days 00:00:00 0 days 00:29:10 001 \n", "205740 0 days 00:30:06 0 days 00:29:47 0 days 00:30:08 001 \n", "205741 0 days 00:09:32 0 days 00:00:00 0 days 00:09:34 001 \n", "205742 0 days 00:29:48 0 days 00:29:19 0 days 00:29:52 001 \n", "\n", "[205743 rows x 15 columns]" ] }, "execution_count": 35, "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": 36, "id": "a7a3b494", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ True, True, True, ..., True, True, True])" ] }, "execution_count": 36, "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": 37, "id": "7eb783f5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([False, True, True, ..., True, True, True])" ] }, "execution_count": 37, "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.\n", "\n", "**Alternatively** you can invert that behaviour, and select every observation that _isn't_ one of the specified ObsIDs, by passing `invert=True`." ] }, { "cell_type": "code", "id": "db1f04f5", "metadata": { "ExecuteTime": { "end_time": "2025-03-14T03:06:31.375977Z", "start_time": "2025-03-14T03:06:31.366212Z" } }, "source": [ "help(xm.filter_on_obs_ids)" ], "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]], invert: bool = False) method of daxa.mission.xmm.XMMPointed instance\n", " This filtering method will select only observations with IDs specified by the allowed_obs_ids argument (or\n", " select only observations that AREN'T specified by the allowed_obs_ids argument, if invert=True).\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 (or exclude from it if invert=True).\n", " :param bool invert: This argument can invert the behaviour of this filtering method, selecting every\n", " ObsID that isn't specified in allowed_obs_ids. Default is False.\n", "\n" ] } ], "execution_count": 3 }, { "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": 39, "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", "\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": 40, "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", "\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": 41, "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": 42, "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", "\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": 43, "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", "\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": 44, "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", "\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": 45, "id": "27f26c00", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading XMM-Newton Pointed data: 100%|██████████████████████████████████████| 1/1 [00:11<00:00, 11.62s/it]\n", "Downloading Chandra data: 100%|█████████████████████████████████████████████████| 1/1 [00:12<00:00, 12.40s/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": 46, "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": 46, "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": 47, "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": 47, "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": 48, "id": "43a5bbcd", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/base.py:942: UserWarning: Some instrument names were converted to alternative forms expected by this module, the instrument names are now; ACIS\n", " inst = self.check_inst_names(inst)[0]\n" ] }, { "data": { "text/plain": [ "'/Users/dt237/code/DAXA/docs/source/notebooks/tutorials/daxa_output/chandra_raw/3205/primary/acisf03205N006_full_img2.fits'" ] }, "execution_count": 48, "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": 49, "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[49], 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:2089\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 2077\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 2078\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 2079\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 2086\u001B[0m \u001B[38;5;124;03m:rtype: str\u001B[39;00m\n\u001B[1;32m 2087\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 2088\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-> 2089\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 2090\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 2091\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 2093\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 2094\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 2095\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": 50, "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": 51, "id": "1fca5913", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dt237/code/DAXA/daxa/mission/xmm.py:83: UserWarning: 140 of the 18126 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": 51, "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.12.5" } }, "nbformat": 4, "nbformat_minor": 5 }