diff --git a/mvcm/preprocess_thresholds.py b/mvcm/preprocess_thresholds.py index 56d12a16a0925cf17fd1f3813f7f5556d7617b46..fc2116453fb15ed5bc856852d0e0f40c6f1f1064 100644 --- a/mvcm/preprocess_thresholds.py +++ b/mvcm/preprocess_thresholds.py @@ -2,7 +2,7 @@ import numpy as np import xarray as xr import ancillary_data as anc -import utils +import mvcm.utils as utils from numpy.lib.stride_tricks import sliding_window_view from typing import Dict diff --git a/mvcm/read_data.py b/mvcm/read_data.py index 4e9523113609603f924480301ad4e812bde3aa70..746720a3d7377c5037a716b6c9743741bc3d5e1f 100644 --- a/mvcm/read_data.py +++ b/mvcm/read_data.py @@ -15,7 +15,8 @@ _RTD = 180./np.pi _bad_data = -999.0 _datapath = '/ships19/hercules/pveglio/mvcm_test_data' -logging.basicConfig(level=logging.INFO, format='%(name)s - %(levelname)s - %(message)s') +logger = logging.getLogger('__name__') +# logging.basicConfig(level=logging.INFO, format='%(name)s - %(levelname)s - %(message)s') # logging.basicConfig(level=logging.INFO, filename='logfile.log', 'filemode='w', # format='%(name)s %(levelname)s %(message)s') @@ -93,7 +94,7 @@ class ReadData(CollectInputs): sensor: str = field(validator=[validators.instance_of(str), validators.in_(['viirs'])]) - logging.debug('Instance of ReadData created') + logger.debug('Instance of ReadData created') def read_viirs_geo(self) -> xr.Dataset: """Read VIIRS geolocation data and generate additional angles @@ -108,7 +109,7 @@ class ReadData(CollectInputs): geo_data xarray.Dataset dataset containing all geolocation data """ - logging.debug(f'Reading {self.file_name_geo}') + logger.debug(f'Reading {self.file_name_geo}') geo_data = xr.open_dataset(self.file_name_geo, group='geolocation_data') relazi = self.relative_azimuth_angle(geo_data.sensor_azimuth.values, geo_data.solar_azimuth.values) @@ -120,7 +121,7 @@ class ReadData(CollectInputs): geo_data['sunglint_angle'] = (self.dims, sunglint) geo_data['scattering_angle'] = (self.dims, scatt_angle) - logging.debug('Geolocation file read correctly') + logger.debug('Geolocation file read correctly') return geo_data @@ -135,7 +136,7 @@ class ReadData(CollectInputs): solar_zenith: np.ndarray solar zenith angle derived from the geolocation file """ - logging.debug(f'Reading {self.file_name_l1b}') + logger.debug(f'Reading {self.file_name_l1b}') l1b_data = xr.open_dataset(self.file_name_l1b, group='observation_data', decode_cf=False) rad_data = xr.Dataset() @@ -154,7 +155,7 @@ class ReadData(CollectInputs): else: pass - logging.debug('L1b file read correctly') + logger.debug('L1b file read correctly') return rad_data @@ -227,7 +228,7 @@ class ReadData(CollectInputs): viirs.update(geo_data) viirs = viirs.set_coords(['latitude', 'longitude']) - logging.debug('Viirs preprocessing completed successfully.') + logger.debug('Viirs preprocessing completed successfully.') return viirs def relative_azimuth_angle(self, @@ -248,7 +249,7 @@ class ReadData(CollectInputs): """ rel_azimuth = np.abs(180. - np.abs(sensor_azimuth - solar_azimuth)) - logging.debug('Relative azimuth calculated successfully.') + logger.debug('Relative azimuth calculated successfully.') return rel_azimuth @@ -276,7 +277,7 @@ class ReadData(CollectInputs): cossna[cossna > 1] = 1 sunglint_angle = np.arccos(cossna) * _RTD - logging.debug('Sunglint generated') + logger.debug('Sunglint generated') return sunglint_angle @@ -305,7 +306,7 @@ class ReadData(CollectInputs): scatt_angle = np.arccos(cos_scatt_angle) * _RTD - logging.debug('Scattering angle calculated successfully') + logger.debug('Scattering angle calculated successfully') return scatt_angle @@ -348,11 +349,11 @@ class ReadAncillary(CollectInputs): array containing the Reynolds SST interpolated at the sensor's resolution """ if not os.path.isfile(os.path.join(self.ancillary_dir, self.sst_file)): - logging.error('SST file not found') + logger.error('SST file not found') sst = np.empty(self.out_shape, dtype=np.float32).ravel() sst = anc.py_get_Reynolds_SST(self.latitude.ravel(), self.longitude.ravel(), self.resolution, self.ancillary_dir, self.sst_file, sst) - logging.debug('SST file read successfully') + logger.debug('SST file read successfully') return sst.reshape(self.out_shape) def get_ndvi(self) -> npt.NDArray[float]: @@ -367,11 +368,11 @@ class ReadAncillary(CollectInputs): NDVI interpolated at the sensor's resolution """ if not os.path.isfile(os.path.join(self.ancillary_dir, self.ndvi_file)): - logging.error('NDVI file not found') + logger.error('NDVI file not found') ndvi = np.empty(self.out_shape, dtype=np.float32).ravel() ndvi = anc.py_get_NDVI_background(self.latitude.ravel(), self.longitude.ravel(), self.resolution, self.ancillary_dir, self.ndvi_file, ndvi) - logging.debug('NDVI file read successfully') + logger.debug('NDVI file read successfully') return ndvi.reshape(self.out_shape) def get_eco(self) -> npt.NDArray[float]: @@ -388,7 +389,7 @@ class ReadAncillary(CollectInputs): eco = np.empty(self.out_shape, dtype=np.ubyte).ravel() eco = anc.py_get_Olson_eco(self.latitude.ravel(), self.longitude.ravel(), self.resolution, self.ancillary_dir, eco) - logging.debug('Olson ecosystem file read successfully') + logger.debug('Olson ecosystem file read successfully') return eco.reshape(self.out_shape) def get_geos(self) -> Dict: @@ -403,15 +404,15 @@ class ReadAncillary(CollectInputs): dictionary containing all quantities required by MVCM (see geos_variables here below) """ if not os.path.isfile(os.path.join(self.ancillary_dir, self.geos_file_1)): - logging.error('GEOS-5 file 1 not found') + logger.error('GEOS-5 file 1 not found') if not os.path.isfile(os.path.join(self.ancillary_dir, self.geos_file_2)): - logging.error('GEOS-5 file 2 not found') + logger.error('GEOS-5 file 2 not found') if not os.path.isfile(os.path.join(self.ancillary_dir, self.geos_land)): - logging.error('GEOS-5 land file not found') + logger.error('GEOS-5 land file not found') if not os.path.isfile(os.path.join(self.ancillary_dir, self.geos_ocean)): - logging.error('GEOS-5 ocean file not found') + logger.error('GEOS-5 ocean file not found') if not os.path.isfile(os.path.join(self.ancillary_dir, self.geos_constants)): - logging.error('GEOS-5 constants file not found') + logger.error('GEOS-5 constants file not found') geos_variables = ['tpw', 'snow_fraction', 'ice_fraction', 'ocean_fraction', 'land_ice_fraction', 'surface_temperature'] @@ -425,7 +426,7 @@ class ReadAncillary(CollectInputs): for var in list(geos_variables): geos_data[var] = geos_data[var].reshape(self.out_shape) - logging.debug('GEOS data read successfully') + logger.debug('GEOS data read successfully') return geos_data def pack_data(self) -> xr.Dataset: diff --git a/mvcm/scene.py b/mvcm/scene.py index 5e03b4308809142aee063c72b00622ae3bd775ae..c2015dbec2086615e98897e4e7d6c3f7dc3cf931 100644 --- a/mvcm/scene.py +++ b/mvcm/scene.py @@ -6,7 +6,7 @@ except ImportError: # from glob import glob -import read_data as rd +import mvcm.read_data as rd import ancillary_data as anc # lsf: land sea flag