Skip to main content

Swift BAT GUANO imaging and mosaic pipeline.

Project description

BAT-GLIMPSE

1. Installation

Requirements

HEASoft needs to be installed. We recommend to install it via Conda as described here, doing

conda create -n henv heasoft \
  -c https://heasarc.gsfc.nasa.gov/FTP/software/conda/ \
  -c conda-forge

In the same environment, install BAT-GLIMPSE and NITRATES as described in the next two steps. CALDB environment variables need to be defined as described here

Install via pip

The package can be installed via pip, with Python 3.10 or greater.

pip install bat-glimpse

Optional: installing NITRATES

In order to have the data setup managed by NITRATES, we need to install it locally using:

git clone git@github.com:Swift-BAT/NITRATES.git
cd NITRATES
python -m pip install -e .

If it fails, try to comment the line

voevent-parse>=1.0.3

in the file requirements.txt inside NITRATES repository, and repeat the installation. NITRATES is needed for data preparation and creation of time seeds. Even in absense of NITRATES time seeds, BAT-GLIMPSE performs its own time seeds search. Notice that when Swift is in slew only BAT-GLIMPSE produces time seeds.

Developer Mode

git clone git@github.com:samueleronchini/BAT-GLIMPSE.git
cd BAT-GLIMPSE
python -m pip install -e .

Running on SciServer

BAT-GLIMPSE can run with minimal installation steps on SciServer. Create a container with HEASARC version >= 6.36, and in the pre-installed heasoft conda env run

pip install bat-glimpse

CALDB environment variables should be already loaded.

2. How to run

bat-glimpse --workdir </path/to/workdir> --trigtime <trigtime>

You can also run the package module directly:

python -m batglimpse --workdir </path/to/workdir> --trigtime <trigtime>

Main options

  • --workdir: required working directory for inputs and outputs.
  • --trigtime: trigger time in YYYY-MM-DDTHH:MM:SS.sss format.
  • --tmin and --tmax: explicit ad-hoc analysis window.
  • --pipe: imaging or mosaic for ad-hoc analysis.
  • --ext_obsid: override the GUANO obsid.
  • --healpix_nside: mosaic HEALPix resolution.
  • --skyview_nprocs: processes used while creating skyviews.
  • --mosaic_nprocs: processes used while mosaicing.
  • --trig_instr: Name of the triggering instrument

For --trig_instr use IGWN when it's a GW. This allows to create the preliminary maps with the partial coding distribution. Otherwise, by default the code searches for a Fermi-GBM map.

External Map Search

Fermi localization

  • Uses gdt.missions.fermi if installed.
  • Computes a Fermi trigger ID from trigtime.
  • Downloads the localization and renames it to ext_loc_fermi_glg_*.fits.

GW localization (IGWN only)

  • Queries GraceDb for the most relevant FITS sky map.
  • Downloads it to workdir/ext_loc_*.fits.

Branch A: Ad-hoc analysis (tmin/tmax/pipe provided)

  • If pipe == imaging:
    • Runs imaging() once for [tmin, tmax].
  • If pipe == mosaic:
    • Runs mosaic() once for [tmin, tmax].
  • If max SNR >= 6:
    • Sorts CSVs and posts results to Slack/Telegram.

Branch B: Default analysis (no explicit window)

  1. NITRATES time seeds:
    • If time_seeds.csv exists and is non-empty:
      • Sort by snr and take top 10 seeds.
      • Call imaging() with those time windows.
    • If empty or missing, log and continue.
  2. SNR check:
    • Reads SNR values from CSVs.
    • Posts to Slack/Telegram if SNR >= 6.
  3. Custom seed search:
    • Runs cust_seeds(); if seeds are found, refine and re-image/mosaic:
      • If max SNR already >= 20, skip refinement.
      • For each seed within +/- 20 s:
        • Refine the seed center and duration.
        • If duration <= 0.2 s: run imaging().
        • If 0.2 s <= duration < 15 s:
          • Run mosaic() if interval intersects a slew interval.
          • Otherwise run imaging().

3. Algorithm Details

imaging(t0, event, workdir, ...)

  • Energy range: 15-350 keV.
  • Creates skyview with:
    • aperture=CALDB:DETECTION
    • pcodethresh=0.01
  • Source detection parameters:
    • snrthresh=5.5, srcdetect=yes
  • Filters detections:
    • NAME contains UNKNOWN.
    • SNR > 5 and CENT_SNR > 5.
  • Writes imaging.csv with RA, Dec, SNR, CENT_SNR, partial coding, detect status, dt/duration, and energy bounds.

mosaic(t0, event, workdir, ...)

  • Energy range: 15-350 keV.
  • Initial duration dt_0 = tmax - tmin.
  • Builds time bins in 0.2 s steps; uses a 3-bin fallback for short windows.
  • Creates skyviews in parallel, then filters to those with:
    • sky_img, pcode_img, and bkg_stddev_img present.
  • If 0 valid skyviews: double dt_0 and retry.
  • If 1 valid skyview: fall back to that skyview.
  • Otherwise mosaic with ba.parallel.mosaic_skyview().
  • Detects sources with snrthresh=5.5.
  • Accepts sources with psffwhm_separation > 1.
  • Writes mosaic.csv with RA, Dec, SNR, t_start, t_end, and energy bounds.

4. Run examples

Always pass trigger time explicitly.

python run_bat_glimpse.py \
  --workdir /absolute/path/to/workdir \
  --trigtime 2020-03-25T03:18:35.000

Optional ad-hoc window:

python run_bat_glimpse.py \
  --workdir /absolute/path/to/workdir \
  --trigtime 2020-03-25T03:18:35.000 \
  --pipe imaging \
  --tmin -2.0 \
  --tmax 6.0

Mosaic run with explicit process counts:

python run_bat_glimpse.py \
  --workdir /absolute/path/to/workdir \
  --trigtime 2020-03-25T03:18:35.000 \
  --pipe mosaic \
  --tmin -5.0 \
  --tmax 15.0 \
  --healpix_nside 512 \
  --skyview_nprocs 8 \
  --mosaic_nprocs 8

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bat_glimpse-0.1.4.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bat_glimpse-0.1.4-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file bat_glimpse-0.1.4.tar.gz.

File metadata

  • Download URL: bat_glimpse-0.1.4.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for bat_glimpse-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3b2ed73aee2e1e962908c5c7d9535dd21427bd5f10980beafdf5aae2a3f2ab86
MD5 44ff2150ed0d854773760bdd56104ec4
BLAKE2b-256 0049e7134bc07b1ca31fae30a9147bfedd620714a06eb0a9782d2a4a4689d168

See more details on using hashes here.

File details

Details for the file bat_glimpse-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: bat_glimpse-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for bat_glimpse-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ce78fa76dc81919c7ecdf4594a835ee6193d8ca35f0818bf7e5ca429c91af8f9
MD5 4b2343540989bae819e9ca6c3c9578f5
BLAKE2b-256 3e9e65ab4ea0c30c993b912807ed337e8d7d735db4915dd7f53b99ae18fe0375

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page