Skip to content

Commit 085ad3f

Browse files
Jorge Fernandez Hernandezbsipocz
authored andcommitted
EUCLIDMNGT-1430 include dataSetReleases
1 parent 5a4a7e6 commit 085ad3f

1 file changed

Lines changed: 66 additions & 27 deletions

File tree

astroquery/esa/euclid/core.py

Lines changed: 66 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,45 +1144,52 @@ def get_product_list(self, *, observation_id=None, tile_index=None, product_type
11441144
if product_type in conf.OBSERVATION_STACK_PRODUCTS:
11451145
table = 'sedm.observation_stack'
11461146

1147-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'observation_stack')
1148-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1147+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'observation_stack')
1148+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
11491149

11501150
query = (f"SELECT observation_stack.file_name, observation_stack.observation_stack_oid, "
11511151
f"observation_stack.observation_id, observation_stack.ra, observation_stack.dec, "
11521152
f"observation_stack.instrument_name, observation_stack.filter_name, "
11531153
"observation_stack.release_name, observation_stack.category, observation_stack.second_type, "
11541154
f"observation_stack.technique, observation_stack.product_type, observation_stack.start_time, "
1155-
f"observation_stack.duration FROM {table} WHERE "
1155+
f"observation_stack.duration, observation_stack.data_set_release_part1, "
1156+
f"observation_stack.data_set_release_part2, observation_stack.data_set_release_part3 FROM "
1157+
f"{table} WHERE "
11561158
f" observation_stack.observation_id = '{observation_id}' AND observation_stack.product_type = '"
11571159
f"{product_type}' {extra_condition};")
11581160

11591161
if product_type in conf.BASIC_DOWNLOAD_DATA_PRODUCTS:
11601162
table = 'sedm.basic_download_data'
11611163

1162-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'basic_download_data')
1163-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1164+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3,
1165+
'basic_download_data')
1166+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
11641167

11651168
query = (
11661169
f"SELECT basic_download_data.basic_download_data_oid, basic_download_data.product_type, "
11671170
f"basic_download_data.product_id, CAST(basic_download_data.observation_id_list as text) AS "
11681171
f"observation_id_list, CAST(basic_download_data.tile_index_list as text) AS tile_index_list, "
11691172
f"CAST(basic_download_data.patch_id_list as text) AS patch_id_list, "
1170-
f"CAST(basic_download_data.filter_name as text) AS filter_name, basic_download_data.release_name FROM "
1173+
f"CAST(basic_download_data.filter_name as text) AS filter_name, basic_download_data.release_name, "
1174+
f"basic_download_data.data_set_release_part2, basic_download_data.data_set_release_part3 FROM "
11711175
f"{table} WHERE '{observation_id}'=ANY(observation_id_list) AND product_type = '"
11721176
f"{product_type}' {extra_condition}"
11731177
f"ORDER BY observation_id_list ASC;")
11741178

11751179
if product_type in conf.MER_SEGMENTATION_MAP_PRODUCTS:
11761180
table = 'sedm.mer_segmentation_map'
11771181

1178-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'mer_segmentation_map')
1179-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1182+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3,
1183+
'mer_segmentation_map')
1184+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
11801185

11811186
query = (
11821187
f"SELECT mer_segmentation_map.file_name, mer_segmentation_map.segmentation_map_oid, "
11831188
f"mer_segmentation_map.ra, mer_segmentation_map.dec, mer_segmentation_map.stc_s, "
11841189
f"mer_segmentation_map.tile_index, "
1185-
f"mer_segmentation_map.product_type, mer_segmentation_map.product_id FROM {table} "
1190+
f"mer_segmentation_map.product_type, mer_segmentation_map.product_id, "
1191+
f"mer_segmentation_map.release_name, mer_segmentation_map.data_set_release_part2, "
1192+
f"mer_segmentation_map.data_set_release_part3 FROM {table} "
11861193
f"WHERE ( observation_id_list = '{observation_id}' OR observation_id_list like '{observation_id},"
11871194
f"%' OR observation_id_list "
11881195
f"like '%,{observation_id}' OR CAST(observation_id_list as TEXT) like '%,{observation_id},%' ) AND "
@@ -1191,8 +1198,8 @@ def get_product_list(self, *, observation_id=None, tile_index=None, product_type
11911198
if product_type in conf.RAW_FRAME_PRODUCTS:
11921199
table = 'sedm.raw_frame'
11931200

1194-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'raw_frame')
1195-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1201+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'raw_frame')
1202+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
11961203

11971204
if product_type == "dpdNispRawFrame":
11981205
instrument_name = "NISP"
@@ -1204,47 +1211,52 @@ def get_product_list(self, *, observation_id=None, tile_index=None, product_type
12041211
f"raw_frame.instrument_name, raw_frame.data_set_release, raw_frame.filter_name, "
12051212
f"raw_frame.observation_mode, raw_frame.grism_wheel_pos, raw_frame.cal_block_id, "
12061213
f"raw_frame.cal_block_variant, raw_frame.ra, raw_frame.dec, raw_frame.obs_time_utc, "
1207-
f"raw_frame.exposure_time FROM {table} WHERE raw_frame.observation_id = '{observation_id}' "
1214+
f"raw_frame.exposure_time, raw_frame.release_name, raw_frame.data_set_release_part1, "
1215+
f"raw_frame.data_set_release_part2, raw_frame.data_set_release_part3 FROM {table} WHERE "
1216+
f"raw_frame.observation_id = '{observation_id}' "
12081217
f"AND raw_frame.instrument_name = '{instrument_name}' {extra_condition};")
12091218

12101219
if product_type in conf.CALIBRATED_FRAME_PRODUCTS:
12111220
table = 'sedm.calibrated_frame'
12121221

1213-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'calibrated_frame')
1214-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1222+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'calibrated_frame')
1223+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
12151224

12161225
query = (
12171226
f"SELECT calibrated_frame.file_name, calibrated_frame.calibrated_frame_oid, "
12181227
f"calibrated_frame.observation_id, calibrated_frame.instrument_name, calibrated_frame.filter_name, "
12191228
f"calibrated_frame.ra, calibrated_frame.dec, calibrated_frame.stc_s, calibrated_frame.start_time, "
1220-
f"calibrated_frame.end_time, calibrated_frame.duration "
1229+
f"calibrated_frame.end_time, calibrated_frame.duration, calibrated_frame.data_set_release_part1, "
1230+
f"calibrated_frame.data_set_release_part2, calibrated_frame.data_set_release_part3 "
12211231
f"FROM {table} WHERE calibrated_frame.observation_id = '{observation_id}' AND "
12221232
f"calibrated_frame.product_type = '{product_type}' {extra_condition};")
12231233

12241234
if product_type in conf.FRAME_CATALOG_PRODUCTS:
12251235
table = 'sedm.frame_catalog'
12261236

1227-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'frame_catalog')
1228-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1237+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'frame_catalog')
1238+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
12291239

12301240
query = (
12311241
f"SELECT frame_catalog.file_name, frame_catalog.catalog_oid, frame_catalog.observation_id, "
12321242
f"frame_catalog.instrument_name, frame_catalog.filter_name, frame_catalog.ra, frame_catalog.dec, "
12331243
f"frame_catalog.datarange_start_time, frame_catalog.datarange_end_time, "
1234-
f"frame_catalog.product_type, frame_catalog.product_id FROM {table} "
1244+
f"frame_catalog.product_type, frame_catalog.product_id, frame_catalog.data_set_release_part1, "
1245+
f"frame_catalog.data_set_release_part2, frame_catalog.data_set_release_part3 FROM {table} "
12351246
f"WHERE frame_catalog.observation_id = '{observation_id}' AND frame_catalog.product_type = '"
12361247
f"{product_type}' {extra_condition};")
12371248

12381249
if product_type in conf.COMBINED_SPECTRA_PRODUCTS:
12391250
table = 'sedm.combined_spectra'
12401251

1241-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'combined_spectra')
1242-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1252+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'combined_spectra')
1253+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
12431254

12441255
query = (
12451256
f"SELECT combined_spectra.combined_spectra_oid, combined_spectra.lambda_range, "
12461257
f"combined_spectra.tile_index, combined_spectra.stc_s, combined_spectra.product_type, "
1247-
f"combined_spectra.product_id FROM {table} "
1258+
f"combined_spectra.product_id, combined_spectra.data_set_release_part1, "
1259+
f"combined_spectra.data_set_release_part2, combined_spectra.data_set_release_part3 FROM {table} "
12481260
f"WHERE ( observation_id_list = '{observation_id}' OR observation_id_list like '{observation_id} %' "
12491261
f"OR observation_id_list "
12501262
f"like '% {observation_id}' OR observation_id_list like '% {observation_id} %' ) AND "
@@ -1253,15 +1265,16 @@ def get_product_list(self, *, observation_id=None, tile_index=None, product_type
12531265
if product_type in conf.SIR_SCIENCE_FRAME_PRODUCTS:
12541266
table = 'sedm.sir_science_frame'
12551267

1256-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'sir_science_frame')
1257-
extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
1268+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3, 'sir_science_frame')
1269+
extra_condition = '' if dsr_condition is None else f' AND {dsr_condition}'
12581270

12591271
instrument_name = "NISP"
12601272

12611273
query = (
12621274
f"SELECT sir_science_frame.file_name, sir_science_frame.science_frame_oid, "
12631275
f"sir_science_frame.observation_id, sir_science_frame.instrument_name, sir_science_frame.stc_s, "
1264-
f"sir_science_frame.prod_sdc FROM {table} "
1276+
f"sir_science_frame.prod_sdc, sir_science_frame.data_set_release_part1, "
1277+
f"sir_science_frame.data_set_release_part2, sir_science_frame.data_set_release_part3 FROM {table} "
12651278
f"WHERE sir_science_frame.observation_id = '{observation_id}' AND sir_science_frame.instrument_name = '"
12661279
f"{instrument_name}' {extra_condition};")
12671280

@@ -1272,7 +1285,31 @@ def get_product_list(self, *, observation_id=None, tile_index=None, product_type
12721285
format_with_results_compressed=('votable_gzip',))
12731286
return job.get_results()
12741287

1275-
def get_data_set_release_condition(self, dsr_1_value=None, dsr_2_value=None, dsr_3_value=None, alias=None):
1288+
def __get_data_set_release_condition(self, dsr_1_value=None, dsr_2_value=None, dsr_3_value=None, alias=None):
1289+
1290+
query = None
1291+
if dsr_1_value is not None:
1292+
dsr_1_final = '.'.join(filter(None, [alias, 'data_set_release_part1']))
1293+
query = f"{dsr_1_final} = '{dsr_1_value}'"
1294+
1295+
if dsr_2_value is not None:
1296+
dsr_2_final = '.'.join(filter(None, [alias, 'data_set_release_part2']))
1297+
if query is not None:
1298+
query = f"{query} AND {dsr_2_final} = '{dsr_2_value}'"
1299+
else:
1300+
query = f"{dsr_2_final} = '{dsr_2_value}'"
1301+
1302+
if dsr_3_value is not None:
1303+
dsr_3_final = '.'.join(filter(None, [alias, 'data_set_release_part3']))
1304+
if query is not None:
1305+
query = f"{query} AND {dsr_3_final} = {dsr_3_value}"
1306+
else:
1307+
query = f"{dsr_3_final} = {dsr_3_value}"
1308+
1309+
return query
1310+
1311+
def __get_data_set_release_condition_from_environment(self, dsr_1_value=None, dsr_2_value=None, dsr_3_value=None,
1312+
alias=None):
12761313

12771314
query = None
12781315
if dsr_1_value is not None:
@@ -1604,7 +1641,7 @@ def get_scientific_product_list(self, *, observation_id=None, tile_index=None, c
16041641
if tile_index is not None:
16051642
query_extra_condition = f" AND '{tile_index}' = ANY(tile_index_list) "
16061643

1607-
dsr_condition = self.get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3)
1644+
dsr_condition = self.__get_data_set_release_condition(dsr_part1, dsr_part2, dsr_part3)
16081645
dsr_extra_condition = '' if dsr_condition is None else f'AND {dsr_condition}'
16091646

16101647
if observation_id is not None:
@@ -1710,7 +1747,9 @@ def get_scientific_product_list(self, *, observation_id=None, tile_index=None, c
17101747
f"basic_download_data.product_id, CAST(basic_download_data.observation_id_list as text) AS "
17111748
f"observation_id_list, CAST(basic_download_data.tile_index_list as text) AS tile_index_list, "
17121749
f"CAST(basic_download_data.patch_id_list as text) AS patch_id_list, "
1713-
f"CAST(basic_download_data.filter_name as text) AS filter_name FROM {table} WHERE "
1750+
f"CAST(basic_download_data.filter_name as text) AS filter_name, "
1751+
f"basic_download_data.data_set_release_part1, basic_download_data.data_set_release_part2, "
1752+
f"basic_download_data.data_set_release_part3 FROM {table} WHERE "
17141753
f"release_name='{dataset_release}' {query_extra_condition} {dsr_extra_condition} ORDER BY "
17151754
f"observation_id_list ASC")
17161755

0 commit comments

Comments
 (0)