Esempio n. 1
0
def getZernCoeffs_infinite(
        nZerns=NZERNS, nScrns=NSCRNS, subScrnSize=SUBSCRNSIZE, r0=R0):

    scrn = infinitephasescreen.PhaseScreen(subScrnSize, 10./subScrnSize, r0, L0=100, nCol=4)

    Zs = circle.zernikeArray(nZerns+1, subScrnSize)
    piston = Zs[0]
    Zs = Zs[1:]
    Zs.shape = nZerns, subScrnSize*subScrnSize

    zCoeffs = numpy.zeros((nZerns, nScrns))
    for i in range(nScrns):
        if i % (nScrns / 10) == 0:
            print("{}% complete".format(100 * float(i) / nScrns))
        scrn.addRow(subScrnSize)

        subScrn = scrn.scrn.copy().reshape(subScrnSize*subScrnSize)

        zCoeffs[:, i] = (Zs*subScrn).sum(1)/piston.sum()

    return zCoeffs
def testAddRow_axis0_forward():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)
    scrn.addRow(1, axis=0)
def testMoveDiagonal2():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)
    scrn.moveScrn((0.3, -0.3))
def testMoveScrn_axis1_backward():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)
    scrn.moveScrn((0, -0.3))
def testMoveScrn_axis0_forward():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)
    scrn.moveScrn((0.3, 0))
def testAddMultipleRows():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)
    scrn.addRow(10, axis=0)
def testInitScreen():

    scrn = infinitephasescreen.PhaseScreen(128, 4. / 64, 0.2, 50, nCol=4)