diff --git a/hyp3_testing/opera_compare.py b/hyp3_testing/opera_compare.py index fff85b1..3f13176 100644 --- a/hyp3_testing/opera_compare.py +++ b/hyp3_testing/opera_compare.py @@ -18,7 +18,12 @@ RTC_S1_PRODUCTS_ERROR_REL_TOLERANCE = 1e-03 RTC_S1_PRODUCTS_ERROR_ABS_TOLERANCE = 1e-04 -LIST_EXCLUDE_COMPARISON_HDF5 = ['//identification/processingDateTime'] +LIST_EXCLUDE_COMPARISON_HDF5 = [ + '//identification/processingDateTime', + # TODO: figure out why these don't exist + # '//metadata/qa/rfi/frequencyDomainRfiBurstReport', + # '//metadata/qa/rfi/timeDomainRfiReport', +] LIST_NAME_COMPARISON_XML = [ '/gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString', '/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gmx:FileName', @@ -159,6 +164,9 @@ def compare_hdf5_elements(hdf5_obj_1: h5py.Group, hdf5_obj_2: h5py.Group, str_ke str_key: Key to the dataset or attribute is_attr: Designate if `str_key` is for dataset or attribute """ + if any([str_key.startswith(x) for x in LIST_EXCLUDE_COMPARISON_HDF5]): + return + # Prepare to comapre the data in the HDF objects if is_attr: # str_key is for attribute @@ -196,9 +204,6 @@ def compare_hdf5_elements(hdf5_obj_1: h5py.Group, hdf5_obj_2: h5py.Group, str_ke if is_void or is_reference: val_2 = _unpack_array(val_2, hdf5_obj_2) - if str_key in LIST_EXCLUDE_COMPARISON_HDF5: - return - shape_val_1 = val_1.shape shape_val_2 = val_2.shape assert shape_val_1 == shape_val_2 @@ -308,7 +313,6 @@ def _compare_rtc_s1_metadata(metadata_1: dict, metadata_2: dict) -> None: check_product_id(v1, v2) continue elif k1 in LIST_EXCLUDE_COMPARISON_IMAGE: - print(v1) continue assert v2 == v1, f'Values for key {k1} do not match ({v1} | {v2})' @@ -339,6 +343,12 @@ def compare_rtc_s1_products(file_1: Path, file_2: Path) -> None: image_2 = gdal_band_2.ReadAsArray() assert image_1.shape == image_2.shape assert image_1.dtype == image_2.dtype + # try: + # assert np.allclose(image_1, image_2, **ALL_CLOSE_ARGS) + # except AssertionError: + # diff = image_1 - image_2 + # is_diff = ~np.isclose(image_1, image_2, **ALL_CLOSE_ARGS) + # n_diff = np.sum(is_diff) assert np.allclose(image_1, image_2, **ALL_CLOSE_ARGS) diff --git a/hyp3_testing/templates/opera_rtc_s1_golden.json.j2 b/hyp3_testing/templates/opera_rtc_s1_golden.json.j2 index 24c1875..8c651b7 100644 --- a/hyp3_testing/templates/opera_rtc_s1_golden.json.j2 +++ b/hyp3_testing/templates/opera_rtc_s1_golden.json.j2 @@ -1,32 +1,165 @@ +{% set granules = [ +'S1_191606_IW2_20230801T204912_HH_89E5-BURST', +'S1_133460_IW3_20220501T001600_VV_8F14-BURST', +'S1_359575_IW2_20220201T053045_VV_EDCF-BURST', +'S1_025990_IW3_20220801T135534_VV_8811-BURST', +'S1_015793_IW1_20220801T060646_VV_A2E0-BURST', +'S1_009422_IW3_20220801T011355_VV_62C3-BURST', +'S1_144642_IW1_20220501T085001_HH_C30B-BURST', +'S1_007270_IW3_20220201T233452_VV_8221-BURST', +'S1_165731_IW1_20230801T005941_VV_747D-BURST', +'S1_002348_IW1_20220201T194834_VV_E8FC-BURST', +'S1_292529_IW1_20230501T020840_VV_4083-BURST', +'S1_036775_IW1_20220801T221120_VV_D5EC-BURST', +'S1_359524_IW1_20220201T052823_VV_9C97-BURST', +'S1_359459_IW1_20220201T052524_VV_E64A-BURST', +'S1_373594_IW1_20220201T161512_VV_8E82-BURST', +'S1_150514_IW1_20220501T131958_VV_1DD0-BURST', +'S1_152738_IW1_20220501T150212_VV_4C3F-BURST', +'S1_151212_IW1_20230201T135208_VV_61E6-BURST', +'S1_295264_IW1_20230501T041423_VV_2A63-BURST', +'S1_359352_IW1_20220201T052028_VV_49C6-BURST', +'S1_163331_IW2_20230201T230916_VV_FA24-BURST', +'S1_146245_IW2_20220501T100343_VV_7FA3-BURST', +'S1_320310_IW2_20230501T232548_VV_29E4-BURST', +'S1_307331_IW2_20230501T132909_VV_9FD2-BURST', +'S1_318168_IW2_20230501T214720_VV_57C2-BURST', +'S1_157300_IW2_20230201T183201_HH_4FE0-BURST', +'S1_036632_IW2_20220801T220447_VV_3139-BURST', +'S1_150573_IW2_20220501T132241_VV_9BBB-BURST', +'S1_136524_IW2_20230201T023655_VV_4369-BURST', +'S1_292489_IW2_20230501T020650_VV_1BAD-BURST', +'S1_163283_IW3_20220501T230700_VV_6037-BURST', +'S1_182787_IW3_20230801T140348_VV_F35F-BURST', +'S1_195410_IW3_20230801T234406_VV_E5B0-BURST', +'S1_353213_IW3_20220201T003817_VV_BE3A-BURST', +'S1_170810_IW3_20230801T045312_VV_CB00-BURST', +'S1_181343_IW3_20230801T125725_VV_66F1-BURST', +'S1_136211_IW3_20220501T022228_VV_CC2B-BURST', +'S1_316880_IW3_20230501T204808_VV_CDF5-BURST', +'S1_036797_IW3_20220801T221223_VV_26DA-BURST', +'S1_019168_IW3_20220801T084157_VV_F678-BURST', +'S1_028384_IW3_20220801T154538_HH_AF88-BURST', +'S1_152176_IW1_20220501T143622_HH_5576-BURST', +'S1_163354_IW3_20220501T231016_VV_C1F2-BURST', +'S1_146042_IW3_20230201T095429_VV_5E5B-BURST', +'S1_006633_IW2_20220201T230534_VV_A454-BURST', +'S1_004739_IW3_20220201T213831_HH_D539-BURST', +'S1_154470_IW1_20230201T162154_VV_F832-BURST', +'S1_006513_IW2_20220201T230003_VV_CC3F-BURST', +'S1_150505_IW3_20230201T131940_VV_18F5-BURST', +'S1_148182_IW2_20230201T113251_VV_3142-BURST', +'S1_177292_IW2_20230801T095110_VV_BAA1-BURST', +'S1_017996_IW2_20220801T074804_VV_BC02-BURST', +'S1_361683_IW1_20220201T070738_VV_1E85-BURST', +'S1_297118_IW1_20230501T053937_VV_3E40-BURST', +'S1_166282_IW1_20230801T012501_VV_4D24-BURST', +'S1_136507_IW3_20220501T023604_VV_30A6-BURST', +'S1_145149_IW1_20230201T091324_VV_1BCD-BURST', +'S1_370089_IW2_20220201T133405_HH_B613-BURST', +'S1_168760_IW2_20230801T031857_VV_4BCE-BURST', +'S1_026556_IW2_20220801T142135_VV_1765-BURST', +'S1_152176_IW3_20230201T143629_HH_F01D-BURST', +'S1_152156_IW1_20220501T143527_HH_A04F-BURST', +'S1_371294_IW2_20220201T142929_HH_DE7D-BURST', +'S1_371278_IW1_20220201T142844_HH_20DE-BURST', +'S1_152180_IW2_20220501T143634_HH_5576-BURST', +'S1_152222_IW2_20220501T143830_HH_BBE4-BURST', +'S1_371301_IW2_20220201T142948_HH_DE7D-BURST', +'S1_152183_IW3_20220501T143643_HH_B198-BURST', +'S1_371315_IW3_20220201T143028_HH_3964-BURST', +'S1_152189_IW2_20230201T143704_HH_F3AE-BURST', +'S1_020108_IW1_20220801T092508_HH_9042-BURST', +'S1_176837_IW1_20230801T093014_HH_E423-BURST', +'S1_157213_IW1_20230201T182800_HH_4C34-BURST', +'S1_144602_IW2_20220501T084811_HH_DCD1-BURST', +'S1_157227_IW3_20230201T182841_HH_A729-BURST', +'S1_144644_IW1_20230201T085011_HH_7305-BURST', +'S1_157235_IW1_20220501T182856_HH_2295-BURST', +'S1_020078_IW1_20220801T092345_HH_F5F4-BURST', +'S1_365790_IW3_20220201T101628_HH_CFEC-BURST', +'S1_144625_IW1_20220501T084914_HH_8D2F-BURST', +'S1_146123_IW2_20230201T095812_VV_248E-BURST', +'S1_146128_IW3_20220501T095822_VV_F1B2-BURST', +'S1_146121_IW3_20220501T095802_VV_F4C1-BURST', +'S1_146117_IW2_20230201T095755_VV_E636-BURST', +'S1_146110_IW2_20230201T095736_VV_E636-BURST', +'S1_146131_IW1_20220501T095828_VV_F1B2-BURST', +'S1_146132_IW3_20230201T095837_VV_D627-BURST', +'S1_146136_IW3_20230201T095848_VV_D627-BURST', +'S1_146125_IW2_20230201T095817_VV_248E-BURST', +'S1_146126_IW3_20220501T095816_VV_F4C1-BURST', +'S1_143891_IW3_20230201T081536_VV_4C51-BURST', +'S1_371718_IW2_20220201T144858_VV_EB5E-BURST', +'S1_018016_IW3_20220801T074900_VV_4238-BURST', +'S1_363285_IW1_20220201T082117_VV_5CE1-BURST', +'S1_138553_IW1_20230201T041011_VV_0C19-BURST', +'S1_290821_IW3_20230501T005010_VV_C471-BURST', +'S1_030357_IW2_20220801T171619_VV_EF3F-BURST', +'S1_374111_IW2_20220201T163859_VV_63AF-BURST', +'S1_011909_IW2_20220801T030814_VV_30A5-BURST', +'S1_184638_IW1_20230801T152852_VV_0126-BURST', +'S1_172597_IW2_20230801T061520_VV_B62C-BURST', +'S1_313623_IW3_20230501T181825_VV_891D-BURST', +'S1_015800_IW3_20220801T060708_VV_AA46-BURST', +'S1_156859_IW1_20220501T181139_VV_70B8-BURST', +'S1_156892_IW3_20230201T181317_VV_A4CB-BURST', +'S1_140037_IW2_20230201T051825_HH_787D-BURST', +'S1_015837_IW2_20220801T060849_VV_9BBA-BURST', +'S1_172601_IW2_20230801T061531_VV_B62C-BURST', +'S1_172613_IW1_20230801T061603_VV_1C0C-BURST', +'S1_156886_IW3_20230201T181300_VV_4666-BURST', +'S1_170529_IW3_20230801T044017_VV_A29C-BURST', +'S1_154891_IW1_20220501T164111_VV_911F-BURST', +'S1_038840_IW1_20220801T234616_VV_2366-BURST', +'S1_154886_IW2_20220501T164058_VV_A295-BURST', +'S1_033361_IW3_20220801T193426_VV_9176-BURST', +'S1_038658_IW1_20220801T233754_VV_F85F-BURST', +'S1_318190_IW2_20230501T214821_VV_69F9-BURST', +'S1_309683_IW3_20230501T151717_VV_3047-BURST', +'S1_293050_IW1_20230501T023237_VV_408A-BURST', +'S1_028190_IW3_20220801T153643_VV_5D7F-BURST', +'S1_172529_IW2_20230801T061213_VV_33F9-BURST', +'S1_005400_IW2_20220201T220853_VV_7058-BURST', +'S1_361667_IW2_20220201T070655_VV_2E36-BURST', +'S1_015764_IW2_20220801T060527_VV_D6ED-BURST', +'S1_163328_IW1_20220501T230902_VV_222F-BURST', +'S1_157240_IW3_20220501T182912_HH_2295-BURST', +'S1_136507_IW3_20220501T023604_VV_30A6-BURST', +'S1_195557_IW3_20230801T235051_VV_15A8-BURST', +'S1_003264_IW2_20220201T203041_VV_62C7-BURST', +'S1_180539_IW2_20230801T122026_VV_982C-BURST', +'S1_290836_IW3_20230501T005052_VV_92B9-BURST', +'S1_015738_IW1_20220801T060415_VV_AC5B-BURST', +'S1_367475_IW3_20220201T113356_VV_DC26-BURST', +'S1_030344_IW3_20220801T171544_VV_1932-BURST', +'S1_007338_IW2_20220201T233759_VV_1E1A-BURST', +'S1_367470_IW3_20220201T113342_VV_78AC-BURST', +'S1_359504_IW2_20220201T052729_VV_E5DB-BURST', +'S1_367476_IW1_20220201T113357_VV_DC26-BURST', +'S1_367486_IW3_20220201T113426_VV_5019-BURST', +'S1_367488_IW1_20220201T113430_VV_5019-BURST', +'S1_141650_IW3_20230201T063235_VV_2C85-BURST', +'S1_312626_IW2_20230501T173234_VV_F346-BURST', +'S1_000684_IW2_20220201T183205_VV_A461-BURST', +'S1_141657_IW3_20230201T063254_VV_2C85-BURST', +'S1_000705_IW1_20220201T183302_VV_4AE0-BURST', +'S1_312639_IW1_20230501T173308_VV_5543-BURST', +'S1_312632_IW2_20230501T173250_VV_F346-BURST', +'S1_312638_IW1_20230501T173306_VV_5543-BURST', +'S1_141655_IW3_20230201T063249_VV_2C85-BURST', +'S1_140036_IW2_20230201T051822_HH_787D-BURST' +] %} [ - {# Swath 1 scene with homogenous backscatter (Amazon Rainforest) #} + {% for granule in granules %} { "job_type": "OPERA_RTC_S1", "name": "{{ name }}", "job_parameters": { "granules": [ - "S1_366240_IW1_20220321T103707_VV_8575-BURST" + "{{ granule }}" ] } - }, - {# Swath 2 scene with varying backscatter regions (San Francisco) #} - { - "job_type": "OPERA_RTC_S1", - "name": "{{ name }}", - "job_parameters": { - "granules": [ - "S1_073251_IW2_20220111T020806_VV_9D98-BURST" - ] - } - }, - {# Swath 3 scene with HH co-pol (Nova Scotia) #} - { - "job_type": "OPERA_RTC_S1", - "name": "{{ name }}", - "job_parameters": { - "granules": [ - "S1_209152_IW2_20220103T101538_HH_BD12-BURST" - ] - } - } + }{% if not loop.last %},{% endif %} + {% endfor %} ] diff --git a/scripts/opera-rtc/choose_granules.py b/scripts/opera-rtc/choose_granules.py index 231ebbd..3b24f16 100644 --- a/scripts/opera-rtc/choose_granules.py +++ b/scripts/opera-rtc/choose_granules.py @@ -3,11 +3,19 @@ import requests import shapely +from shapely.strtree import STRtree session = requests.Session() +def get_attribute_values(granule, attribute_name: str) -> list[str]: + for attribute in granule['umm']['AdditionalAttributes']: + if attribute['Name'] == attribute_name: + return attribute['Values'] + raise ValueError(f'Attribute {attribute_name} not found for granule {granule["meta"]["native-id"]}') + + def get_corresponding_burst_granule_name(opera_granule: dict) -> str: start = opera_granule['umm']['TemporalExtent']['RangeDateTime']['BeginningDateTime'] end = opera_granule['umm']['TemporalExtent']['RangeDateTime']['EndingDateTime'] @@ -28,16 +36,11 @@ def get_corresponding_burst_granule_name(opera_granule: dict) -> str: return response.json()['items'][0]['meta']['native-id'] -def get_attribute_values(granule, attribute_name: str) -> list[str]: - for attribute in granule['umm']['AdditionalAttributes']: - if attribute['Name'] == attribute_name: - return attribute['Values'] - raise ValueError(f'Attribute {attribute_name} not found for granule {granule["meta"]["native-id"]}') - - -def choose_sample(candidates: list) -> None: +def choose_sample(candidates: list, n=10) -> None: + print(f'Provided {len(candidates)} candidates') for granule in random.sample(candidates, 10): - print(f'{granule["meta"]["native-id"]},{get_corresponding_burst_granule_name(granule)}') + granule_name = granule['meta']['native-id'] + print(f'{granule_name},{get_corresponding_burst_granule_name(granule)}') def over_antimeridian(granule: dict) -> bool: @@ -58,27 +61,31 @@ def over_prime_meridian(granule: dict) -> bool: return min(longitudes) < 0 < max(longitudes) -def percent_overlap(granule: dict, area: shapely.Geometry) -> float: +def percent_overlap(granule: dict, area: shapely.Geometry, area_strt) -> float: granule_shape = shapely.MultiPolygon( [ shapely.Polygon([point['Longitude'], point['Latitude']] for point in poly['Boundary']['Points']) for poly in granule['umm']['SpatialExtent']['HorizontalSpatialDomain']['Geometry']['GPolygons'] ] ) - return shapely.intersection(granule_shape, area).area / granule_shape.area + indexes = list(area_strt.query(granule_shape)) + if len(indexes) == 0: + return 0.0 + intersecting_area = shapely.geometry.GeometryCollection([area.geoms[i] for i in indexes]) + return shapely.intersection(granule_shape, intersecting_area).area / granule_shape.area def main(): - with open('rtc_granules.json') as f: - granules = json.load(f) with open('GSHHS_c_L1.geojson') as f: land = shapely.from_geojson(f.read()) with open('extreme_terrain.geojson') as f: extreme_terrain = shapely.from_geojson(f.read()) + with open('rtc_granules.json') as f: + granules = json.load(f) print('S1A') choose_sample([g for g in granules if g['umm']['Platforms'][0]['ShortName'] == 'Sentinel-1A']) - print('S1B') + # print('S1B') # choose_sample([g for g in granules if g['umm']['Platforms'][0]['ShortName'] == 'Sentinel-1B']) print('IW1') choose_sample([g for g in granules if 'IW1' in get_attribute_values(g, 'SUBSWATH_NAME')]) @@ -100,14 +107,15 @@ def main(): choose_sample([g for g in granules if get_attribute_values(g, 'POLARIZATION') == ['VV', 'VH']]) print('prime meridian') choose_sample([g for g in granules if over_prime_meridian(g)]) - print('antimeridian') - choose_sample([g for g in granules if over_antimeridian(g)]) + pct_lands = [percent_overlap(g, land, STRtree(land.geoms)) for g in granules] print('9-11% land') - choose_sample([g for g in granules if 0.09 < percent_overlap(g, land) < 0.11]) + choose_sample([g for g, pct_land in zip(granules, pct_lands) if 0.09 < pct_land < 0.11]) print('0% land') - choose_sample([g for g in granules if percent_overlap(g, land) == 0.0]) + choose_sample([g for g, pct_land in zip(granules, pct_lands) if pct_land == 0.0]) print('extreme terrain') - choose_sample([g for g in granules if 0.8 <= percent_overlap(g, extreme_terrain)]) + choose_sample([g for g in granules if 0.8 <= percent_overlap(g, extreme_terrain, STRtree(extreme_terrain.geoms))]) + print('antimeridian') + choose_sample([g for g in granules if over_antimeridian(g)]) if __name__ == '__main__': diff --git a/scripts/opera-rtc/granules.txt b/scripts/opera-rtc/granules.txt new file mode 100644 index 0000000..924826f --- /dev/null +++ b/scripts/opera-rtc/granules.txt @@ -0,0 +1,180 @@ +S1A +Provided 86041 candidates +OPERA_L2_RTC-S1_T090-191606-IW2_20230801T204912Z_20250210T225649Z_S1A_30_v1.0,S1_191606_IW2_20230801T204912_HH_89E5-BURST +OPERA_L2_RTC-S1_T063-133460-IW3_20220501T001600Z_20241230T082119Z_S1A_30_v1.0,S1_133460_IW3_20220501T001600_VV_8F14-BURST +OPERA_L2_RTC-S1_T168-359575-IW2_20220201T053045Z_20241220T204636Z_S1A_30_v1.0,S1_359575_IW2_20220201T053045_VV_EDCF-BURST +OPERA_L2_RTC-S1_T013-025990-IW3_20220801T135534Z_20250215T125705Z_S1A_30_v1.0,S1_025990_IW3_20220801T135534_VV_8811-BURST +OPERA_L2_RTC-S1_T008-015793-IW1_20220801T060646Z_20250215T122545Z_S1A_30_v1.0,S1_015793_IW1_20220801T060646_VV_A2E0-BURST +OPERA_L2_RTC-S1_T005-009422-IW3_20220801T011355Z_20250215T121651Z_S1A_30_v1.0,S1_009422_IW3_20220801T011355_VV_62C3-BURST +OPERA_L2_RTC-S1_T068-144642-IW1_20220501T085001Z_20241230T091027Z_S1A_30_v1.0,S1_144642_IW1_20220501T085001_HH_C30B-BURST +OPERA_L2_RTC-S1_T004-007270-IW3_20220201T233452Z_20241220T224603Z_S1A_30_v1.0,S1_007270_IW3_20220201T233452_VV_8221-BURST +OPERA_L2_RTC-S1_T078-165731-IW1_20230801T005941Z_20250213T195257Z_S1A_30_v1.0,S1_165731_IW1_20230801T005941_VV_747D-BURST +OPERA_L2_RTC-S1_T002-002348-IW1_20220201T194834Z_20241220T222805Z_S1A_30_v1.0,S1_002348_IW1_20220201T194834_VV_E8FC-BURST +IW1 +Provided 28680 candidates +OPERA_L2_RTC-S1_T137-292529-IW1_20230501T020840Z_20250202T000432Z_S1A_30_v1.0,S1_292529_IW1_20230501T020840_VV_4083-BURST +OPERA_L2_RTC-S1_T018-036775-IW1_20220801T221120Z_20250215T133604Z_S1A_30_v1.0,S1_036775_IW1_20220801T221120_VV_D5EC-BURST +OPERA_L2_RTC-S1_T168-359524-IW1_20220201T052823Z_20241220T204636Z_S1A_30_v1.0,S1_359524_IW1_20220201T052823_VV_9C97-BURST +OPERA_L2_RTC-S1_T168-359459-IW1_20220201T052524Z_20241220T204930Z_S1A_30_v1.0,S1_359459_IW1_20220201T052524_VV_E64A-BURST +OPERA_L2_RTC-S1_T174-373594-IW1_20220201T161512Z_20241220T220822Z_S1A_30_v1.0,S1_373594_IW1_20220201T161512_VV_8E82-BURST +OPERA_L2_RTC-S1_T071-150514-IW1_20220501T131958Z_20241230T094248Z_S1A_30_v1.0,S1_150514_IW1_20220501T131958_VV_1DD0-BURST +OPERA_L2_RTC-S1_T072-152738-IW1_20220501T150212Z_20241230T095454Z_S1A_30_v1.0,S1_152738_IW1_20220501T150212_VV_4C3F-BURST +OPERA_L2_RTC-S1_T071-151212-IW1_20230201T135208Z_20250121T125338Z_S1A_30_v1.0,S1_151212_IW1_20230201T135208_VV_61E6-BURST +OPERA_L2_RTC-S1_T138-295264-IW1_20230501T041423Z_20250202T001110Z_S1A_30_v1.0,S1_295264_IW1_20230501T041423_VV_2A63-BURST +OPERA_L2_RTC-S1_T168-359352-IW1_20220201T052028Z_20241220T204853Z_S1A_30_v1.0,S1_359352_IW1_20220201T052028_VV_49C6-BURST +IW2 +Provided 28680 candidates +OPERA_L2_RTC-S1_T077-163331-IW2_20230201T230916Z_20250121T135812Z_S1A_30_v1.0,S1_163331_IW2_20230201T230916_VV_FA24-BURST +OPERA_L2_RTC-S1_T069-146245-IW2_20220501T100343Z_20241230T092515Z_S1A_30_v1.0,S1_146245_IW2_20220501T100343_VV_7FA3-BURST +OPERA_L2_RTC-S1_T150-320310-IW2_20230501T232548Z_20250202T012540Z_S1A_30_v1.0,S1_320310_IW2_20230501T232548_VV_29E4-BURST +OPERA_L2_RTC-S1_T144-307331-IW2_20230501T132909Z_20250202T004819Z_S1A_30_v1.0,S1_307331_IW2_20230501T132909_VV_9FD2-BURST +OPERA_L2_RTC-S1_T149-318168-IW2_20230501T214720Z_20250202T011826Z_S1A_30_v1.0,S1_318168_IW2_20230501T214720_VV_57C2-BURST +OPERA_L2_RTC-S1_T074-157300-IW2_20230201T183201Z_20250121T133350Z_S1A_30_v1.0,S1_157300_IW2_20230201T183201_HH_4FE0-BURST +OPERA_L2_RTC-S1_T018-036632-IW2_20220801T220447Z_20250215T133355Z_S1A_30_v1.0,S1_036632_IW2_20220801T220447_VV_3139-BURST +OPERA_L2_RTC-S1_T071-150573-IW2_20220501T132241Z_20241230T094301Z_S1A_30_v1.0,S1_150573_IW2_20220501T132241_VV_9BBB-BURST +OPERA_L2_RTC-S1_T064-136524-IW2_20230201T023655Z_20250121T114315Z_S1A_30_v1.0,S1_136524_IW2_20230201T023655_VV_4369-BURST +OPERA_L2_RTC-S1_T137-292489-IW2_20230501T020650Z_20250202T000414Z_S1A_30_v1.0,S1_292489_IW2_20230501T020650_VV_1BAD-BURST +IW3 +Provided 28681 candidates +OPERA_L2_RTC-S1_T077-163283-IW3_20220501T230700Z_20241230T104507Z_S1A_30_v1.0,S1_163283_IW3_20220501T230700_VV_6037-BURST +OPERA_L2_RTC-S1_T086-182787-IW3_20230801T140348Z_20250210T221335Z_S1A_30_v1.0,S1_182787_IW3_20230801T140348_VV_F35F-BURST +OPERA_L2_RTC-S1_T091-195410-IW3_20230801T234406Z_20250210T230521Z_S1A_30_v1.0,S1_195410_IW3_20230801T234406_VV_E5B0-BURST +OPERA_L2_RTC-S1_T165-353213-IW3_20220201T003817Z_20241220T201110Z_S1A_30_v1.0,S1_353213_IW3_20220201T003817_VV_BE3A-BURST +OPERA_L2_RTC-S1_T080-170810-IW3_20230801T045312Z_20250210T213259Z_S1A_30_v1.0,S1_170810_IW3_20230801T045312_VV_CB00-BURST +OPERA_L2_RTC-S1_T085-181343-IW3_20230801T125725Z_20250210T220731Z_S1A_30_v1.0,S1_181343_IW3_20230801T125725_VV_66F1-BURST +OPERA_L2_RTC-S1_T064-136211-IW3_20220501T022228Z_20241230T083300Z_S1A_30_v1.0,S1_136211_IW3_20220501T022228_VV_CC2B-BURST +OPERA_L2_RTC-S1_T148-316880-IW3_20230501T204808Z_20250202T014240Z_S1A_30_v1.0,S1_316880_IW3_20230501T204808_VV_CDF5-BURST +OPERA_L2_RTC-S1_T018-036797-IW3_20220801T221223Z_20250215T133515Z_S1A_30_v1.0,S1_036797_IW3_20220801T221223_VV_26DA-BURST +OPERA_L2_RTC-S1_T009-019168-IW3_20220801T084157Z_20250215T123437Z_S1A_30_v1.0,S1_019168_IW3_20220801T084157_VV_F678-BURST +ASCENDING +Provided 43360 candidates +OPERA_L2_RTC-S1_T014-028384-IW3_20220801T154538Z_20250215T130350Z_S1A_30_v1.0,S1_028384_IW3_20220801T154538_HH_AF88-BURST +OPERA_L2_RTC-S1_T071-152176-IW1_20220501T143622Z_20241230T094728Z_S1A_30_v1.0,S1_152176_IW1_20220501T143622_HH_5576-BURST +OPERA_L2_RTC-S1_T077-163354-IW3_20220501T231016Z_20241230T104401Z_S1A_30_v1.0,S1_163354_IW3_20220501T231016_VV_C1F2-BURST +OPERA_L2_RTC-S1_T068-146042-IW3_20230201T095429Z_20250121T122709Z_S1A_30_v1.0,S1_146042_IW3_20230201T095429_VV_5E5B-BURST +OPERA_L2_RTC-S1_T004-006633-IW2_20220201T230534Z_20241220T224152Z_S1A_30_v1.0,S1_006633_IW2_20220201T230534_VV_A454-BURST +OPERA_L2_RTC-S1_T003-004739-IW3_20220201T213831Z_20241220T222923Z_S1A_30_v1.0,S1_004739_IW3_20220201T213831_HH_D539-BURST +OPERA_L2_RTC-S1_T072-154470-IW1_20230201T162154Z_20250121T131706Z_S1A_30_v1.0,S1_154470_IW1_20230201T162154_VV_F832-BURST +OPERA_L2_RTC-S1_T004-006513-IW2_20220201T230003Z_20241220T223412Z_S1A_30_v1.0,S1_006513_IW2_20220201T230003_VV_CC3F-BURST +OPERA_L2_RTC-S1_T071-150505-IW3_20230201T131940Z_20250121T125409Z_S1A_30_v1.0,S1_150505_IW3_20230201T131940_VV_18F5-BURST +OPERA_L2_RTC-S1_T069-148182-IW2_20230201T113251Z_20250121T124136Z_S1A_30_v1.0,S1_148182_IW2_20230201T113251_VV_3142-BURST +DESCENDING +Provided 42681 candidates +OPERA_L2_RTC-S1_T083-177292-IW2_20230801T095110Z_20250210T221248Z_S1A_30_v1.0,S1_177292_IW2_20230801T095110_VV_BAA1-BURST +OPERA_L2_RTC-S1_T009-017996-IW2_20220801T074804Z_20250215T123059Z_S1A_30_v1.0,S1_017996_IW2_20220801T074804_VV_BC02-BURST +OPERA_L2_RTC-S1_T169-361683-IW1_20220201T070738Z_20241220T205728Z_S1A_30_v1.0,S1_361683_IW1_20220201T070738_VV_1E85-BURST +OPERA_L2_RTC-S1_T139-297118-IW1_20230501T053937Z_20250202T001552Z_S1A_30_v1.0,S1_297118_IW1_20230501T053937_VV_3E40-BURST +OPERA_L2_RTC-S1_T078-166282-IW1_20230801T012501Z_20250210T215116Z_S1A_30_v1.0,S1_166282_IW1_20230801T012501_VV_4D24-BURST +OPERA_L2_RTC-S1_T064-136507-IW3_20220501T023604Z_20241230T083243Z_S1A_30_v1.0,S1_136507_IW3_20220501T023604_VV_30A6-BURST +OPERA_L2_RTC-S1_T068-145149-IW1_20230201T091324Z_20250121T122803Z_S1A_30_v1.0,S1_145149_IW1_20230201T091324_VV_1BCD-BURST +OPERA_L2_RTC-S1_T173-370089-IW2_20220201T133405Z_20241220T213710Z_S1A_30_v1.0,S1_370089_IW2_20220201T133405_HH_B613-BURST +OPERA_L2_RTC-S1_T079-168760-IW2_20230801T031857Z_20250210T213012Z_S1A_30_v1.0,S1_168760_IW2_20230801T031857_VV_4BCE-BURST +OPERA_L2_RTC-S1_T013-026556-IW2_20220801T142135Z_20250215T130054Z_S1A_30_v1.0,S1_026556_IW2_20220801T142135_VV_1765-BURST +HH +Provided 1170 candidates +OPERA_L2_RTC-S1_T071-152176-IW3_20230201T143629Z_20250121T125750Z_S1A_30_v1.0,S1_152176_IW3_20230201T143629_HH_F01D-BURST +OPERA_L2_RTC-S1_T071-152156-IW1_20220501T143527Z_20241230T094751Z_S1A_30_v1.0,S1_152156_IW1_20220501T143527_HH_A04F-BURST +OPERA_L2_RTC-S1_T173-371294-IW2_20220201T142929Z_20241220T214734Z_S1A_30_v1.0,S1_371294_IW2_20220201T142929_HH_DE7D-BURST +OPERA_L2_RTC-S1_T173-371278-IW1_20220201T142844Z_20241220T214903Z_S1A_30_v1.0,S1_371278_IW1_20220201T142844_HH_20DE-BURST +OPERA_L2_RTC-S1_T071-152180-IW2_20220501T143634Z_20241230T094728Z_S1A_30_v1.0,S1_152180_IW2_20220501T143634_HH_5576-BURST +OPERA_L2_RTC-S1_T071-152222-IW2_20220501T143830Z_20241230T094750Z_S1A_30_v1.0,S1_152222_IW2_20220501T143830_HH_BBE4-BURST +OPERA_L2_RTC-S1_T173-371301-IW2_20220201T142948Z_20241220T214734Z_S1A_30_v1.0,S1_371301_IW2_20220201T142948_HH_DE7D-BURST +OPERA_L2_RTC-S1_T071-152183-IW3_20220501T143643Z_20241230T094736Z_S1A_30_v1.0,S1_152183_IW3_20220501T143643_HH_B198-BURST +OPERA_L2_RTC-S1_T173-371315-IW3_20220201T143028Z_20241220T214833Z_S1A_30_v1.0,S1_371315_IW3_20220201T143028_HH_3964-BURST +OPERA_L2_RTC-S1_T071-152189-IW2_20230201T143704Z_20250121T125727Z_S1A_30_v1.0,S1_152189_IW2_20230201T143704_HH_F3AE-BURST +HH+HV +Provided 4536 candidates +OPERA_L2_RTC-S1_T010-020108-IW1_20220801T092508Z_20250215T123606Z_S1A_30_v1.0,S1_020108_IW1_20220801T092508_HH_9042-BURST +OPERA_L2_RTC-S1_T083-176837-IW1_20230801T093014Z_20250210T220308Z_S1A_30_v1.0,S1_176837_IW1_20230801T093014_HH_E423-BURST +OPERA_L2_RTC-S1_T074-157213-IW1_20230201T182800Z_20250121T132510Z_S1A_30_v1.0,S1_157213_IW1_20230201T182800_HH_4C34-BURST +OPERA_L2_RTC-S1_T068-144602-IW2_20220501T084811Z_20241230T091021Z_S1A_30_v1.0,S1_144602_IW2_20220501T084811_HH_DCD1-BURST +OPERA_L2_RTC-S1_T074-157227-IW3_20230201T182841Z_20250121T132455Z_S1A_30_v1.0,S1_157227_IW3_20230201T182841_HH_A729-BURST +OPERA_L2_RTC-S1_T068-144644-IW1_20230201T085011Z_20250121T122052Z_S1A_30_v1.0,S1_144644_IW1_20230201T085011_HH_7305-BURST +OPERA_L2_RTC-S1_T074-157235-IW1_20220501T182856Z_20241230T101308Z_S1A_30_v1.0,S1_157235_IW1_20220501T182856_HH_2295-BURST +OPERA_L2_RTC-S1_T010-020078-IW1_20220801T092345Z_20250215T123459Z_S1A_30_v1.0,S1_020078_IW1_20220801T092345_HH_F5F4-BURST +OPERA_L2_RTC-S1_T171-365790-IW3_20220201T101628Z_20241220T212454Z_S1A_30_v1.0,S1_365790_IW3_20220201T101628_HH_CFEC-BURST +OPERA_L2_RTC-S1_T068-144625-IW1_20220501T084914Z_20241230T091018Z_S1A_30_v1.0,S1_144625_IW1_20220501T084914_HH_8D2F-BURST +VV +Provided 180 candidates +OPERA_L2_RTC-S1_T069-146123-IW2_20230201T095812Z_20250121T122615Z_S1A_30_v1.0,S1_146123_IW2_20230201T095812_VV_248E-BURST +OPERA_L2_RTC-S1_T069-146128-IW3_20220501T095822Z_20241230T091633Z_S1A_30_v1.0,S1_146128_IW3_20220501T095822_VV_F1B2-BURST +OPERA_L2_RTC-S1_T069-146121-IW3_20220501T095802Z_20241230T091624Z_S1A_30_v1.0,S1_146121_IW3_20220501T095802_VV_F4C1-BURST +OPERA_L2_RTC-S1_T069-146117-IW2_20230201T095755Z_20250121T122632Z_S1A_30_v1.0,S1_146117_IW2_20230201T095755_VV_E636-BURST +OPERA_L2_RTC-S1_T069-146110-IW2_20230201T095736Z_20250121T122632Z_S1A_30_v1.0,S1_146110_IW2_20230201T095736_VV_E636-BURST +OPERA_L2_RTC-S1_T069-146131-IW1_20220501T095828Z_20241230T091633Z_S1A_30_v1.0,S1_146131_IW1_20220501T095828_VV_F1B2-BURST +OPERA_L2_RTC-S1_T069-146132-IW3_20230201T095837Z_20250121T122621Z_S1A_30_v1.0,S1_146132_IW3_20230201T095837_VV_D627-BURST +OPERA_L2_RTC-S1_T069-146136-IW3_20230201T095848Z_20250121T122621Z_S1A_30_v1.0,S1_146136_IW3_20230201T095848_VV_D627-BURST +OPERA_L2_RTC-S1_T069-146125-IW2_20230201T095817Z_20250121T122615Z_S1A_30_v1.0,S1_146125_IW2_20230201T095817_VV_248E-BURST +OPERA_L2_RTC-S1_T069-146126-IW3_20220501T095816Z_20241230T091624Z_S1A_30_v1.0,S1_146126_IW3_20220501T095816_VV_F4C1-BURST +VV+VH +Provided 80155 candidates +OPERA_L2_RTC-S1_T067-143891-IW3_20230201T081536Z_20250121T122034Z_S1A_30_v1.0,S1_143891_IW3_20230201T081536_VV_4C51-BURST +OPERA_L2_RTC-S1_T174-371718-IW2_20220201T144858Z_20241220T221943Z_S1A_30_v1.0,S1_371718_IW2_20220201T144858_VV_EB5E-BURST +OPERA_L2_RTC-S1_T009-018016-IW3_20220801T074900Z_20250215T123106Z_S1A_30_v1.0,S1_018016_IW3_20220801T074900_VV_4238-BURST +OPERA_L2_RTC-S1_T170-363285-IW1_20220201T082117Z_20241220T210245Z_S1A_30_v1.0,S1_363285_IW1_20220201T082117_VV_5CE1-BURST +OPERA_L2_RTC-S1_T065-138553-IW1_20230201T041011Z_20250121T115643Z_S1A_30_v1.0,S1_138553_IW1_20230201T041011_VV_0C19-BURST +OPERA_L2_RTC-S1_T136-290821-IW3_20230501T005010Z_20250201T235523Z_S1A_30_v1.0,S1_290821_IW3_20230501T005010_VV_C471-BURST +OPERA_L2_RTC-S1_T015-030357-IW2_20220801T171619Z_20250215T131310Z_S1A_30_v1.0,S1_030357_IW2_20220801T171619_VV_EF3F-BURST +OPERA_L2_RTC-S1_T175-374111-IW2_20220201T163859Z_20241220T220407Z_S1A_30_v1.0,S1_374111_IW2_20220201T163859_VV_63AF-BURST +OPERA_L2_RTC-S1_T006-011909-IW2_20220801T030814Z_20250215T121934Z_S1A_30_v1.0,S1_011909_IW2_20220801T030814_VV_30A5-BURST +OPERA_L2_RTC-S1_T086-184638-IW1_20230801T152852Z_20250210T221831Z_S1A_30_v1.0,S1_184638_IW1_20230801T152852_VV_0126-BURST +prime meridian +Provided 506 candidates +OPERA_L2_RTC-S1_T081-172597-IW2_20230801T061520Z_20250210T213622Z_S1A_30_v1.0,S1_172597_IW2_20230801T061520_VV_B62C-BURST +OPERA_L2_RTC-S1_T147-313623-IW3_20230501T181825Z_20250202T014227Z_S1A_30_v1.0,S1_313623_IW3_20230501T181825_VV_891D-BURST +OPERA_L2_RTC-S1_T008-015800-IW3_20220801T060708Z_20250215T122605Z_S1A_30_v1.0,S1_015800_IW3_20220801T060708_VV_AA46-BURST +OPERA_L2_RTC-S1_T074-156859-IW1_20220501T181139Z_20241230T101417Z_S1A_30_v1.0,S1_156859_IW1_20220501T181139_VV_70B8-BURST +OPERA_L2_RTC-S1_T074-156892-IW3_20230201T181317Z_20250121T133351Z_S1A_30_v1.0,S1_156892_IW3_20230201T181317_VV_A4CB-BURST +OPERA_L2_RTC-S1_T066-140037-IW2_20230201T051825Z_20250121T120419Z_S1A_30_v1.0,S1_140037_IW2_20230201T051825_HH_787D-BURST +OPERA_L2_RTC-S1_T008-015837-IW2_20220801T060849Z_20250215T122836Z_S1A_30_v1.0,S1_015837_IW2_20220801T060849_VV_9BBA-BURST +OPERA_L2_RTC-S1_T081-172601-IW2_20230801T061531Z_20250210T213622Z_S1A_30_v1.0,S1_172601_IW2_20230801T061531_VV_B62C-BURST +OPERA_L2_RTC-S1_T081-172613-IW1_20230801T061603Z_20250210T213615Z_S1A_30_v1.0,S1_172613_IW1_20230801T061603_VV_1C0C-BURST +OPERA_L2_RTC-S1_T074-156886-IW3_20230201T181300Z_20250121T133130Z_S1A_30_v1.0,S1_156886_IW3_20230201T181300_VV_4666-BURST +9-11% land +Provided 269 candidates +OPERA_L2_RTC-S1_T080-170529-IW3_20230801T044017Z_20250210T213132Z_S1A_30_v1.0,S1_170529_IW3_20230801T044017_VV_A29C-BURST +OPERA_L2_RTC-S1_T073-154891-IW1_20220501T164111Z_20241230T100030Z_S1A_30_v1.0,S1_154891_IW1_20220501T164111_VV_911F-BURST +OPERA_L2_RTC-S1_T019-038840-IW1_20220801T234616Z_20250215T134300Z_S1A_30_v1.0,S1_038840_IW1_20220801T234616_VV_2366-BURST +OPERA_L2_RTC-S1_T073-154886-IW2_20220501T164058Z_20241230T100031Z_S1A_30_v1.0,S1_154886_IW2_20220501T164058_VV_A295-BURST +OPERA_L2_RTC-S1_T016-033361-IW3_20220801T193426Z_20250215T132410Z_S1A_30_v1.0,S1_033361_IW3_20220801T193426_VV_9176-BURST +OPERA_L2_RTC-S1_T018-038658-IW1_20220801T233754Z_20250215T134356Z_S1A_30_v1.0,S1_038658_IW1_20220801T233754_VV_F85F-BURST +OPERA_L2_RTC-S1_T149-318190-IW2_20230501T214821Z_20250202T011927Z_S1A_30_v1.0,S1_318190_IW2_20230501T214821_VV_69F9-BURST +OPERA_L2_RTC-S1_T145-309683-IW3_20230501T151717Z_20250202T005520Z_S1A_30_v1.0,S1_309683_IW3_20230501T151717_VV_3047-BURST +OPERA_L2_RTC-S1_T137-293050-IW1_20230501T023237Z_20250202T000117Z_S1A_30_v1.0,S1_293050_IW1_20230501T023237_VV_408A-BURST +OPERA_L2_RTC-S1_T014-028190-IW3_20220801T153643Z_20250215T130327Z_S1A_30_v1.0,S1_028190_IW3_20220801T153643_VV_5D7F-BURST +0% land +Provided 24167 candidates +OPERA_L2_RTC-S1_T081-172529-IW2_20230801T061213Z_20250210T213625Z_S1A_30_v1.0,S1_172529_IW2_20230801T061213_VV_33F9-BURST +OPERA_L2_RTC-S1_T003-005400-IW2_20220201T220853Z_20241220T223338Z_S1A_30_v1.0,S1_005400_IW2_20220201T220853_VV_7058-BURST +OPERA_L2_RTC-S1_T169-361667-IW2_20220201T070655Z_20241220T205840Z_S1A_30_v1.0,S1_361667_IW2_20220201T070655_VV_2E36-BURST +OPERA_L2_RTC-S1_T008-015764-IW2_20220801T060527Z_20250215T122531Z_S1A_30_v1.0,S1_015764_IW2_20220801T060527_VV_D6ED-BURST +OPERA_L2_RTC-S1_T077-163328-IW1_20220501T230902Z_20241230T104400Z_S1A_30_v1.0,S1_163328_IW1_20220501T230902_VV_222F-BURST +OPERA_L2_RTC-S1_T074-157240-IW3_20220501T182912Z_20241230T101308Z_S1A_30_v1.0,S1_157240_IW3_20220501T182912_HH_2295-BURST +OPERA_L2_RTC-S1_T064-136507-IW3_20220501T023604Z_20241230T083243Z_S1A_30_v1.0,S1_136507_IW3_20220501T023604_VV_30A6-BURST +OPERA_L2_RTC-S1_T092-195557-IW3_20230801T235051Z_20250210T230921Z_S1A_30_v1.0,S1_195557_IW3_20230801T235051_VV_15A8-BURST +OPERA_L2_RTC-S1_T002-003264-IW2_20220201T203041Z_20241220T222555Z_S1A_30_v1.0,S1_003264_IW2_20220201T203041_VV_62C7-BURST +OPERA_L2_RTC-S1_T085-180539-IW2_20230801T122026Z_20250210T221047Z_S1A_30_v1.0,S1_180539_IW2_20230801T122026_VV_982C-BURST +extreme terrain +Provided 203 candidates +OPERA_L2_RTC-S1_T136-290836-IW3_20230501T005052Z_20250201T235741Z_S1A_30_v1.0,S1_290836_IW3_20230501T005052_VV_92B9-BURST +OPERA_L2_RTC-S1_T008-015738-IW1_20220801T060415Z_20250215T122841Z_S1A_30_v1.0,S1_015738_IW1_20220801T060415_VV_AC5B-BURST +OPERA_L2_RTC-S1_T172-367475-IW3_20220201T113356Z_20241220T212718Z_S1A_30_v1.0,S1_367475_IW3_20220201T113356_VV_DC26-BURST +OPERA_L2_RTC-S1_T015-030344-IW3_20220801T171544Z_20250215T131324Z_S1A_30_v1.0,S1_030344_IW3_20220801T171544_VV_1932-BURST +OPERA_L2_RTC-S1_T004-007338-IW2_20220201T233759Z_20241220T224430Z_S1A_30_v1.0,S1_007338_IW2_20220201T233759_VV_1E1A-BURST +OPERA_L2_RTC-S1_T172-367470-IW3_20220201T113342Z_20241220T212810Z_S1A_30_v1.0,S1_367470_IW3_20220201T113342_VV_78AC-BURST +OPERA_L2_RTC-S1_T168-359504-IW2_20220201T052729Z_20241220T204859Z_S1A_30_v1.0,S1_359504_IW2_20220201T052729_VV_E5DB-BURST +OPERA_L2_RTC-S1_T172-367476-IW1_20220201T113357Z_20241220T212718Z_S1A_30_v1.0,S1_367476_IW1_20220201T113357_VV_DC26-BURST +OPERA_L2_RTC-S1_T172-367486-IW3_20220201T113426Z_20241220T212657Z_S1A_30_v1.0,S1_367486_IW3_20220201T113426_VV_5019-BURST +OPERA_L2_RTC-S1_T172-367488-IW1_20220201T113430Z_20241220T212657Z_S1A_30_v1.0,S1_367488_IW1_20220201T113430_VV_5019-BURST +antimeridian +Provided 104 candidates +OPERA_L2_RTC-S1_T066-141650-IW3_20230201T063235Z_20250121T120840Z_S1A_30_v1.0,S1_141650_IW3_20230201T063235_VV_2C85-BURST +OPERA_L2_RTC-S1_T146-312626-IW2_20230501T173234Z_20250202T010411Z_S1A_30_v1.0,S1_312626_IW2_20230501T173234_VV_F346-BURST +OPERA_L2_RTC-S1_T001-000684-IW2_20220201T183205Z_20241220T221908Z_S1A_30_v1.0,S1_000684_IW2_20220201T183205_VV_A461-BURST +OPERA_L2_RTC-S1_T066-141657-IW3_20230201T063254Z_20250121T120840Z_S1A_30_v1.0,S1_141657_IW3_20230201T063254_VV_2C85-BURST +OPERA_L2_RTC-S1_T001-000705-IW1_20220201T183302Z_20241220T221738Z_S1A_30_v1.0,S1_000705_IW1_20220201T183302_VV_4AE0-BURST +OPERA_L2_RTC-S1_T146-312639-IW1_20230501T173308Z_20250202T010356Z_S1A_30_v1.0,S1_312639_IW1_20230501T173308_VV_5543-BURST +OPERA_L2_RTC-S1_T146-312632-IW2_20230501T173250Z_20250202T010411Z_S1A_30_v1.0,S1_312632_IW2_20230501T173250_VV_F346-BURST +OPERA_L2_RTC-S1_T146-312638-IW1_20230501T173306Z_20250202T010356Z_S1A_30_v1.0,S1_312638_IW1_20230501T173306_VV_5543-BURST +OPERA_L2_RTC-S1_T066-141655-IW3_20230201T063249Z_20250121T120840Z_S1A_30_v1.0,S1_141655_IW3_20230201T063249_VV_2C85-BURST +OPERA_L2_RTC-S1_T066-140036-IW2_20230201T051822Z_20250121T120419Z_S1A_30_v1.0,S1_140036_IW2_20230201T051822_HH_787D-BURST diff --git a/tests/test_opera_rtc_s1.py b/tests/test_opera_rtc_s1.py index dcc09ff..aa0622a 100644 --- a/tests/test_opera_rtc_s1.py +++ b/tests/test_opera_rtc_s1.py @@ -18,6 +18,34 @@ gdal.UseExceptions() CMR_URL = 'https://cmr.earthdata.nasa.gov/search/granules.umm_json' +SKIP_KNOWN_FAIL = True +KNOWN_FAIL = [ + # Orbit + 'OPERA_L2_RTC-S1_T136-290821-IW3_20230501T005010Z_20250201T235523Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T136-290836-IW3_20230501T005052Z_20250201T235741Z_S1A_30_v1.0', + # Antimeridean + 'OPERA_L2_RTC-S1_T001-000684-IW2_20220201T183205Z_20241220T221908Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T066-141655-IW3_20230201T063249Z_20250121T120840Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T066-141657-IW3_20230201T063254Z_20250121T120840Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T146-312626-IW2_20230501T173234Z_20250202T010411Z_S1A_30_v1.0', # test case + 'OPERA_L2_RTC-S1_T146-312639-IW1_20230501T173308Z_20250202T010356Z_S1A_30_v1.0', # double check + # Strips at lon boundaries + 'OPERA_L2_RTC-S1_T008-015738-IW1_20220801T060415Z_20250215T122841Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T008-015800-IW3_20220801T060708Z_20250215T122605Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T066-140036-IW2_20230201T051822Z_20250121T120419Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T066-140037-IW2_20230201T051825Z_20250121T120419Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T078-165731-IW1_20230801T005941Z_20250213T195257Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T081-172601-IW2_20230801T061531Z_20250210T213622Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T083-176837-IW1_20230801T093014Z_20250210T220308Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T137-292489-IW2_20230501T020650Z_20250202T000414Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T137-292529-IW1_20230501T020840Z_20250202T000432Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T145-309683-IW3_20230501T151717Z_20250202T005520Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T149-318190-IW2_20230501T214821Z_20250202T011927Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T168-359459-IW1_20220201T052524Z_20241220T204930Z_S1A_30_v1.0', + 'OPERA_L2_RTC-S1_T175-374111-IW2_20220201T163859Z_20241220T220407Z_S1A_30_v1.0', + # < 20 diff + 'OPERA_L2_RTC-S1_T139-297118-IW1_20230501T053937Z_20250202T001552Z_S1A_30_v1.0', +] pytestmark = pytest.mark.golden @@ -104,10 +132,14 @@ def test_golden_opera_rtc_s1(comparison_environments, develop_jobs_info, keep): (main_dir, _), (develop_dir, develop_api) = comparison_environments for job in develop_jobs_info: product_id, urls = get_opera_rtc_s1_info(job['dir']) + print(f'Comparing {product_id}...') + if product_id in KNOWN_FAIL and SKIP_KNOWN_FAIL: + continue with ( archive_tifs(product_id, urls, main_dir, keep) as main_tifs, job_tifs(job['job_id'], develop_api, develop_dir, keep) as develop_tifs, ): + print(f'Comparing {product_id}...') main_file_dir = main_dir / product_id develop_file_dir = develop_dir / job['dir']