Skip to content
Merged
2 changes: 2 additions & 0 deletions hera/simulations/LSM/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ def run(self,topography=None, stations=None,canopy=None,params=dict(),deposition
finalxarray = xarray.concat(L, dim="datetime")
new_coords = dict(x=finalxarray.x - xshift, y=finalxarray.y - yshift)
finalxarray = finalxarray.assign_coords(coords=new_coords)
finalxarray = finalxarray.transpose("datetime", "x","y","z")
finalxarray.to_netcdf(os.path.join(netcdf_output, "data%s.nc" % i))
L = []
i += 1
Expand All @@ -302,6 +303,7 @@ def run(self,topography=None, stations=None,canopy=None,params=dict(),deposition

new_coords = dict(x=finalxarray.x-xshift,y=finalxarray.y-yshift)
finalxarray= finalxarray.assign_coords(coords=new_coords)
finalxarray = finalxarray.transpose("datetime", "x", "y", "z")

logger.info(f"saved xarray in {netcdf_output}")
if not self.forceKeep:
Expand Down
13 changes: 10 additions & 3 deletions hera/simulations/gaussian/Meteorology.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,13 @@ def getWindVelocity(self, height):
return self.u_refHeight * (height / refHeight) ** self.wind_p


def getWindVelocity_hotSpot(self, height):
facfor_dict = dict(A=0.07, B=0.07, C=0.1, D=0.15, E=0.35, F=0.55)
u_H = self.u10*(height/(10*ureg.m))**facfor_dict[self.stability] # The value 10*m in the denominator is the reference height for u10.
# u_H_float = round(u_H.m_as(ureg.m/ureg.s), 2)
# ret = u_H_float*ureg.m/ureg.s
return u_H

class StandardMeteorolgyConstant_log(StandardMeteorolgyConstant_powerLaw):

def getWindVelocity(self, height):
Expand Down Expand Up @@ -333,7 +340,7 @@ def __init__(self):
log=StandardMeteorolgyConstant_log,
uniformWind=StandardMeteorolgyConstant_uniformWind)

def getMeteorologyFromU10(self, u10, inversion, verticalProfileType="log", temperature=20*ureg.degC, stability="D", z0=0.1*ureg.m, ustar=0.3*ureg.m/ureg.s, skinSurfaceTemperature=35*ureg.degC):
def getMeteorologyFromU10(self, u10, inversion, verticalProfileType="log", temperature=ureg.Quantity(20, ureg.degC), stability="D", z0=0.1*ureg.m, ustar=0.3*ureg.m/ureg.s, skinSurfaceTemperature=ureg.Quantity(35, ureg.degC)):
"""
Creating a meteorology object.

Expand All @@ -348,8 +355,8 @@ def getMeteorologyFromU10(self, u10, inversion, verticalProfileType="log", tempe
return self.meteorology[verticalProfileType](u10=u10, inversion=inversion, temperature=temperature, stability=stability,
z0=z0, ustar=ustar, skinSurfaceTemperature=skinSurfaceTemperature)

def getMeteorologyFromURefHeight(self, u, inversion, refHeight, verticalProfileType="log", temperature=20*ureg.degC, stability="D",
z0=0.1*ureg.m, ustar=0.3*ureg.m/ureg.s, skinSurfaceTemperature=35*ureg.degC):
def getMeteorologyFromURefHeight(self, u, inversion, refHeight, verticalProfileType="log", temperature=ureg.Quantity(20, ureg.degC), stability="D",
z0=0.1*ureg.m, ustar=0.3*ureg.m/ureg.s, skinSurfaceTemperature=ureg.Quantity(35, ureg.degC)):
"""
Creating a meteorology object.

Expand Down
Loading
Loading