Example #1
0
def TD_to_1D(pk_or_kr):
    if pk_or_kr[0] == 0:  #Normal plot
        partition = range(number / 2)
        block = len(partition)
        y = [0] * block
        y_n = [0] * block
        for i in range(number):
            for j in range(number):
                for k in range(number):
                    distance = math.sqrt(i**2 + j**2 + k**2)
                    distance = math.sqrt((i - number / 2)**2 +
                                         (j - number / 2)**2 +
                                         (k - number / 2)**2)
                    if distance < number / 2:
                        y[int(distance)] += pk_or_kr[1][i][j][k]
                        y_n[int(distance)] += 1
        for i in range(block):
            if y_n[i] <> 0:
                y[i] = y[i] / y_n[i]
        return partition, y

    elif pk_or_kr[0] == 1:  #Log plot
        partition = ml.Create_Partition(number / 2, 0)
        block = len(partition) - 1
        y = [0] * block
        y_n = [0] * block
        for i in range(number):
            for j in range(number):
                for k in range(number):
                    distance = math.sqrt((i - number / 2)**2 +
                                         (j - number / 2)**2 +
                                         (k - number / 2)**2)
                    for l in range(block):
                        if distance >= partition[l] and distance < partition[
                                l + 1]:
                            y_n[l] += 1
                            y[l] += pk_or_kr[1][i][j][k]
        del partition[-1]
        for i in range(block):
            if y_n[i] <> 0:
                y[i] = y[i] / y_n[i]
        return partition, y