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.
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/CHANGELOG.md +18 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/PKG-INFO +18 -2
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/README.md +17 -1
- dist_s1_enumerator-1.0.12/assets/visualization_of_parameters.png +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/asf.py +1 -1
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/dist_enum.py +16 -8
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/dist_enum_inputs.py +8 -6
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/tabular_models.py +1 -1
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/PKG-INFO +18 -2
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/SOURCES.txt +1 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/dependabot.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/bump-tag-for-release.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/changelog-updated.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/github-release.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/labeled-pr.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/nb_tests.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/pypi-release.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/static_analysis.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/tests.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.gitignore +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/LICENSE +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/environment.yml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/notebooks/A__Staging_Inputs_for_One_MGRS_Tile.ipynb +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/notebooks/B__Enumerate_MGRS_tile.ipynb +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/pyproject.toml +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/setup.cfg +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/__init__.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/constants.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/jpl_burst_geo.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/mgrs.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/mgrs_burst_lookup_table.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/exceptions.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/mgrs_burst_data.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/param_models.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/py.typed +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/rtc_s1_io.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/dependency_links.txt +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/not-zip-safe +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/requires.txt +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/top_level.txt +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/conftest.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/dist_hls_tiles.txt +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/mock_ts_data_for_enum.ipynb +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/chile_19HBD.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs01UBT.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs11SLT_11SLU_11SMT.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs15RXN__track63.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/rtc_s1_ts_metadata/mgrs22WFD.parquet +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/ts_data_for_workflow_inputs.ipynb +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_asf.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_dist_enum.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_dist_enum_inputs.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_mgrs_burst_data.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_notebooks.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_package.py +0 -0
- {dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/test_param_model.py +0 -0
- {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.
|
|
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
|
-
```
|
|
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
|
+

|
|
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
|
-
```
|
|
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
|
+

|
|
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.
|
|
Binary file
|
|
@@ -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.
|
|
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, ...] = (
|
|
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
|
-
|
|
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 = (
|
|
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
|
|
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
|
|
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.
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/dist_enum_inputs.py
RENAMED
|
@@ -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, ...] = (
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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.
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/tabular_models.py
RENAMED
|
@@ -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),
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dist-s1-enumerator
|
|
3
|
-
Version: 1.0.
|
|
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
|
-
```
|
|
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
|
+

|
|
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.
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/SOURCES.txt
RENAMED
|
@@ -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
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/bump-tag-for-release.yml
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/changelog-updated.yml
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/github-release.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/.github/workflows/static_analysis.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/notebooks/B__Enumerate_MGRS_tile.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/data/mgrs.parquet
RENAMED
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/exceptions.py
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/mgrs_burst_data.py
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator/param_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/src/dist_s1_enumerator.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/mock_ts_data_for_enum.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.10 → dist_s1_enumerator-1.0.12}/tests/data/ts_data_for_workflow_inputs.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|