mirror of https://gitlab.com/pamhyr/pamhyr2
start work on results buffers
parent
b00cca953e
commit
242df7f648
|
|
@ -219,6 +219,11 @@ class Results(SQLSubModel):
|
||||||
qlog=None,
|
qlog=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def bufferize(self, key):
|
||||||
|
if self.is_valid:
|
||||||
|
for reach in self._river._reachs:
|
||||||
|
reach.bufferize(self._meta_data["timestamps"], key)
|
||||||
|
|
||||||
def timestamps_to_struct(self):
|
def timestamps_to_struct(self):
|
||||||
ts = self._meta_data["timestamps"]
|
ts = self._meta_data["timestamps"]
|
||||||
sf = ">" + ''.join(itertools.repeat("d", len(ts)))
|
sf = ">" + ''.join(itertools.repeat("d", len(ts)))
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
import struct
|
import struct
|
||||||
import logging
|
import logging
|
||||||
import itertools
|
import itertools
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
from tools import flatten
|
from tools import flatten
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
@ -275,6 +276,7 @@ class Reach(SQLSubModel):
|
||||||
lambda p: p.name[0:8] != 'interpol', self._profiles
|
lambda p: p.name[0:8] != 'interpol', self._profiles
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
self._buffers = {}
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
return len(self._profiles)
|
return len(self._profiles)
|
||||||
|
|
@ -295,6 +297,10 @@ class Reach(SQLSubModel):
|
||||||
def profile_mask(self):
|
def profile_mask(self):
|
||||||
return self._profile_mask
|
return self._profile_mask
|
||||||
|
|
||||||
|
@property
|
||||||
|
def buffers(self):
|
||||||
|
return self._buffers
|
||||||
|
|
||||||
def profile(self, id):
|
def profile(self, id):
|
||||||
return self._profiles[id]
|
return self._profiles[id]
|
||||||
|
|
||||||
|
|
@ -304,6 +310,11 @@ class Reach(SQLSubModel):
|
||||||
def has_sediment(self):
|
def has_sediment(self):
|
||||||
return any(map(lambda profile: profile.has_sediment(), self._profiles))
|
return any(map(lambda profile: profile.has_sediment(), self._profiles))
|
||||||
|
|
||||||
|
def bufferize(self, timestamps, key):
|
||||||
|
self._buffers[key] = np.zeros((len(timestamps), len(self)))
|
||||||
|
for i, p in enumerate(self._profiles):
|
||||||
|
self._buffers[key][:, i] = p.get_key(key)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _db_create(cls, execute, ext=""):
|
def _db_create(cls, execute, ext=""):
|
||||||
return cls._create_submodel(execute)
|
return cls._create_submodel(execute)
|
||||||
|
|
|
||||||
|
|
@ -1196,6 +1196,10 @@ class Mage8(Mage):
|
||||||
r.set(i, t, "V", v)
|
r.set(i, t, "V", v)
|
||||||
logger.info(f"read_bin: ... end with {len(ts)} timestamp read")
|
logger.info(f"read_bin: ... end with {len(ts)} timestamp read")
|
||||||
|
|
||||||
|
results.bufferize("Z")
|
||||||
|
results.bufferize("Q")
|
||||||
|
results.bufferize("V")
|
||||||
|
|
||||||
@timer
|
@timer
|
||||||
def read_gra(self, study, repertory, results, qlog=None, name="0"):
|
def read_gra(self, study, repertory, results, qlog=None, name="0"):
|
||||||
if not study.river.has_sediment():
|
if not study.river.has_sediment():
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue