openspace.space.documentation = { { Name = "tleToSpiceTranslation", Arguments = { { "tlePath", "String" } }, Return = "( Translation, SpiceKernel )", Documentation = [[ Takes the provided TLE file, converts it into a SPICE kernel and returns a SpiceTranslation instance that can be used to access the information in the TLE file using SPICE's superior integral solver. The second return value is the spice kernel that should be loaded and unloaded by whoever called this function. ]] } } openspace.space.tleToSpiceTranslation = function(tlePath) -- -- First we have to create a name for the temporary file -- -- We first pass the path through the absPath function to both get rid of path tokens, -- but more importantly harmonize the path separators so we don't have to deal with -- / and \ variants tlePath = openspace.absPath(tlePath) -- We don't have a function to return the file component so we extract the directory -- and remove as many characters as it is long instead local dirComponent = openspace.directoryForPath(tlePath) -- +2 because the sub function is inclusive and we have a trailing \ or / at the end local filename = tlePath:sub(dirComponent:len() + 2, tlePath:len()) local temporaryFile = openspace.absPath("${TEMPORARY}/" .. filename .. ".bsp") -- Now the temporary file for, for example ISS.txt will be the solution for: -- ${TEMPORARY}/ISS.txt.bsp local id = openspace.spice.convertTLEtoSPK(tlePath, temporaryFile) local translation = { Type = "SpiceTranslation", Target = tostring(id), Observer = "Earth", Frame = "J2000" } return translation, temporaryFile end