From ce22045d5056d2437cb0229a2b4b0954dfae8680 Mon Sep 17 00:00:00 2001 From: Jake Kurlander Date: Tue, 18 Jun 2024 13:40:51 -0700 Subject: [PATCH] folded mpsky code into task --- .../ap/association/MPSkyEphemerisQuery.py | 45 +++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/python/lsst/ap/association/MPSkyEphemerisQuery.py b/python/lsst/ap/association/MPSkyEphemerisQuery.py index 06a7582c..f0dba06f 100644 --- a/python/lsst/ap/association/MPSkyEphemerisQuery.py +++ b/python/lsst/ap/association/MPSkyEphemerisQuery.py @@ -31,8 +31,10 @@ import pandas as pd -import mpsky import numpy as np +import pyarrow as pa +import requests +import sys import lsst.pipe.base as pipeBase import lsst.pex.config as pexConfig @@ -78,7 +80,13 @@ class MPSkyEphemerisQueryConfig( dtype=float, doc="On sky radius for Ephemeris cone search. Defaults " "to the radius of Rubin Obs FoV in degrees", - default=1.75) + default=1.75 + ) + MPSkyURL = pexConfig.Field( + dtype=str, + doc="URL to query mpsky service", + default="http://sdfrome001.sdf.slac.stanford.edu:3666" + ) class MPSkyEphemerisQueryTask(PipelineTask): @@ -168,8 +176,37 @@ def _MPSkyConeSearch(self, expCenter, epochMJD, queryRadius): fieldRA = expCenter.getRa().asDegrees() fieldDec = expCenter.getDec().asDegrees() - ObjID, ra, dec, obj_poly, obs_poly = mpsky.query_service('https://sky.dirac.dev/ephemerides/', - epochMJD, fieldRA, fieldDec, queryRadius) + + params = { + "t": epochMJD, + "ra": fieldRA, + "dec": fieldDec, + "radius": queryRadius + } + + try: + response = requests.get(self.config.MP, params=params) + response.raise_for_status() + except requests.exceptions.ConnectionError as e: + print("failed to connect to the remote ephemerides service. details:", file=sys.stderr) + print(e, file=sys.stderr) + exit(-1) + + with pa.input_stream(memoryview(response.content)) as fp: + fp.seek(0) + p = pa.ipc.read_tensor(fp) + op = pa.ipc.read_tensor(fp) + op, p = op, p + with pa.ipc.open_stream(fp) as reader: + r = next(reader) + + ObjID = r["name"].to_numpy(zero_copy_only=False) + ra = r["ra"].to_numpy() + dec = r["dec"].to_numpy() + + # ObjID, ra, dec, obj_poly, obs_poly = mpsky.query_service('https://sky.dirac.dev/ephemerides/', + # epochMJD, fieldRA, fieldDec, queryRadius) + MPSkySsObjects = pd.DataFrame() MPSkySsObjects['ObjID'] = ObjID MPSkySsObjects['ra'] = ra