Hi!
I’m using EventsLogger to collect access data,the code are as follows:
List<EventsLogger.LoggedEvent> allEvents = logger.getLoggedEvents();
for (EventsLogger.LoggedEvent logged : allEvents) {
BooleanDetector detector_temp = (BooleanDetector) logged.getEventDetector();
// TopocentricFrame station = detector_temp.getTopocentricFrame();
SpacecraftState state = logged.getState();
// double azimuth = station.getAzimuth(state.getPVCoordinates().getPosition(),
// state.getFrame(),
// state.getDate());
// double elevation = station.getElevation(state.getPVCoordinates().getPosition(),
// state.getFrame(),
// state.getDate());
// System.out.println(station.getName() + " " +
// (logged.isIncreasing() ? "raising" : "setting") + " " +
// state.getDate() + " " +
// FastMath.toDegrees(azimuth) + " " +
// FastMath.toDegrees(elevation));
System.out.println( "station ID:"+String.valueOf(staID)+" satID :"+String.valueOf(sat.getSatID()) + " "+
(logged.isIncreasing() ? "entering" : "leaving") + " " +
state.getDate() + " " );
}
There are two problems concerned:
First,because I’m using BooleanDetector and have no idea how to retrieve the data like ElevationDetector.So I comment out some of the codes as you can see above.
BooleanDetector detector = BooleanDetector.andCombine(ed, BooleanDetector.notCombine(fd)).withMaxCheck(10).withThreshold(1.0e-3).withHandler(handler);
Second,the access time results are not complete when the satellite was accessible at the very beginning of the computation period.The begin time of the first time-window is missing.I’m not sure if I have to deal with it myself or there is another way.