def __init__(self, parent=None): super().__init__(parent) # InitVM is required before being able to use Orekit objects orekit.initVM() setup_orekit_curdir() # Loads ZIP file containing Orekit data (SPICE kernel, EOP, leap seconds, etc.) # Frames self._eme2000 = FramesFactory.getEME2000() self._itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, True) self._wgs84_ellipsoid = ReferenceEllipsoid.getWgs84(self._itrf) self._nadir_pointing = NadirPointing(self._eme2000, self._wgs84_ellipsoid) # Setup TLE and propagator self._tle = TLE('1 25544U 98067A 19205.43407788 .00000753 00000-0 20569-4 0 9999', '2 25544 51.6429 176.4740 0006642 173.2752 328.6116 15.51000066181037') self._propagator = SGP4(self._tle, self._nadir_pointing, 1000.0) self._rx_itrf = 0.0 self._ry_itrf = 0.0 self._rz_itrf = 0.0 self.positionUpdated.emit() self._altitude = 0.0 self.altitudeUpdated.emit()
def init_jvm(): """Initialize Java virtual machine for Orekit. This method also loads the orekit-data.zip from the pythonpath or form the current directory and sets up the orekit DataProviers to access it (how to do so has been copied from setup_orekit_curdir()). """ orekit.initVM() path_to_file = None # search for file on pythonpath for paths in os.environ['PYTHONPATH'].split(os.pathsep): for root, dirs, files in os.walk(paths): if 'orekit-data.zip' in files: path_to_file = os.path.join(root, 'orekit-data.zip') if path_to_file is None: # desperate search on current directory setup_orekit_curdir() else: DM = DataProvidersManager.getInstance() datafile = File(path_to_file) crawler = ZipJarCrawler(datafile) DM.clearProviders() DM.addProvider(crawler)
def load_orekit(self): if KepOrbElem.vm is not None: return # Init vm KepOrbElem.vm = orekit.initVM() # Load orekit data path_to_file = None # search for file on pythonpath for paths in os.environ['PYTHONPATH'].split(os.pathsep): for root, dirs, files in os.walk(paths): if 'orekit-data.zip' in files: path_to_file = os.path.join(root, 'orekit-data.zip') if path_to_file is None: # desperate search on current directory setup_orekit_curdir() else: DM = DataProvidersManager.getInstance() datafile = File(path_to_file) crawler = ZipJarCrawler(datafile) DM.clearProviders() DM.addProvider(crawler) # create gravity provider KepOrbElem.provider = GravityFieldFactory.getUnnormalizedProvider(6, 6)
def test_setup_orekit_zip_file(self): """ Testing setup of OreKit """ vm = orekit.initVM() assert setup_orekit_zip_file(' ')
from org.hipparchus.geometry.euclidean.threed import Vector3D from org.orekit.time import TimeScalesFactory, AbsoluteDate, DateComponents, TimeComponents from org.orekit.propagation.analytical import KeplerianPropagator, EcksteinHechlerPropagator from org.orekit.attitudes import CelestialBodyPointed, TargetPointing from org.orekit.utils import Constants from org.orekit.propagation.analytical.tle import TLE, TLEPropagator from org.orekit.orbits import KeplerianOrbit, PositionAngle from org.orekit.frames import FramesFactory, TopocentricFrame from org.orekit.utils import IERSConventions from org.orekit.bodies import OneAxisEllipsoid, GeodeticPoint, CelestialBodyFactory from org.orekit.propagation import SpacecraftState import kubesat.orekit as orekit_utils from kubesat.orekit import get_ground_passes, check_iot_in_range, setup_orekit_zip_file from kubesat.orekit import t1_gte_t2_string, t1_lte_t2_string, keplerian_orbit, analytical_propagator, analytical_propagator, moving_body_pointing_law, ground_pointing_law, attitude_provider_constructor, absolute_time_converter_utc_string, analytical_propagator, ground_pointing_law vm = orekit.initVM() setup_orekit_zip_file(' ') class Tests(TestCase): """ Testing OreKit utilities """ def test_string_to_frame(self): """ string_to_frame tests """ frame_ITRF_1 = orekit_utils.string_to_frame("ITRF") frame_ITRF_2 = FramesFactory.getITRF(IERSConventions.IERS_2010, True) self.assertTrue(frame_ITRF_1.equals(frame_ITRF_2))
Created on Wed May 27 15:31:10 2020 This will be the Gauss Angles only routine used to produce an initial orbit determination starting from angles only observations Python 3.5 or above necessary @author: quamo """ #initialize orekit and JVM import orekit orekit.initVM() from orekit.pyhelpers import setup_orekit_curdir, absolutedate_to_datetime setup_orekit_curdir() # Math from math import radians, pi, degrees import pandas as pd import numpy as np import matplotlib.pyplot as plt # Geometry and Frames from org.hipparchus.geometry.euclidean.threed import Vector3D, SphericalCoordinates from org.orekit.data import DataProvidersManager, ZipJarCrawler from org.orekit.frames import FramesFactory, TopocentricFrame
# SPDX-License-Identifier: GPL-3.0-or-later """Trajectory simulation and object rendering module.""" import json import logging from datetime import datetime from pathlib import Path import numpy as np import orekit from orekit.pyhelpers import setup_orekit_curdir #################### orekit VM init #################### FILE_DIR = Path(__file__).parent.resolve() OREKIT_DATA_FILE = FILE_DIR / "orekit-data.zip" OREKIT_VM = orekit.initVM() # pylint: disable=no-member setup_orekit_curdir(str(OREKIT_DATA_FILE)) #################### orekit VM init #################### from org.orekit.time import ( AbsoluteDate, TimeScalesFactory ) # pylint: disable=import-error from org.orekit.frames import FramesFactory # pylint: disable=import-error from org.orekit.utils import ( Constants, PVCoordinates, AngularCoordinates ) # pylint: disable=import-error from org.hipparchus.geometry.euclidean.threed import ( Vector3D, Rotation,
from math import radians, degrees import requests import orekit VM = orekit.initVM() from orekit.pyhelpers import setup_orekit_curdir setup_orekit_curdir() from org.orekit.frames import FramesFactory, TopocentricFrame from org.orekit.bodies import OneAxisEllipsoid, GeodeticPoint, CelestialBodyFactory from org.orekit.propagation.analytical.tle import TLE, TLEPropagator from org.orekit.utils import IERSConventions, Constants, PVCoordinatesProvider from org.orekit.propagation.events import ElevationDetector, EventsLogger from org.orekit.propagation.events.handlers import ContinueOnEvent def get_station(longi, lat, name, planet=OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, FramesFactory.getITRF(IERSConventions.IERS_2010, True))): """ Returns the wanted Topocentric Frame computed thanks to its coordinates Parameters ---------- longi : float longitude of the wanted Topocentric Frame. lat : float Latitude of the wanted Topocentric Frame. name : str Wanted name for the Topocentric Frame. planet : OnesAxisEllipsoid, optional Planet where the Topocentric Frame should be associated to. The default is our planet, the Earth.
def create(cls): orekit.initVM() result = cls() return result