1 from __future__
import division, absolute_import
4 from StringIO
import StringIO
8 from tcc.base import Obj, ChebyshevPolynomial, PxPMRadVel
9 from .fieldWrapper
import boolFromStr, tokenize
11 __all__ = [
"loadOldObjData"]
13 def _getPVTCoord(meanSysName, posName, dataDict):
14 """!Retrieve PVTCoord data from a data dict from an old Obj data file
16 pvtX = coordConv.PVT(*(float(val)
for val
in dataDict[posName +
"1"]))
17 pvtY = coordConv.PVT(*(float(val)
for val
in dataDict[posName +
"2"]))
19 if meanSysName
is not None:
20 pm1, pm2, px, rv = (float(val)
for val
in dataDict[meanSysName])
21 distPVT = coordConv.PVT(coordConv.distanceFromParallax(px), 0, taiDate)
22 meanArgs = (distPVT, pm1, pm2, rv)
25 return coordConv.PVTCoord(pvtX, pvtY, *meanArgs)
28 """!Read old format Obj data file into a new Obj
30 @param[in] filePath path to data file
31 @return obj: an Obj block with most fields filled in
36 dataDict = collections.OrderedDict()
39 validNames = set(val.lower()
for val
in (
43 "userArcOff1",
"userArcOff2",
44 "guideoff1",
"guideoff2",
"guideoff3",
45 "caliboff1",
"caliboff2",
"caliboff3",
49 oldNewNameDict = dict((val[0].lower(), val[1].lower())
for val
in (
50 (
"rot_type",
"rotType"),
51 (
"az_wrapPref",
"azWrapPref"),
52 (
"rot_wrapPref",
"rotWrapPref"),
53 (
"pvtEndTime",
"updateTime"),
54 (
"obj_inst_xy1",
"objInstXY1"),
55 (
"obj_inst_xy2",
"objInstXY2"),
56 (
"arcuser_noarcuser_ang",
"arcUserNoArcUserAng"),
57 (
"objuser_objaz_ang",
"objUserObjAzAng"),
58 (
"spider_inst_ang",
"spiderInstAng"),
59 (
"objaz_inst_ang",
"objAzInstAng"),
60 (
"objuser_inst_ang",
"objUserInstAng"),
61 (
"rotaz_rot_ang",
"rotAzRotAng"),
62 (
"spider_inst_ang",
"spiderInstAng"),
63 (
"rot_phys",
"rotPhys"),
64 (
"azalt_mt1",
"targetMount1"),
65 (
"azalt_mt2",
"targetMount2"),
66 (
"rot_mt",
"targetMount3"),
67 (
"mountCmdState",
"axisCmdState"),
68 (
"mountErrCode",
"axisErrCode"),
70 oldNewNameDict.update(dict((name, name)
for name
in validNames))
73 obsoletes = set(val.lower()
for val
in (
91 pvtNames = set(val.lower()
for val
in (
131 with file(filePath,
"rU")
as f:
136 if line[0]
in (
"#",
"!"):
139 key = dataList[0].lower()
145 if len(dataList) != 4:
146 raise RuntimeError(
"Expected 3 values for %s but got %s" % (key, line))
147 if float(dataList[3]) <= 0:
149 if key
in oldNewNameDict:
150 dataList[0] = oldNewNameDict[key]
152 newLine =
" ".join(repr(val)
for val
in dataList)
153 strFile.writelines((newLine,
"\n"))
155 dataDict[key] = dataList[1:]