Skip to content

Releases: dbekaert/RAiDER

RAiDER v0.5.3

30 Jul 18:18
a9bf37c
Compare
Choose a tag to compare

Fixed

  • Updates dem-stitcher to 2.5.8 to ensure new (ARIA-managed) url for reading the Geoid EGM 2008. See this issue.

RAiDER v0.5.2

15 Jul 16:55
2a34802
Compare
Choose a tag to compare

Changed

  • 627 - Made Python datetimes timezone-aware and added unit tests and bug fixes.
  • 651 - Removed use of deprecated argument to pandas.read_csv.
  • 652 - Changed the behavior of RAiDER.models.credentials.check_api to not overwrite the user's API credential files.
  • 656 - Example run configuration files available through raider.py --generate_config <example_name>.
  • 657 - Fixed a few typos in README.md.
  • 658 - Fixed opaque error message if a GUNW file is not produced while HyP3 independently against a previous INSAR_ISCE.
  • 661 - Fixed bug in raiderDownloadGNSS, removed call to scipy.sum, and added unit tests.
  • 662 - Bumped dem-stitcher to >= v2.5.6, which updates the URL for reading the Geoid EGM 2008.

RAiDER v0.5.1

06 May 23:54
223d862
Compare
Choose a tag to compare

Changed

  • Use hyp3-lib v3* to download orbits to be able to distribute load across ESA and ASF. Can be easily swapped out for sentineleof in future release.

RAiDER v0.5.0

29 Apr 22:48
c1ef3f1
Compare
Choose a tag to compare

Added

  • A --input-bucket-prefix argument to calcDelaysGUNW which will allow RAiDER to process ARIA GUNW products under one prefix and upload the final products to another prefix provided by the --bucket-prefix argument.

Fixed

  • 613 - ensure NASA Earthdata credentials for downloading orbits from ASF
  • 634 - download orbits from ASF before trying ESA
  • 630 - use correct model name so (hrrr-ak) in azimuth_timing_grid
  • 620 - Fix MERRA-2 access because API was updated

RAiDER v0.4.7

20 Feb 22:41
85a26cd
Compare
Choose a tag to compare

Fixed

  • 617 - RAiDER created .netrc is too permissive
  • 622 - RAiDER's call to sentineleof needs to have missions and times have same length.

RAiDER v0.4.6

21 Nov 04:02
38eab39
Compare
Choose a tag to compare

Added

  • Adds an s1_orbits.py module which includes:
    • get_orbits_from_slc_ids to download the associated orbit files for a list of Sentinel-1 SLC IDs
    • 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.
  • 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

Changed

  • 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

Fixes

  • RAiDER is now tested on Python version 3.9-3.12
  • All typehints are now Python 3.9 compatible
  • 607: Python entrypoint loading is now compatible with Python 3.12
  • 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)
  • make weather file directory when it doesn't exist
  • Ensures the models/data/alaska.geojson.zip file is packaged when building from the source tarball
  • Make ISCE3 an optional dependency in s1_azimuth_timing.py
  • Added unit tests and removed unused and depracated functions

Removed

  • hyp3lib, which was only used for downloading orbit fies, has been removed in favor of sentineleof

RAiDER v0.4.5

27 Sep 16:52
d9fbf91
Compare
Choose a tag to compare

Fixes

  • #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.
  • #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
  • #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.
  • #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.

Removed

  • 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.

Added

  • 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)
  • 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)
  • Raise a value error if non-unique dates are given in the function get_inverse_weights_for_dates in s1_azimuth_timing.py
  • Added metadata provenance for each delay layer that is included in GUNW and the cube workflow generally in calcDelays including:
    • model_times_used - the weather models used and interpolated for the delay calculation
    • interpolation_method - whether none, center_time, or azimuth_time_grid methods were used - see description in calcDelayGUNW
    • scene_center_time - the center time in which the associated SAR image was acquired
  • Stages GMAO data for GUNW testing of correct dataset update i.e. in the test test_GUNW_dataset_update.
  • Stages HRRR data for test_HRRR_ztd test.
  • Ensures ISCE3 is >=0.15.0
  • Uses correct HyP3 S3 prefix conventions and filename suffix within test patches to improve readability of what tests are mocking (see comments in #597).

Changed

  • 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).
  • Made test names in test_GUNW.py more descriptive
  • Numpy docstrings and general linting to modified function including removing variables that were not being accessed
  • hrrr_download to ensure that hybrid coordinate is obtained regardless how herbie returns datacubes and ensures test_HRRR_ztd passes consistently
    • Remove the command line call in test_HRRR_ztd.py and call using the python mock up of CLI for better error handling and data mocking.
  • Return xarray.Dataset types for RAiDER.calcGUNW.tropo_gunw_slc and RAiDER.raider.calcDelayGUNW for easier inspection and testing
  • Fixes tests for checking availability of HRRR due Issue #596 (above).

RAiDER v0.4.4

30 Aug 17:33
61e0c91
Compare
Choose a tag to compare

Fixes

  • 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.

RAiDER v0.4.3

23 Aug 21:04
05a8a40
Compare
Choose a tag to compare
  • Prevent ray tracing integration from occuring at exactly top of weather model
  • Properly expose z_ref (max integration height) parameter, and dont allow higher than weather model
  • Min version for sentineleof for obtaining restituted orbits.
  • Rename datetime columns and convert from strings for GNSS workflow
  • Use native model levels in HRRR which extend up to 2 hPa as opposed to 50 hPa in pressure levels
  • Update tests to account for different interpolation scheme
  • Dont error out when the weather model contains nan values (HRRR)
  • Fix bug in fillna3D for NaNs at elevations higher than present in the weather model
  • write delays even if they contain nans
  • check that the aoi is contained within HRRR extent
  • streamline some unit tests to remove downloading
  • move the ray building out of the _build_cube_ray and into its own function for cleaner testing
  • update the tests to use the new build_ray function
  • If the processed weather file exists use it; otherwise check if raw exists and covers study area; otherwise download new
  • Update the integration height for raytracing from 50 km to 80 km
  • Reinstate test 3 (slant proj and ray trace), remove unused calls with ZREF
  • Add buffer to W/E for ERA5
  • refactor imports to allow for a cleaner raider-base
  • Add buffer to HRES when downloading as with the other models
  • Refactor to pass a weather file directly to fetch
  • Update staged weather models to reflect update to aligned grid
  • Correctly pass buffered bounds when aligning grid
  • Check the valid bounds prior to starting and use HRRR-AK if its correct so that rounding times to obtain data at are correctly fed to Herbie
  • Update test_intersect to already existing weather model files
  • Replace the real weather model files used for the synthetic test with the correct ones (bounding box changed slightly)
  • Update test_scenerio_1 to match golden data by selecting a grid by lat/lon rather than indices
  • Adjust the buffering to account for grid spacing
  • Update ERA5 model coordinates to reflect changes in support of HRRR
  • Re-work the HRRR weather model to use herbie (https://github.com/blaylockbk/Herbie) for weather model access. HRRR conus and Alaska validation periods are respectively 2016-7-15 and 2018-7-13 onwards.
  • minor bug fixes and unit test updates
  • add log file write location as a top-level command-line option and within Python as a user-specified option
  • account for grid spacing impact on bounding box before downloading weather model
  • update the GUNW test to account for change in grid spacing on affine transform
  • add CLI for the old processDelayFiles script and rename to raiderCombine
  • Fix gridding bug in accessing HRRR-AK
  • misc clean-up
  • Specify unbuffered python output in the docker entrypoint script using python -um RAiDER.cli ... whose __main__.py is the desired entrypoint.
  • For the GUNW workflow uses azimuth time interpolation using ISCE3 geo2rdr (see here).
    • Updates interpolate_time options to: 'none' (formerly False), 'center_time' (formerly True and default), and azimuth_time_grid (not implemented previously)
  • Series of bug-fixes/compatibility updates with stats class:
    • Inconsistent definition of index IDs, which leads to key errors as so when querying the grid space for valid data points
    • Turn off default behavior of plotting minor ticks on colorbars, which translates to unreadable plots especially when scientific notation is involved
    • Assign valid geotrans to output tif files used for replotting/dedup.
    • Properly load existing grids for replotting runs. Before the program crashed as single bands were incorrectly being read as cubes.
    • Update in pandas not backwards compatible with original conditional logic. Specifically, conditions like (not self.df['Date'].dt.is_leap_year) replaced with (self.df['Date'].dt.is_leap_year is False)
  • add unit tests for the hydro and two pieces of wet equation
  • bump bottom/top height of user requested levels by ~1mm during ray tracing to ensure interpolation works
  • ensure directories for storage are written
  • fix bug in writing delays for station files
  • Force lat/lon/hgt to float32 so that they line up correctly in stitching
  • Add two stage buffer;
    • first pad user bounding box such that a 3D cube is generated that at min covers user area of interest.
    • then if ray tracing is used, pad the downloaded model in look direction. Assumes look angle is fixed increases with latitude.
  • Update and convert user given AOI to weather model projection (except for HRRR)
  • Clean up error messagse, skip date if temporal interpolation fails
  • Update valid range for ERA5 (current date - 3 months) & ERA5T
  • Temporal interpolation of delays if the requested datetime is more than _THRESHOLD_SECONDS away from the closest weather model available time and interpolate_time = True (default behavior)
  • Add assert statement to raise error if the delay cube for each SAR date in a GUNW IFG is not written
  • Verify some constants / equations and remove the comments questioning them
  • Relocate the time resolution of wmodels to one spot
  • Skip test_scenario_3 until a new golden dataset is created
  • Update environment with scipy version minimum and requiring pybind11 (the latter for Apple ARM64 with rosetta2)
  • For GUNW entrypoint and associated workflow, update json metadata when bucket argument is provided to include weather_model key with value being a list.
  • For the GUNW workflow:
    • Updated GUNW workflow to expose input arguments (usually passed through command line options) within the python function for testing
    • Include integration test of HRRR for GUNW workflow
    • Test the json write (do not test s3 upload/download) in that it conforms to the DAAC ingest schema correctly - we add a weather model field to the metadata in this workflow
    • Removed comments in GUNW test suite that were left during previous development
    • If a bucket is provided and the GUNWs reference or secondary scenes are not in the valid range, we do nothing - this is to ensure that GUNWs can still be delivered to the DAAC without painful operator (i.e. person submitting to the hyp3 API) book-keeping

RAiDER v0.4.2

18 Feb 01:32
8398727
Compare
Choose a tag to compare

New/Updated Features

  • calcDelaysGUNW allows processing with any supported weather model as listed in RAiDER.models.allowed.ALLOWED_MODELS.
  • Removed NCMR removed from supported model list till re-tested
  • credentials looks for weather model API credentials RC_file hidden file, and creates it if it does not exists
  • Isolate ISCE3 imports to only those functions that need it.
  • Small bugfixes and updates to docstrings