From 89888a6b958eac8cff7367cdf1205662fd7b7b02 Mon Sep 17 00:00:00 2001 From: Carissa Maurer Date: Thu, 3 Oct 2024 12:56:02 -0500 Subject: [PATCH] Fixed circular importing between llreader and utilFncs --- tools/RAiDER/llreader.py | 9 ++++++--- tools/RAiDER/utilFcns.py | 12 ++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/RAiDER/llreader.py b/tools/RAiDER/llreader.py index bd6220dc..3eba1dac 100644 --- a/tools/RAiDER/llreader.py +++ b/tools/RAiDER/llreader.py @@ -1,3 +1,4 @@ +# noqa: D100 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Author: Jeremy Maurer, Raymond Hogenson & David Bekaert @@ -23,7 +24,6 @@ from RAiDER.logger import logger from RAiDER.types import BB, RIO -from RAiDER.utilFcns import rio_open, rio_stats class AOI: @@ -265,6 +265,7 @@ def __init__(self, lat_file, lon_file=None, hgt_file=None, dem_file=None, conven def readLL(self) -> tuple[np.ndarray, Optional[np.ndarray]]: # allow for 2-band lat/lon raster + from RAiDER.utilFcns import rio_open lats, _ = rio_open(Path(self._latfile)) if self._lonfile is None: @@ -275,6 +276,7 @@ def readLL(self) -> tuple[np.ndarray, Optional[np.ndarray]]: def readZ(self) -> np.ndarray: """Read the heights from the raster file, or download a DEM if not present.""" + from RAiDER.utilFcns import rio_open if self._hgtfile is not None and os.path.exists(self._hgtfile): logger.info('Using existing heights at: %s', self._hgtfile) hgts, _ = rio_open(self._hgtfile) @@ -320,7 +322,7 @@ class GeocodedFile(AOI): def __init__(self, path: Path, is_dem=False, cube_spacing_in_m: Optional[float]=None) -> None: super().__init__(cube_spacing_in_m) - from RAiDER.utilFcns import rio_extents, rio_profile + from RAiDER.utilFcns import rio_extents, rio_profile, rio_stats self._filename = path self.p = rio_profile(path) @@ -361,6 +363,7 @@ class Geocube(AOI): """Pull lat/lon/height from a georeferenced data cube.""" def __init__(self, path_cube, cube_spacing_in_m: Optional[float]=None) -> None: + from RAiDER.utilFcns import rio_stats super().__init__(cube_spacing_in_m) self.path = path_cube self._type = 'Geocube' @@ -392,7 +395,7 @@ def bounds_from_latlon_rasters(lat_filestr: str, lon_filestr: str) -> tuple[BB.S Parse lat/lon/height inputs and return the appropriate outputs. """ - from RAiDER.utilFcns import get_file_and_band + from RAiDER.utilFcns import get_file_and_band, rio_stats latinfo = get_file_and_band(lat_filestr) loninfo = get_file_and_band(lon_filestr) diff --git a/tools/RAiDER/utilFcns.py b/tools/RAiDER/utilFcns.py index 3b27fbf4..97de7c6a 100644 --- a/tools/RAiDER/utilFcns.py +++ b/tools/RAiDER/utilFcns.py @@ -4,7 +4,7 @@ import pathlib import re from pathlib import Path -from typing import Any, Optional, Tuple, Union, List +from typing import Any, List, Optional, Tuple, Union import numpy as np import rasterio @@ -16,14 +16,22 @@ import RAiDER from RAiDER.constants import ( R_EARTH_MAX_WGS84 as Rmax, +) +from RAiDER.constants import ( R_EARTH_MIN_WGS84 as Rmin, +) +from RAiDER.constants import ( _THRESHOLD_SECONDS, +) +from RAiDER.constants import ( _g0 as g0, +) +from RAiDER.constants import ( _g1 as G1, ) +from RAiDER.llreader import AOI from RAiDER.logger import logger from RAiDER.types import BB, RIO, CRSLike -from llreader import AOI # Optional imports