def calc_mean_hit_rate(pos, src_poss, wind):
    """
    Calculate the total mean hit rate at position 'pos' given sources in positions src_poss.
    :param pos: position
    :param src_poss: list of source positions
    :param wind: wind speed (m/s)
    :return: mean hit rate
    """

    mean_hit_rate = 0
    for src_pos in src_poss:
        # calculate mean hit rate from this source
        dx = pos[0] - src_pos[0]
        dy = pos[1] - src_pos[1]
        dz = 0

        r = logprob_odor.advec_diff_mean_hit_rate(dx,
                                                  dy,
                                                  dz,
                                                  w=wind,
                                                  r=R,
                                                  d=D,
                                                  a=A,
                                                  tau=TAU,
                                                  dim=2)
        mean_hit_rate += r

    return mean_hit_rate
示例#2
0
    def initialize(self):
        # create meshgrid of all locations
        x, y, z = np.meshgrid(self.env.x, self.env.y, self.env.z, indexing='ij')
        # calculate displacement from source
        dx = x - self.src_pos[0]
        dy = y - self.src_pos[1]
        dz = z - self.src_pos[2]

        # calculate mean hit number at all locations
        self.mean_hit_rate = advec_diff_mean_hit_rate(dx, dy, dz,
                                                      self.w, self.r, self.d,
                                                      self.a, self.tau, self.dim)
        self.conc = self.mean_hit_rate

        # store odor domain
        self.odor_domain = range(self.max_hit_number+1)
示例#3
0
    def initialize(self):
        # create meshgrid of all locations
        x, y, z = np.meshgrid(self.env.x,
                              self.env.y,
                              self.env.z,
                              indexing='ij')
        # calculate displacement from source
        dx = x - self.src_pos[0]
        dy = y - self.src_pos[1]
        dz = z - self.src_pos[2]

        # calculate mean hit number at all locations
        self.mean_hit_rate = advec_diff_mean_hit_rate(dx, dy, dz, self.w,
                                                      self.r, self.d, self.a,
                                                      self.tau, self.dim)
        self.conc = self.mean_hit_rate

        # store odor domain
        self.odor_domain = range(self.max_hit_number + 1)
def calc_mean_hit_rate(pos, src_poss, wind):
    """
    Calculate the total mean hit rate at position 'pos' given sources in positions src_poss.
    :param pos: position
    :param src_poss: list of source positions
    :param wind: wind speed (m/s)
    :return: mean hit rate
    """

    mean_hit_rate = 0
    for src_pos in src_poss:
        # calculate mean hit rate from this source
        dx = pos[0] - src_pos[0]
        dy = pos[1] - src_pos[1]
        dz = 0

        r = logprob_odor.advec_diff_mean_hit_rate(dx, dy, dz, w=wind, r=R, d=D, a=A, tau=TAU, dim=2)
        mean_hit_rate += r

    return mean_hit_rate