Hi all,
I’ve been working on validating my use of Orekit’s atmospheric density models, as I recently discovered that NRLMSISE-00 needs to be run in “storm mode” for the Ap index to switch from daily resolution to 3-hourly… (Would it be worth clarifying this in the documentation?)
Validating NRLMSISE-00 was straightforward using the pymsis
package, but I’m struggling to validate my setup for DTM-2000.
I haven’t found any published results using DTM-2000 for relatively short arcs. The closest comparison I found is a DTM-2013 run from He et al. (2023; DOI: 10.1029/2023SW003521
). My results are reasonably similar, but since they come from different models, I’m unsure whether my implementation is correct.
All I’m trying to do is query the density for a given ECI position and time while using the higher-resolution AGI space weather indices instead of the default msafe ones. Here’s my current implementation:
def query_dtm2000(position, datetime):
frame = FramesFactory.getEME2000()
wgs84Ellipsoid = ReferenceEllipsoid.getWgs84(FramesFactory.getITRF(IERSConventions.IERS_2010, True))
cssi_sw_data = CssiSpaceWeatherData(CssiSpaceWeatherData.DEFAULT_SUPPORTED_NAMES)
sun = CelestialBodyFactory.getSun()
atmosphere = DTM2000(cssi_sw_data, sun, wgs84Ellipsoid)
absolute_date = datetime_to_absolutedate(datetime)
position_vector = Vector3D(float(position[0]), float(position[1]), float(position[2]))
density = atmosphere.getDensity(absolute_date, position_vector, frame)
return density
I realize this is a bit of an odd request, but if anyone has experience with this model, I’d love to see how you’ve implemented it. Any advice would be greatly appreciated!
For context, here is the density profile from He et al. (2023):
And mine.