'''
Created on 6 nov. 2017
@author: user
'''
import logging
import numpy as np
import ecpi.common.num.array_square_cell as asc
logger = logging.getLogger(__name__)
[docs]class MaskRandom(asc.ArraySquareCell):
"""
"""
def __init__(self, cel_x=1, ncel_y=1, size_cm=1):
"""**Constructor**
"""
super().__init__(cel_x, ncel_y, size_cm)
[docs] def random_mask(self, p_percent_empty):
if p_percent_empty > 1:
logger.error(f'pEmpty greater than 1 ({p_percent_empty})')
self.logger.critical('pEmpty value less than 1')
max_val = p_percent_empty*1000
self.random_value(0, 999)
idx_empty = np.where(self.ar_val < max_val)
idx_full = np.where(self.ar_val >= max_val)
self.ar_val[idx_empty] = 1 # photon no stopped
self.ar_val[idx_full] = 0 # photon stopped
self.perct_open_goal = p_percent_empty
logger.info(f'percent_result: {idx_empty[0].size/self.ar_val.size}')