|
LSST Applications
21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
|
A C++ and Python shim around a subset of Starlink AST a library for handling world coordinate systems in astronomy.
For detailed documentation of AST see http://starlink.eao.hawaii.edu/devdocs/sun211.htx/sun211.html.
The focus of astshim is on support for spatial mappings for use by LSST. Thus few of AST's functions that support time, spectra and tables have yet been wrapped. The python wrapper uses pybind11.
FrameDict which is a FrameSet that can reference frames by domain name.Mapping::applyForward and Mapping::applyInverse methods transform single points or lists of points. These replace AST's astTran<X> functions and no invert flag is supported. There are three versions of each method:Object.getClassName returns "SeriesMap" or "ParallelMap" for all compound maps.astDecompose:std::invalid_argument before calling AST code.std::runtime_error.set, set<X> and get<X> are hidden; instead each class has explicit accessors for its attributes, such as Object::getID. Mappings are mostly immutable, so they have getters, but no setters beyond a few generic setters from Object. SlaMap and TimeMap both violate immutability by having add methods; if this is a problem we can replace the add methods with constructor arguments. Frames are mutable, so all frame-specific attributes have setters as well as getters.astAnnul, astBegin, astClone, astDelete, astEnd, and astExport.AST__BAD replaced with nan.getClass() because the latter sounds like a class, not a string, and Python doesn't allow class as a property name.astAddFrame(AST__ALLFRAMES, map, frame) function, because the AST function does two very different things.astGetFitsCI and astSetFitsCI), because that data type is not supported by standard C++.get<X> and put<X> work with both scalars and vectors (implementing astMapGet0<X>, astMapGet1<X>, astMapPut0<X> and astMapPut1<X>).append and replace are used to alter values in existing entries (implementing astMapPutElem...<X>).Many portions of AST have not yet been wrapped. Here are some highlights:
astRebin<X>, astRebinSeq<X> and astResample<X>astDBSPecFrameastFluxFrameastRegion, astRemoveRegions and other region supportastPlot and other plotting supportastSpecFluxFrameastStcsChanastTable and other table supportisInstance(Object const & obj) static methods on all classes.The Python interface could present a more dict-like view of KeyMap and FitsChan, as pyast does.