LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions
astshim.test Namespace Reference

Classes

class  MappingTestCase
 
class  ObjectTestCase
 

Functions

 makePolyMapCoeffs (nIn, nOut)
 
 makeTwoWayPolyMap (nIn, nOut)
 
 makeForwardPolyMap (nIn, nOut)
 

Function Documentation

◆ makeForwardPolyMap()

astshim.test.makeForwardPolyMap ( nIn,
nOut )
Make an astshim.PolyMap suitable for testing

The forward transform is the same as for `makeTwoWayPolyMap`.
This map does not have a reverse transform.

The equation is chosen for the following reasons:
- It is well defined for any positive value of nIn, nOut.
- It stays small for small x, to avoid wraparound of angles for
  SpherePoint endpoints.

Definition at line 309 of file test.py.

309def makeForwardPolyMap(nIn, nOut):
310 """Make an astshim.PolyMap suitable for testing
311
312 The forward transform is the same as for `makeTwoWayPolyMap`.
313 This map does not have a reverse transform.
314
315 The equation is chosen for the following reasons:
316 - It is well defined for any positive value of nIn, nOut.
317 - It stays small for small x, to avoid wraparound of angles for
318 SpherePoint endpoints.
319 """
320 forwardCoeffs = makePolyMapCoeffs(nIn, nOut)
321 polyMap = PolyMap(forwardCoeffs, nOut, "IterInverse=0")
322 assert polyMap.nIn == nIn
323 assert polyMap.nOut == nOut
324 assert polyMap.hasForward
325 assert not polyMap.hasInverse
326 return polyMap

◆ makePolyMapCoeffs()

astshim.test.makePolyMapCoeffs ( nIn,
nOut )
Make an array of coefficients for astshim.PolyMap for the following
equation:

fj(x) = C0j x0^2 + C1j x1^2 + C2j x2^2 + ... + CNj xN^2
where:
* i ranges from 0 to N=nIn-1
* j ranges from 0 to nOut-1,
* Cij = 0.001 (i+j+1)

Definition at line 262 of file test.py.

262def makePolyMapCoeffs(nIn, nOut):
263 """Make an array of coefficients for astshim.PolyMap for the following
264 equation:
265
266 fj(x) = C0j x0^2 + C1j x1^2 + C2j x2^2 + ... + CNj xN^2
267 where:
268 * i ranges from 0 to N=nIn-1
269 * j ranges from 0 to nOut-1,
270 * Cij = 0.001 (i+j+1)
271 """
272 baseCoeff = 0.001
273 forwardCoeffs = []
274 for out_ind in range(nOut):
275 coeffOffset = baseCoeff * out_ind
276 for in_ind in range(nIn):
277 coeff = baseCoeff * (in_ind + 1) + coeffOffset
278 coeffArr = [coeff, out_ind + 1] + [2 if i == in_ind else 0 for i in range(nIn)]
279 forwardCoeffs.append(coeffArr)
280 return np.array(forwardCoeffs, dtype=float)
281
282

◆ makeTwoWayPolyMap()

astshim.test.makeTwoWayPolyMap ( nIn,
nOut )
Make an astshim.PolyMap suitable for testing

The forward transform is as follows:
fj(x) = C0j x0^2 + C1j x1^2 + C2j x2^2 + ...
        + CNj xN^2 where Cij = 0.001 (i+j+1)

The reverse transform is the same equation with i and j reversed
thus it is NOT the inverse of the forward direction,
but is something that can be easily evaluated.

The equation is chosen for the following reasons:
- It is well defined for any positive value of nIn, nOut.
- It stays small for small x, to avoid wraparound of angles for
  SpherePoint endpoints.

Definition at line 283 of file test.py.

283def makeTwoWayPolyMap(nIn, nOut):
284 """Make an astshim.PolyMap suitable for testing
285
286 The forward transform is as follows:
287 fj(x) = C0j x0^2 + C1j x1^2 + C2j x2^2 + ...
288 + CNj xN^2 where Cij = 0.001 (i+j+1)
289
290 The reverse transform is the same equation with i and j reversed
291 thus it is NOT the inverse of the forward direction,
292 but is something that can be easily evaluated.
293
294 The equation is chosen for the following reasons:
295 - It is well defined for any positive value of nIn, nOut.
296 - It stays small for small x, to avoid wraparound of angles for
297 SpherePoint endpoints.
298 """
299 forwardCoeffs = makePolyMapCoeffs(nIn, nOut)
300 reverseCoeffs = makePolyMapCoeffs(nOut, nIn)
301 polyMap = PolyMap(forwardCoeffs, reverseCoeffs)
302 assert polyMap.nIn == nIn
303 assert polyMap.nOut == nOut
304 assert polyMap.hasForward
305 assert polyMap.hasInverse
306 return polyMap
307
308