使用python程序从终端提取gpsd输出

时间:2018-04-10 05:52:35

标签: python raspberry-pi3 gpsd

我确实从python程序运行了一个与GPS相关的命令。

sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock
cgps -s

现在我想在我的python代码中使用像纬度和经度这样的信息。我怎样才能获得这些数据? 并且这些纬度和经度值将不断变化。那么我可以使用python获取值吗? 上面命令的输出就像这样

┌───────────────────────────────────────────┐┌─────────────────────────────────┐
│    Time:       2018-04-10T05:49:46.000Z   ││PRN:   Elev:  Azim:  SNR:  Used: │
│    Latitude:    12.945873 N               ││   1    08    177    23      Y   │
│    Longitude:   77.569187 E               ││   3    35    195    29      Y   │
│    Altitude:   913.1 m                    ││   7    22    313    09      Y   │
│    Speed:      1.2 kph                    ││   8    54    127    24      Y   │
│    Heading:    0.0 deg (true)             ││   9    44    335    25      Y   │
│    Climb:      0.0 m/min                  ││  11    20    168    21      Y   │
│    Status:     3D FIX (158 secs)          ││  16    15    032    00      Y   │
│    Longitude Err:   +/- 12 m              ││  18    10    154    00      Y   │
│    Latitude Err:    +/- 6 m               ││  22    21    175    26      N   │
│    Altitude Err:    +/- 17 m              ││  23    75    038    10      N   │
│    Course Err:      n/a                   ││  27    37    068    14      N   │
│    Speed Err:       +/- 87 kph            ││  28    18    231    00      N   │
│    Time offset:     0.727                 ││  30    08    292    00      N   │
│    Grid Square:     MK82sw                ││                                 │
└───────────────────────────────────────────┘└─────────────────────────────────┘

1 个答案:

答案 0 :(得分:-1)

您可以使用正则表达式:

<强>实施例

s = """
┌───────────────────────────────────────────┐┌─────────────────────────────────┐
│    Time:       2018-04-10T05:49:46.000Z   ││PRN:   Elev:  Azim:  SNR:  Used: │
│    Latitude:    12.945873 N               ││   1    08    177    23      Y   │
│    Longitude:   77.569187 E               ││   3    35    195    29      Y   │
│    Altitude:   913.1 m                    ││   7    22    313    09      Y   │
│    Speed:      1.2 kph                    ││   8    54    127    24      Y   │
│    Heading:    0.0 deg (true)             ││   9    44    335    25      Y   │
│    Climb:      0.0 m/min                  ││  11    20    168    21      Y   │
│    Status:     3D FIX (158 secs)          ││  16    15    032    00      Y   │
│    Longitude Err:   +/- 12 m              ││  18    10    154    00      Y   │
│    Latitude Err:    +/- 6 m               ││  22    21    175    26      N   │
│    Altitude Err:    +/- 17 m              ││  23    75    038    10      N   │
│    Course Err:      n/a                   ││  27    37    068    14      N   │
│    Speed Err:       +/- 87 kph            ││  28    18    231    00      N   │
│    Time offset:     0.727                 ││  30    08    292    00      N   │
│    Grid Square:     MK82sw                ││                                 │
└───────────────────────────────────────────┘└─────────────────────────────────┘
"""
import re
print re.findall("(?:Longitude:).*(?=E )", s)
print re.findall("(?:Latitude:).*(?=N )", s)

<强>输出:

['Longitude:   77.569187 ']
['Latitude:    12.945873 ']