# Astshim and AST are now part of the DM stack

**URL:** <https://www.rubin.community/t/astshim-and-ast-are-now-part-of-the-dm-stack/1714>\
**Category:** DM Notifications\
**Tags:** dm-dev\
**Created:** [March 14, 2017, 12:20am UTC](https://www.rubin.community/t/astshim-and-ast-are-now-part-of-the-dm-stack/1714 "2017-03-14T00:20:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rowen](https://sea2.discourse-cdn.com/flex002/user_avatar/www.rubin.community/rowen/32/52_2.png) [@rowen](https://www.rubin.community/u/rowen)\
**Post date:** [March 14, 2017, 12:20am UTC](https://www.rubin.community/t/astshim-and-ast-are-now-part-of-the-dm-stack/1714/1 "2017-03-14T00:20:21Z")

</div>

The [astshim](https://github.com/lsst/astshim) package is now part of the DM stack, as a dependency of afw, and this also brings in [starlink\_ast](https://github.com/lsst/starlink_ast). These packages provide support for WCS and transforms, and will be used as the basis for the new WCS class, as per [RFC-193](https://jira.lsstcorp.org/browse/RFC-193).

`astshim` supports transformation of `ndarray` and `std::vector` data. In order to transform LSST types `lsst.afw.geom.Point<double, N>` and `lsst.afw.geom.SpherePoint`, and vectors of the same, afw.geom contains the following classes:

- `Transform<FromEndpoint, ToEndpoint>`: a class containing an AST “frame set” (basically a transformation),  
templated on a pair of “endpoints” which translate between LSST types and the ndarrays used by `astshim`.
- `Endpoint` subclasses `Point2Endpoint`, `Point3Endpoint`, `SpherePointEndpoint` and `GenericEndpoint` (for n-dimensional ndarray data).

The new celestial WCS class will be a subclass of `Transform<Point2Endpoint, SpherePointEndpoint>`.
