[WIP] Implement the Plataforma Solar de Almerı́a (PSA) solar position algorithm
- [x] Related to #1308
- [x] I am familiar with the contributing guidelines
- [ ] Tests added
- [ ] Updates entries in
docs/sphinx/source/referencefor API changes. - [ ] Adds description and name entries in the appropriate "what's new" file in
docs/sphinx/source/whatsnewfor all changes. Includes link to the GitHub Issue with:issue:`num`or this Pull Request with:pull:`num`. Includes contributor name and/or GitHub username (link with:ghuser:`user`). - [ ] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
- [ ] Pull request is nearly complete and ready for detailed review.
- [ ] Maintainer: Appropriate GitHub Labels (including
remote-data) and Milestone are assigned to the Pull Request and linked Issue.
The PSA algorithm seems to be as accurate as pvlib's ephemeris method but 3-4 times faster. Here is a brief comparison:
Are you implementing the 2001 version or the 2020 version?
The equations are the same between the two versions; only the coefficients differ. The current function lets the user choose which set of coefficients to use, with 2020 coefficients being the default.
In the equations in the 2020 paper, it seems that the right ascension ra variable isn't used in any calculations - am I missing something?
Given that the PSA and Michalsky algorithms are almost the same, maybe we should consider only adding Michalsky?
almost the same
Could you elaborate on the similarities/differences?
I think the main usage of these algorithms will be to verify or replicate published output from other people or software, so even small differences could be relevant.
Closing, will pursue solar position algorithm improvements in fresh PRs.