hypergas.angles module
Calculate 2D angles for hyperspectral satellite observations.
- class hypergas.angles.Angle2D(start_time, end_time, lons: ndarray, lats: ndarray, tle1: str, tle2: str)[source]
Bases:
objectCalculate 2D angle fields (SZA, SAA, VZA, VAA, RAA, SGA) for satellite observations.
This class computes solar and viewing geometry angles by: 1. Extracting corner and center points from 2D lon/lat grids 2. Computing angles at these key points 3. Interpolating to create full 2D fields
Initialize Angle2D calculator.
- Parameters:
start_time (datetime) – Acquisition start time
end_time (datetime) – Acquisition end time
lons (numpy.ndarray (nrows, ncols)) – Longitude grid [degrees]
lats (numpy.ndarray (nrows, ncols)) – Latitude grid [degrees]
tle1 (str) – TLE line 1 for satellite orbit
tle2 (str) – TLE line 2 for satellite orbit
- compute_all() Dataset[source]
Compute all six angle fields and return as xarray.Dataset.
- Returns:
ds (xr.Dataset) – Dataset containing all angle fields as DataArrays: - ‘sza’: Solar zenith angle [degrees] - ‘saa’: Solar azimuth angle [degrees] - ‘vza’: Viewing zenith angle [degrees] - ‘vaa’: Viewing azimuth angle [degrees] - ‘raa’: Relative azimuth angle [degrees] - ‘sga’: Sun glint angle [degrees]
Each DataArray has the same dimensions and coordinates as the input lon/lat.
- hypergas.angles.compute_raa(saa: DataArray, vaa: DataArray) DataArray[source]
Compute relative azimuth angle (RAA).
RAA is the absolute difference between solar and viewing azimuth, constrained to [0, 180] degrees.
- Parameters:
saa (xr.DataArray (nrows, ncols)) – Solar azimuth angle [degrees]
vaa (xr.DataArray (nrows, ncols)) – Viewing azimuth angle [degrees]
- Returns:
raa (xr.DataArray (nrows, ncols)) – Relative azimuth angle [degrees]
- hypergas.angles.compute_sga(sza: DataArray, saa: DataArray, vza: DataArray, vaa: DataArray) DataArray[source]
Compute sun glint angle (SGA).
SGA is the angle between the sun’s reflection vector and the viewing direction, relevant for water surface reflectance.
- Parameters:
sza (xr.DataArray (nrows, ncols)) – Solar zenith angle [degrees]
saa (xr.DataArray (nrows, ncols)) – Solar azimuth angle [degrees]
vza (xr.DataArray (nrows, ncols)) – Viewing zenith angle [degrees]
vaa (xr.DataArray (nrows, ncols)) – Viewing azimuth angle [degrees]
- Returns:
sga (xr.DataArray (nrows, ncols)) – Sun glint angle [degrees]
- hypergas.angles.create_angle_dataarray(data: ndarray, name: str) DataArray[source]
Create an xarray.DataArray with proper dimensions and coordinates.
- Parameters:
data (np.ndarray) – 2D angle data
name (str) – Variable name (e.g., ‘sza’, ‘saa’, ‘vza’, ‘vaa’, ‘raa’, ‘sga’)
- Returns:
da (xr.DataArray) – DataArray with dimensions and CF-compliant attributes