dist-s1-enumerator 1.0.10__tar.gz → 1.0.12__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.10 → dist_s1_enumerator-1.0.12}/CHANGELOG.md +18 -0
  2. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/PKG-INFO +18 -2
  3. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/README.md +17 -1
  4. dist_s1_enumerator-1.0.12/assets/visualization_of_parameters.png +0 -0
  5. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/asf.py +1 -1
  6. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/dist_enum.py +16 -8
  7. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/dist_enum_inputs.py +8 -6
  8. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/tabular_models.py +1 -1
  9. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/PKG-INFO +18 -2
  10. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/SOURCES.txt +1 -0
  11. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/dependabot.yml +0 -0
  12. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/bump-tag-for-release.yml +0 -0
  13. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/changelog-updated.yml +0 -0
  14. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/github-release.yml +0 -0
  15. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/labeled-pr.yml +0 -0
  16. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/nb_tests.yml +0 -0
  17. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/pypi-release.yml +0 -0
  18. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/static_analysis.yml +0 -0
  19. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/tests.yml +0 -0
  20. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.gitignore +0 -0
  21. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/LICENSE +0 -0
  22. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/environment.yml +0 -0
  23. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/notebooks/A__Staging_Inputs_for_One_MGRS_Tile.ipynb +0 -0
  24. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/notebooks/B__Enumerate_MGRS_tile.ipynb +0 -0
  25. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/pyproject.toml +0 -0
  26. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/setup.cfg +0 -0
  27. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/__init__.py +0 -0
  28. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/constants.py +0 -0
  29. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/jpl_burst_geo.parquet +0 -0
  30. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/mgrs.parquet +0 -0
  31. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/mgrs_burst_lookup_table.parquet +0 -0
  32. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/exceptions.py +0 -0
  33. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/mgrs_burst_data.py +0 -0
  34. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/param_models.py +0 -0
  35. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/py.typed +0 -0
  36. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/rtc_s1_io.py +0 -0
  37. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/dependency_links.txt +0 -0
  38. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/not-zip-safe +0 -0
  39. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/requires.txt +0 -0
  40. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/top_level.txt +0 -0
  41. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/conftest.py +0 -0
  42. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/dist_hls_tiles.txt +0 -0
  43. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/mock_ts_data_for_enum.ipynb +0 -0
  44. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/chile_19HBD.parquet +0 -0
  45. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs01UBT.parquet +0 -0
  46. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs11SLT_11SLU_11SMT.parquet +0 -0
  47. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs15RXN__track63.parquet +0 -0
  48. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs22WFD.parquet +0 -0
  49. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/ts_data_for_workflow_inputs.ipynb +0 -0
  50. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_asf.py +0 -0
  51. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_dist_enum.py +0 -0
  52. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_dist_enum_inputs.py +0 -0
  53. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_mgrs_burst_data.py +0 -0
  54. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_notebooks.py +0 -0
  55. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_package.py +0 -0
  56. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_param_model.py +0 -0
  57. {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_rtc_s1_io.py +0 -0
@@ -6,6 +6,24 @@ 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.12] - 2026-01-27
10
+
11
+ ### Changed
12
+ * Default for `enumerate_dist_s1_workflow_inputs` parameter `delta_window_days` goes from `365` to `60` as was expected in v1.0.9
13
+ * Explicit tuple for `delta_lookback_days` default to ensure proper alignment with `max_pre_imgs_per_burst` and improve readability (also improved docstring for both)
14
+
15
+ ### Added
16
+ * Discussion of parameters and defaults in README.md
17
+
18
+ ## [1.0.11] - 2026-01-27
19
+
20
+ ### Changed
21
+ * 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.
22
+
23
+ ### Fixed
24
+ * 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.
25
+
26
+
9
27
  ## [1.0.10] - 2026-01-07
10
28
 
11
29
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dist-s1-enumerator
3
- Version: 1.0.10
3
+ Version: 1.0.12
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,7 +99,8 @@ Yields:
99
99
  <details>
100
100
  <summary>Output</summary>
101
101
 
102
- ```[{'mgrs_tile_id': '19HBD',
102
+ ```
103
+ [{'mgrs_tile_id': '19HBD',
103
104
  'post_acq_date': '2023-11-05',
104
105
  'track_number': 91,
105
106
  'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
@@ -342,6 +343,21 @@ In theory, we could specify the exact time of acquisition, but we have elected t
342
343
  It is also important to note that we are assuming the selection of pre-images (once a post-image set is selected) is fixed.
343
344
  Although varying a baseline of pre-images to measure disturbance will alter the final DIST-S1 product, we assume with a fixed strategy to construct this baseline, the above 3 fields uniquely identify a DIST-S1 product.
344
345
 
346
+ ### Parameters for Enumeration of RTC-S1 Inputs
347
+
348
+ We quickly discuss the primary parameters for enumerating the RTC-S1 inputs and provide a picture for the default parameters for clarity particularly for enumerating products.
349
+ The primary paramters we discuss are $\Delta_w$ (`delta_window_days` in library), $\Delta_l$ (`delta_lookback_days` in library), and $m$ (`max_pre_imgs_per_burst` in library).
350
+ These parameters operate on a per-burst curation as noted above.
351
+ The parameter $\Delta_w$ constrains how many days between the anniversary date of a recent post-acquisition date and $\Delta_w$ days before that.
352
+ By default it is set to 60 days.
353
+ The parameter $\Delta_l$ explicitly defines the number of anniversary dates and their distance in days from the recent post-acquisition.
354
+ It is by default set to (365, 730, 1095) days, which is 3 anniversary dates at 365 days apart.
355
+ $m$ explicitly says the maximum amount in each window when constructing this baseline and by default it is set to (4, 3, 3).
356
+ So for a post-date acquistion at $t_0$, the maximum number of RTC-S1 products to be used in the time range $[t_0 - 365 - \Delta_w, t_0 - 365]$ is $4$ and the next range $[t_0 - 730 - \Delta_w, t_0 - 730]$ is 3. A visualization of this is shown below.
357
+
358
+ ![params](assets/visualization_of_parameters.png)
359
+
360
+
345
361
  # About the Data Tables in this Library
346
362
 
347
363
  One of the purposes of this data is to provide easy access via standard lookups to a variety of tables associated with enumerating DIST-S1 products.
@@ -76,7 +76,8 @@ Yields:
76
76
  <details>
77
77
  <summary>Output</summary>
78
78
 
79
- ```[{'mgrs_tile_id': '19HBD',
79
+ ```
80
+ [{'mgrs_tile_id': '19HBD',
80
81
  'post_acq_date': '2023-11-05',
81
82
  'track_number': 91,
82
83
  'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
@@ -319,6 +320,21 @@ In theory, we could specify the exact time of acquisition, but we have elected t
319
320
  It is also important to note that we are assuming the selection of pre-images (once a post-image set is selected) is fixed.
320
321
  Although varying a baseline of pre-images to measure disturbance will alter the final DIST-S1 product, we assume with a fixed strategy to construct this baseline, the above 3 fields uniquely identify a DIST-S1 product.
321
322
 
323
+ ### Parameters for Enumeration of RTC-S1 Inputs
324
+
325
+ We quickly discuss the primary parameters for enumerating the RTC-S1 inputs and provide a picture for the default parameters for clarity particularly for enumerating products.
326
+ The primary paramters we discuss are $\Delta_w$ (`delta_window_days` in library), $\Delta_l$ (`delta_lookback_days` in library), and $m$ (`max_pre_imgs_per_burst` in library).
327
+ These parameters operate on a per-burst curation as noted above.
328
+ The parameter $\Delta_w$ constrains how many days between the anniversary date of a recent post-acquisition date and $\Delta_w$ days before that.
329
+ By default it is set to 60 days.
330
+ The parameter $\Delta_l$ explicitly defines the number of anniversary dates and their distance in days from the recent post-acquisition.
331
+ It is by default set to (365, 730, 1095) days, which is 3 anniversary dates at 365 days apart.
332
+ $m$ explicitly says the maximum amount in each window when constructing this baseline and by default it is set to (4, 3, 3).
333
+ So for a post-date acquistion at $t_0$, the maximum number of RTC-S1 products to be used in the time range $[t_0 - 365 - \Delta_w, t_0 - 365]$ is $4$ and the next range $[t_0 - 730 - \Delta_w, t_0 - 730]$ is 3. A visualization of this is shown below.
334
+
335
+ ![params](assets/visualization_of_parameters.png)
336
+
337
+
322
338
  # About the Data Tables in this Library
323
339
 
324
340
  One of the purposes of this data is to provide easy access via standard lookups to a variety of tables associated with enumerating DIST-S1 products.
@@ -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'],
@@ -16,9 +16,9 @@ def enumerate_one_dist_s1_product(
16
16
  post_date: datetime | pd.Timestamp | str,
17
17
  lookback_strategy: str = 'multi_window',
18
18
  post_date_buffer_days: int = 1,
19
- max_pre_imgs_per_burst: int | list[int] | tuple[int, ...] = (5, 5, 5),
19
+ max_pre_imgs_per_burst: int | list[int] | tuple[int, ...] = (4, 3, 3),
20
20
  delta_window_days: int = 60,
21
- delta_lookback_days: int | list[int] | tuple[int, ...] = 365,
21
+ delta_lookback_days: int | list[int] | tuple[int, ...] = (365, 730, 1095),
22
22
  min_pre_imgs_per_burst: int = 1,
23
23
  tqdm_enabled: bool = True,
24
24
  ) -> gpd.GeoDataFrame:
@@ -53,8 +53,9 @@ def enumerate_one_dist_s1_product(
53
53
  If lookback strategy is 'multi_window':
54
54
  - this is interpreted as the maximum number of pre-images on each anniversary date.
55
55
  - tuple/list of integers are provided, each int represents the maximum number of pre-images on each
56
- anniversary date,
57
- most recent last.
56
+ anniversary date. Each integer in tuple should be aligned with `delta_lookback_days`, if latter is a tuple.
57
+ If `delta_lookback_days` is an integer, then `max_pre_imgs_per_burst` will be interpreted with recent
58
+ coming first.
58
59
  - if a single integer is provided, this is interpreted as the maximum number of pre-images on 3
59
60
  anniversary dates.
60
61
  If the lookback strategy is 'immediate_lookback':
@@ -231,10 +232,10 @@ def enumerate_dist_s1_products(
231
232
  df_rtc_ts: gpd.GeoDataFrame,
232
233
  mgrs_tile_ids: list[str],
233
234
  lookback_strategy: str = 'multi_window',
234
- max_pre_imgs_per_burst: int = (5, 5, 5),
235
+ max_pre_imgs_per_burst: int = (4, 3, 3),
235
236
  min_pre_imgs_per_burst: int = 1,
236
237
  tqdm_enabled: bool = True,
237
- delta_lookback_days: int = 365,
238
+ delta_lookback_days: int = (365, 730, 1095),
238
239
  delta_window_days: int = 60,
239
240
  ) -> gpd.GeoDataFrame:
240
241
  """
@@ -259,7 +260,9 @@ def enumerate_dist_s1_products(
259
260
  If lookback strategy is 'multi_window':
260
261
  - this is interpreted as the maximum number of pre-images on each anniversary date.
261
262
  - tuple/list of integers are provided, each int represents the maximum number of pre-images on each
262
- anniversary date, most recent last.
263
+ anniversary date. Each integer in tuple should be aligned with `delta_lookback_days`, if latter is a tuple.
264
+ If `delta_lookback_days` is an integer, then `max_pre_imgs_per_burst` will be interpreted with recent
265
+ coming first.
263
266
  - if a single integer is provided, this is interpreted as the maximum number of pre-images on 3
264
267
  anniversary dates.
265
268
  If the lookback strategy is 'immediate_lookback':
@@ -270,7 +273,12 @@ def enumerate_dist_s1_products(
270
273
  tqdm_enabled : bool, optional
271
274
  Whether to enable tqdm progress bars, by default True.
272
275
  delta_lookback_days : int, optional
273
- When to set the most recent pre-image date. Default is 365.
276
+ When to set the most recent pre-image date for a given lookback window in baseline.
277
+ Default is (365, 730, 1095). Explicitly set to a tuple to ensure proper alignment with `max_pre_imgs_per_burst`
278
+ and improve readability.
279
+ See `max_pre_imgs_per_burst` for how this parameter is aligned with that. Specifically, when they are both
280
+ tuples they should be the same length (i.e. if `delta_lookback_days` is a tuple, then `max_pre_imgs_per_burst`
281
+ should be the same length).
274
282
  If lookback strategy is 'multi_window', this means the maximum number of days to search for pre-images on each
275
283
  anniversary date where `post_date - n * lookback_days` are the anniversary dates for n = 1,....
276
284
  If lookback strategy is 'immediate_lookback', this must be set to 0.
@@ -32,10 +32,10 @@ def enumerate_dist_s1_workflow_inputs(
32
32
  start_acq_dt: datetime | pd.Timestamp | str | None = None,
33
33
  stop_acq_dt: datetime | pd.Timestamp | str | None = None,
34
34
  lookback_strategy: str = 'multi_window',
35
- 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),
36
36
  min_pre_imgs_per_burst: int = 1,
37
- delta_lookback_days: int | list[int] | tuple[int, ...] = 365,
38
- delta_window_days: int = 365,
37
+ delta_lookback_days: int | list[int] | tuple[int, ...] = (365, 730, 1095),
38
+ delta_window_days: int = 60,
39
39
  df_ts: gpd.GeoDataFrame | None = None,
40
40
  ) -> list[dict]:
41
41
  """Enumerate the inputs for a DIST-S1 workflow.
@@ -60,11 +60,13 @@ def enumerate_dist_s1_workflow_inputs(
60
60
  Lookback strategy to use, by default 'multi_window'. Options are
61
61
  'immediate_lookback' or 'multi_window'.
62
62
  max_pre_imgs_per_burst : int | list[int] | tuple[int, ...], optional
63
- 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).
64
64
  If lookback strategy is 'multi_window':
65
65
  - this is interpreted as the maximum number of pre-images on each anniversary date.
66
66
  - tuple/list of integers are provided, each int represents the maximum number of pre-images on each
67
- anniversary date, most recent last.
67
+ anniversary date. Each integer in tuple should be aligned with `delta_lookback_days`, if latter is a tuple.
68
+ If `delta_lookback_days` is an integer, then `max_pre_imgs_per_burst` will be interpreted with recent
69
+ coming first.
68
70
  - if a single integer is provided, this is interpreted as the maximum number of pre-images on 3
69
71
  anniversary dates.
70
72
  If the lookback strategy is 'immediate_lookback':
@@ -73,7 +75,7 @@ def enumerate_dist_s1_workflow_inputs(
73
75
  min_pre_imgs_per_burst : int, optional
74
76
  Minimum number of pre-images per burst to include, by default 1. This is for *all* the pre-images.
75
77
  delta_lookback_days : int | list[int] | tuple[int, ...], optional
76
- When to set the most recent pre-image date. Default is 0.
78
+ When to set the most recent pre-image date. Default is (365, 730, 1095) days.
77
79
  If lookback strategy is 'multi_window', this means the maximum number of days to search for pre-images on each
78
80
  anniversary date where `post_date - n * lookback_days` are the anniversary dates for n = 1,....
79
81
  If lookback strategy is 'immediate_lookback', this must be set to 0.
@@ -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.10
3
+ Version: 1.0.12
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,7 +99,8 @@ Yields:
99
99
  <details>
100
100
  <summary>Output</summary>
101
101
 
102
- ```[{'mgrs_tile_id': '19HBD',
102
+ ```
103
+ [{'mgrs_tile_id': '19HBD',
103
104
  'post_acq_date': '2023-11-05',
104
105
  'track_number': 91,
105
106
  'post_acq_timestamp': '2023-11-05 23:36:49+00:00'},
@@ -342,6 +343,21 @@ In theory, we could specify the exact time of acquisition, but we have elected t
342
343
  It is also important to note that we are assuming the selection of pre-images (once a post-image set is selected) is fixed.
343
344
  Although varying a baseline of pre-images to measure disturbance will alter the final DIST-S1 product, we assume with a fixed strategy to construct this baseline, the above 3 fields uniquely identify a DIST-S1 product.
344
345
 
346
+ ### Parameters for Enumeration of RTC-S1 Inputs
347
+
348
+ We quickly discuss the primary parameters for enumerating the RTC-S1 inputs and provide a picture for the default parameters for clarity particularly for enumerating products.
349
+ The primary paramters we discuss are $\Delta_w$ (`delta_window_days` in library), $\Delta_l$ (`delta_lookback_days` in library), and $m$ (`max_pre_imgs_per_burst` in library).
350
+ These parameters operate on a per-burst curation as noted above.
351
+ The parameter $\Delta_w$ constrains how many days between the anniversary date of a recent post-acquisition date and $\Delta_w$ days before that.
352
+ By default it is set to 60 days.
353
+ The parameter $\Delta_l$ explicitly defines the number of anniversary dates and their distance in days from the recent post-acquisition.
354
+ It is by default set to (365, 730, 1095) days, which is 3 anniversary dates at 365 days apart.
355
+ $m$ explicitly says the maximum amount in each window when constructing this baseline and by default it is set to (4, 3, 3).
356
+ So for a post-date acquistion at $t_0$, the maximum number of RTC-S1 products to be used in the time range $[t_0 - 365 - \Delta_w, t_0 - 365]$ is $4$ and the next range $[t_0 - 730 - \Delta_w, t_0 - 730]$ is 3. A visualization of this is shown below.
357
+
358
+ ![params](assets/visualization_of_parameters.png)
359
+
360
+
345
361
  # About the Data Tables in this Library
346
362
 
347
363
  One of the purposes of this data is to provide easy access via standard lookups to a variety of tables associated with enumerating DIST-S1 products.
@@ -13,6 +13,7 @@ pyproject.toml
13
13
  .github/workflows/pypi-release.yml
14
14
  .github/workflows/static_analysis.yml
15
15
  .github/workflows/tests.yml
16
+ assets/visualization_of_parameters.png
16
17
  notebooks/A__Staging_Inputs_for_One_MGRS_Tile.ipynb
17
18
  notebooks/B__Enumerate_MGRS_tile.ipynb
18
19
  src/dist_s1_enumerator/__init__.py