Dist-s1

Latest version: v0.0.8

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.0.8

Changed
- Defaults to "low" for memory strategy for CPU usage.
- ProductFileData comparison to allow for individual product file comparison (fixes [51](https://github.com/opera-adt/dist-s1/issues/51)).
- Golden dataset - used CPU and low memory strategy to create the dataset.
- Updated equality testing for DIST-S1 product comparison lowered comparison tolerance to 0.0001 (was 1e-05).
- Forced minimum version of rasterio to 1.4.0 for merging operations.
- Pydantic model updates to ensure `product_dst_dir` is set to `dst_dir` without using `setattr`.
- Updated some example parameters for testing.
- Set minimum number of workers for despeckling and estimation of normal parameters to 8.
- Logic to deal with `n_workers_for_norm_param_estimation` when GPU is available (forcing it to be 1).
- Set `batch_size_for_despeckling` to 25.

Added
- Exposes runconfig parameter to force use of a device (`cpu`, `cuda`, `mps`, or `best`). `best` will use the best available device.
- Exposes runconfig to control batch size for despeckling (how many arrays are loaded into CPU memory at once).
- Allows for CPU multi-CPU processing (if desired) and exposes runconfig parameter to control number of workers.
- Validates multiprocessing to use CPU device.
- Ensures that the number of workers is not greater than the number of vCPUs (via `mp.cpu_count()`).
- If GPU is used, ensure multiprocessing is not used.
- Added a `n_workers_for_norm_param_estimation` parameter to the runconfig to control the number of workers for normal parameter estimation.
- Better instructions for generating a sample product via a docker container.
- Swap out concurrent.futures with torch.multiprocessing for normal parameter estimation for efficient CPU processing.

Fixed
- Ensures that the number of workers for despeckling is not greater than the number of vCPUs (via `mp.cpu_count()`).
- Updates default number of parameters for CLI to match runconfig (this is what cloud operations utilize if not specified).
- removed extraneous try/except in `normal_param_estimation_workflow` used for debugging.
- Returned allclose absolute tolerance to 1e-05 for golden dataset comparison.
- Ensures Earthdata credentials are provided when localizing data and can be passed as environment variables.

0.0.7

Fixed
* Fixed bug where RTC-S1 data was not being sorted by `jpl_burst_id` and `acq_dt` - this was causing us to establish baseline imagery from incorrect position

0.0.6

Changed
* Renamed `disable_tqdm` to `tqdm_enabled` in `localize_rtc_s1_ts`

Added
* Description to `tqdm` progress bar in `localize_rtc_s1_ts`.
* Use `tqdm.auto` to automatically determine how `tqdm` should be displayed (either via CLI or in a notebook).

0.0.5

* Dummy release due to expired github token.

0.0.4

Removed
* Removed `papermill` from environment.yml as it is not supported by 3.13

Added
* Added `localize_rtc_s1_ts` to top-level imports
* Allowed `post_date` to be a string in the form of 'YYYY-MM-DD' for one product enumeration
* Schema for localized inputs to ensure columns for local paths: `loc_path_copol` and `loc_path_crosspol`

Changed
* Added print date in notebook for clarity.
* Remove schema check from `append_pass_data` and enforce only certain columns to be present.

0.0.3

Added
* Support for Python 3.13
* Explicit error messages when no data is retrieved from various tables (e.g. burst data, MGRS/burst LUT data, etc.)
* Suite of tests for enumeration
* Unit tests - tests that can be run in a quick fashion and will be run on each PR to main/dev
* Integration tests - in our case, hitting the DAAC API and downloading data when necessary; these also include running the Notebooks.
* The latter is marked with `pytest.mark.integration` and will be run on PRs to main (i.e. release PRs)
* Schema with Pandera to explicitly define and validate columns and their types
* Flexibility to retrieve either HH+HV or VV+VH or target one particular dual polarization type (currently does not support mixtures of dual polarized data).
* Expose the primary functions via the `__init__.py` file
* Updated environment.yml for Papermill tests

Fixed
* `epsg` (now `utm_epsg`) was a string (with extra spacing) and now it's an integer

Changed
* For the MGRS table, we renamed `epsg` to `utm_epsg` (to be in line with `utm_wkt`) and cast it as an int

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.