Source code for coloc_sat.hy2_meta

from .tools import open_nc, correct_dataset
import os
import numpy as np


def extract_wind_speed(smos_dataset):
    return smos_dataset.where((np.isfinite(smos_dataset.wind_dir)), drop=True)


[docs]class GetHy2Meta: def __init__(self, product_path, product_generation=False): self.product_path = product_path self.product_name = os.path.basename(self.product_path) self.product_generation = product_generation self._time_name = 'time' self._longitude_name = 'lon' self._latitude_name = 'lat' self._dataset = open_nc(product_path).load() self.dataset = correct_dataset(self.dataset, self.longitude_name) @property def start_date(self): """ Start acquisition time Returns ------- numpy.datetime64 Start time """ return min(np.unique(self.dataset[self.time_name])) @property def stop_date(self): """ Stop acquisition time Returns ------- numpy.datetime64 Stop time """ return max(np.unique(self.dataset[self.time_name])) @property def longitude_name(self): """ Get the name of the longitude variable in the dataset Returns ------- str longitude name """ return self._longitude_name @property def latitude_name(self): """ Get the name of the latitude variable in the dataset Returns ------- str latitude name """ return self._latitude_name @property def time_name(self): """ Get the name of the time variable in the dataset Returns ------- str time name """ return self._time_name @property def mission_name(self): """ Get the mission name (ex : RADARSAT-2, RCM, SENTINEL-1, SMOS, SMAP,...) Returns ------- str Mission name """ return 'HY2' @property def acquisition_type(self): """ Gives the acquisition type (swath, truncated_swath,daily_regular_grid, model_regular_grid) Returns ------- str acquisition type """ return 'swath' @property def dataset(self): """ Getter for the acquisition dataset Returns ------- xarray.Dataset Acquisition dataset """ return self._dataset @dataset.setter def dataset(self, value): """ Setter of attribute `self.dataset` Parameters ---------- value: xarray.Dataset new Dataset """ self._dataset = value @property def orbit_segment_name(self): """ Gives the name of the variable for orbit segmentation in dataset (Ascending / Descending). If value is None, so the orbit hasn't orbited segmentation Returns ------- str | None Orbit segmentation variable name in the dataset. None if there isn't one. """ return None @property def has_orbited_segmentation(self): """ True if there is orbit segmentation in the dataset Returns ------- bool Presence or not of an orbit segmentation """ if self.orbit_segment_name is not None: return True else: return False @property def mission_name(self): """ Name of the mission (or model) Returns ------- str Mission name (ex: SMOS, S1, RS2, RCM, SMAP, HY2, ERA5) """ return "HY2" @longitude_name.setter def longitude_name(self, value): self._longitude_name = value @latitude_name.setter def latitude_name(self, value): self._latitude_name = value