Skip to content
Snippets Groups Projects

WS-2355 Calibration wrester telescope

Merged Daniel Nemergut requested to merge ws2355-calibration_curation into 2.8.4-DEVELOPMENT
All threads resolved!
1 file
+ 18
19
Compare changes
  • Side-by-side
  • Inline
@@ -361,12 +361,10 @@ class WrestWorkflowMetadata:
SELECT sp.science_product_type,
COALESCE(eb.telescope,im.telescope) as telescope,
spp.project_code,
c.execution_block_id
FROM science_products sp
JOIN science_products_projects spp ON sp.science_product_locator = spp.science_product_locator
LEFT JOIN execution_blocks eb ON sp.science_product_locator = eb.science_product_locator
LEFT JOIN images im ON sp.science_product_locator = im.science_product_locator
LEFT JOIN calibrations c ON sp.science_product_locator = c.science_product_locator
WHERE sp.science_product_locator = %(spl)s;
"""
make_json = {}
@@ -392,0+390,0 @@
if data:
product_type = str(data[0][0]).lower().replace(" ", "_")
# Get the telescope from a calibration's exec block (if applicable)
if product_type != 'calibration':
telescope = data[0][1]
else:
if not data[0][3]:
# ALMA doesn't have a calibrations.execution_block_id, could query with the alm_ous_id, but meh
telescope = 'ALMA'
# Need to query on the eb / alma_ous_id to get a telescope for calibrations
scope_query = """
SELECT telescope
FROM execution_blocks
JOIN calibrations c_eb ON execution_blocks.execution_block_id = c_eb.execution_block_id
WHERE c_eb.science_product_locator = %(spl)s
UNION
SELECT telescope
FROM execution_blocks
JOIN calibrations c_ous ON execution_blocks.alma_ous_id = c_ous.alma_ous_id
WHERE c_ous.science_product_locator = %(spl)s
"""
cursor.execute(scope_query, {"spl": spl})
scope_data = cursor.fetchall()
if scope_data:
telescope = data[0][0]
else:
# Can get it from the EB
scope_query = """
SELECT telescope
FROM execution_blocks
WHERE execution_block_id = %(eb_id)s;
"""
cursor.execute(scope_query, {"pg_id": data[0][3]})
scope_data = cursor.fetchall()
if scope_data:
telescope = data[0][0]
else:
self.logger.error(f"ERROR: Failed to determine telescope from calibration's EB, got {data}")
return make_json
self.logger.error(f"ERROR: Failed to determine telescope from calibration's EB, got {data}")
return make_json
make_json = {
"product_type": product_type,
Loading