Skip to content

Interferometric projections and more...#289

Merged
attipaci merged 14 commits into
mainfrom
cpp-extras
Apr 5, 2026
Merged

Interferometric projections and more...#289
attipaci merged 14 commits into
mainfrom
cpp-extras

Conversation

@attipaci

@attipaci attipaci commented Mar 24, 2026

Copy link
Copy Markdown
Collaborator

C99 API

Added

  • Added novas_site_uvw() function to calculate geocentric interferometric projections for a site (an on_surface structure) around a line of sight (a.k.a. phase center).
  • Added novas_uvw() function for more generalized calculations of interferometric projections.
  • NOVAS C geo_posvel() is imprecise for Earth-based observers #306: Added novas_site_gcrs_posvel() for calculating more accurate GCRS position / velocity vectors for Earth-based observers.

Changed

C++ API

Added

  • Added Interferometric class to handle interferometric u, v, w projections and to supply geometric delays along the line of sight.
  • Added Observer::to_interferometric() method to convert an observer location to an interferometric projection around an observed line of sight for the array reference location.
  • Added AstrometricPosition::to_interferometric() method to convert a relative station position (w.r.t. the array reference) to an interferometric projection along a line-of-sight, with precision, such as for space-based interferometers located far from Earth.
  • Added Scalar abstract base class for scalar quantities.
  • Added SolarSystemSource::barycentric_at() to get geometric positions velocities w.r.t. the SSB.

Changed

  • Migrated Vector::x(), y(), z() to Position and Velocity classes with scalar return values.
  • Moved Weather::guess(Site&) to Site::average_weather(), for simplicity.
  • Added optional accuracy argument to a few methods.
  • EOP does not enforce dUT1 being under a seconds, in line with the plant to eliminate leap seconds in 2035.

@attipaci attipaci added this to the 1.6.0 milestone Mar 24, 2026
@attipaci attipaci self-assigned this Mar 24, 2026
@attipaci attipaci added the enhancement New feature or request label Mar 24, 2026
@codecov

codecov Bot commented Mar 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coveralls

coveralls commented Mar 24, 2026

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 23941274990

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 187 of 265 (70.57%) changed or added relevant lines in 18 files are covered.
  • 4 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.9%) to 98.363%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/cpp/AstrometricPosition.cpp 0 10 0.0%
src/cpp/Interferometric.cpp 0 34 0.0%
src/cpp/Observer.cpp 0 34 0.0%
Files with Coverage Reduction New Missed Lines %
usr/include/c++/13/bits/basic_string.h 4 48.21%
Totals Coverage Status
Change from base Build 23924240196: -0.9%
Covered Lines: 8775
Relevant Lines: 8921

💛 - Coveralls

@attipaci attipaci force-pushed the cpp-extras branch 4 times, most recently from 187617f to 4966761 Compare March 24, 2026 20:05
@attipaci attipaci changed the title interferometric uwv coordinate calculation methods interferometric uwv coordinate calculations Mar 24, 2026
@attipaci attipaci marked this pull request as draft March 24, 2026 20:14
@attipaci attipaci force-pushed the cpp-extras branch 6 times, most recently from e42dad7 to 80712ba Compare March 25, 2026 12:13
@attipaci attipaci force-pushed the main branch 2 times, most recently from ce60e0d to 832d686 Compare March 25, 2026 21:53
@attipaci attipaci changed the title interferometric uwv coordinate calculations Interferometric uwv projections Mar 26, 2026
@attipaci attipaci force-pushed the main branch 5 times, most recently from 4eea388 to 27d777f Compare March 27, 2026 22:47
@attipaci attipaci changed the title Interferometric uwv projections Interferometric projections Mar 28, 2026
@attipaci attipaci force-pushed the cpp-extras branch 4 times, most recently from 168c835 to 2b3cc76 Compare March 30, 2026 12:32
@attipaci attipaci linked an issue Apr 4, 2026 that may be closed by this pull request
@attipaci attipaci force-pushed the cpp-extras branch 9 times, most recently from bd49b16 to 1e72b3c Compare April 5, 2026 09:42
@attipaci attipaci force-pushed the cpp-extras branch 5 times, most recently from d99a380 to b848b88 Compare April 5, 2026 20:36
@attipaci attipaci force-pushed the cpp-extras branch 2 times, most recently from 69aee94 to 7434a6d Compare April 5, 2026 21:25
@attipaci attipaci added the bug Something isn't working label Apr 5, 2026
@attipaci attipaci marked this pull request as ready for review April 5, 2026 21:30
@attipaci attipaci merged commit 8db2d9d into main Apr 5, 2026
28 checks passed
@attipaci attipaci deleted the cpp-extras branch April 5, 2026 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NOVAS C geo_posvel() is imprecise for Earth-based observers

2 participants