Skip to content
Snippets Groups Projects
Commit d713e704 authored by Felix Kleinert's avatar Felix Kleinert
Browse files

get windsector names from winddir

parent 4efbe26e
No related branches found
No related tags found
1 merge request!259Draft: Resolve "WRF-Datahandler should inherit from SingleStationDatahandler"
...@@ -4,6 +4,7 @@ __date__ = '2021-02-16' ...@@ -4,6 +4,7 @@ __date__ = '2021-02-16'
import dask.array as da import dask.array as da
import numpy as np import numpy as np
import pandas as pd
import xarray as xr import xarray as xr
from mlair.helpers.helpers import convert2xrda from mlair.helpers.helpers import convert2xrda
...@@ -156,6 +157,16 @@ class WindSector: ...@@ -156,6 +157,16 @@ class WindSector:
self.edges_per_sector = edges_per_sector self.edges_per_sector = edges_per_sector
self.wind_sectore_edges = wind_sector_edges self.wind_sectore_edges = wind_sector_edges
def wind_sector_edges_data(self, return_as="xr"):
data = pd.DataFrame.from_dict(self.wind_sectore_edges, orient="index",
columns=["left_edge", "right_edge"])
if return_as == "pd":
return data
elif return_as == "xr":
return data.to_xarray()
else:
raise ValueError(f"`return_as' must be 'pd' or 'xr'. But is {return_as}")
@staticmethod @staticmethod
def _is_value_in_sector(value, left_edge, right_edge) -> bool: def _is_value_in_sector(value, left_edge, right_edge) -> bool:
...@@ -173,6 +184,13 @@ class WindSector: ...@@ -173,6 +184,13 @@ class WindSector:
left_edge, right_edge = self.wind_sectore_edges[sector] left_edge, right_edge = self.wind_sectore_edges[sector]
return self._is_value_in_sector(value, left_edge, right_edge) return self._is_value_in_sector(value, left_edge, right_edge)
def get_sect_of_value(self, value):
sec_collector = xr.ones_like(value)
for sect in self.wind_sectore_edges.keys():
sec_collector = xr.where(self.is_in_sector(sect, value), sect, sec_collector)
return sec_collector
class VectorRotate: class VectorRotate:
RAD_PER_DEG = np.pi / 180. RAD_PER_DEG = np.pi / 180.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment