mirror of https://gitlab.com/pamhyr/pamhyr2
GeometryProfilesXYZ: assignment of interpolated attribute, False by default, True when profile is created with mesh, and for the load of database, False by default, True when name starts with 'interpol'
parent
d6aeb5df21
commit
a88a164ead
|
|
@ -141,6 +141,7 @@ class InternalMeshing(AMeshingTool):
|
||||||
dj*(profiles[i+1].rk -
|
dj*(profiles[i+1].rk -
|
||||||
profiles[i].rk)
|
profiles[i].rk)
|
||||||
p.name = f'interpol{p.rk}'
|
p.name = f'interpol{p.rk}'
|
||||||
|
p.interpolated = True
|
||||||
new_profiles2.append(p)
|
new_profiles2.append(p)
|
||||||
new_profiles.append(new_profiles2)
|
new_profiles.append(new_profiles2)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
nb_point: int = 0,
|
nb_point: int = 0,
|
||||||
code1: int = 0, code2: int = 0,
|
code1: int = 0, code2: int = 0,
|
||||||
status=None, owner_scenario=-1,
|
status=None, owner_scenario=-1,
|
||||||
enabled=True):
|
enabled=True, interpolated=False):
|
||||||
"""ProfileXYZ constructor
|
"""ProfileXYZ constructor
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -92,6 +92,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
self._station = []
|
self._station = []
|
||||||
self.station_up_to_date = False
|
self.station_up_to_date = False
|
||||||
self._enabled = bool(enabled)
|
self._enabled = bool(enabled)
|
||||||
|
self._interpolated = bool(interpolated)
|
||||||
|
|
||||||
self._get_water_limits_cache = {}
|
self._get_water_limits_cache = {}
|
||||||
self._get_water_limits_ac_cache = {}
|
self._get_water_limits_ac_cache = {}
|
||||||
|
|
@ -111,6 +112,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
code2 INTEGER NOT NULL,
|
code2 INTEGER NOT NULL,
|
||||||
sl INTEGER,
|
sl INTEGER,
|
||||||
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
|
interpolated BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
{Scenario.create_db_add_scenario()},
|
{Scenario.create_db_add_scenario()},
|
||||||
{Scenario.create_db_add_scenario_fk()},
|
{Scenario.create_db_add_scenario_fk()},
|
||||||
FOREIGN KEY(reach) REFERENCES river_reach(pamhyr_id),
|
FOREIGN KEY(reach) REFERENCES river_reach(pamhyr_id),
|
||||||
|
|
@ -162,6 +164,20 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
"ADD COLUMN enabled BOOLEAN NOT NULL DEFAULT TRUE"
|
"ADD COLUMN enabled BOOLEAN NOT NULL DEFAULT TRUE"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if major == "0" and (int(minor) < 2 or
|
||||||
|
(minor == "2" and int(release) < 10)):
|
||||||
|
if minor != "0":
|
||||||
|
execute(
|
||||||
|
"ALTER TABLE geometry_profileXYZ " +
|
||||||
|
"ADD COLUMN interpolated BOOLEAN NOT NULL DEFAULT FALSE"
|
||||||
|
)
|
||||||
|
execute(
|
||||||
|
"UPDATE geometry_profileXYZ " +
|
||||||
|
"SET interpolated = CASE " +
|
||||||
|
"WHEN LOWER(name) LIKE 'interpol%' THEN TRUE " +
|
||||||
|
"ELSE FALSE END"
|
||||||
|
)
|
||||||
|
|
||||||
return cls._update_submodel(execute, version, data)
|
return cls._update_submodel(execute, version, data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -247,7 +263,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
|
|
||||||
table = execute(
|
table = execute(
|
||||||
"SELECT pamhyr_id, ind, deleted, name, rk, num, " +
|
"SELECT pamhyr_id, ind, deleted, name, rk, num, " +
|
||||||
"code1, code2, sl, scenario, enabled " +
|
"code1, code2, sl, scenario, enabled, interpolated " +
|
||||||
"FROM geometry_profileXYZ " +
|
"FROM geometry_profileXYZ " +
|
||||||
f"WHERE reach = {reach.id} " +
|
f"WHERE reach = {reach.id} " +
|
||||||
f"AND scenario = {scenario.id} " +
|
f"AND scenario = {scenario.id} " +
|
||||||
|
|
@ -269,6 +285,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
sl = next(it)
|
sl = next(it)
|
||||||
owner_scenario = next(it)
|
owner_scenario = next(it)
|
||||||
enabled = (next(it) == 1)
|
enabled = (next(it) == 1)
|
||||||
|
interpolated = (next(it) == 1)
|
||||||
|
|
||||||
profile = cls(
|
profile = cls(
|
||||||
id=pid, ind=ind, num=num,
|
id=pid, ind=ind, num=num,
|
||||||
|
|
@ -277,7 +294,8 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
reach=reach,
|
reach=reach,
|
||||||
status=status,
|
status=status,
|
||||||
owner_scenario=owner_scenario,
|
owner_scenario=owner_scenario,
|
||||||
enabled=enabled
|
enabled=enabled,
|
||||||
|
interpolated=interpolated
|
||||||
)
|
)
|
||||||
if deleted:
|
if deleted:
|
||||||
profile.set_as_deleted()
|
profile.set_as_deleted()
|
||||||
|
|
@ -330,13 +348,14 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
execute(
|
execute(
|
||||||
"INSERT OR REPLACE INTO " +
|
"INSERT OR REPLACE INTO " +
|
||||||
"geometry_profileXYZ(pamhyr_id, deleted, ind, name, reach, " +
|
"geometry_profileXYZ(pamhyr_id, deleted, ind, name, reach, " +
|
||||||
"rk, num, code1, code2, sl, scenario, enabled) " +
|
"rk, num, code1, code2, sl, scenario, enabled, interpolated) " +
|
||||||
"VALUES (" +
|
"VALUES (" +
|
||||||
f"{self.pamhyr_id}, {self._db_format(self.is_deleted())}, " +
|
f"{self.pamhyr_id}, {self._db_format(self.is_deleted())}, " +
|
||||||
f"{ind}, '{self._db_format(self._name)}', " +
|
f"{ind}, '{self._db_format(self._name)}', " +
|
||||||
f"{self.reach.pamhyr_id}, {self.rk}, {self.num}, " +
|
f"{self.reach.pamhyr_id}, {self.rk}, {self.num}, " +
|
||||||
f"{self.code1}, {self.code1}, {sl}, {self._status.scenario_id}, " +
|
f"{self.code1}, {self.code1}, {sl}, {self._status.scenario_id}, " +
|
||||||
f"{self._db_format(self._enabled)}" +
|
f"{self._db_format(self._enabled)}, " +
|
||||||
|
f"{self._db_format(self._interpolated)}" +
|
||||||
")"
|
")"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -404,7 +423,8 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
rk=self.rk,
|
rk=self.rk,
|
||||||
reach=self.reach,
|
reach=self.reach,
|
||||||
status=self._status,
|
status=self._status,
|
||||||
enabled=self.is_enabled
|
enabled=self.is_enabled,
|
||||||
|
interpolated=self.interpolated
|
||||||
)
|
)
|
||||||
if self.is_deleted():
|
if self.is_deleted():
|
||||||
new_p.set_as_deleted()
|
new_p.set_as_deleted()
|
||||||
|
|
@ -425,7 +445,8 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
rk=self.rk,
|
rk=self.rk,
|
||||||
reach=new_reach,
|
reach=new_reach,
|
||||||
status=self._status,
|
status=self._status,
|
||||||
enabled=self.is_enabled
|
enabled=self.is_enabled,
|
||||||
|
interpolated=self.interpolated
|
||||||
)
|
)
|
||||||
if self.is_deleted():
|
if self.is_deleted():
|
||||||
new_p.set_as_deleted()
|
new_p.set_as_deleted()
|
||||||
|
|
@ -1147,7 +1168,8 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
rk=self.rk,
|
rk=self.rk,
|
||||||
reach=self.reach,
|
reach=self.reach,
|
||||||
status=self._status,
|
status=self._status,
|
||||||
enabled=self.is_enabled)
|
enabled=self.is_enabled,
|
||||||
|
interpolated=self.interpolated)
|
||||||
|
|
||||||
for i, k in enumerate(self.points):
|
for i, k in enumerate(self.points):
|
||||||
p.insert_point(i, k.copy())
|
p.insert_point(i, k.copy())
|
||||||
|
|
@ -1194,3 +1216,12 @@ class ProfileXYZ(Profile, SQLSubModel):
|
||||||
def enabled(self, value):
|
def enabled(self, value):
|
||||||
self._enabled = bool(value)
|
self._enabled = bool(value)
|
||||||
self.modified()
|
self.modified()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def interpolated(self):
|
||||||
|
return self._interpolated
|
||||||
|
|
||||||
|
@interpolated.setter
|
||||||
|
def interpolated(self, value):
|
||||||
|
self._interpolated = bool(value)
|
||||||
|
self.modified()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue