Skip to content
Snippets Groups Projects

Create combined sky map and spacetime coincidence FAR automatically

All threads resolved!
7 files
+ 240
105
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -2,8 +2,8 @@
from astropy import units as u
from astropy.coordinates import ICRS, SkyCoord
from astropy_healpix import HEALPix, pixel_resolution_to_nside
# import astropy.utils.data
from celery import group
# import astropy.utils.data
import numpy as np
from ligo.skymap.io import fits
from ligo.skymap.tool import ligo_skymap_combine
@@ -20,29 +20,37 @@ from ..util.tempfile import NamedTemporaryFile
from ..import _version
def create_combined_skymap(graceid):
def create_combined_skymap(se_id, ext_id):
"""Creates and uploads the combined LVC-Fermi skymap.
This also uploads the external trigger skymap to the external trigger
GraceDB page.
"""
preferred_skymap = get_preferred_skymap(graceid)
message = 'Combined LVC-Fermi sky map using {0}.'.format(preferred_skymap)
new_skymap = re.findall(r'(.*).fits', preferred_skymap)[0] + '-gbm.fits.gz'
external_trigger_id = external_trigger(graceid)
return (external_trigger_heasarc.s(external_trigger_id) |
get_external_skymap.s() |
group(
combine_skymaps.s(gracedb.download(preferred_skymap,
graceid)) |
gracedb.upload.s(
new_skymap, graceid, message, ['sky_loc', 'public']),
gracedb.upload.s('glg_healpix_all_bn_v00.fit',
external_trigger_id,
'Sky map from HEASARC.',
['sky_loc', 'public']))
)
se_skymap_filename = get_preferred_skymap(se_id)
ext_skymap_filename = get_external_skymap_filename(ext_id)
new_skymap_filename = re.findall(r'(.*).fits.gz', se_skymap_filename)[0]
se_skymap = gracedb.download(se_skymap_filename, se_id)
ext_skymap = gracedb.download(ext_skymap_filename, ext_id)
message = 'Combined LVC-external sky map using {0}.'.format(
se_skymap_filename)
message_png = (
'Mollweide projection of <a href="/api/events/{graceid}/files/'
'{filename}">{filename}</a>').format(
graceid=se_id, filename=new_skymap_filename + '-ext.fits.gz')
(
combine_skymaps.si(se_skymap, ext_skymap)
|
group(
gracedb.upload.s(new_skymap_filename + '-ext.fits.gz', se_id,
message, ['sky_loc', 'public']),
skymaps.plot_allsky.s()
|
gracedb.upload.s(new_skymap_filename + '-ext.png', se_id,
message_png, ['sky_loc', 'public'])
)
).delay()
@app.task(autoretry_for=(ValueError,), retry_backoff=10,
@@ -55,10 +63,8 @@ def get_preferred_skymap(graceid):
"""
gracedb_log = gracedb.get_log(graceid)
for message in reversed(gracedb_log):
comment = message['comment']
filename = message['filename']
if (filename.endswith('.fits.gz') or filename.endswith('.fits')) and \
'copied' in comment:
if filename.endswith('.fits.gz'):
return filename
raise ValueError('No skymap available for {0} yet.'.format(graceid))
@@ -172,6 +178,8 @@ def get_upload_external_skymap(graceid):
graceid,
'Sky map from HEASARC.',
['sky_loc'])
|
gracedb.create_label.si('LUMIN_GO', graceid)
).delay()
except ValueError:
@@ -300,4 +308,6 @@ def create_upload_external_skymap(event):
graceid,
message,
['sky_loc'])
|
gracedb.create_label.si('LUMIN_GO', graceid)
).delay()
Loading