我有一个朋友正在完成他的航空航天工程硕士学位。对于他的最后一个项目,他在一个小团队中负责编写一个跟踪气象气球、火箭和卫星的程序。该程序接收来自 GPS 设备的输入,对数据进行计算,并使用这些计算的结果来控制一系列电机,这些电机旨在定位定向通信天线,因此气球、火箭或卫星始终保持焦点。
虽然我自己有点(永恒的)初学者,但我比我的朋友有更多的编程经验。因此,当他向我征求意见时,我说服他用我选择的语言 Python 编写程序。
在项目的这一点上,我们正在处理解析来自 GPS 设备的输入的代码。这是一些示例输入,我们需要提取的数据以粗体显示:
$GPRMC,092204.999, 4250.5589,S,14718.5084,E ,1,12,24.4, 89.6 ,M,,,0000*1F $GPRMC,093345.679, 4234.7899,N,11344.2567, W , 3,02,24.5,0.1 ,,,0000*1F $GPRMC,044584.936, 1276.5539,N,88734.1543,E ,2,04,33.5, 600.323 ,M,,,*00 $GPRMC,199304.973, 3248.7780,N,11355.7832,W ,1, 02.2, 25722.5 ,M,,,*00 $GPRMC,066487.954, 4572.0089,S,45572.3345,W ,3,09,15.0, 35000.00 ,M,,,*1F
以下是对数据的进一步解释:
“我看起来每行都需要五件东西。请记住,这些区域中的任何一个都可能是空的。这意味着彼此旁边只有两个逗号。例如',,'是两个随时可能满员的领域。他们中的一些人可能只有两个或三个选项,但我认为我不应该指望这一点。
两天前,我的朋友能够从用于跟踪最近气象气球发射的 GPS 接收器获取完整日志。数据很长,所以我把它都放在了这个 pastebin中。
我自己对正则表达式还是很陌生,所以我正在寻求一些帮助。