You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+30-6Lines changed: 30 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,18 +6,43 @@ 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
+
10
+
## [0.4.6]
11
+
12
+
### Added
13
+
* Adds an `s1_orbits.py` module which includes:
14
+
*`get_orbits_from_slc_ids` to download the associated orbit files for a list of Sentinel-1 SLC IDs
15
+
*`ensure_orbit_credentials` to ensure ESA CSDE credentials have been provides to download orbit files. This should be called before `sentineleof` is used to download orbits.
16
+
* Adds a `setup_from_env` function to `models/credentials.py` which will pull *all* credentials needed for acquiring weather model data from environment variables and ensure the correct config file is written. This makes setting up credentials in CI pipelines significantly easier
17
+
18
+
### Changed
19
+
*`sentineleof` upgraded to version 0.9.5 or later to (a) fetch orbits from ESA CDSE and (b) ensure that if CDSE fetch fails, code resorts to ASF orbit repository
20
+
21
+
### Fixes
22
+
* RAiDER is now tested on Python version 3.9-3.12
23
+
* All typehints are now Python 3.9 compatible
24
+
*[607](https://github.com/dbekaert/RAiDER/issues/607): Python entrypoint loading is now compatible with Python 3.12
25
+
*[610](https://github.com/dbekaert/RAiDER/issues/610): Sentinel-1 orbit availability due to ESA migrating Sentinel-1 orbit files from Copernicus Open Access Hub (Scihub) to the new Copernicus Data Space Ecosystem (CDSE)
26
+
* make weather file directory when it doesn't exist
27
+
* Ensures the `models/data/alaska.geojson.zip` file is packaged when building from the source tarball
28
+
* Make ISCE3 an optional dependency in `s1_azimuth_timing.py`
29
+
+ Added unit tests and removed unused and depracated functions
30
+
31
+
### Removed
32
+
*`hyp3lib`, which was only used for downloading orbit fies, has been removed in favor of `sentineleof`
33
+
9
34
## [0.4.5]
10
35
11
-
## Fixes
36
+
###Fixes
12
37
*[#583](https://github.com/dbekaert/RAiDER/issues/583): it appears that since the issues with geo2rdr cropped up during our processing campaign, there has been a new release of ISCE3 that resolves these failures with `geo2rdr` and the time interpolation that uses this ISCE3 routine.
13
38
*[#584](https://github.com/dbekaert/RAiDER/issues/584): failed Raider step function in hyp3 job submission when HRRR model times are not available (even within the valid model range) - to resolve, we check availability of files when delay workflow called with a) azimuth_grid_interpolation and b) input to workflow is GUNW. If weather model files are unavailable and the GUNW is on s3, do nothing to GUNW (i.e. do not add tropo delay) and exit successfully. If weather model files are unavailable and the GUNW is on local disk, raise `ValueError`
14
39
*[#587](https://github.com/dbekaert/RAiDER/issues/587): similar to 584 except added here to the mix is control flow in RAiDER.py passes over numerous exceptions in workflow. This is fixed identically as above.
15
40
*[#596](https://github.com/dbekaert/RAiDER/issues/596): the "prefix" for aws does not include the final netcdf file name, just the sub-directories in the bucket and therefore extra logic must be added to determine the GUNW netcdf file name (and the assocaited reference/secondary dates). We proceed by downloading the data which is needed regardless. Tests are updated.
16
41
17
-
## Removed
42
+
###Removed
18
43
* Removes `update` option (either `True` or `False`) from calcGUNW workflow which asks whether the GUNW should be updated or not. In existing code, it was not being used/applied, i.e. previous workflow always updated GUNW. Removed input arguments related from respective functions so that it can be updated later.
19
44
20
-
## Added
45
+
###Added
21
46
* Allow for Hyp3 GUNW workflow with HRRR (i.e. specifying a gunw path in s3) to successfully exit if any of the HRRR model times required for `azimuth-time-grid` interpolation (which is default interpolatin method) are not available when using bucket inputs (i.e. only on the cloud)
22
47
* For GUNW workflow, when model is HRRR, azimuth_time_grid interpolation used, and using a local GUNW, if requisite weather model files are not available for raise a ValueError (before processing)
23
48
* Raise a value error if non-unique dates are given in the function `get_inverse_weights_for_dates` in `s1_azimuth_timing.py`
@@ -30,7 +55,7 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
30
55
* Ensures ISCE3 is `>=0.15.0`
31
56
* Uses correct HyP3 S3 prefix conventions and filename suffix within test patches to improve readability of what tests are mocking (see comments in #597).
32
57
33
-
## Changed
58
+
###Changed
34
59
* Get only 2 or 3 model times required for azimuth-time-interpolation (previously obtained all 3 as it was easier to implement) - this ensures slightly less failures associated with HRRR availability. Importantly, if a acquisition time occurs during a model time, then we order by distance to the reference time and how early it occurs (so earlier times come first if two times are equidistant to the aquisition time).
35
60
* Made test names in `test_GUNW.py` more descriptive
36
61
* Numpy docstrings and general linting to modified function including removing variables that were not being accessed
@@ -40,11 +65,10 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
40
65
* Fixes tests for checking availability of HRRR due Issue #596 (above).
41
66
42
67
## [0.4.4]
43
-
44
-
## Fixes
45
68
* For s1-azimuth-time interpolation, overlapping orbits when one orbit does not cover entire GUNW product errors out. We now ensure state-vectors are both unique and in order before creating a orbit object in ISCE3.
46
69
47
70
## [0.4.3]
71
+
+ Bug fixes, unit tests, docstrings
48
72
+ Prevent ray tracing integration from occuring at exactly top of weather model
49
73
+ Properly expose z_ref (max integration height) parameter, and dont allow higher than weather model
50
74
+ Min version for sentineleof for obtaining restituted orbits.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,34 @@ If you get stuck at any point you can create an [issue on GitHub](https://github
13
13
For more information on contributing to open source projects, [GitHub's own guide](https://guides.github.com/activities/contributing-to-open-source/)
14
14
is a great starting point if you are new to version control.
15
15
16
+
## Optional Dependencies
17
+
18
+
In order to better support the NISAR SDS (see: [#533](https://github.com/dbekaert/RAiDER/issues/533)), RAiDER has some optional dependencies:
19
+
20
+
* ISCE3
21
+
* Pandas
22
+
* Rasterio
23
+
* Progressbar
24
+
25
+
RAiDER distributes two conda packages, `raider-base` a lighter-weight package that does depend on the optional dependencies, and `raider` which includes all dependencies. When using, or adding new, optional dependenices in RAiDER, please follow this pattern:
26
+
1. When you import the optional dependency, handle import errors like:
27
+
```python
28
+
try:
29
+
import optional_dependency
30
+
exceptImportError:
31
+
optional_dependency =None
32
+
```
33
+
Note: you *do not* need to delay imports until use with this pattern.
34
+
2. At the top of any function/method that uses the optional dependency, throw if it's missing like:
35
+
```python
36
+
if optional_dependency isNone:
37
+
raiseImportError('optional_dependency is required for this function. Use conda to install optional_dependency')
38
+
```
39
+
3. If you want to add type hints for objects in the optional_dependency, use a forward declaration like:
0 commit comments