« Tutorial ReentryEstimation » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « <syntaxhighlight lang="java"> import java.io.IOException; import java.text.ParseException; import java.util.List; import java.util.SortedSet; import fr.cnes.dynvol.opera.... ») |
Aucun résumé des modifications |
||
Ligne 24 : | Ligne 24 : | ||
import fr.cnes.sirius.patrius.utils.exception.PatriusException; | import fr.cnes.sirius.patrius.utils.exception.PatriusException; | ||
public class ReentryEstimation { | public class ReentryEstimation { | ||
Version du 21 janvier 2020 à 09:02
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.SortedSet;
import fr.cnes.dynvol.opera.configuration.OperaConfigurationProperties;
import fr.cnes.dynvol.opera.model.OperaReentryResult;
import fr.cnes.dynvol.opera.model.OperaSolarActivityRow;
import fr.cnes.dynvol.opera.model.OperaTLE;
import fr.cnes.dynvol.opera.simulation.OperaDurationException;
import fr.cnes.dynvol.opera.simulation.OperaException;
import fr.cnes.dynvol.opera.simulation.OperaInitialProcessException;
import fr.cnes.dynvol.opera.simulation.OperaInterpolationException;
import fr.cnes.dynvol.opera.simulation.OperaMaxIterationException;
import fr.cnes.dynvol.opera.simulation.OperaOrbitDeterminationException;
import fr.cnes.dynvol.opera.simulation.OperaOutOfStudyRegionException;
import fr.cnes.dynvol.opera.simulation.OperaReentrySimulation;
import fr.cnes.dynvol.opera.simulation.OperaStelaPropagationException;
import fr.cnes.dynvol.opera.util.OperaReadUtils;
import fr.cnes.dynvol.opera.util.OperaSolarActivity;
import fr.cnes.dynvol.opera.util.OperaTleManager;
import fr.cnes.sirius.patrius.propagation.analytical.tle.TLE;
import fr.cnes.sirius.patrius.utils.exception.PatriusException;
public class ReentryEstimation {
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)
OperaReadUtils.iniPatriusDataset(null);
// Opera properties configuration
//final OperaConfigurationProperties conf = OperaConfigurationProperties.getConfigurationProperties("data/opera-configuration.properties");
final OperaConfigurationProperties conf = OperaReadUtils.getConfigurationProperties("data/opera-configuration.properties");
// Solar activity initialization
final String realPath = "data/solar/ACSOL_REAL.act";
final String predPath = "data/solar/ACSOL_PREDICTED.act";
final double switchCJD = 22700.0;
final List<OperaSolarActivityRow> solarActivity = OperaSolarActivity.getSolarActivityFromFile(realPath, predPath, switchCJD);
// TLEs initialization
final int noradId = 10479;
final SortedSet<TLE> tlesSet = OperaTleManager.readTLEs("data/tles", noradId, false, "txt");
// TLEs selection
final double historyDuration = 80.;
final double endOfHistoryCJD = 22605.0;
final List<OperaTLE> tles = OperaTleManager.selectTLEs(tlesSet, endOfHistoryCJD, historyDuration);
// Reentry estimation computation
final OperaReentrySimulation simulation = new OperaReentrySimulation(conf, solarActivity);
final OperaReentryResult result = simulation.estimateReentry(tles);
System.out.println("Reentry date with " + historyDuration +" days interval: "+result.getReentryDate());
System.out.println("Error estimation: " + result.getErrorEstimationDays() + "days");
System.out.println("Estimated S/M: " + result.getSmDragRefined() + "m2/kg");
}
}