dist-s1-enumerator 1.0.9__tar.gz → 1.0.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/CHANGELOG.md +15 -0
  2. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/PKG-INFO +146 -37
  3. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/README.md +145 -36
  4. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/asf.py +1 -1
  5. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/dist_enum.py +1 -1
  6. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/dist_enum_inputs.py +5 -4
  7. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/tabular_models.py +1 -1
  8. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/PKG-INFO +146 -37
  9. dist_s1_enumerator-1.0.11/tests/test_dist_enum_inputs.py +243 -0
  10. dist_s1_enumerator-1.0.9/tests/test_dist_enum_inputs.py +0 -63
  11. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/dependabot.yml +0 -0
  12. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/bump-tag-for-release.yml +0 -0
  13. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/changelog-updated.yml +0 -0
  14. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/github-release.yml +0 -0
  15. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/labeled-pr.yml +0 -0
  16. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/nb_tests.yml +0 -0
  17. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/pypi-release.yml +0 -0
  18. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/static_analysis.yml +0 -0
  19. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.github/workflows/tests.yml +0 -0
  20. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/.gitignore +0 -0
  21. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/LICENSE +0 -0
  22. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/environment.yml +0 -0
  23. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/notebooks/A__Staging_Inputs_for_One_MGRS_Tile.ipynb +0 -0
  24. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/notebooks/B__Enumerate_MGRS_tile.ipynb +0 -0
  25. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/pyproject.toml +0 -0
  26. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/setup.cfg +0 -0
  27. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/__init__.py +0 -0
  28. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/constants.py +0 -0
  29. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/data/jpl_burst_geo.parquet +0 -0
  30. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/data/mgrs.parquet +0 -0
  31. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/data/mgrs_burst_lookup_table.parquet +0 -0
  32. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/exceptions.py +0 -0
  33. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/mgrs_burst_data.py +0 -0
  34. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/param_models.py +0 -0
  35. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/py.typed +0 -0
  36. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator/rtc_s1_io.py +0 -0
  37. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/SOURCES.txt +0 -0
  38. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/dependency_links.txt +0 -0
  39. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/not-zip-safe +0 -0
  40. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/requires.txt +0 -0
  41. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/src/dist_s1_enumerator.egg-info/top_level.txt +0 -0
  42. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/conftest.py +0 -0
  43. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/dist_hls_tiles.txt +0 -0
  44. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/mock_ts_data_for_enum.ipynb +0 -0
  45. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/rtc_s1_ts_metadata/chile_19HBD.parquet +0 -0
  46. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/rtc_s1_ts_metadata/mgrs01UBT.parquet +0 -0
  47. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/rtc_s1_ts_metadata/mgrs11SLT_11SLU_11SMT.parquet +0 -0
  48. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/rtc_s1_ts_metadata/mgrs15RXN__track63.parquet +0 -0
  49. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/rtc_s1_ts_metadata/mgrs22WFD.parquet +0 -0
  50. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/data/ts_data_for_workflow_inputs.ipynb +0 -0
  51. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_asf.py +0 -0
  52. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_dist_enum.py +0 -0
  53. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_mgrs_burst_data.py +0 -0
  54. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_notebooks.py +0 -0
  55. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_package.py +0 -0
  56. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_param_model.py +0 -0
  57. {dist_s1_enumerator-1.0.9 → dist_s1_enumerator-1.0.11}/tests/test_rtc_s1_io.py +0 -0
@@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [PEP 440](https://www.python.org/dev/peps/pep-0440/)
7
7
  and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [1.0.11] - 2026-01-27
10
+
11
+ ### Changed
12
+ * Defaults for max_pre_img per burst set to defaults (4, 3, 3) in enumeration of many products and single product. This aligns with standard inputs for DIST-S1.
13
+
14
+ ### Fixed
15
+ * Casting time strings into timestamps using pandas 2.0+ was attaching precision that was breaking schema validation with different precision (I believe pandas default is nano-second precision and ASF distributes with microsecond precision). Using `coerce=True` for the schema (forcing it to cast into the correct precision) and forcing data to have UTC time-zones fixes this issue with validation.
16
+
17
+
18
+ ## [1.0.10] - 2026-01-07
19
+
20
+ ### Added
21
+ * Include timestamp (not just date) for enumeration of input of DIST-S1 time series.
22
+
23
+
9
24
  ## [1.0.9] - 2026-01-07
10
25
 
11
26
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dist-s1-enumerator
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Enumeration and ops library for the OPERA DIST-S1 project
5
5
  Author-email: "Richard West, Charlie Marshak, Talib Oliver-Cabrera, and Jungkyo Jung" <charlie.z.marshak@jpl.nasa.gov>
6
6
  License: Apache-2.0
@@ -99,42 +99,151 @@ Yields:
99
99
  <details>
100
100
  <summary>Output</summary>
101
101
 
102
- ```[{'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-05', 'track_number': 91},
103
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-10', 'track_number': 156},
104
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-12', 'track_number': 18},
105
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-17', 'track_number': 91},
106
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-22', 'track_number': 156},
107
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-24', 'track_number': 18},
108
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-04', 'track_number': 156},
109
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-06', 'track_number': 18},
110
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-11', 'track_number': 91},
111
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-16', 'track_number': 156},
112
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-18', 'track_number': 18},
113
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-23', 'track_number': 91},
114
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-28', 'track_number': 156},
115
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-30', 'track_number': 18},
116
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-04', 'track_number': 91},
117
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-09', 'track_number': 156},
118
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-11', 'track_number': 18},
119
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-16', 'track_number': 91},
120
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-21', 'track_number': 156},
121
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-23', 'track_number': 18},
122
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-28', 'track_number': 91},
123
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-02', 'track_number': 156},
124
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-04', 'track_number': 18},
125
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-09', 'track_number': 91},
126
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-14', 'track_number': 156},
127
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-16', 'track_number': 18},
128
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-21', 'track_number': 91},
129
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-26', 'track_number': 156},
130
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-28', 'track_number': 18},
131
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-04', 'track_number': 91},
132
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-09', 'track_number': 156},
133
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-11', 'track_number': 18},
134
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-16', 'track_number': 91},
135
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-21', 'track_number': 156},
136
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-23', 'track_number': 18},
137
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-28', 'track_number': 91}]
102
+ ```
103
+ [{'mgrs_tile_id': '19HBD',
104
+ 'post_acq_date': '2023-11-05',
105
+ 'track_number': 91,
106
+ 'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
107
+ {'mgrs_tile_id': '19HBD',
108
+ 'post_acq_date': '2023-11-10',
109
+ 'track_number': 156,
110
+ 'post_acq_timestamp': '2023-11-10 10:04:33+00:00'},
111
+ {'mgrs_tile_id': '19HBD',
112
+ 'post_acq_date': '2023-11-12',
113
+ 'track_number': 18,
114
+ 'post_acq_timestamp': '2023-11-12 23:28:39+00:00'},
115
+ {'mgrs_tile_id': '19HBD',
116
+ 'post_acq_date': '2023-11-17',
117
+ 'track_number': 91,
118
+ 'post_acq_timestamp': '2023-11-17 23:36:49+00:00'},
119
+ {'mgrs_tile_id': '19HBD',
120
+ 'post_acq_date': '2023-11-22',
121
+ 'track_number': 156,
122
+ 'post_acq_timestamp': '2023-11-22 10:04:33+00:00'},
123
+ {'mgrs_tile_id': '19HBD',
124
+ 'post_acq_date': '2023-11-24',
125
+ 'track_number': 18,
126
+ 'post_acq_timestamp': '2023-11-24 23:28:39+00:00'},
127
+ {'mgrs_tile_id': '19HBD',
128
+ 'post_acq_date': '2023-12-04',
129
+ 'track_number': 156,
130
+ 'post_acq_timestamp': '2023-12-04 10:04:33+00:00'},
131
+ {'mgrs_tile_id': '19HBD',
132
+ 'post_acq_date': '2023-12-06',
133
+ 'track_number': 18,
134
+ 'post_acq_timestamp': '2023-12-06 23:28:39+00:00'},
135
+ {'mgrs_tile_id': '19HBD',
136
+ 'post_acq_date': '2023-12-11',
137
+ 'track_number': 91,
138
+ 'post_acq_timestamp': '2023-12-11 23:36:48+00:00'},
139
+ {'mgrs_tile_id': '19HBD',
140
+ 'post_acq_date': '2023-12-16',
141
+ 'track_number': 156,
142
+ 'post_acq_timestamp': '2023-12-16 10:04:32+00:00'},
143
+ {'mgrs_tile_id': '19HBD',
144
+ 'post_acq_date': '2023-12-18',
145
+ 'track_number': 18,
146
+ 'post_acq_timestamp': '2023-12-18 23:28:38+00:00'},
147
+ {'mgrs_tile_id': '19HBD',
148
+ 'post_acq_date': '2023-12-23',
149
+ 'track_number': 91,
150
+ 'post_acq_timestamp': '2023-12-23 23:36:47+00:00'},
151
+ {'mgrs_tile_id': '19HBD',
152
+ 'post_acq_date': '2023-12-28',
153
+ 'track_number': 156,
154
+ 'post_acq_timestamp': '2023-12-28 10:04:31+00:00'},
155
+ {'mgrs_tile_id': '19HBD',
156
+ 'post_acq_date': '2023-12-30',
157
+ 'track_number': 18,
158
+ 'post_acq_timestamp': '2023-12-30 23:28:37+00:00'},
159
+ {'mgrs_tile_id': '19HBD',
160
+ 'post_acq_date': '2024-01-04',
161
+ 'track_number': 91,
162
+ 'post_acq_timestamp': '2024-01-04 23:36:47+00:00'},
163
+ {'mgrs_tile_id': '19HBD',
164
+ 'post_acq_date': '2024-01-09',
165
+ 'track_number': 156,
166
+ 'post_acq_timestamp': '2024-01-09 10:04:31+00:00'},
167
+ {'mgrs_tile_id': '19HBD',
168
+ 'post_acq_date': '2024-01-11',
169
+ 'track_number': 18,
170
+ 'post_acq_timestamp': '2024-01-11 23:28:37+00:00'},
171
+ {'mgrs_tile_id': '19HBD',
172
+ 'post_acq_date': '2024-01-16',
173
+ 'track_number': 91,
174
+ 'post_acq_timestamp': '2024-01-16 23:36:46+00:00'},
175
+ {'mgrs_tile_id': '19HBD',
176
+ 'post_acq_date': '2024-01-21',
177
+ 'track_number': 156,
178
+ 'post_acq_timestamp': '2024-01-21 10:04:30+00:00'},
179
+ {'mgrs_tile_id': '19HBD',
180
+ 'post_acq_date': '2024-01-23',
181
+ 'track_number': 18,
182
+ 'post_acq_timestamp': '2024-01-23 23:28:36+00:00'},
183
+ {'mgrs_tile_id': '19HBD',
184
+ 'post_acq_date': '2024-01-28',
185
+ 'track_number': 91,
186
+ 'post_acq_timestamp': '2024-01-28 23:36:46+00:00'},
187
+ {'mgrs_tile_id': '19HBD',
188
+ 'post_acq_date': '2024-02-02',
189
+ 'track_number': 156,
190
+ 'post_acq_timestamp': '2024-02-02 10:04:30+00:00'},
191
+ {'mgrs_tile_id': '19HBD',
192
+ 'post_acq_date': '2024-02-04',
193
+ 'track_number': 18,
194
+ 'post_acq_timestamp': '2024-02-04 23:28:36+00:00'},
195
+ {'mgrs_tile_id': '19HBD',
196
+ 'post_acq_date': '2024-02-09',
197
+ 'track_number': 91,
198
+ 'post_acq_timestamp': '2024-02-09 23:36:45+00:00'},
199
+ {'mgrs_tile_id': '19HBD',
200
+ 'post_acq_date': '2024-02-14',
201
+ 'track_number': 156,
202
+ 'post_acq_timestamp': '2024-02-14 10:04:29+00:00'},
203
+ {'mgrs_tile_id': '19HBD',
204
+ 'post_acq_date': '2024-02-16',
205
+ 'track_number': 18,
206
+ 'post_acq_timestamp': '2024-02-16 23:28:36+00:00'},
207
+ {'mgrs_tile_id': '19HBD',
208
+ 'post_acq_date': '2024-02-21',
209
+ 'track_number': 91,
210
+ 'post_acq_timestamp': '2024-02-21 23:36:46+00:00'},
211
+ {'mgrs_tile_id': '19HBD',
212
+ 'post_acq_date': '2024-02-26',
213
+ 'track_number': 156,
214
+ 'post_acq_timestamp': '2024-02-26 10:04:29+00:00'},
215
+ {'mgrs_tile_id': '19HBD',
216
+ 'post_acq_date': '2024-02-28',
217
+ 'track_number': 18,
218
+ 'post_acq_timestamp': '2024-02-28 23:28:36+00:00'},
219
+ {'mgrs_tile_id': '19HBD',
220
+ 'post_acq_date': '2024-03-04',
221
+ 'track_number': 91,
222
+ 'post_acq_timestamp': '2024-03-04 23:36:46+00:00'},
223
+ {'mgrs_tile_id': '19HBD',
224
+ 'post_acq_date': '2024-03-09',
225
+ 'track_number': 156,
226
+ 'post_acq_timestamp': '2024-03-09 10:04:29+00:00'},
227
+ {'mgrs_tile_id': '19HBD',
228
+ 'post_acq_date': '2024-03-11',
229
+ 'track_number': 18,
230
+ 'post_acq_timestamp': '2024-03-11 23:28:36+00:00'},
231
+ {'mgrs_tile_id': '19HBD',
232
+ 'post_acq_date': '2024-03-16',
233
+ 'track_number': 91,
234
+ 'post_acq_timestamp': '2024-03-16 23:36:46+00:00'},
235
+ {'mgrs_tile_id': '19HBD',
236
+ 'post_acq_date': '2024-03-21',
237
+ 'track_number': 156,
238
+ 'post_acq_timestamp': '2024-03-21 10:04:30+00:00'},
239
+ {'mgrs_tile_id': '19HBD',
240
+ 'post_acq_date': '2024-03-23',
241
+ 'track_number': 18,
242
+ 'post_acq_timestamp': '2024-03-23 23:28:36+00:00'},
243
+ {'mgrs_tile_id': '19HBD',
244
+ 'post_acq_date': '2024-03-28',
245
+ 'track_number': 91,
246
+ 'post_acq_timestamp': '2024-03-28 23:36:46+00:00'}]
138
247
  ```
139
248
  </details>
140
249
  Each dictionary uniquely determines a DIST-S1 product.
@@ -76,42 +76,151 @@ Yields:
76
76
  <details>
77
77
  <summary>Output</summary>
78
78
 
79
- ```[{'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-05', 'track_number': 91},
80
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-10', 'track_number': 156},
81
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-12', 'track_number': 18},
82
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-17', 'track_number': 91},
83
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-22', 'track_number': 156},
84
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-24', 'track_number': 18},
85
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-04', 'track_number': 156},
86
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-06', 'track_number': 18},
87
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-11', 'track_number': 91},
88
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-16', 'track_number': 156},
89
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-18', 'track_number': 18},
90
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-23', 'track_number': 91},
91
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-28', 'track_number': 156},
92
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-30', 'track_number': 18},
93
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-04', 'track_number': 91},
94
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-09', 'track_number': 156},
95
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-11', 'track_number': 18},
96
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-16', 'track_number': 91},
97
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-21', 'track_number': 156},
98
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-23', 'track_number': 18},
99
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-28', 'track_number': 91},
100
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-02', 'track_number': 156},
101
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-04', 'track_number': 18},
102
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-09', 'track_number': 91},
103
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-14', 'track_number': 156},
104
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-16', 'track_number': 18},
105
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-21', 'track_number': 91},
106
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-26', 'track_number': 156},
107
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-28', 'track_number': 18},
108
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-04', 'track_number': 91},
109
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-09', 'track_number': 156},
110
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-11', 'track_number': 18},
111
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-16', 'track_number': 91},
112
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-21', 'track_number': 156},
113
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-23', 'track_number': 18},
114
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-28', 'track_number': 91}]
79
+ ```
80
+ [{'mgrs_tile_id': '19HBD',
81
+ 'post_acq_date': '2023-11-05',
82
+ 'track_number': 91,
83
+ 'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
84
+ {'mgrs_tile_id': '19HBD',
85
+ 'post_acq_date': '2023-11-10',
86
+ 'track_number': 156,
87
+ 'post_acq_timestamp': '2023-11-10 10:04:33+00:00'},
88
+ {'mgrs_tile_id': '19HBD',
89
+ 'post_acq_date': '2023-11-12',
90
+ 'track_number': 18,
91
+ 'post_acq_timestamp': '2023-11-12 23:28:39+00:00'},
92
+ {'mgrs_tile_id': '19HBD',
93
+ 'post_acq_date': '2023-11-17',
94
+ 'track_number': 91,
95
+ 'post_acq_timestamp': '2023-11-17 23:36:49+00:00'},
96
+ {'mgrs_tile_id': '19HBD',
97
+ 'post_acq_date': '2023-11-22',
98
+ 'track_number': 156,
99
+ 'post_acq_timestamp': '2023-11-22 10:04:33+00:00'},
100
+ {'mgrs_tile_id': '19HBD',
101
+ 'post_acq_date': '2023-11-24',
102
+ 'track_number': 18,
103
+ 'post_acq_timestamp': '2023-11-24 23:28:39+00:00'},
104
+ {'mgrs_tile_id': '19HBD',
105
+ 'post_acq_date': '2023-12-04',
106
+ 'track_number': 156,
107
+ 'post_acq_timestamp': '2023-12-04 10:04:33+00:00'},
108
+ {'mgrs_tile_id': '19HBD',
109
+ 'post_acq_date': '2023-12-06',
110
+ 'track_number': 18,
111
+ 'post_acq_timestamp': '2023-12-06 23:28:39+00:00'},
112
+ {'mgrs_tile_id': '19HBD',
113
+ 'post_acq_date': '2023-12-11',
114
+ 'track_number': 91,
115
+ 'post_acq_timestamp': '2023-12-11 23:36:48+00:00'},
116
+ {'mgrs_tile_id': '19HBD',
117
+ 'post_acq_date': '2023-12-16',
118
+ 'track_number': 156,
119
+ 'post_acq_timestamp': '2023-12-16 10:04:32+00:00'},
120
+ {'mgrs_tile_id': '19HBD',
121
+ 'post_acq_date': '2023-12-18',
122
+ 'track_number': 18,
123
+ 'post_acq_timestamp': '2023-12-18 23:28:38+00:00'},
124
+ {'mgrs_tile_id': '19HBD',
125
+ 'post_acq_date': '2023-12-23',
126
+ 'track_number': 91,
127
+ 'post_acq_timestamp': '2023-12-23 23:36:47+00:00'},
128
+ {'mgrs_tile_id': '19HBD',
129
+ 'post_acq_date': '2023-12-28',
130
+ 'track_number': 156,
131
+ 'post_acq_timestamp': '2023-12-28 10:04:31+00:00'},
132
+ {'mgrs_tile_id': '19HBD',
133
+ 'post_acq_date': '2023-12-30',
134
+ 'track_number': 18,
135
+ 'post_acq_timestamp': '2023-12-30 23:28:37+00:00'},
136
+ {'mgrs_tile_id': '19HBD',
137
+ 'post_acq_date': '2024-01-04',
138
+ 'track_number': 91,
139
+ 'post_acq_timestamp': '2024-01-04 23:36:47+00:00'},
140
+ {'mgrs_tile_id': '19HBD',
141
+ 'post_acq_date': '2024-01-09',
142
+ 'track_number': 156,
143
+ 'post_acq_timestamp': '2024-01-09 10:04:31+00:00'},
144
+ {'mgrs_tile_id': '19HBD',
145
+ 'post_acq_date': '2024-01-11',
146
+ 'track_number': 18,
147
+ 'post_acq_timestamp': '2024-01-11 23:28:37+00:00'},
148
+ {'mgrs_tile_id': '19HBD',
149
+ 'post_acq_date': '2024-01-16',
150
+ 'track_number': 91,
151
+ 'post_acq_timestamp': '2024-01-16 23:36:46+00:00'},
152
+ {'mgrs_tile_id': '19HBD',
153
+ 'post_acq_date': '2024-01-21',
154
+ 'track_number': 156,
155
+ 'post_acq_timestamp': '2024-01-21 10:04:30+00:00'},
156
+ {'mgrs_tile_id': '19HBD',
157
+ 'post_acq_date': '2024-01-23',
158
+ 'track_number': 18,
159
+ 'post_acq_timestamp': '2024-01-23 23:28:36+00:00'},
160
+ {'mgrs_tile_id': '19HBD',
161
+ 'post_acq_date': '2024-01-28',
162
+ 'track_number': 91,
163
+ 'post_acq_timestamp': '2024-01-28 23:36:46+00:00'},
164
+ {'mgrs_tile_id': '19HBD',
165
+ 'post_acq_date': '2024-02-02',
166
+ 'track_number': 156,
167
+ 'post_acq_timestamp': '2024-02-02 10:04:30+00:00'},
168
+ {'mgrs_tile_id': '19HBD',
169
+ 'post_acq_date': '2024-02-04',
170
+ 'track_number': 18,
171
+ 'post_acq_timestamp': '2024-02-04 23:28:36+00:00'},
172
+ {'mgrs_tile_id': '19HBD',
173
+ 'post_acq_date': '2024-02-09',
174
+ 'track_number': 91,
175
+ 'post_acq_timestamp': '2024-02-09 23:36:45+00:00'},
176
+ {'mgrs_tile_id': '19HBD',
177
+ 'post_acq_date': '2024-02-14',
178
+ 'track_number': 156,
179
+ 'post_acq_timestamp': '2024-02-14 10:04:29+00:00'},
180
+ {'mgrs_tile_id': '19HBD',
181
+ 'post_acq_date': '2024-02-16',
182
+ 'track_number': 18,
183
+ 'post_acq_timestamp': '2024-02-16 23:28:36+00:00'},
184
+ {'mgrs_tile_id': '19HBD',
185
+ 'post_acq_date': '2024-02-21',
186
+ 'track_number': 91,
187
+ 'post_acq_timestamp': '2024-02-21 23:36:46+00:00'},
188
+ {'mgrs_tile_id': '19HBD',
189
+ 'post_acq_date': '2024-02-26',
190
+ 'track_number': 156,
191
+ 'post_acq_timestamp': '2024-02-26 10:04:29+00:00'},
192
+ {'mgrs_tile_id': '19HBD',
193
+ 'post_acq_date': '2024-02-28',
194
+ 'track_number': 18,
195
+ 'post_acq_timestamp': '2024-02-28 23:28:36+00:00'},
196
+ {'mgrs_tile_id': '19HBD',
197
+ 'post_acq_date': '2024-03-04',
198
+ 'track_number': 91,
199
+ 'post_acq_timestamp': '2024-03-04 23:36:46+00:00'},
200
+ {'mgrs_tile_id': '19HBD',
201
+ 'post_acq_date': '2024-03-09',
202
+ 'track_number': 156,
203
+ 'post_acq_timestamp': '2024-03-09 10:04:29+00:00'},
204
+ {'mgrs_tile_id': '19HBD',
205
+ 'post_acq_date': '2024-03-11',
206
+ 'track_number': 18,
207
+ 'post_acq_timestamp': '2024-03-11 23:28:36+00:00'},
208
+ {'mgrs_tile_id': '19HBD',
209
+ 'post_acq_date': '2024-03-16',
210
+ 'track_number': 91,
211
+ 'post_acq_timestamp': '2024-03-16 23:36:46+00:00'},
212
+ {'mgrs_tile_id': '19HBD',
213
+ 'post_acq_date': '2024-03-21',
214
+ 'track_number': 156,
215
+ 'post_acq_timestamp': '2024-03-21 10:04:30+00:00'},
216
+ {'mgrs_tile_id': '19HBD',
217
+ 'post_acq_date': '2024-03-23',
218
+ 'track_number': 18,
219
+ 'post_acq_timestamp': '2024-03-23 23:28:36+00:00'},
220
+ {'mgrs_tile_id': '19HBD',
221
+ 'post_acq_date': '2024-03-28',
222
+ 'track_number': 91,
223
+ 'post_acq_timestamp': '2024-03-28 23:36:46+00:00'}]
115
224
  ```
116
225
  </details>
117
226
  Each dictionary uniquely determines a DIST-S1 product.
@@ -135,7 +135,7 @@ def get_rtc_s1_ts_metadata_by_burst_ids(
135
135
  properties_f = [
136
136
  {
137
137
  'opera_id': p['sceneName'],
138
- 'acq_dt': pd.to_datetime(p['startTime']),
138
+ 'acq_dt': pd.Timestamp(p['startTime'], tz='UTC'),
139
139
  'track_number': p['pathNumber'],
140
140
  'polarizations': p['polarization'],
141
141
  'all_urls': [p['url']] + p['additionalUrls'],
@@ -231,7 +231,7 @@ def enumerate_dist_s1_products(
231
231
  df_rtc_ts: gpd.GeoDataFrame,
232
232
  mgrs_tile_ids: list[str],
233
233
  lookback_strategy: str = 'multi_window',
234
- max_pre_imgs_per_burst: int = (5, 5, 5),
234
+ max_pre_imgs_per_burst: int = (4, 3, 3),
235
235
  min_pre_imgs_per_burst: int = 1,
236
236
  tqdm_enabled: bool = True,
237
237
  delta_lookback_days: int = 365,
@@ -14,13 +14,14 @@ def update_dist_s1_workflow_dict(data_dict: dict) -> dict:
14
14
  {
15
15
  key: val
16
16
  for (key, val) in data_dict.items()
17
- if key in ['mgrs_tile_id', 'acq_date_for_mgrs_pass', 'track_number', 'product_id']
17
+ if key in ['mgrs_tile_id', 'acq_date_for_mgrs_pass', 'track_number', 'product_id', 'acq_dt']
18
18
  }
19
19
  )
20
20
  out_formatted = {
21
21
  'mgrs_tile_id': out['mgrs_tile_id'],
22
22
  'post_acq_date': out['acq_date_for_mgrs_pass'],
23
23
  'track_number': out['track_number'],
24
+ 'post_acq_timestamp': str(out['acq_dt']),
24
25
  }
25
26
  return out_formatted
26
27
 
@@ -31,10 +32,10 @@ def enumerate_dist_s1_workflow_inputs(
31
32
  start_acq_dt: datetime | pd.Timestamp | str | None = None,
32
33
  stop_acq_dt: datetime | pd.Timestamp | str | None = None,
33
34
  lookback_strategy: str = 'multi_window',
34
- max_pre_imgs_per_burst: int | list[int] | tuple[int, ...] = (5, 5, 5),
35
+ max_pre_imgs_per_burst: int | list[int] | tuple[int, ...] = (4, 3, 3),
35
36
  min_pre_imgs_per_burst: int = 1,
36
37
  delta_lookback_days: int | list[int] | tuple[int, ...] = 365,
37
- delta_window_days: int = 60,
38
+ delta_window_days: int = 365,
38
39
  df_ts: gpd.GeoDataFrame | None = None,
39
40
  ) -> list[dict]:
40
41
  """Enumerate the inputs for a DIST-S1 workflow.
@@ -59,7 +60,7 @@ def enumerate_dist_s1_workflow_inputs(
59
60
  Lookback strategy to use, by default 'multi_window'. Options are
60
61
  'immediate_lookback' or 'multi_window'.
61
62
  max_pre_imgs_per_burst : int | list[int] | tuple[int, ...], optional
62
- Maximum number of pre-images per burst to include, by default 10.
63
+ Maximum number of pre-images per burst to include, by default (4, 3, 3).
63
64
  If lookback strategy is 'multi_window':
64
65
  - this is interpreted as the maximum number of pre-images on each anniversary date.
65
66
  - tuple/list of integers are provided, each int represents the maximum number of pre-images on each
@@ -27,7 +27,7 @@ rtc_s1_resp_schema = DataFrameSchema(
27
27
  {
28
28
  'opera_id': Column(str, required=True),
29
29
  'jpl_burst_id': Column(str, required=True),
30
- 'acq_dt': Column(DateTime(tz='UTC'), required=True),
30
+ 'acq_dt': Column(DateTime(tz='UTC'), coerce=True, required=True),
31
31
  'acq_date_for_mgrs_pass': Column(str, required=False),
32
32
  'polarizations': Column(str, required=True),
33
33
  'track_number': Column(int, required=True),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dist-s1-enumerator
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Enumeration and ops library for the OPERA DIST-S1 project
5
5
  Author-email: "Richard West, Charlie Marshak, Talib Oliver-Cabrera, and Jungkyo Jung" <charlie.z.marshak@jpl.nasa.gov>
6
6
  License: Apache-2.0
@@ -99,42 +99,151 @@ Yields:
99
99
  <details>
100
100
  <summary>Output</summary>
101
101
 
102
- ```[{'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-05', 'track_number': 91},
103
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-10', 'track_number': 156},
104
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-12', 'track_number': 18},
105
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-17', 'track_number': 91},
106
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-22', 'track_number': 156},
107
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-24', 'track_number': 18},
108
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-04', 'track_number': 156},
109
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-06', 'track_number': 18},
110
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-11', 'track_number': 91},
111
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-16', 'track_number': 156},
112
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-18', 'track_number': 18},
113
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-23', 'track_number': 91},
114
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-28', 'track_number': 156},
115
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-30', 'track_number': 18},
116
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-04', 'track_number': 91},
117
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-09', 'track_number': 156},
118
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-11', 'track_number': 18},
119
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-16', 'track_number': 91},
120
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-21', 'track_number': 156},
121
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-23', 'track_number': 18},
122
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-28', 'track_number': 91},
123
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-02', 'track_number': 156},
124
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-04', 'track_number': 18},
125
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-09', 'track_number': 91},
126
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-14', 'track_number': 156},
127
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-16', 'track_number': 18},
128
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-21', 'track_number': 91},
129
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-26', 'track_number': 156},
130
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-28', 'track_number': 18},
131
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-04', 'track_number': 91},
132
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-09', 'track_number': 156},
133
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-11', 'track_number': 18},
134
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-16', 'track_number': 91},
135
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-21', 'track_number': 156},
136
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-23', 'track_number': 18},
137
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-28', 'track_number': 91}]
102
+ ```
103
+ [{'mgrs_tile_id': '19HBD',
104
+ 'post_acq_date': '2023-11-05',
105
+ 'track_number': 91,
106
+ 'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
107
+ {'mgrs_tile_id': '19HBD',
108
+ 'post_acq_date': '2023-11-10',
109
+ 'track_number': 156,
110
+ 'post_acq_timestamp': '2023-11-10 10:04:33+00:00'},
111
+ {'mgrs_tile_id': '19HBD',
112
+ 'post_acq_date': '2023-11-12',
113
+ 'track_number': 18,
114
+ 'post_acq_timestamp': '2023-11-12 23:28:39+00:00'},
115
+ {'mgrs_tile_id': '19HBD',
116
+ 'post_acq_date': '2023-11-17',
117
+ 'track_number': 91,
118
+ 'post_acq_timestamp': '2023-11-17 23:36:49+00:00'},
119
+ {'mgrs_tile_id': '19HBD',
120
+ 'post_acq_date': '2023-11-22',
121
+ 'track_number': 156,
122
+ 'post_acq_timestamp': '2023-11-22 10:04:33+00:00'},
123
+ {'mgrs_tile_id': '19HBD',
124
+ 'post_acq_date': '2023-11-24',
125
+ 'track_number': 18,
126
+ 'post_acq_timestamp': '2023-11-24 23:28:39+00:00'},
127
+ {'mgrs_tile_id': '19HBD',
128
+ 'post_acq_date': '2023-12-04',
129
+ 'track_number': 156,
130
+ 'post_acq_timestamp': '2023-12-04 10:04:33+00:00'},
131
+ {'mgrs_tile_id': '19HBD',
132
+ 'post_acq_date': '2023-12-06',
133
+ 'track_number': 18,
134
+ 'post_acq_timestamp': '2023-12-06 23:28:39+00:00'},
135
+ {'mgrs_tile_id': '19HBD',
136
+ 'post_acq_date': '2023-12-11',
137
+ 'track_number': 91,
138
+ 'post_acq_timestamp': '2023-12-11 23:36:48+00:00'},
139
+ {'mgrs_tile_id': '19HBD',
140
+ 'post_acq_date': '2023-12-16',
141
+ 'track_number': 156,
142
+ 'post_acq_timestamp': '2023-12-16 10:04:32+00:00'},
143
+ {'mgrs_tile_id': '19HBD',
144
+ 'post_acq_date': '2023-12-18',
145
+ 'track_number': 18,
146
+ 'post_acq_timestamp': '2023-12-18 23:28:38+00:00'},
147
+ {'mgrs_tile_id': '19HBD',
148
+ 'post_acq_date': '2023-12-23',
149
+ 'track_number': 91,
150
+ 'post_acq_timestamp': '2023-12-23 23:36:47+00:00'},
151
+ {'mgrs_tile_id': '19HBD',
152
+ 'post_acq_date': '2023-12-28',
153
+ 'track_number': 156,
154
+ 'post_acq_timestamp': '2023-12-28 10:04:31+00:00'},
155
+ {'mgrs_tile_id': '19HBD',
156
+ 'post_acq_date': '2023-12-30',
157
+ 'track_number': 18,
158
+ 'post_acq_timestamp': '2023-12-30 23:28:37+00:00'},
159
+ {'mgrs_tile_id': '19HBD',
160
+ 'post_acq_date': '2024-01-04',
161
+ 'track_number': 91,
162
+ 'post_acq_timestamp': '2024-01-04 23:36:47+00:00'},
163
+ {'mgrs_tile_id': '19HBD',
164
+ 'post_acq_date': '2024-01-09',
165
+ 'track_number': 156,
166
+ 'post_acq_timestamp': '2024-01-09 10:04:31+00:00'},
167
+ {'mgrs_tile_id': '19HBD',
168
+ 'post_acq_date': '2024-01-11',
169
+ 'track_number': 18,
170
+ 'post_acq_timestamp': '2024-01-11 23:28:37+00:00'},
171
+ {'mgrs_tile_id': '19HBD',
172
+ 'post_acq_date': '2024-01-16',
173
+ 'track_number': 91,
174
+ 'post_acq_timestamp': '2024-01-16 23:36:46+00:00'},
175
+ {'mgrs_tile_id': '19HBD',
176
+ 'post_acq_date': '2024-01-21',
177
+ 'track_number': 156,
178
+ 'post_acq_timestamp': '2024-01-21 10:04:30+00:00'},
179
+ {'mgrs_tile_id': '19HBD',
180
+ 'post_acq_date': '2024-01-23',
181
+ 'track_number': 18,
182
+ 'post_acq_timestamp': '2024-01-23 23:28:36+00:00'},
183
+ {'mgrs_tile_id': '19HBD',
184
+ 'post_acq_date': '2024-01-28',
185
+ 'track_number': 91,
186
+ 'post_acq_timestamp': '2024-01-28 23:36:46+00:00'},
187
+ {'mgrs_tile_id': '19HBD',
188
+ 'post_acq_date': '2024-02-02',
189
+ 'track_number': 156,
190
+ 'post_acq_timestamp': '2024-02-02 10:04:30+00:00'},
191
+ {'mgrs_tile_id': '19HBD',
192
+ 'post_acq_date': '2024-02-04',
193
+ 'track_number': 18,
194
+ 'post_acq_timestamp': '2024-02-04 23:28:36+00:00'},
195
+ {'mgrs_tile_id': '19HBD',
196
+ 'post_acq_date': '2024-02-09',
197
+ 'track_number': 91,
198
+ 'post_acq_timestamp': '2024-02-09 23:36:45+00:00'},
199
+ {'mgrs_tile_id': '19HBD',
200
+ 'post_acq_date': '2024-02-14',
201
+ 'track_number': 156,
202
+ 'post_acq_timestamp': '2024-02-14 10:04:29+00:00'},
203
+ {'mgrs_tile_id': '19HBD',
204
+ 'post_acq_date': '2024-02-16',
205
+ 'track_number': 18,
206
+ 'post_acq_timestamp': '2024-02-16 23:28:36+00:00'},
207
+ {'mgrs_tile_id': '19HBD',
208
+ 'post_acq_date': '2024-02-21',
209
+ 'track_number': 91,
210
+ 'post_acq_timestamp': '2024-02-21 23:36:46+00:00'},
211
+ {'mgrs_tile_id': '19HBD',
212
+ 'post_acq_date': '2024-02-26',
213
+ 'track_number': 156,
214
+ 'post_acq_timestamp': '2024-02-26 10:04:29+00:00'},
215
+ {'mgrs_tile_id': '19HBD',
216
+ 'post_acq_date': '2024-02-28',
217
+ 'track_number': 18,
218
+ 'post_acq_timestamp': '2024-02-28 23:28:36+00:00'},
219
+ {'mgrs_tile_id': '19HBD',
220
+ 'post_acq_date': '2024-03-04',
221
+ 'track_number': 91,
222
+ 'post_acq_timestamp': '2024-03-04 23:36:46+00:00'},
223
+ {'mgrs_tile_id': '19HBD',
224
+ 'post_acq_date': '2024-03-09',
225
+ 'track_number': 156,
226
+ 'post_acq_timestamp': '2024-03-09 10:04:29+00:00'},
227
+ {'mgrs_tile_id': '19HBD',
228
+ 'post_acq_date': '2024-03-11',
229
+ 'track_number': 18,
230
+ 'post_acq_timestamp': '2024-03-11 23:28:36+00:00'},
231
+ {'mgrs_tile_id': '19HBD',
232
+ 'post_acq_date': '2024-03-16',
233
+ 'track_number': 91,
234
+ 'post_acq_timestamp': '2024-03-16 23:36:46+00:00'},
235
+ {'mgrs_tile_id': '19HBD',
236
+ 'post_acq_date': '2024-03-21',
237
+ 'track_number': 156,
238
+ 'post_acq_timestamp': '2024-03-21 10:04:30+00:00'},
239
+ {'mgrs_tile_id': '19HBD',
240
+ 'post_acq_date': '2024-03-23',
241
+ 'track_number': 18,
242
+ 'post_acq_timestamp': '2024-03-23 23:28:36+00:00'},
243
+ {'mgrs_tile_id': '19HBD',
244
+ 'post_acq_date': '2024-03-28',
245
+ 'track_number': 91,
246
+ 'post_acq_timestamp': '2024-03-28 23:36:46+00:00'}]
138
247
  ```
139
248
  </details>
140
249
  Each dictionary uniquely determines a DIST-S1 product.
@@ -0,0 +1,243 @@
1
+ from pathlib import Path
2
+
3
+ import geopandas as gpd
4
+
5
+ from dist_s1_enumerator.dist_enum_inputs import enumerate_dist_s1_workflow_inputs
6
+
7
+
8
+ def test_enumerate_dist_s1_workflow_inputs_for_time_series(test_dir: Path) -> None:
9
+ expected_output = [
10
+ {
11
+ 'mgrs_tile_id': '19HBD',
12
+ 'post_acq_date': '2023-11-05',
13
+ 'post_acq_timestamp': '2023-11-05 23:36:49+00:00',
14
+ 'track_number': 91,
15
+ },
16
+ {
17
+ 'mgrs_tile_id': '19HBD',
18
+ 'post_acq_date': '2023-11-10',
19
+ 'post_acq_timestamp': '2023-11-10 10:04:33+00:00',
20
+ 'track_number': 156,
21
+ },
22
+ {
23
+ 'mgrs_tile_id': '19HBD',
24
+ 'post_acq_date': '2023-11-12',
25
+ 'post_acq_timestamp': '2023-11-12 23:28:39+00:00',
26
+ 'track_number': 18,
27
+ },
28
+ {
29
+ 'mgrs_tile_id': '19HBD',
30
+ 'post_acq_date': '2023-11-17',
31
+ 'post_acq_timestamp': '2023-11-17 23:36:49+00:00',
32
+ 'track_number': 91,
33
+ },
34
+ {
35
+ 'mgrs_tile_id': '19HBD',
36
+ 'post_acq_date': '2023-11-22',
37
+ 'post_acq_timestamp': '2023-11-22 10:04:33+00:00',
38
+ 'track_number': 156,
39
+ },
40
+ {
41
+ 'mgrs_tile_id': '19HBD',
42
+ 'post_acq_date': '2023-11-24',
43
+ 'post_acq_timestamp': '2023-11-24 23:28:39+00:00',
44
+ 'track_number': 18,
45
+ },
46
+ {
47
+ 'mgrs_tile_id': '19HBD',
48
+ 'post_acq_date': '2023-12-04',
49
+ 'post_acq_timestamp': '2023-12-04 10:04:33+00:00',
50
+ 'track_number': 156,
51
+ },
52
+ {
53
+ 'mgrs_tile_id': '19HBD',
54
+ 'post_acq_date': '2023-12-06',
55
+ 'post_acq_timestamp': '2023-12-06 23:28:39+00:00',
56
+ 'track_number': 18,
57
+ },
58
+ {
59
+ 'mgrs_tile_id': '19HBD',
60
+ 'post_acq_date': '2023-12-11',
61
+ 'post_acq_timestamp': '2023-12-11 23:36:48+00:00',
62
+ 'track_number': 91,
63
+ },
64
+ {
65
+ 'mgrs_tile_id': '19HBD',
66
+ 'post_acq_date': '2023-12-16',
67
+ 'post_acq_timestamp': '2023-12-16 10:04:32+00:00',
68
+ 'track_number': 156,
69
+ },
70
+ {
71
+ 'mgrs_tile_id': '19HBD',
72
+ 'post_acq_date': '2023-12-18',
73
+ 'post_acq_timestamp': '2023-12-18 23:28:38+00:00',
74
+ 'track_number': 18,
75
+ },
76
+ {
77
+ 'mgrs_tile_id': '19HBD',
78
+ 'post_acq_date': '2023-12-23',
79
+ 'post_acq_timestamp': '2023-12-23 23:36:47+00:00',
80
+ 'track_number': 91,
81
+ },
82
+ {
83
+ 'mgrs_tile_id': '19HBD',
84
+ 'post_acq_date': '2023-12-28',
85
+ 'post_acq_timestamp': '2023-12-28 10:04:31+00:00',
86
+ 'track_number': 156,
87
+ },
88
+ {
89
+ 'mgrs_tile_id': '19HBD',
90
+ 'post_acq_date': '2023-12-30',
91
+ 'post_acq_timestamp': '2023-12-30 23:28:37+00:00',
92
+ 'track_number': 18,
93
+ },
94
+ {
95
+ 'mgrs_tile_id': '19HBD',
96
+ 'post_acq_date': '2024-01-04',
97
+ 'post_acq_timestamp': '2024-01-04 23:36:47+00:00',
98
+ 'track_number': 91,
99
+ },
100
+ {
101
+ 'mgrs_tile_id': '19HBD',
102
+ 'post_acq_date': '2024-01-09',
103
+ 'post_acq_timestamp': '2024-01-09 10:04:31+00:00',
104
+ 'track_number': 156,
105
+ },
106
+ {
107
+ 'mgrs_tile_id': '19HBD',
108
+ 'post_acq_date': '2024-01-11',
109
+ 'post_acq_timestamp': '2024-01-11 23:28:37+00:00',
110
+ 'track_number': 18,
111
+ },
112
+ {
113
+ 'mgrs_tile_id': '19HBD',
114
+ 'post_acq_date': '2024-01-16',
115
+ 'post_acq_timestamp': '2024-01-16 23:36:46+00:00',
116
+ 'track_number': 91,
117
+ },
118
+ {
119
+ 'mgrs_tile_id': '19HBD',
120
+ 'post_acq_date': '2024-01-21',
121
+ 'post_acq_timestamp': '2024-01-21 10:04:30+00:00',
122
+ 'track_number': 156,
123
+ },
124
+ {
125
+ 'mgrs_tile_id': '19HBD',
126
+ 'post_acq_date': '2024-01-23',
127
+ 'post_acq_timestamp': '2024-01-23 23:28:36+00:00',
128
+ 'track_number': 18,
129
+ },
130
+ {
131
+ 'mgrs_tile_id': '19HBD',
132
+ 'post_acq_date': '2024-01-28',
133
+ 'post_acq_timestamp': '2024-01-28 23:36:46+00:00',
134
+ 'track_number': 91,
135
+ },
136
+ {
137
+ 'mgrs_tile_id': '19HBD',
138
+ 'post_acq_date': '2024-02-02',
139
+ 'post_acq_timestamp': '2024-02-02 10:04:30+00:00',
140
+ 'track_number': 156,
141
+ },
142
+ {
143
+ 'mgrs_tile_id': '19HBD',
144
+ 'post_acq_date': '2024-02-04',
145
+ 'post_acq_timestamp': '2024-02-04 23:28:36+00:00',
146
+ 'track_number': 18,
147
+ },
148
+ {
149
+ 'mgrs_tile_id': '19HBD',
150
+ 'post_acq_date': '2024-02-09',
151
+ 'post_acq_timestamp': '2024-02-09 23:36:45+00:00',
152
+ 'track_number': 91,
153
+ },
154
+ {
155
+ 'mgrs_tile_id': '19HBD',
156
+ 'post_acq_date': '2024-02-14',
157
+ 'post_acq_timestamp': '2024-02-14 10:04:29+00:00',
158
+ 'track_number': 156,
159
+ },
160
+ {
161
+ 'mgrs_tile_id': '19HBD',
162
+ 'post_acq_date': '2024-02-16',
163
+ 'post_acq_timestamp': '2024-02-16 23:28:36+00:00',
164
+ 'track_number': 18,
165
+ },
166
+ {
167
+ 'mgrs_tile_id': '19HBD',
168
+ 'post_acq_date': '2024-02-21',
169
+ 'post_acq_timestamp': '2024-02-21 23:36:46+00:00',
170
+ 'track_number': 91,
171
+ },
172
+ {
173
+ 'mgrs_tile_id': '19HBD',
174
+ 'post_acq_date': '2024-02-26',
175
+ 'post_acq_timestamp': '2024-02-26 10:04:29+00:00',
176
+ 'track_number': 156,
177
+ },
178
+ {
179
+ 'mgrs_tile_id': '19HBD',
180
+ 'post_acq_date': '2024-02-28',
181
+ 'post_acq_timestamp': '2024-02-28 23:28:36+00:00',
182
+ 'track_number': 18,
183
+ },
184
+ {
185
+ 'mgrs_tile_id': '19HBD',
186
+ 'post_acq_date': '2024-03-04',
187
+ 'post_acq_timestamp': '2024-03-04 23:36:46+00:00',
188
+ 'track_number': 91,
189
+ },
190
+ {
191
+ 'mgrs_tile_id': '19HBD',
192
+ 'post_acq_date': '2024-03-09',
193
+ 'post_acq_timestamp': '2024-03-09 10:04:29+00:00',
194
+ 'track_number': 156,
195
+ },
196
+ {
197
+ 'mgrs_tile_id': '19HBD',
198
+ 'post_acq_date': '2024-03-11',
199
+ 'post_acq_timestamp': '2024-03-11 23:28:36+00:00',
200
+ 'track_number': 18,
201
+ },
202
+ {
203
+ 'mgrs_tile_id': '19HBD',
204
+ 'post_acq_date': '2024-03-16',
205
+ 'post_acq_timestamp': '2024-03-16 23:36:46+00:00',
206
+ 'track_number': 91,
207
+ },
208
+ {
209
+ 'mgrs_tile_id': '19HBD',
210
+ 'post_acq_date': '2024-03-21',
211
+ 'post_acq_timestamp': '2024-03-21 10:04:30+00:00',
212
+ 'track_number': 156,
213
+ },
214
+ {
215
+ 'mgrs_tile_id': '19HBD',
216
+ 'post_acq_date': '2024-03-23',
217
+ 'post_acq_timestamp': '2024-03-23 23:28:36+00:00',
218
+ 'track_number': 18,
219
+ },
220
+ {
221
+ 'mgrs_tile_id': '19HBD',
222
+ 'post_acq_date': '2024-03-28',
223
+ 'post_acq_timestamp': '2024-03-28 23:36:46+00:00',
224
+ 'track_number': 91,
225
+ },
226
+ ]
227
+
228
+ # Chile 19HBD
229
+ df_ts = gpd.read_parquet(test_dir / 'data' / 'rtc_s1_ts_metadata' / 'chile_19HBD.parquet')
230
+
231
+ workflow_inputs = enumerate_dist_s1_workflow_inputs(
232
+ mgrs_tile_ids='19HBD',
233
+ track_numbers=None,
234
+ start_acq_dt='2023-11-01',
235
+ stop_acq_dt='2024-04-01',
236
+ lookback_strategy='multi_window',
237
+ delta_lookback_days=365,
238
+ delta_window_days=60,
239
+ max_pre_imgs_per_burst=5,
240
+ df_ts=df_ts,
241
+ )
242
+
243
+ assert workflow_inputs == expected_output
@@ -1,63 +0,0 @@
1
- from pathlib import Path
2
-
3
- import geopandas as gpd
4
-
5
- from dist_s1_enumerator.dist_enum_inputs import enumerate_dist_s1_workflow_inputs
6
-
7
-
8
- def test_enumerate_dist_s1_workflow_inputs_for_time_series(test_dir: Path) -> None:
9
- expected_output = [
10
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-05', 'track_number': 91},
11
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-10', 'track_number': 156},
12
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-12', 'track_number': 18},
13
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-17', 'track_number': 91},
14
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-22', 'track_number': 156},
15
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-11-24', 'track_number': 18},
16
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-04', 'track_number': 156},
17
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-06', 'track_number': 18},
18
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-11', 'track_number': 91},
19
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-16', 'track_number': 156},
20
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-18', 'track_number': 18},
21
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-23', 'track_number': 91},
22
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-28', 'track_number': 156},
23
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2023-12-30', 'track_number': 18},
24
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-04', 'track_number': 91},
25
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-09', 'track_number': 156},
26
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-11', 'track_number': 18},
27
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-16', 'track_number': 91},
28
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-21', 'track_number': 156},
29
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-23', 'track_number': 18},
30
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-01-28', 'track_number': 91},
31
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-02', 'track_number': 156},
32
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-04', 'track_number': 18},
33
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-09', 'track_number': 91},
34
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-14', 'track_number': 156},
35
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-16', 'track_number': 18},
36
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-21', 'track_number': 91},
37
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-26', 'track_number': 156},
38
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-02-28', 'track_number': 18},
39
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-04', 'track_number': 91},
40
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-09', 'track_number': 156},
41
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-11', 'track_number': 18},
42
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-16', 'track_number': 91},
43
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-21', 'track_number': 156},
44
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-23', 'track_number': 18},
45
- {'mgrs_tile_id': '19HBD', 'post_acq_date': '2024-03-28', 'track_number': 91},
46
- ]
47
-
48
- # Chile 19HBD
49
- df_ts = gpd.read_parquet(test_dir / 'data' / 'rtc_s1_ts_metadata' / 'chile_19HBD.parquet')
50
-
51
- workflow_inputs = enumerate_dist_s1_workflow_inputs(
52
- mgrs_tile_ids='19HBD',
53
- track_numbers=None,
54
- start_acq_dt='2023-11-01',
55
- stop_acq_dt='2024-04-01',
56
- lookback_strategy='multi_window',
57
- delta_lookback_days=365,
58
- delta_window_days=60,
59
- max_pre_imgs_per_burst=5,
60
- df_ts=df_ts,
61
- )
62
-
63
- assert workflow_inputs == expected_output