Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Orekit Orekit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 72
    • Issues 72
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Orekit
  • OrekitOrekit
  • Issues
  • #680

Closed
Open
Created May 12, 2020 by Benoist Loscul@benoist

Ephemeris class cannot be used with AbsolutePVCoordinates if an attitude provider is set

Issue raised here.

  • Detailed description provided by @bryan :

Indeed, Ephemeris class cannot be used with AbsolutePVCoordinates if an attitude provider is set. The reason is in basicPropagate(...) method because the new SpacecraftState is built with an Orbit and not with AbsolutePVCoordinates.

    return new SpacecraftState(evaluatedState.getOrbit(), calculatedAttitude,
                               evaluatedState.getMass(), evaluatedState.getAdditionalStates());

As this orbit is null, the getOrbit(...) method throw an OrekitException. I think this can be corrected.

  • Solution suggested by @bryan too:

Issue can be fixed by checking if the orbit is defined:

    // Ensure that the orbit is defined
    if (evaluatedState.isOrbitDefined()) {
        return new SpacecraftState(evaluatedState.getOrbit(), calculatedAttitude,
                                   evaluatedState.getMass(), evaluatedState.getAdditionalStates());
    } else {
        return new SpacecraftState(evaluatedState.getAbsPVA(), calculatedAttitude,
                                   evaluatedState.getMass(),  evaluatedState.getAdditionalStates());
    }
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking