diff --git a/pykat/optics/maps.py b/pykat/optics/maps.py index 3ea4b3620dbae104ecee4d657c2a4276e106a798..6cb55e8f6e32fd748f77d633ad5c76c673fb2e72 100644 --- a/pykat/optics/maps.py +++ b/pykat/optics/maps.py @@ -594,7 +594,10 @@ class surfacemap(object): nVals = range(0,n+1) for k in nVals: mVals.append(range(-k,k+1,2)) - elif isinstance(m,list): + elif isinstance(m, list): + nVals = range(n,n+1) + mVals.append(m) + elif isinstance(m, range): nVals = range(n,n+1) mVals.append(m) elif isinstance(m,int): @@ -1368,7 +1371,12 @@ class surfacemap(object): rho, phi= self.createPolarGrid() rho = rho/R - if isinstance(m,list): + if isinstance(m, list): + for k in range(len(m)): + Z = zernike(m[k], n, rho, phi) + self.data[self.notNan] = self.data[self.notNan]-A[k]*Z[self.notNan] + self.zernikeRemoved = (m[k], n, A[k]) + elif isinstance(m, range): for k in range(len(m)): Z = zernike(m[k], n, rho, phi) self.data[self.notNan] = self.data[self.notNan]-A[k]*Z[self.notNan]