dist-s1-enumerator 1.0.4__tar.gz → 1.0.5__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.4 → dist_s1_enumerator-1.0.5}/CHANGELOG.md +7 -1
- {dist_s1_enumerator-1.0.4/src/dist_s1_enumerator.egg-info → dist_s1_enumerator-1.0.5}/PKG-INFO +1 -1
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/asf.py +23 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5/src/dist_s1_enumerator.egg-info}/PKG-INFO +1 -1
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_asf.py +22 -1
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/dependabot.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/bump-tag-for-release.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/changelog-updated.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/github-release.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/labeled-pr.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/nb_tests.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/pypi-release.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/static_analysis.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/tests.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.gitignore +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/LICENSE +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/README.md +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/environment.yml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/notebooks/A__Staging_Inputs_for_One_MGRS_Tile.ipynb +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/notebooks/B__Enumerate_MGRS_tile.ipynb +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/pyproject.toml +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/setup.cfg +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/__init__.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/data/jpl_burst_geo.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/data/mgrs.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/data/mgrs_burst_lookup_table.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/dist_enum.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/dist_enum_inputs.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/exceptions.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/mgrs_burst_data.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/param_models.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/py.typed +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/rtc_s1_io.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/tabular_models.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/SOURCES.txt +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/dependency_links.txt +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/not-zip-safe +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/requires.txt +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/top_level.txt +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/conftest.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/mock_ts_data_for_enum.ipynb +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/rtc_s1_ts_metadata/chile_19HBD.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/rtc_s1_ts_metadata/mgrs01UBT.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/rtc_s1_ts_metadata/mgrs11SLT_11SLU_11SMT.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/rtc_s1_ts_metadata/mgrs15RXN__track63.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/rtc_s1_ts_metadata/mgrs22WFD.parquet +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/data/ts_data_for_workflow_inputs.ipynb +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_dist_enum.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_dist_enum_inputs.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_mgrs_burst_data.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_notebooks.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_package.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_param_model.py +0 -0
- {dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/tests/test_rtc_s1_io.py +0 -0
|
@@ -6,6 +6,12 @@ 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.5] - 2025-09-29
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
* CMR metadata does not have correctly migrated urls from ASF datapool to ASF cumulus - see https://github.com/opera-adt/dist-s1/issues/158.
|
|
13
|
+
|
|
14
|
+
|
|
9
15
|
## [1.0.4] - 2025-09-29
|
|
10
16
|
|
|
11
17
|
### Added
|
|
@@ -14,7 +20,7 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
14
20
|
* We now ensure that single polarization data is excluded from baselines and not used in the creation of the post-image set.
|
|
15
21
|
|
|
16
22
|
### Fixed
|
|
17
|
-
* Bug in enumerating 1 product.
|
|
23
|
+
* Bug in enumerating 1 product - we did not ensure spatial bursts were consistent between pre-/post-image sets.
|
|
18
24
|
|
|
19
25
|
|
|
20
26
|
## [1.0.3] - 2025-09-09
|
{dist_s1_enumerator-1.0.4/src/dist_s1_enumerator.egg-info → dist_s1_enumerator-1.0.5}/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.5
|
|
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
|
|
@@ -12,6 +12,27 @@ from dist_s1_enumerator.mgrs_burst_data import get_burst_ids_in_mgrs_tiles, get_
|
|
|
12
12
|
from dist_s1_enumerator.tabular_models import reorder_columns, rtc_s1_resp_schema, rtc_s1_schema
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
def convert_asf_url_to_cumulus(url: str) -> str:
|
|
16
|
+
asf_base = 'https://datapool.asf.alaska.edu/RTC/OPERA-S1/'
|
|
17
|
+
cumulus_base = 'https://cumulus.asf.earthdatacloud.nasa.gov/OPERA/OPERA_L2_RTC-S1/'
|
|
18
|
+
|
|
19
|
+
if not (url.startswith(cumulus_base) or url.startswith(asf_base)):
|
|
20
|
+
warn(f'URL {url} is not a valid ASF datapool or cumulus earthdatacloud URL.')
|
|
21
|
+
return url
|
|
22
|
+
|
|
23
|
+
if not url.startswith(asf_base):
|
|
24
|
+
return url
|
|
25
|
+
|
|
26
|
+
filename = url.split('/')[-1]
|
|
27
|
+
granule_pol_parts = filename.rsplit('_', 1)
|
|
28
|
+
if len(granule_pol_parts) != 2:
|
|
29
|
+
raise ValueError(f'Could not extract granule name from filename: {filename}')
|
|
30
|
+
|
|
31
|
+
granule_name = granule_pol_parts[0]
|
|
32
|
+
new_url = f'{cumulus_base}{granule_name}/{filename}'
|
|
33
|
+
return new_url
|
|
34
|
+
|
|
35
|
+
|
|
15
36
|
def format_polarization(pol: list | str) -> str:
|
|
16
37
|
if isinstance(pol, list):
|
|
17
38
|
if ('VV' in pol) and len(pol) == 2:
|
|
@@ -167,6 +188,8 @@ def get_rtc_s1_ts_metadata_by_burst_ids(
|
|
|
167
188
|
|
|
168
189
|
df_rtc['url_copol'] = url_copol
|
|
169
190
|
df_rtc['url_crosspol'] = url_crosspol
|
|
191
|
+
df_rtc['url_copol'] = df_rtc['url_copol'].map(convert_asf_url_to_cumulus)
|
|
192
|
+
df_rtc['url_crosspol'] = df_rtc['url_crosspol'].map(convert_asf_url_to_cumulus)
|
|
170
193
|
df_rtc = df_rtc.drop(columns=['all_urls'])
|
|
171
194
|
|
|
172
195
|
# Ensure the data is sorted by jpl_burst_id and acq_dt
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5/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.5
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from dist_s1_enumerator.asf import append_pass_data, get_rtc_s1_ts_metadata_by_burst_ids
|
|
3
|
+
from dist_s1_enumerator.asf import append_pass_data, convert_asf_url_to_cumulus, get_rtc_s1_ts_metadata_by_burst_ids
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@pytest.mark.integration
|
|
@@ -35,3 +35,24 @@ def test_appending_mgrs_tiles() -> None:
|
|
|
35
35
|
|
|
36
36
|
df_rtc_formatted_no_rows = append_pass_data(df_rtc_resp, ['22NFF'])
|
|
37
37
|
assert df_rtc_formatted_no_rows.empty
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@pytest.mark.parametrize('pol_token', ['VV', 'VH', 'HH', 'HV'])
|
|
41
|
+
def test_convert_asf_url_to_cumulus_from_datapool(pol_token: str) -> None:
|
|
42
|
+
"""Test converting ASF datapool URL to cumulus earthdatacloud URL."""
|
|
43
|
+
asf_url = f'https://datapool.asf.alaska.edu/RTC/OPERA-S1/OPERA_L2_RTC-S1_T001-000189-IW2_20211028T180924Z_20250703T015334Z_S1A_30_v1.0_{pol_token}.tif'
|
|
44
|
+
expected_cumulus_url = f'https://cumulus.asf.earthdatacloud.nasa.gov/OPERA/OPERA_L2_RTC-S1/OPERA_L2_RTC-S1_T001-000189-IW2_20211028T180924Z_20250703T015334Z_S1A_30_v1.0/OPERA_L2_RTC-S1_T001-000189-IW2_20211028T180924Z_20250703T015334Z_S1A_30_v1.0_{pol_token}.tif'
|
|
45
|
+
|
|
46
|
+
result = convert_asf_url_to_cumulus(asf_url)
|
|
47
|
+
|
|
48
|
+
assert result == expected_cumulus_url
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@pytest.mark.parametrize('pol_token', ['VV', 'VH', 'HH', 'HV'])
|
|
52
|
+
def test_convert_asf_url_to_cumulus_already_cumulus(pol_token: str) -> None:
|
|
53
|
+
"""Test that cumulus URLs are returned unchanged."""
|
|
54
|
+
cumulus_url = f'https://cumulus.asf.earthdatacloud.nasa.gov/OPERA/OPERA_L2_RTC-S1/OPERA_L2_RTC-S1_T001-000189-IW2_20211028T180924Z_20250703T015334Z_S1A_30_v1.0/OPERA_L2_RTC-S1_T001-000189-IW2_20211028T180924Z_20250703T015334Z_S1A_30_v1.0_{pol_token}.tif'
|
|
55
|
+
|
|
56
|
+
result = convert_asf_url_to_cumulus(cumulus_url)
|
|
57
|
+
|
|
58
|
+
assert result == cumulus_url
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/bump-tag-for-release.yml
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/.github/workflows/changelog-updated.yml
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/notebooks/B__Enumerate_MGRS_tile.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/data/mgrs.parquet
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/dist_enum_inputs.py
RENAMED
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/mgrs_burst_data.py
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/param_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator/tabular_models.py
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/requires.txt
RENAMED
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/src/dist_s1_enumerator.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dist_s1_enumerator-1.0.4 → dist_s1_enumerator-1.0.5}/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.4 → dist_s1_enumerator-1.0.5}/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
|