mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Translate: Rename KP to RK (River Kilometric).
This commit is contained in:
1 parent
b83494888b
commit
46dc527222
66 files changed
+668
-614
No files matched your search
@@ -31,7 +31,7 @@ class Profile(object):
|
||||
_id_cnt = 0
|
||||
|
||||
def __init__(self, id: int = -1, num: int = 0,
|
||||
kp: float = 0.0, name: str = "",
|
||||
rk: float = 0.0, name: str = "",
|
||||
code1: int = 0, code2: int = 0,
|
||||
_type: str = "", reach=None,
|
||||
status=None):
|
||||
@@ -49,7 +49,7 @@ class Profile(object):
|
||||
self._num = int(num)
|
||||
self._code1 = int(code1)
|
||||
self._code2 = int(code2)
|
||||
self._kp = float(kp)
|
||||
self._rk = float(rk)
|
||||
self._name = str(name)
|
||||
self._reach = reach
|
||||
self._sl = None
|
||||
@@ -136,16 +136,16 @@ class Profile(object):
|
||||
return len(self.points)
|
||||
|
||||
@property
|
||||
def kp(self):
|
||||
def rk(self):
|
||||
"""
|
||||
Returns:
|
||||
Kilometer point.
|
||||
"""
|
||||
return self._kp
|
||||
return self._rk
|
||||
|
||||
@kp.setter
|
||||
def kp(self, value: float):
|
||||
self._kp = float(value)
|
||||
@rk.setter
|
||||
def rk(self, value: float):
|
||||
self._rk = float(value)
|
||||
self._status.modified()
|
||||
|
||||
@property
|
||||
|
||||
@@ -41,7 +41,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
def __init__(self,
|
||||
id: int = -1,
|
||||
name: str = "",
|
||||
kp: float = 0.,
|
||||
rk: float = 0.,
|
||||
reach=None,
|
||||
num=0,
|
||||
nb_point: int = 0,
|
||||
@@ -53,7 +53,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
num: The number of this profile
|
||||
code1: The interpolation code 1
|
||||
code2: The interpolation code 2
|
||||
kp: Kilometer point
|
||||
rk: Kilometer point
|
||||
name: The name of profile
|
||||
|
||||
Returns:
|
||||
@@ -63,7 +63,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
id=id,
|
||||
num=num,
|
||||
name=name,
|
||||
kp=kp,
|
||||
rk=rk,
|
||||
code1=code1, code2=code2,
|
||||
_type="XYZ",
|
||||
reach=reach,
|
||||
@@ -78,7 +78,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
ind INTEGER NOT NULL,
|
||||
name TEXT,
|
||||
reach INTEGER NOT NULL,
|
||||
kp REAL NOT NULL,
|
||||
rk REAL NOT NULL,
|
||||
num INTEGER NOT NULL,
|
||||
code1 INTEGER NOT NULL,
|
||||
code2 INTEGER NOT NULL,
|
||||
@@ -94,7 +94,8 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
def _db_update(cls, execute, version):
|
||||
major, minor, release = version.strip().split(".")
|
||||
if major == minor == "0":
|
||||
if int(release) < 2:
|
||||
rl = int(release)
|
||||
if rl < 2:
|
||||
execute(
|
||||
"""
|
||||
ALTER TABLE geometry_profileXYZ
|
||||
@@ -103,6 +104,14 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
"""
|
||||
)
|
||||
|
||||
if rl < 11:
|
||||
execute(
|
||||
"""
|
||||
ALTER TABLE geometry_profileXYZ
|
||||
RENAME COLUMN kp TO rk
|
||||
"""
|
||||
)
|
||||
|
||||
return cls._update_submodel(execute, version)
|
||||
|
||||
@classmethod
|
||||
@@ -112,7 +121,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
reach = data["reach"]
|
||||
|
||||
table = execute(
|
||||
"SELECT id, ind, name, kp, num, code1, code2, sl " +
|
||||
"SELECT id, ind, name, rk, num, code1, code2, sl " +
|
||||
"FROM geometry_profileXYZ " +
|
||||
f"WHERE reach = {reach.id}"
|
||||
)
|
||||
@@ -121,7 +130,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
id = row[0]
|
||||
ind = row[1]
|
||||
name = row[2]
|
||||
kp = row[3]
|
||||
rk = row[3]
|
||||
num = row[5]
|
||||
code1 = row[5]
|
||||
code2 = row[6]
|
||||
@@ -129,7 +138,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
|
||||
new = cls(
|
||||
id=id, num=num,
|
||||
name=name, kp=kp,
|
||||
name=name, rk=rk,
|
||||
code1=code1, code2=code2,
|
||||
reach=reach,
|
||||
status=status
|
||||
@@ -159,10 +168,10 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
sql = (
|
||||
"INSERT OR REPLACE INTO " +
|
||||
"geometry_profileXYZ(id, ind, name, reach, " +
|
||||
"kp, num, code1, code2, sl) " +
|
||||
"rk, num, code1, code2, sl) " +
|
||||
"VALUES (" +
|
||||
f"{self.id}, {ind}, '{self._db_format(self._name)}', " +
|
||||
f"{self.reach.id}, {self.kp}, {self.num}, " +
|
||||
f"{self.reach.id}, {self.rk}, {self.num}, " +
|
||||
f"{self.code1}, {self.code1}, {sl}" +
|
||||
")"
|
||||
)
|
||||
@@ -187,19 +196,19 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
try:
|
||||
if len(header) == 0:
|
||||
name = data[0]
|
||||
kp = data[1]
|
||||
rk = data[1]
|
||||
reach = data[2]
|
||||
status = data[3]
|
||||
|
||||
profile = cls(
|
||||
id=-1,
|
||||
name=name,
|
||||
kp=kp,
|
||||
rk=rk,
|
||||
reach=reach,
|
||||
status=status
|
||||
)
|
||||
else:
|
||||
valid_header = {'name', 'reach', 'kp', 'status'}
|
||||
valid_header = {'name', 'reach', 'rk', 'status'}
|
||||
d = {}
|
||||
for i, v in enumerate(data):
|
||||
h = header[i].strip().lower().split(' ')[0]
|
||||
@@ -323,7 +332,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||
logger.debug(f"{e}")
|
||||
raise IndexError(
|
||||
f"Invalid point name: {name} " +
|
||||
f"for profile ({self.id}) kp = {self.kp}"
|
||||
f"for profile ({self.id}) rk = {self.rk}"
|
||||
)
|
||||
|
||||
def has_standard_named_points(self):
|
||||
|
||||
+46
-46
@@ -141,10 +141,10 @@ class Reach(SQLSubModel):
|
||||
def profiles(self, profiles):
|
||||
self._profiles = profiles
|
||||
|
||||
def get_profiles_from_kp(self, kp):
|
||||
def get_profiles_from_rk(self, rk):
|
||||
return list(
|
||||
filter(
|
||||
lambda p: p.kp == kp, self.profiles
|
||||
lambda p: p.rk == rk, self.profiles
|
||||
)
|
||||
)
|
||||
|
||||
@@ -335,18 +335,18 @@ class Reach(SQLSubModel):
|
||||
)
|
||||
)
|
||||
|
||||
def get_kp(self):
|
||||
"""List of profiles kp
|
||||
def get_rk(self):
|
||||
"""List of profiles rk
|
||||
|
||||
Returns:
|
||||
List of profiles kp
|
||||
List of profiles rk
|
||||
"""
|
||||
return [profile.kp for profile in self.profiles]
|
||||
return [profile.rk for profile in self.profiles]
|
||||
|
||||
def get_kp_complete_profiles(self):
|
||||
def get_rk_complete_profiles(self):
|
||||
return list(
|
||||
map(
|
||||
lambda profile: profile.kp,
|
||||
lambda profile: profile.rk,
|
||||
filter(
|
||||
lambda profile: len(profile) > 0,
|
||||
self.profiles
|
||||
@@ -354,41 +354,41 @@ class Reach(SQLSubModel):
|
||||
)
|
||||
)
|
||||
|
||||
def get_kp_min(self):
|
||||
if len(self.get_kp()) > 0:
|
||||
return min(self.get_kp())
|
||||
def get_rk_min(self):
|
||||
if len(self.get_rk()) > 0:
|
||||
return min(self.get_rk())
|
||||
else:
|
||||
return 0.0
|
||||
|
||||
def get_kp_max(self):
|
||||
if len(self.get_kp()) > 0:
|
||||
return max(self.get_kp())
|
||||
def get_rk_max(self):
|
||||
if len(self.get_rk()) > 0:
|
||||
return max(self.get_rk())
|
||||
else:
|
||||
return 0.0
|
||||
|
||||
def inter_profiles_kp(self):
|
||||
profiles = sorted(self.profiles, key=lambda p: p.kp)
|
||||
def inter_profiles_rk(self):
|
||||
profiles = sorted(self.profiles, key=lambda p: p.rk)
|
||||
first = profiles[0]
|
||||
last = profiles[-1]
|
||||
|
||||
res_kp = [first.kp]
|
||||
res_rk = [first.rk]
|
||||
|
||||
profiles = iter(profiles)
|
||||
previous = next(profiles)
|
||||
|
||||
for profile in profiles:
|
||||
prev = previous.kp
|
||||
curr = profile.kp
|
||||
prev = previous.rk
|
||||
curr = profile.rk
|
||||
|
||||
diff = abs(previous.kp - profile.kp)
|
||||
diff = abs(previous.rk - profile.rk)
|
||||
|
||||
new = previous.kp + (diff / 2.0)
|
||||
res_kp.append(new)
|
||||
new = previous.rk + (diff / 2.0)
|
||||
res_rk.append(new)
|
||||
|
||||
previous = profile
|
||||
|
||||
res_kp.append(last.kp)
|
||||
return res_kp
|
||||
res_rk.append(last.rk)
|
||||
return res_rk
|
||||
|
||||
# Sediment Layers
|
||||
|
||||
@@ -536,7 +536,7 @@ class Reach(SQLSubModel):
|
||||
def sort(self, is_reversed: bool = False):
|
||||
self.profiles = sorted(
|
||||
self.profiles,
|
||||
key=lambda profile: profile.kp,
|
||||
key=lambda profile: profile.rk,
|
||||
reverse=is_reversed
|
||||
)
|
||||
self._status.modified()
|
||||
@@ -613,7 +613,7 @@ class Reach(SQLSubModel):
|
||||
|
||||
self.profiles = profiles + self.profiles
|
||||
self._update_profile_numbers()
|
||||
self._recompute_kp()
|
||||
self._recompute_rk()
|
||||
|
||||
return profiles
|
||||
|
||||
@@ -633,7 +633,7 @@ class Reach(SQLSubModel):
|
||||
try:
|
||||
list_profile, list_header = self.read_file_st(str(file_path_name))
|
||||
profile_header = ["num", "code1",
|
||||
"code2", "nb_point", "kp", "name"]
|
||||
"code2", "nb_point", "rk", "name"]
|
||||
|
||||
if list_profile and list_header:
|
||||
for ind, profile in enumerate(list_profile):
|
||||
@@ -721,12 +721,12 @@ class Reach(SQLSubModel):
|
||||
c1 = f"{profile.code1:>6}"
|
||||
c2 = f"{profile.code2:>6}"
|
||||
t = f"{len(profile.points):>6}"
|
||||
kp = f"{profile.kp:>12f}"[0:12]
|
||||
rk = f"{profile.rk:>12f}"[0:12]
|
||||
pname = profile.name
|
||||
if profile.name == "":
|
||||
pname = f"p{profile.id:>3}".replace(" ", "0")
|
||||
|
||||
st.write(f"{num}{c1}{c2}{t} {kp} {pname}\n")
|
||||
st.write(f"{num}{c1}{c2}{t} {rk} {pname}\n")
|
||||
|
||||
for point in profile.points:
|
||||
x = f"{point.x:<12.4f}"[0:12]
|
||||
@@ -745,15 +745,15 @@ class Reach(SQLSubModel):
|
||||
last = self.profile(len(self) - 1)
|
||||
|
||||
z_first = first.z_min()
|
||||
kp_first = first.kp
|
||||
rk_first = first.rk
|
||||
|
||||
z_last = last.z_min()
|
||||
kp_last = last.kp
|
||||
rk_last = last.rk
|
||||
|
||||
return (
|
||||
(z_last - z_first)
|
||||
/
|
||||
(kp_last - kp_first)
|
||||
(rk_last - rk_first)
|
||||
)
|
||||
|
||||
def get_incline_mean(self):
|
||||
@@ -764,15 +764,15 @@ class Reach(SQLSubModel):
|
||||
|
||||
for profile in profiles[1:]:
|
||||
z_first = previous.z_min()
|
||||
kp_first = previous.kp
|
||||
rk_first = previous.rk
|
||||
|
||||
z_last = profile.z_min()
|
||||
kp_last = profile.kp
|
||||
rk_last = profile.rk
|
||||
|
||||
incline_acc += (
|
||||
(z_last - z_first)
|
||||
/
|
||||
(kp_last - kp_first)
|
||||
(rk_last - rk_first)
|
||||
)
|
||||
|
||||
previous = profile
|
||||
@@ -787,15 +787,15 @@ class Reach(SQLSubModel):
|
||||
|
||||
for profile in profiles[1:]:
|
||||
z_first = previous.z_min()
|
||||
kp_first = previous.kp
|
||||
rk_first = previous.rk
|
||||
|
||||
z_last = profile.z_min()
|
||||
kp_last = profile.kp
|
||||
rk_last = profile.rk
|
||||
|
||||
incline_acc += [
|
||||
(z_last - z_first)
|
||||
/
|
||||
(kp_last - kp_first)
|
||||
(rk_last - rk_first)
|
||||
]
|
||||
|
||||
previous = profile
|
||||
@@ -811,15 +811,15 @@ class Reach(SQLSubModel):
|
||||
|
||||
for profile in profiles[1:]:
|
||||
z_first = previous.z_min()
|
||||
kp_first = previous.kp
|
||||
rk_first = previous.rk
|
||||
|
||||
z_last = profile.z_min()
|
||||
kp_last = profile.kp
|
||||
rk_last = profile.rk
|
||||
|
||||
incline_acc += [
|
||||
(z_last - z_first)
|
||||
/
|
||||
(kp_last - kp_first)
|
||||
(rk_last - rk_first)
|
||||
]
|
||||
|
||||
previous = profile
|
||||
@@ -847,14 +847,14 @@ class Reach(SQLSubModel):
|
||||
logger_exception(e)
|
||||
return 0
|
||||
|
||||
def _recompute_kp(self, offset=0.0):
|
||||
self._recompute_kp_no_gl(offset=offset)
|
||||
def _recompute_rk(self, offset=0.0):
|
||||
self._recompute_rk_no_gl(offset=offset)
|
||||
|
||||
def _recompute_kp_no_gl(self, offset=0.0):
|
||||
def _recompute_rk_no_gl(self, offset=0.0):
|
||||
profiles = iter(self.profiles)
|
||||
|
||||
previous = next(profiles)
|
||||
previous.kp = offset
|
||||
previous.rk = offset
|
||||
|
||||
for profile in profiles:
|
||||
prev_points = previous.points
|
||||
@@ -865,5 +865,5 @@ class Reach(SQLSubModel):
|
||||
prev_points[-1].dist_2d(curr_points[-1])
|
||||
) / 2.0
|
||||
|
||||
profile.kp = previous.kp + dist
|
||||
profile.rk = previous.rk + dist
|
||||
previous = profile
|
||||
Reference in new issue
Block a user