From 296a8a135275f893b9d8e3ec0295494acbf58665 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Fri, 4 Aug 2023 12:56:58 -0500 Subject: [PATCH 01/31] different dem for geocoding in the case of 5x1 --- src/hyp3_isce2/dem.py | 43 +++++++++++++++++++++++------- src/hyp3_isce2/insar_tops_burst.py | 8 +++++- src/hyp3_isce2/topsapp.py | 3 ++- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index f7fc56b7..f9dcef64 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -56,11 +56,21 @@ def buffer_extent(extent: list, buffer: float) -> list: ] +def distance_meters_to_degrees(distance_meters, latitude): + earth_radius = 6371000.0 + lat_radians = np.radians(latitude) + circumference_at_latitude = 2 * np.pi * earth_radius * np.cos(lat_radians) + distance_degrees = distance_meters / circumference_at_latitude * 360 + return distance_degrees + + def download_dem_for_isce2( extent: list, dem_name: str = 'glo_30', dem_dir: Path = None, - buffer: float = .4) -> Path: + buffer: float = .4, + resample: bool = False +) -> Path: """Download the given DEM for the given extent. Args: @@ -77,13 +87,25 @@ def download_dem_for_isce2( extent_buffered = buffer_extent(extent, buffer) - dem_array, dem_profile = dem_stitcher.stitch_dem( - extent_buffered, - dem_name, - dst_ellipsoidal_height=True, - dst_area_or_point='Point', - n_threads_downloading=5, - ) + if resample: + res_degrees = distance_meters_to_degrees(20.0, extent_buffered[1]) + dem_array, dem_profile = dem_stitcher.stitch_dem( + extent_buffered, + dem_name, + dst_ellipsoidal_height=True, + dst_area_or_point='Point', + n_threads_downloading=5, + dst_resolution=res_degrees + ) + else: + dem_array, dem_profile = dem_stitcher.stitch_dem( + extent_buffered, + dem_name, + dst_ellipsoidal_height=True, + dst_area_or_point='Point', + n_threads_downloading=5, + ) + dem_array[np.isnan(dem_array)] = 0. dem_profile['nodata'] = None @@ -93,7 +115,10 @@ def download_dem_for_isce2( for key in ['blockxsize', 'blockysize', 'compress', 'interleave', 'tiled']: del dem_profile[key] - dem_path = dem_dir / 'full_res.dem.wgs84' + if resample: + dem_path = dem_dir / 'full_res_geocode.dem.wgs84' + else: + dem_path = dem_dir / 'full_res.dem.wgs84' with rasterio.open(dem_path, 'w', **dem_profile) as ds: ds.write(dem_array, 1) diff --git a/src/hyp3_isce2/insar_tops_burst.py b/src/hyp3_isce2/insar_tops_burst.py index f0807b90..4fbe25f4 100644 --- a/src/hyp3_isce2/insar_tops_burst.py +++ b/src/hyp3_isce2/insar_tops_burst.py @@ -84,9 +84,14 @@ def insar_tops_burst( log.info(f'InSAR ROI: {insar_roi}') log.info(f'DEM ROI: {dem_roi}') - dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0) + dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample=False) download_aux_cal(aux_cal_dir) + geocode_dem_path = dem_path + if range_looks == 5: + geocode_dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample=True) + download_aux_cal(aux_cal_dir) + orbit_dir.mkdir(exist_ok=True, parents=True) for granule in (ref_params.granule, sec_params.granule): downloadSentinelOrbitFile(granule, str(orbit_dir)) @@ -98,6 +103,7 @@ def insar_tops_burst( aux_cal_directory=str(aux_cal_dir), roi=insar_roi, dem_filename=str(dem_path), + geocode_dem_filename=str(geocode_dem_path), swaths=swath_number, azimuth_looks=azimuth_looks, range_looks=range_looks, diff --git a/src/hyp3_isce2/topsapp.py b/src/hyp3_isce2/topsapp.py index baee5338..3906080a 100644 --- a/src/hyp3_isce2/topsapp.py +++ b/src/hyp3_isce2/topsapp.py @@ -51,6 +51,7 @@ def __init__( orbit_directory: str, aux_cal_directory: str, dem_filename: str, + geocode_dem_filename: str, roi: Iterable[float], swaths: int or Iterable[int] = [1, 2, 3], azimuth_looks: int = 4, @@ -63,7 +64,7 @@ def __init__( self.aux_cal_directory = aux_cal_directory self.roi = [roi[1], roi[3], roi[0], roi[2]] self.dem_filename = dem_filename - self.geocode_dem_filename = dem_filename + self.geocode_dem_filename = geocode_dem_filename self.azimuth_looks = azimuth_looks self.range_looks = range_looks self.do_unwrap = do_unwrap From 3b1fb5f61ae470d6c46b96c97eaf79ba1e420e1b Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Fri, 4 Aug 2023 14:23:41 -0500 Subject: [PATCH 02/31] distance_meters_to_degrees now gives lon value --- src/hyp3_isce2/dem.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index f9dcef64..c56b7d21 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -57,11 +57,13 @@ def buffer_extent(extent: list, buffer: float) -> list: def distance_meters_to_degrees(distance_meters, latitude): - earth_radius = 6371000.0 + # The circumference of the Earth for any given longitude is constant + EARTHS_CIRCUMFERENCE_LONGITUDE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) - circumference_at_latitude = 2 * np.pi * earth_radius * np.cos(lat_radians) - distance_degrees = distance_meters / circumference_at_latitude * 360 - return distance_degrees + circumference_at_latitude = EARTHS_CIRCUMFERENCE_LONGITUDE * np.cos(lat_radians) + distance_degrees_lat = distance_meters / circumference_at_latitude * 360 + distance_degrees_lon = distance_meters / EARTHS_CIRCUMFERENCE_LONGITUDE * 360 + return (distance_degrees_lon, distance_degrees_lat) def download_dem_for_isce2( From 2aec6859a66c203bdfc4cd0714febf95324d2681 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Fri, 4 Aug 2023 14:30:45 -0500 Subject: [PATCH 03/31] Making Flake8 Happy --- src/hyp3_isce2/dem.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index c56b7d21..6cff2b7c 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -58,10 +58,10 @@ def buffer_extent(extent: list, buffer: float) -> list: def distance_meters_to_degrees(distance_meters, latitude): # The circumference of the Earth for any given longitude is constant - EARTHS_CIRCUMFERENCE_LONGITUDE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) + EARTHS_CIRCUMFERENCE_LONGITUDE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE_LONGITUDE * np.cos(lat_radians) - distance_degrees_lat = distance_meters / circumference_at_latitude * 360 + distance_degrees_lat = distance_meters / circumference_at_latitude * 360 distance_degrees_lon = distance_meters / EARTHS_CIRCUMFERENCE_LONGITUDE * 360 return (distance_degrees_lon, distance_degrees_lat) From 29d6acd0e1ba04e10cd98a4172a4a4bde797b019 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Fri, 4 Aug 2023 14:33:02 -0500 Subject: [PATCH 04/31] Updated Changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab6ce40a..a674f579 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [PEP 440](https://www.python.org/dev/peps/pep-0440/) and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.6.2] +### Changed +* The geocoding DEM is now resampled to ~20m in the case of 5x1 looks. + ## [0.6.1] ### Added * `apply_water_mask` optional argument to apply water mask in the wrapped and unwrapped phase geotiff files From ee63d6c13cf837845ed49446de05e954c9b6068a Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 12:18:54 -0500 Subject: [PATCH 05/31] Add a test for distance_meters... --- tests/test_dem.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/test_dem.py b/tests/test_dem.py index e8efb2b2..2695739e 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -4,6 +4,7 @@ import rasterio from affine import Affine from lxml import etree +from pytest import raises from rasterio import CRS from hyp3_isce2 import dem @@ -78,3 +79,15 @@ def test_buffer_extent(): assert dem.buffer_extent(extent2, 0.1) == [-170, 53, -167, 55] assert dem.buffer_extent(extent2, 0.3) == [-170, 53, -167, 55] assert dem.buffer_extent(extent2, 0.4) == [-171, 52, -166, 56] + + +def test_distance_meters_to_degrees(): + # A degree of latitude always has roughly the same distance in meters + degrees_per_meter_latitude = 0.00017986432118374611 + assert dem.distance_meters_to_degrees(20, 0) == (degrees_per_meter_latitude, 0.00017986432118374611) + assert dem.distance_meters_to_degrees(20, 45) == (degrees_per_meter_latitude, 0.0002543665624050841) + assert dem.distance_meters_to_degrees(20, 89.9) == (degrees_per_meter_latitude, 0.103054717208573) + # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. + # This is since cos(90) = 0, leading to a divide by zero issue. + with raises(ZeroDivisionError): + dem.distance_meters_to_degrees(20, 90) \ No newline at end of file From cd5e63ddb39911bb6e98d4f517ac1aa45cb14e63 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 12:19:11 -0500 Subject: [PATCH 06/31] refactor and doc_string for distance_meters... --- src/hyp3_isce2/dem.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 6cff2b7c..2ca3418f 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -57,13 +57,24 @@ def buffer_extent(extent: list, buffer: float) -> list: def distance_meters_to_degrees(distance_meters, latitude): - # The circumference of the Earth for any given longitude is constant - EARTHS_CIRCUMFERENCE_LONGITUDE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) + """Get the arc length in degrees for a give distance in meters along lines of longitude and latitude. + + Args: + distance_meters: The desired arc length in meters. + latitude: The desired line of latitude. + Returns: + The length in degrees for longitude and the given latitude, respectively. + """ + if (latitude == 90): + # np.cos won't return exactly 0, so we must manually raise this exception. + raise ZeroDivisionError("A Latitude of 90 degrees results in dividing by zero.") + # The circumference of the Earth for any given line of longitude is constant + EARTHS_CIRCUMFERENCE_LON = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) + DISTANCE_DEGREES_LON = 0.00017986432118374611 # distance_meters / EARTHS_CIRCUMFERENCE_LONGITUDE * 360 lat_radians = np.radians(latitude) - circumference_at_latitude = EARTHS_CIRCUMFERENCE_LONGITUDE * np.cos(lat_radians) + circumference_at_latitude = EARTHS_CIRCUMFERENCE_LON * np.cos(lat_radians) distance_degrees_lat = distance_meters / circumference_at_latitude * 360 - distance_degrees_lon = distance_meters / EARTHS_CIRCUMFERENCE_LONGITUDE * 360 - return (distance_degrees_lon, distance_degrees_lat) + return (DISTANCE_DEGREES_LON, distance_degrees_lat) def download_dem_for_isce2( From abcddb0feedf12098e7a1efb54a2d2427186fa1e Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 12:47:14 -0500 Subject: [PATCH 07/31] values rounded to 15 decimal places --- src/hyp3_isce2/dem.py | 2 +- tests/test_dem.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 2ca3418f..6a4c3db0 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -74,7 +74,7 @@ def distance_meters_to_degrees(distance_meters, latitude): lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE_LON * np.cos(lat_radians) distance_degrees_lat = distance_meters / circumference_at_latitude * 360 - return (DISTANCE_DEGREES_LON, distance_degrees_lat) + return (np.round(DISTANCE_DEGREES_LON, 15), np.round(distance_degrees_lat, 15)) def download_dem_for_isce2( diff --git a/tests/test_dem.py b/tests/test_dem.py index 2695739e..016c21ce 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -83,9 +83,9 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters - degrees_per_meter_latitude = 0.00017986432118374611 - assert dem.distance_meters_to_degrees(20, 0) == (degrees_per_meter_latitude, 0.00017986432118374611) - assert dem.distance_meters_to_degrees(20, 45) == (degrees_per_meter_latitude, 0.0002543665624050841) + degrees_per_meter_latitude = 0.000179864321184 + assert dem.distance_meters_to_degrees(20, 0) == (degrees_per_meter_latitude, 0.000179864321184) + assert dem.distance_meters_to_degrees(20, 45) == (degrees_per_meter_latitude, 0.000254366562405) assert dem.distance_meters_to_degrees(20, 89.9) == (degrees_per_meter_latitude, 0.103054717208573) # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. From 701cc2c462c9b84cfe09d29a0ca890afd4408da4 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 12:53:09 -0500 Subject: [PATCH 08/31] removed fixed longitude distance --- src/hyp3_isce2/dem.py | 4 ++-- tests/test_dem.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 6a4c3db0..58c064cc 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -70,11 +70,11 @@ def distance_meters_to_degrees(distance_meters, latitude): raise ZeroDivisionError("A Latitude of 90 degrees results in dividing by zero.") # The circumference of the Earth for any given line of longitude is constant EARTHS_CIRCUMFERENCE_LON = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) - DISTANCE_DEGREES_LON = 0.00017986432118374611 # distance_meters / EARTHS_CIRCUMFERENCE_LONGITUDE * 360 lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE_LON * np.cos(lat_radians) distance_degrees_lat = distance_meters / circumference_at_latitude * 360 - return (np.round(DISTANCE_DEGREES_LON, 15), np.round(distance_degrees_lat, 15)) + distance_degrees_lon = distance_meters / EARTHS_CIRCUMFERENCE_LON * 360 + return (np.round(distance_degrees_lon, 15), np.round(distance_degrees_lat, 15)) def download_dem_for_isce2( diff --git a/tests/test_dem.py b/tests/test_dem.py index 016c21ce..b577ba69 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -83,7 +83,7 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters - degrees_per_meter_latitude = 0.000179864321184 + degrees_per_meter_latitude = 0.000179864321184 # for 20 meters assert dem.distance_meters_to_degrees(20, 0) == (degrees_per_meter_latitude, 0.000179864321184) assert dem.distance_meters_to_degrees(20, 45) == (degrees_per_meter_latitude, 0.000254366562405) assert dem.distance_meters_to_degrees(20, 89.9) == (degrees_per_meter_latitude, 0.103054717208573) From f86a8ab475a946b93fe846762b94f506f0b47486 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:02:35 -0500 Subject: [PATCH 09/31] fixed order of lon, lat --- src/hyp3_isce2/dem.py | 4 ++-- tests/test_dem.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 58c064cc..538ff822 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -72,8 +72,8 @@ def distance_meters_to_degrees(distance_meters, latitude): EARTHS_CIRCUMFERENCE_LON = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE_LON * np.cos(lat_radians) - distance_degrees_lat = distance_meters / circumference_at_latitude * 360 - distance_degrees_lon = distance_meters / EARTHS_CIRCUMFERENCE_LON * 360 + distance_degrees_lon = distance_meters / circumference_at_latitude * 360 + distance_degrees_lat = distance_meters / EARTHS_CIRCUMFERENCE_LON * 360 return (np.round(distance_degrees_lon, 15), np.round(distance_degrees_lat, 15)) diff --git a/tests/test_dem.py b/tests/test_dem.py index b577ba69..22d470c8 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -84,9 +84,9 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters degrees_per_meter_latitude = 0.000179864321184 # for 20 meters - assert dem.distance_meters_to_degrees(20, 0) == (degrees_per_meter_latitude, 0.000179864321184) - assert dem.distance_meters_to_degrees(20, 45) == (degrees_per_meter_latitude, 0.000254366562405) - assert dem.distance_meters_to_degrees(20, 89.9) == (degrees_per_meter_latitude, 0.103054717208573) + assert dem.distance_meters_to_degrees(20, 0) == (0.000179864321184, degrees_per_meter_latitude) + assert dem.distance_meters_to_degrees(20, 45) == (0.000254366562405, degrees_per_meter_latitude) + assert dem.distance_meters_to_degrees(20, 89.9) == (0.103054717208573, degrees_per_meter_latitude) # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): From c28d3be3c68f31bca480812fb3cd670c05668475 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:03:09 -0500 Subject: [PATCH 10/31] new line for flake8 --- tests/test_dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index 22d470c8..3207ab8a 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -90,4 +90,4 @@ def test_distance_meters_to_degrees(): # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): - dem.distance_meters_to_degrees(20, 90) \ No newline at end of file + dem.distance_meters_to_degrees(20, 90) From 424a01a1c059acb6d2fd4e0cbce72d68418a4a64 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:08:47 -0500 Subject: [PATCH 11/31] extra space for flake8 --- tests/test_dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index 3207ab8a..faacbc74 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -83,7 +83,7 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters - degrees_per_meter_latitude = 0.000179864321184 # for 20 meters + degrees_per_meter_latitude = 0.000179864321184 # for 20 meters assert dem.distance_meters_to_degrees(20, 0) == (0.000179864321184, degrees_per_meter_latitude) assert dem.distance_meters_to_degrees(20, 45) == (0.000254366562405, degrees_per_meter_latitude) assert dem.distance_meters_to_degrees(20, 89.9) == (0.103054717208573, degrees_per_meter_latitude) From 6b89b44dbe2d4927cc2dc0785dfd5dfdacff51e9 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:19:07 -0500 Subject: [PATCH 12/31] fixes for topsapp tests --- tests/test_topsapp.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_topsapp.py b/tests/test_topsapp.py index eb5338bd..c069c07f 100644 --- a/tests/test_topsapp.py +++ b/tests/test_topsapp.py @@ -11,6 +11,7 @@ def test_topsapp_burst_config(tmp_path): aux_cal_directory='aux_cal', roi=[-118.0, 37.0, -117.0, 38.0], dem_filename='dem.tif', + geocode_dem_filename='dem_geocode.tif', swaths=1, ) @@ -25,6 +26,7 @@ def test_topsapp_burst_config(tmp_path): assert 'orbits' in template assert 'aux_cal' in template assert 'dem.tif' in template + assert 'dem_geocode.tif' in template assert '[37.0, 38.0, -118.0, -117.0]' in template assert '[1]' in template @@ -55,6 +57,7 @@ def test_run_topsapp_burst(tmp_path, monkeypatch): aux_cal_directory='', roi=[0, 1, 2, 3], dem_filename='', + geocode_dem_filename='', swaths=1, azimuth_looks=1, range_looks=1, From cdb7e963e35a76c00cb5c0cfdbf55b4c0b093acc Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:36:17 -0500 Subject: [PATCH 13/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 538ff822..25928a5b 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -67,7 +67,7 @@ def distance_meters_to_degrees(distance_meters, latitude): """ if (latitude == 90): # np.cos won't return exactly 0, so we must manually raise this exception. - raise ZeroDivisionError("A Latitude of 90 degrees results in dividing by zero.") + raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') # The circumference of the Earth for any given line of longitude is constant EARTHS_CIRCUMFERENCE_LON = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) From 216e222caa0216d63e4fe64741df7c8179bff801 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:36:23 -0500 Subject: [PATCH 14/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 25928a5b..db431f22 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -65,7 +65,7 @@ def distance_meters_to_degrees(distance_meters, latitude): Returns: The length in degrees for longitude and the given latitude, respectively. """ - if (latitude == 90): + if latitude == 90: # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') # The circumference of the Earth for any given line of longitude is constant From 0b26f2d0a0f3d83a4d882d5dcb5d6ea63298d6ac Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 13:52:23 -0500 Subject: [PATCH 15/31] renamed EARTHS_CIRCUMFERENCE --- src/hyp3_isce2/dem.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index db431f22..2fef8888 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -69,11 +69,11 @@ def distance_meters_to_degrees(distance_meters, latitude): # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') # The circumference of the Earth for any given line of longitude is constant - EARTHS_CIRCUMFERENCE_LON = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) + EARTHS_CIRCUMFERENCE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) - circumference_at_latitude = EARTHS_CIRCUMFERENCE_LON * np.cos(lat_radians) + circumference_at_latitude = EARTHS_CIRCUMFERENCE * np.cos(lat_radians) distance_degrees_lon = distance_meters / circumference_at_latitude * 360 - distance_degrees_lat = distance_meters / EARTHS_CIRCUMFERENCE_LON * 360 + distance_degrees_lat = distance_meters / EARTHS_CIRCUMFERENCE * 360 return (np.round(distance_degrees_lon, 15), np.round(distance_degrees_lat, 15)) From 08668ebd55cc37e3167064b0ba6efb902e1bf9ce Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:00:42 -0500 Subject: [PATCH 16/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 2fef8888..ca85890c 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -68,7 +68,6 @@ def distance_meters_to_degrees(distance_meters, latitude): if latitude == 90: # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') - # The circumference of the Earth for any given line of longitude is constant EARTHS_CIRCUMFERENCE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE * np.cos(lat_radians) From 23647022f09069d8bc48a9fdf99dd31a1e106149 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:01:21 -0500 Subject: [PATCH 17/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index ca85890c..e9ed5069 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -68,7 +68,7 @@ def distance_meters_to_degrees(distance_meters, latitude): if latitude == 90: # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') - EARTHS_CIRCUMFERENCE = 40030173.59204114 # 2 * pi * 6371000.0 (Earth's Radius) + EARTHS_CIRCUMFERENCE = 40_030_173.59204114 # 2 * pi * 6,371,000.0 (Earth's average radius in meters) lat_radians = np.radians(latitude) circumference_at_latitude = EARTHS_CIRCUMFERENCE * np.cos(lat_radians) distance_degrees_lon = distance_meters / circumference_at_latitude * 360 From f52304578114fb5b2238a1914bef79b887a65e86 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:09:50 -0500 Subject: [PATCH 18/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index e9ed5069..2caea17e 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -69,9 +69,8 @@ def distance_meters_to_degrees(distance_meters, latitude): # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') EARTHS_CIRCUMFERENCE = 40_030_173.59204114 # 2 * pi * 6,371,000.0 (Earth's average radius in meters) - lat_radians = np.radians(latitude) - circumference_at_latitude = EARTHS_CIRCUMFERENCE * np.cos(lat_radians) - distance_degrees_lon = distance_meters / circumference_at_latitude * 360 + latitude_circumference = EARTHS_CIRCUMFERENCE * np.cos(np.radians(latitude)) + distance_degrees_lon = distance_meters / latitude_circumference * 360 distance_degrees_lat = distance_meters / EARTHS_CIRCUMFERENCE * 360 return (np.round(distance_degrees_lon, 15), np.round(distance_degrees_lat, 15)) From 856d176922f63c56cfb141744d81f1353cd32b44 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:26:12 -0500 Subject: [PATCH 19/31] doc_string refactoring --- src/hyp3_isce2/dem.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 2caea17e..cfcf7ba7 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -57,13 +57,13 @@ def buffer_extent(extent: list, buffer: float) -> list: def distance_meters_to_degrees(distance_meters, latitude): - """Get the arc length in degrees for a give distance in meters along lines of longitude and latitude. + """Convert a distance from meters to degrees in longitude and latitude Args: distance_meters: The desired arc length in meters. - latitude: The desired line of latitude. + latitude: The line of latitude at which the calculation takes place. Returns: - The length in degrees for longitude and the given latitude, respectively. + The length in degrees for longitude and latitude, respectively. """ if latitude == 90: # np.cos won't return exactly 0, so we must manually raise this exception. From f62d5d14d059d28188e4795180c5d9505d19a7ab Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:28:11 -0500 Subject: [PATCH 20/31] Update src/hyp3_isce2/dem.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index cfcf7ba7..ec1666d2 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -60,7 +60,7 @@ def distance_meters_to_degrees(distance_meters, latitude): """Convert a distance from meters to degrees in longitude and latitude Args: - distance_meters: The desired arc length in meters. + distance_meters: Arc length in meters. latitude: The line of latitude at which the calculation takes place. Returns: The length in degrees for longitude and latitude, respectively. From 1b5a2588bbd5ae59c885ef692909e2b5e0024b70 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:35:33 -0500 Subject: [PATCH 21/31] Update tests/test_dem.py Co-authored-by: Jake Herrmann --- tests/test_dem.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index faacbc74..1c93319a 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -83,10 +83,10 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters - degrees_per_meter_latitude = 0.000179864321184 # for 20 meters - assert dem.distance_meters_to_degrees(20, 0) == (0.000179864321184, degrees_per_meter_latitude) - assert dem.distance_meters_to_degrees(20, 45) == (0.000254366562405, degrees_per_meter_latitude) - assert dem.distance_meters_to_degrees(20, 89.9) == (0.103054717208573, degrees_per_meter_latitude) + degrees_per_20_meters_latitude = 0.000179864321184 # for 20 meters + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=0) == (0.000179864321184, degrees_per_20_meters_latitude) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=45) == (0.000254366562405, degrees_per_20_meters_latitude) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, degrees_per_20_meters_latitude) # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): From 66dbef8755d444691127c28e19c17c40af5979c5 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:43:39 -0500 Subject: [PATCH 22/31] Update tests/test_dem.py Co-authored-by: Jake Herrmann --- tests/test_dem.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index 1c93319a..68ebd3bf 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -83,10 +83,9 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): # A degree of latitude always has roughly the same distance in meters - degrees_per_20_meters_latitude = 0.000179864321184 # for 20 meters - assert dem.distance_meters_to_degrees(distance_meters=20, latitude=0) == (0.000179864321184, degrees_per_20_meters_latitude) - assert dem.distance_meters_to_degrees(distance_meters=20, latitude=45) == (0.000254366562405, degrees_per_20_meters_latitude) - assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, degrees_per_20_meters_latitude) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=0) == (0.000179864321184, 0.000179864321184) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=45) == (0.000254366562405, 0.000179864321184) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, 0.000179864321184) # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): From 007397725c740ee9c39b71ed609d667416df7205 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:43:44 -0500 Subject: [PATCH 23/31] Update tests/test_dem.py Co-authored-by: Jake Herrmann --- tests/test_dem.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index 68ebd3bf..fab0d840 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -82,7 +82,6 @@ def test_buffer_extent(): def test_distance_meters_to_degrees(): - # A degree of latitude always has roughly the same distance in meters assert dem.distance_meters_to_degrees(distance_meters=20, latitude=0) == (0.000179864321184, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=45) == (0.000254366562405, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, 0.000179864321184) From 5791ad495c48b25cf034443804a6f44e4eee7f6d Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:48:10 -0500 Subject: [PATCH 24/31] added negative lat test cases --- tests/test_dem.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_dem.py b/tests/test_dem.py index fab0d840..7ffdde35 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -85,7 +85,11 @@ def test_distance_meters_to_degrees(): assert dem.distance_meters_to_degrees(distance_meters=20, latitude=0) == (0.000179864321184, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=45) == (0.000254366562405, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, 0.000179864321184) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=-45) == (0.000254366562405, 0.000179864321184) + assert dem.distance_meters_to_degrees(distance_meters=20, latitude=-89.9) == (0.103054717208573, 0.000179864321184) # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): dem.distance_meters_to_degrees(20, 90) + with raises(ZeroDivisionError): + dem.distance_meters_to_degrees(20, -90) \ No newline at end of file From 92093b14bce64ac65b7087ad7cd50b88dd3fd0e6 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:48:26 -0500 Subject: [PATCH 25/31] raise divbyzero for -90 lat --- src/hyp3_isce2/dem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index ec1666d2..2f61c4df 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -65,7 +65,7 @@ def distance_meters_to_degrees(distance_meters, latitude): Returns: The length in degrees for longitude and latitude, respectively. """ - if latitude == 90: + if np.abs(latitude) == 90: # np.cos won't return exactly 0, so we must manually raise this exception. raise ZeroDivisionError('A Latitude of 90 degrees results in dividing by zero.') EARTHS_CIRCUMFERENCE = 40_030_173.59204114 # 2 * pi * 6,371,000.0 (Earth's average radius in meters) From a263a030ee61fd296a1795e70ba540e5a7d8c680 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:50:16 -0500 Subject: [PATCH 26/31] newline for flake8 --- tests/test_dem.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_dem.py b/tests/test_dem.py index 7ffdde35..319b9950 100644 --- a/tests/test_dem.py +++ b/tests/test_dem.py @@ -87,9 +87,8 @@ def test_distance_meters_to_degrees(): assert dem.distance_meters_to_degrees(distance_meters=20, latitude=89.9) == (0.103054717208573, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=-45) == (0.000254366562405, 0.000179864321184) assert dem.distance_meters_to_degrees(distance_meters=20, latitude=-89.9) == (0.103054717208573, 0.000179864321184) - # The longitudenal distance in degrees will get larger and larger towards 90 degrees, approaching MAX_FLOAT. # This is since cos(90) = 0, leading to a divide by zero issue. with raises(ZeroDivisionError): dem.distance_meters_to_degrees(20, 90) with raises(ZeroDivisionError): - dem.distance_meters_to_degrees(20, -90) \ No newline at end of file + dem.distance_meters_to_degrees(20, -90) From dd6c84a16c76c65a102b6ac47db7c80998d8ed52 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 14:57:51 -0500 Subject: [PATCH 27/31] changed resample to resample_20m --- src/hyp3_isce2/dem.py | 7 ++++--- src/hyp3_isce2/insar_tops_burst.py | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index 2f61c4df..a7daae38 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -80,7 +80,7 @@ def download_dem_for_isce2( dem_name: str = 'glo_30', dem_dir: Path = None, buffer: float = .4, - resample: bool = False + resample_20m: bool = False ) -> Path: """Download the given DEM for the given extent. @@ -90,6 +90,7 @@ def download_dem_for_isce2( dem_dir: The output directory. buffer: The extent buffer in degrees, by default .4, which is about 44 km at the equator (or about 2.5 bursts at the equator). + resample_20m: Whether or not the DEM should be resampled to 20 meters. Returns: The path to the downloaded DEM. """ @@ -98,7 +99,7 @@ def download_dem_for_isce2( extent_buffered = buffer_extent(extent, buffer) - if resample: + if resample_20m: res_degrees = distance_meters_to_degrees(20.0, extent_buffered[1]) dem_array, dem_profile = dem_stitcher.stitch_dem( extent_buffered, @@ -126,7 +127,7 @@ def download_dem_for_isce2( for key in ['blockxsize', 'blockysize', 'compress', 'interleave', 'tiled']: del dem_profile[key] - if resample: + if resample_20m: dem_path = dem_dir / 'full_res_geocode.dem.wgs84' else: dem_path = dem_dir / 'full_res.dem.wgs84' diff --git a/src/hyp3_isce2/insar_tops_burst.py b/src/hyp3_isce2/insar_tops_burst.py index 4fbe25f4..77330305 100644 --- a/src/hyp3_isce2/insar_tops_burst.py +++ b/src/hyp3_isce2/insar_tops_burst.py @@ -84,12 +84,12 @@ def insar_tops_burst( log.info(f'InSAR ROI: {insar_roi}') log.info(f'DEM ROI: {dem_roi}') - dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample=False) + dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=False) download_aux_cal(aux_cal_dir) geocode_dem_path = dem_path if range_looks == 5: - geocode_dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample=True) + geocode_dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=True) download_aux_cal(aux_cal_dir) orbit_dir.mkdir(exist_ok=True, parents=True) From 8e97ad3a14b585443a33e66f4102b09655c28eab Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 15:00:30 -0500 Subject: [PATCH 28/31] Update src/hyp3_isce2/insar_tops_burst.py Co-authored-by: Jake Herrmann --- src/hyp3_isce2/insar_tops_burst.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hyp3_isce2/insar_tops_burst.py b/src/hyp3_isce2/insar_tops_burst.py index 77330305..18517c02 100644 --- a/src/hyp3_isce2/insar_tops_burst.py +++ b/src/hyp3_isce2/insar_tops_burst.py @@ -87,10 +87,11 @@ def insar_tops_burst( dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=False) download_aux_cal(aux_cal_dir) - geocode_dem_path = dem_path if range_looks == 5: geocode_dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=True) download_aux_cal(aux_cal_dir) + else: + geocode_dem_path = dem_path orbit_dir.mkdir(exist_ok=True, parents=True) for granule in (ref_params.granule, sec_params.granule): From 2b0f0acf20f484a13c3600a0a8f80a595464d29a Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 15:02:23 -0500 Subject: [PATCH 29/31] fixed line length --- src/hyp3_isce2/insar_tops_burst.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/hyp3_isce2/insar_tops_burst.py b/src/hyp3_isce2/insar_tops_burst.py index 18517c02..96a02aaa 100644 --- a/src/hyp3_isce2/insar_tops_burst.py +++ b/src/hyp3_isce2/insar_tops_burst.py @@ -84,11 +84,23 @@ def insar_tops_burst( log.info(f'InSAR ROI: {insar_roi}') log.info(f'DEM ROI: {dem_roi}') - dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=False) + dem_path = download_dem_for_isce2( + dem_roi, + dem_name='glo_30', + dem_dir=dem_dir, + buffer=0, + resample_20m=False + ) download_aux_cal(aux_cal_dir) if range_looks == 5: - geocode_dem_path = download_dem_for_isce2(dem_roi, dem_name='glo_30', dem_dir=dem_dir, buffer=0, resample_20m=True) + geocode_dem_path = download_dem_for_isce2( + dem_roi, + dem_name='glo_30', + dem_dir=dem_dir, + buffer=0, + resample_20m=True + ) download_aux_cal(aux_cal_dir) else: geocode_dem_path = dem_path From 4894050d090819b3a748dd22472886e3829787f0 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 15:08:52 -0500 Subject: [PATCH 30/31] refactor --- src/hyp3_isce2/dem.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hyp3_isce2/dem.py b/src/hyp3_isce2/dem.py index a7daae38..fa3f9116 100644 --- a/src/hyp3_isce2/dem.py +++ b/src/hyp3_isce2/dem.py @@ -109,6 +109,7 @@ def download_dem_for_isce2( n_threads_downloading=5, dst_resolution=res_degrees ) + dem_path = dem_dir / 'full_res_geocode.dem.wgs84' else: dem_array, dem_profile = dem_stitcher.stitch_dem( extent_buffered, @@ -117,6 +118,7 @@ def download_dem_for_isce2( dst_area_or_point='Point', n_threads_downloading=5, ) + dem_path = dem_dir / 'full_res.dem.wgs84' dem_array[np.isnan(dem_array)] = 0. @@ -127,10 +129,6 @@ def download_dem_for_isce2( for key in ['blockxsize', 'blockysize', 'compress', 'interleave', 'tiled']: del dem_profile[key] - if resample_20m: - dem_path = dem_dir / 'full_res_geocode.dem.wgs84' - else: - dem_path = dem_dir / 'full_res.dem.wgs84' with rasterio.open(dem_path, 'w', **dem_profile) as ds: ds.write(dem_array, 1) From 444bedb98613f5c6e2880e22d1aa781a4d4b56c6 Mon Sep 17 00:00:00 2001 From: Andrew Player Date: Mon, 7 Aug 2023 15:13:28 -0500 Subject: [PATCH 31/31] removed unnecessary second download of aux files --- src/hyp3_isce2/insar_tops_burst.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hyp3_isce2/insar_tops_burst.py b/src/hyp3_isce2/insar_tops_burst.py index 96a02aaa..5fe392ee 100644 --- a/src/hyp3_isce2/insar_tops_burst.py +++ b/src/hyp3_isce2/insar_tops_burst.py @@ -101,7 +101,6 @@ def insar_tops_burst( buffer=0, resample_20m=True ) - download_aux_cal(aux_cal_dir) else: geocode_dem_path = dem_path