Add a NewPureState() which has an empty Spacecraft struct. This will allow State to also be used in the export for OrbitEstimate
ExportConfig
Add Exporter as interface with methods Init(e ExportConfig) and Export(st State). Add a few exporters including ExportCosmo, ExportOE, ExportSC, ExportStations.
Add an attribute of type []Exporter to have a list of exporters.
GroundStation
Add a GroundStation struct which has the following attributes and methods:
Attributes:
RangeNoiseMean float64 (will use normal distribution so this is only the mean)
RangeRateNoiseMean float64 (idem)
Elevation
Frequency
Methods:
OnVisible func(st Snapshot)
Mission
Add computeSTM flag and effectively merge OrbitEstimate and Mission. GMAT has the capability of generating the STM on demand as well, and that makes sense given the similarities.
Mission should be able to make station measurements too. Possibly could that be done by pushing to a channel, something like Mission.SetMeasurementChannel(->someChan (Measurement)) and then in the calling function just wait on measurements to come through.
MissionState
MissionState
toState
NewPureState()
which has an emptySpacecraft
struct. This will allowState
to also be used in the export forOrbitEstimate
ExportConfig
Exporter
as interface with methodsInit(e ExportConfig)
andExport(st State)
. Add a few exporters includingExportCosmo
,ExportOE
,ExportSC
,ExportStations
.[]Exporter
to have a list of exporters.GroundStation
Add a GroundStation struct which has the following attributes and methods:
Mission
computeSTM
flag and effectively mergeOrbitEstimate
andMission
. GMAT has the capability of generating the STM on demand as well, and that makes sense given the similarities.Mission.SetMeasurementChannel(->someChan (Measurement))
and then in the calling function just wait on measurements to come through.