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))
|
return abs(rg.dist(rd))
|
||||||
|
|
||||||
def wet_perimeter(self, z):
|
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 0
|
||||||
|
|
||||||
return poly.length
|
return line.length
|
||||||
|
|
||||||
def wet_area(self, z):
|
def wet_area(self, z):
|
||||||
poly = self.wet_polygon(z)
|
poly = self.wet_polygon(z)
|
||||||
|
|
@ -417,6 +417,26 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
|
|
||||||
return poly.area
|
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):
|
def wet_polygon(self, z):
|
||||||
points = self.wet_points(z)
|
points = self.wet_points(z)
|
||||||
if len(points) < 3:
|
if len(points) < 3:
|
||||||
|
|
|
||||||
|
|
@ -86,12 +86,39 @@ class TableModel(PamhyrTableModel):
|
||||||
elif self._headers[column] == "discharge":
|
elif self._headers[column] == "discharge":
|
||||||
v = self._lst[row].get_ts_key(self._timestamp, "Q")
|
v = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||||
return f"{v:.4f}"
|
return f"{v:.4f}"
|
||||||
elif self._headers[column] == "speed":
|
elif self._headers[column] == "velocity":
|
||||||
q = self._lst[row].get_ts_key(self._timestamp, "Q")
|
q = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||||
|
|
||||||
v = self._lst[row].geometry.speed(q, z)
|
v = self._lst[row].geometry.speed(q, z)
|
||||||
return f"{v:.4f}"
|
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()
|
return QVariant()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,5 +57,10 @@ class ResultsTranslate(MainTranslate):
|
||||||
"name": _translate("Results", "Profile"),
|
"name": _translate("Results", "Profile"),
|
||||||
"water_elevation": self._dict["unit_water_elevation"],
|
"water_elevation": self._dict["unit_water_elevation"],
|
||||||
"discharge": self._dict["unit_discharge"],
|
"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(
|
self._dict["unit_water_elevation"] = _translate(
|
||||||
"Unit", "Water elevation (m)"
|
"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_discharge"] = _translate("Unit", "Discharge (m³/s)")
|
||||||
self._dict["unit_area"] = _translate("Unit", "Area (hectare)")
|
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_s"] = _translate("Unit", "Date (sec)")
|
||||||
self._dict["unit_date_iso"] = _translate("Unit", "Date (ISO format)")
|
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):
|
class MainTranslate(UnitTranslate):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue