astropy / astropy/astropy

Question regarding rotations with observer-centric frames

Open
#16,365 1 comment 0 reactions 0 assignees View on GitHub
coordinates question
Dominant language
Python
Stars
5.3k
Forks
2.2k
Avg merge
1d 19h
Merged PRs (30d)
75

Description

I wish to rotate sky coordinates (`lon`, `lat`) between ecliptic, galactic and celestial coordinates. These are observercentric coordinates with origins given by a Cartesian heliocentric position `obspos` and a time of observation `obstime`. I am essentially trying to reproduce the rotations from healpy, with `healpy.rotator.Rotator` which rotates between `["E", "G", "C"]` with arbitrary origins (I think).

Using the `SkyCoord` object and the frames `BarycentricMeanEcliptic`, `Galactic` and `ICRS` seems to do the same as healpy's rotator. However, these are all solar system barycentric and it feels a bit weird to have users select these to represent their observercentric coordinates. Are there more fitting frames which I can use?

Ultimately my goal is to get heliocentric ecliptic unit vectors from the input coordinates and it feels like I have all the ingredients required to go directly from user a user specified frame `(E, G, C)` and `(obspos, obstime)`. I have tried supplying a `distance` or `location` parameter into the various astropy frames but I don't think i understand exactly how these are meant to be used.

This is from a suggestion by @lpsinger from the [pyOpenSci review](https://github.com/pyOpenSci/software-submission/issues/161) for the Astropy-affiliated [ZodiPy](https://github.com/Cosmoglobe/zodipy).

Contributor guide

Open the contributing guide

Research direction

Start by reading the SkyCoord transformations involving BarycentricMeanEcliptic, Galactic, and ICRS, then compare their behavior with healpy.rotator.Rotator for E/G/C and the supplied obspos and obstime. Clarify with maintainers whether the desired outcome is a supported observer-centric transformation or documentation, with heliocentric ecliptic unit vectors as the acceptance criterion.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.