Hi, Tom,
For string input to the `observer` attribute, that input is fed to `get_body_heliographic_stonyhurst()`, and the allowable inputs are just the planets (and the Sun). It technically depends on the ephemeris that is currently active in your Astropy, which is why it's not explicitly documented, but invariably it's just the planets.
For observers not at the center of any planet, you can set the `observer` attribute to a `SkyCoord` instance. For example, if you open an AIA map, you can see that the `.observer_coordinate` has the specific location of SDO (in Stonyhurst heliographic coordinates), as populated by the metadata present in the header.
For many named bodies, you can also generate the `SkyCoord` via `get_horizons_coord()`, which queries JPL HORIZONS. HORIZONS contains the information for many moons, asteroids, comets, and major spacecraft. You can look them up by name – which can be ambiguous – or by NAIF code if you know it.
Does that cover your needs?
Thanks,
Albert