mirror of https://gitlab.com/pamhyr/pamhyr2
more hydraulic values in raw results
parent
c33913bd58
commit
52c311887a
|
|
@ -402,12 +402,12 @@ class ProfileXYZ(Profile, SQLSubModel):
|
|||
return abs(rg.dist(rd))
|
||||
|
||||
def wet_perimeter(self, z):
|
||||
poly = self.wet_polygon(z)
|
||||
line = self.wet_line(z)
|
||||
|
||||
if poly is None:
|
||||
if line is None:
|
||||
return 0
|
||||
|
||||
return poly.length
|
||||
return line.length
|
||||
|
||||
def wet_area(self, z):
|
||||
poly = self.wet_polygon(z)
|
||||
|
|
@ -417,6 +417,26 @@ class ProfileXYZ(Profile, SQLSubModel):
|
|||
|
||||
return poly.area
|
||||
|
||||
def wet_radius(self, z):
|
||||
p = self.wet_perimeter(z)
|
||||
a = self.wet_area(z)
|
||||
|
||||
if p == 0:
|
||||
return 0
|
||||
|
||||
return a/p
|
||||
|
||||
def wet_line(self, z):
|
||||
points = self.wet_points(z)
|
||||
if len(points) < 3:
|
||||
return None
|
||||
|
||||
z = map(lambda p: p.z, points)
|
||||
station = self._get_station(points)
|
||||
|
||||
line = geometry.LineString(list(zip(station, z)))
|
||||
return line
|
||||
|
||||
def wet_polygon(self, z):
|
||||
points = self.wet_points(z)
|
||||
if len(points) < 3:
|
||||
|
|
|
|||
|
|
@ -86,12 +86,39 @@ class TableModel(PamhyrTableModel):
|
|||
elif self._headers[column] == "discharge":
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "speed":
|
||||
elif self._headers[column] == "velocity":
|
||||
q = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
|
||||
v = self._lst[row].geometry.speed(q, z)
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "width":
|
||||
pt_left, pt_right = self._lst[row].get_ts_key(
|
||||
self._timestamp,
|
||||
"water_limits"
|
||||
)
|
||||
v = pt_left.dist_2d(pt_right)
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "depth":
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
z_min = self._lst[row].geometry.z_min()
|
||||
v = z - z_min
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "wet_area":
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
v = self._lst[row].geometry.wet_area(z)
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "wet_perimeter":
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
v = self._lst[row].geometry.wet_perimeter(z)
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "hydraulic_radius":
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
v = self._lst[row].geometry.wet_radius(z)
|
||||
return f"{v:.4f}"
|
||||
else:
|
||||
v = 0.0
|
||||
return f"{v:.4f}"
|
||||
|
||||
return QVariant()
|
||||
|
||||
|
|
|
|||
|
|
@ -57,5 +57,10 @@ class ResultsTranslate(MainTranslate):
|
|||
"name": _translate("Results", "Profile"),
|
||||
"water_elevation": self._dict["unit_water_elevation"],
|
||||
"discharge": self._dict["unit_discharge"],
|
||||
"speed": self._dict["unit_speed"],
|
||||
"velocity": self._dict["unit_speed"],
|
||||
"width": self._dict["unit_width"],
|
||||
"depth": self._dict["unit_height"],
|
||||
"wet_area": self._dict["unit_wet_area"],
|
||||
"wet_perimeter": self._dict["unit_wet_perimeter"],
|
||||
"hydraulic_radius": self._dict["unit_hydraulic_radius"],
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ class UnitTranslate(CommonWordTranslate):
|
|||
self._dict["unit_water_elevation"] = _translate(
|
||||
"Unit", "Water elevation (m)"
|
||||
)
|
||||
self._dict["unit_speed"] = _translate("Unit", "Speed (m/s)")
|
||||
self._dict["unit_speed"] = _translate("Unit", "Velocity (m/s)")
|
||||
self._dict["unit_discharge"] = _translate("Unit", "Discharge (m³/s)")
|
||||
self._dict["unit_area"] = _translate("Unit", "Area (hectare)")
|
||||
|
||||
|
|
@ -71,6 +71,14 @@ class UnitTranslate(CommonWordTranslate):
|
|||
self._dict["unit_date_s"] = _translate("Unit", "Date (sec)")
|
||||
self._dict["unit_date_iso"] = _translate("Unit", "Date (ISO format)")
|
||||
|
||||
self._dict["unit_wet_area"] = _translate("Unit", "Wet Area (m²)")
|
||||
self._dict["unit_wet_perimeter"] = _translate(
|
||||
"Unit", "Wet Perimeter (m)"
|
||||
)
|
||||
self._dict["unit_hydraulic_radius"] = _translate(
|
||||
"Unit", "Hydraulic Radius (m)"
|
||||
)
|
||||
|
||||
|
||||
class MainTranslate(UnitTranslate):
|
||||
def __init__(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue