|
@@ -12,6 +12,8 @@ from skimage import img_as_ubyte
|
|
|
import time
|
|
|
from threading import Thread
|
|
|
|
|
|
+from multiprocessing import Process
|
|
|
+
|
|
|
from volumes.models import Volume
|
|
|
import loadtests.facade as loadtests
|
|
|
|
|
@@ -132,3 +134,24 @@ def subvolumeCreator(volumeId, x, y, z, t, minWidth, sqrtZ, numberOfLayers, spri
|
|
|
|
|
|
def get_sprite_filename(sprite_id, sprite_format):
|
|
|
return '%s.%s' % (str(sprite_id), sprite_format)
|
|
|
+
|
|
|
+def preread_volume(volume_id):
|
|
|
+ logger.debug('preread called')
|
|
|
+ process = Process(target=_preread_volume, args=(volume_id,))
|
|
|
+ process.start()
|
|
|
+
|
|
|
+def _preread_volume(volume_id):
|
|
|
+ logger.debug('_prearead called');
|
|
|
+ volume = Volume.objects(id=volume_id).first()
|
|
|
+
|
|
|
+ raw_frames = volume.rawFrames
|
|
|
+ for framenumber in range(0, len(raw_frames)):
|
|
|
+
|
|
|
+ logger.debug('read frame array with framenumber %d' % framenumber)
|
|
|
+ raw = volume.get_frame_numpy_array(framenumber)
|
|
|
+ logger.debug(raw.shape)
|
|
|
+ tmpdata = np.empty((raw.shape[1], raw.shape[2]),dtype=raw.dtype)
|
|
|
+ for slice in raw:
|
|
|
+ tmpdata[:, :] = slice[:, :]
|
|
|
+
|
|
|
+ logger.debug('end _preread')
|