1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.adm.aem;
18
19 import java.util.ArrayList;
20 import java.util.HashMap;
21 import java.util.List;
22 import java.util.Map;
23
24 import org.orekit.data.DataContext;
25 import org.orekit.files.ccsds.ndm.NdmConstituent;
26 import org.orekit.files.ccsds.ndm.adm.AdmHeader;
27 import org.orekit.files.general.AttitudeEphemerisFile;
28 import org.orekit.utils.IERSConventions;
29 import org.orekit.utils.TimeStampedAngularCoordinates;
30
31
32
33
34
35
36
37
38 public class Aem extends NdmConstituent<AdmHeader, AemSegment>
39 implements AttitudeEphemerisFile<TimeStampedAngularCoordinates, AemSegment> {
40
41
42 public static final String ROOT = "aem";
43
44
45 public static final String FORMAT_VERSION_KEY = "CCSDS_AEM_VERS";
46
47
48
49
50
51
52
53 public Aem(final AdmHeader header, final List<AemSegment> segments,
54 final IERSConventions conventions, final DataContext dataContext) {
55 super(header, segments, conventions, dataContext);
56 }
57
58
59 @Override
60 public Map<String, AemSatelliteEphemeris> getSatellites() {
61 final Map<String, List<AemSegment>> byId = new HashMap<>();
62 for (final AemSegment segment : getSegments()) {
63 final String id = segment.getMetadata().getObjectID();
64 byId.putIfAbsent(id, new ArrayList<>());
65 byId.get(id).add(segment);
66 }
67 final Map<String, AemSatelliteEphemeris> ret = new HashMap<>();
68 for (final Map.Entry<String, List<AemSegment>> entry : byId.entrySet()) {
69 ret.put(entry.getKey(), new AemSatelliteEphemeris(entry.getKey(), entry.getValue()));
70 }
71 return ret;
72 }
73
74 }