« Tutorial LEOManeuversEstimation » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 5 : | Ligne 5 : | ||
import java.util.SortedSet; | import java.util.SortedSet; | ||
import fr.cnes.dynvol.opera.TLE.OperaLEOManoeuvers; | import fr.cnes.dynvol.opera.calc.TLE.OperaLEOManoeuvers; | ||
import fr.cnes.dynvol.opera.TLE.OperaTLEManoeuvres; | import fr.cnes.dynvol.opera.calc.TLE.OperaTLEManoeuvres; | ||
import fr.cnes.dynvol.opera.TLE.OperaTLESeries; | import fr.cnes.dynvol.opera.calc.TLE.OperaTLESeries; | ||
import fr.cnes.dynvol.opera.calc.enums.DetectionType; | |||
import fr.cnes.dynvol.opera.calc.model.OperaTLE; | |||
import fr.cnes.dynvol.opera.calc.util.OperaDateManager; | |||
import fr.cnes.dynvol.opera.calc.util.OperaReadUtils; | |||
import fr.cnes.dynvol.opera.calc.util.OperaTleManager; | |||
import fr.cnes.dynvol.opera.configuration.OperaConfigurationProperties; | import fr.cnes.dynvol.opera.configuration.OperaConfigurationProperties; | ||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaDurationException; | ||
import fr.cnes.dynvol.opera.exceptions.OperaException; | |||
import fr.cnes.dynvol.opera.exceptions.OperaInitialProcessException; | |||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaInterpolationException; | ||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaMaxIterationException; | ||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaOrbitDeterminationException; | ||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaOutOfStudyRegionException; | ||
import fr.cnes.dynvol.opera. | import fr.cnes.dynvol.opera.exceptions.OperaStelaPropagationException; | ||
import fr.cnes.dynvol.opera. | |||
import fr.cnes.dynvol.opera. | |||
import fr.cnes.sirius.addons.patriusdataset.PatriusDataset; | import fr.cnes.sirius.addons.patriusdataset.PatriusDataset; | ||
import fr.cnes.sirius.patrius.math.util.FastMath; | |||
import fr.cnes.sirius.patrius.propagation.analytical.tle.TLE; | import fr.cnes.sirius.patrius.propagation.analytical.tle.TLE; | ||
import fr.cnes.sirius.patrius.utils.exception.PatriusException; | import fr.cnes.sirius.patrius.utils.exception.PatriusException; | ||
/** | |||
* Tutorial for estimating LEO maneuvers with OPERA. | |||
class | |||
* @author goesterjf | |||
* | |||
*/ | |||
public class LEOManeuversEstimation { | public class LEOManeuversEstimation { | ||
Ligne 55 : | Ligne 62 : | ||
final OperaLEOManoeuvers manInfo = tleForMan.estimateLEOManoeuvers(); | final OperaLEOManoeuvers manInfo = tleForMan.estimateLEOManoeuvers(); | ||
final int manNum = manInfo. | final int manNum = manInfo.getSmaManoeuvers().size(); | ||
// manNum = ManInfo.getIncManoeuvers().size(); | // manNum = ManInfo.getIncManoeuvers().size(); | ||
Ligne 62 : | Ligne 69 : | ||
System.out.println("Maneuver #"+iMan); | System.out.println("Maneuver #"+iMan); | ||
System.out.println(" maneuver date: " + OperaDateManager.cnesJulianDate2AbsoluteDate(manInfo.getSmaManoeuversDates().get(iMan))); | System.out.println(" maneuver date: " + OperaDateManager.cnesJulianDate2AbsoluteDate(manInfo.getSmaManoeuversDates().get(iMan))); | ||
System.out.println(" maneuver dga: " + manInfo. | System.out.println(" maneuver dga: " + manInfo.getSmaManoeuvers().get(iMan).getSma() + " m"); | ||
System.out.println(" maneuver inc: " + FastMath.toDegrees(manInfo.getIncManoeuvers().get(iMan).getInc()) + " deg"); | |||
} | } | ||
Dernière version du 3 avril 2020 à 15:39
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.SortedSet;
import fr.cnes.dynvol.opera.calc.TLE.OperaLEOManoeuvers;
import fr.cnes.dynvol.opera.calc.TLE.OperaTLEManoeuvres;
import fr.cnes.dynvol.opera.calc.TLE.OperaTLESeries;
import fr.cnes.dynvol.opera.calc.enums.DetectionType;
import fr.cnes.dynvol.opera.calc.model.OperaTLE;
import fr.cnes.dynvol.opera.calc.util.OperaDateManager;
import fr.cnes.dynvol.opera.calc.util.OperaReadUtils;
import fr.cnes.dynvol.opera.calc.util.OperaTleManager;
import fr.cnes.dynvol.opera.configuration.OperaConfigurationProperties;
import fr.cnes.dynvol.opera.exceptions.OperaDurationException;
import fr.cnes.dynvol.opera.exceptions.OperaException;
import fr.cnes.dynvol.opera.exceptions.OperaInitialProcessException;
import fr.cnes.dynvol.opera.exceptions.OperaInterpolationException;
import fr.cnes.dynvol.opera.exceptions.OperaMaxIterationException;
import fr.cnes.dynvol.opera.exceptions.OperaOrbitDeterminationException;
import fr.cnes.dynvol.opera.exceptions.OperaOutOfStudyRegionException;
import fr.cnes.dynvol.opera.exceptions.OperaStelaPropagationException;
import fr.cnes.sirius.addons.patriusdataset.PatriusDataset;
import fr.cnes.sirius.patrius.math.util.FastMath;
import fr.cnes.sirius.patrius.propagation.analytical.tle.TLE;
import fr.cnes.sirius.patrius.utils.exception.PatriusException;
/**
* Tutorial for estimating LEO maneuvers with OPERA.
class
* @author goesterjf
*
*/
public class LEOManeuversEstimation {
public static void main(String[] args) throws IOException, PatriusException, OperaException,
ParseException, OperaOrbitDeterminationException, OperaDurationException, OperaInterpolationException,
OperaMaxIterationException, OperaStelaPropagationException, OperaOutOfStudyRegionException, OperaInitialProcessException {
// Patrius Dataset initialization (needed for example to get the UTC time)
PatriusDataset.addResourcesFromPatriusDataset() ;
// Opera properties configuration
final OperaConfigurationProperties conf = OperaReadUtils.getConfigurationProperties("data/opera-configuration.properties");
conf.setManDetectMethod(DetectionType.FREQUENTIAL);
// TLEs initialization
final int noradId = 10479;
final SortedSet<TLE> tlesSet = OperaTleManager.readTLEs("data/tles", noradId, true, "txt");
// TLEs selection
final double historyDuration = 80.;
final double endOfHistoryCJD = 22605.0;
final List<OperaTLE> tles = OperaTleManager.selectTLEs(tlesSet, endOfHistoryCJD, historyDuration);
// TLE series for maneuvers estimation
final OperaTLESeries tleSeries = new OperaTLESeries(tles);
final OperaTLEManoeuvres tleForMan = new OperaTLEManoeuvres(tleSeries);
// Maneuvers estimation
final OperaLEOManoeuvers manInfo = tleForMan.estimateLEOManoeuvers();
final int manNum = manInfo.getSmaManoeuvers().size();
// manNum = ManInfo.getIncManoeuvers().size();
System.out.println("Amount of maneuvers: " + manNum);
for (int iMan = 0; iMan < manInfo.getSmaManoeuversDates().size(); iMan++) {
System.out.println("Maneuver #"+iMan);
System.out.println(" maneuver date: " + OperaDateManager.cnesJulianDate2AbsoluteDate(manInfo.getSmaManoeuversDates().get(iMan)));
System.out.println(" maneuver dga: " + manInfo.getSmaManoeuvers().get(iMan).getSma() + " m");
System.out.println(" maneuver inc: " + FastMath.toDegrees(manInfo.getIncManoeuvers().get(iMan).getInc()) + " deg");
}
}
}