为什么使用 python 的 GPS 输出为零或 Nan?

2023-12-13

我在 GPS 输出方面遇到问题。当我输入:

$ cat /dev/ttyUSB0

我有 NMEA 句子出来(这就是我想要的)

$GPGGA,134131.000,4548.0018,N,01557.1026,E,1,06,1.5,123.8,M,42.4,M,,0000*56

$GPGSA,A,3,12,15,24,17,22,18,,,,,,,2.3,1.5,1.8*30

$GPGSV,3,1,12,24,76,320,29,12,49,254,44,15,42,195,17,17,38,057,15*7A

$GPGSV,3,2,12,25,15,249,,09,12,112,,26,11,162,,18,09,267,19*75

$GPGSV,3,3,12,22,08,297,23,14,08,323,,04,06,114,,28,03,061,*78

$GPRMC,134131.000,A,4548.0018,N,01557.1026,E,1.71,291.64,210513,,,A*67

但是,当我尝试使用 python 查看输出时(这是基本代码):

import gps
session=gps.gps('localhost','2947')
session.stream()
print session

我懂了:

Time:      (nan)
Lat/Lon:  0.000000 0.000000
Altitude: ?
Speed:    ?
Track:    ?
Status:   STATUS_NO_FIX
Mode:     MODE_NO_FIX
Quality:  0 p=0.00 h=0.00 v=0.00 t=0.00 g=0.00
Y: 0 satellites in view:

我尝试了别人的代码,但它总是显示 NaN 或 0:

    #! /usr/bin/python

# Written by Dan Mandle http://dan.mandle.me September 2012

# License: GPL 2.0

import os

from gps import *

from time import *

import time

import threading

gpsd = None #seting the global variable

os.system('clear') #clear the terminal (optional)

class GpsPoller(threading.Thread):

 def __init__(self):

    threading.Thread.__init__(self)

    global gpsd #bring it in scope

    gpsd = gps(mode=WATCH_ENABLE) #starting the stream of info

     self.current_value = None

    self.running = True #setting the thread running to true

 def run(self):

    global gpsd

    while gpsp.running:

     gpsd.next() #this will continue to loop and grab EACH set of gpsd info to$

if __name__ == '__main__':

 gpsp = GpsPoller() # create the thread

 try:

    gpsp.start() # start it up

    while True:

     #It may take a second or two to get good data

     #print gpsd.fix.latitude,', ',gpsd.fix.longitude,'  Time: ',gpsd.utc

     os.system('clear')

     print

     print ' GPS reading'

    print '----------------------------------------'

     print 'latitude    ' , gpsd.fix.latitude
    print 'longitude   ' , gpsd.fix.longitude

     print 'time utc    ' , gpsd.utc,' + ', gpsd.fix.time

     print 'altitude (m)' , gpsd.fix.altitude

     print 'eps         ' , gpsd.fix.eps

     print 'epx         ' , gpsd.fix.epx

     print 'epv         ' , gpsd.fix.epv

     print 'ept         ' , gpsd.fix.ept

     print 'speed (m/s) ' , gpsd.fix.speed

    print 'climb       ' , gpsd.fix.climb

     print 'track       ' , gpsd.fix.track

     print 'mode        ' , gpsd.fix.mode

     print

     print 'sats        ' , gpsd.satellites

     time.sleep(5) #set to whatever

Output:

 GPS reading
----------------------------------------
latitude     0.0
longitude    0.0
time utc       +  nan
altitude (m) nan
eps          nan
epx          nan
epv          nan
ept          nan
speed (m/s)  nan
climb        nan
track        nan
mode         1

sats         []

那么有人知道为什么这全是零并且未知吗?

请帮忙,我正在尝试修复它一周。

Thanks


我也有类似的问题python-gps封装在树莓派。切换到gps3为我做了这个伎俩:

from time import sleep
from gps3.agps3threaded import AGPS3mechanism

agps_thread = AGPS3mechanism()
agps_thread.stream_data()
agps_thread.run_thread()

while True:
    print('{},{}'.format(agps_thread.data_stream.lat, agps_thread.data_stream.lon))
    sleep(2)

话虽如此,第一项始终是n/a,n/a由于某种原因,但后续值显示正确的数据,而之前的情况并非如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用 python 的 GPS 输出为零或 Nan? 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 如何在 python 中没有 csv.reader 迭代器的情况下解析单行 csv 字符串?

    我有一个 CSV 文件 需要重新排列和重新编码 我想跑 line line decode windows 1250 encode utf 8 在由 CSV 读取器解析和分割之前的每一行 或者我想自己迭代行 运行重新编码 并仅使用单行解析表单
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • onclick() 函数可以不与调用它的元素同名吗? [复制]

    这个问题在这里已经有答案了 所以我有这个按钮元素 无论我做什么 它都会拒绝触发它的 onclick 函数 这让我发疯了一段时间
  • htaccess 重写 url,如 Stack Overflow

    Stack Overflow 生成重写 URL 所以我需要知道如何像 Stack Overflow 那样做到这一点 http stackoverflow com questions 9168364 how to rewrite seo fr
  • 在 foreach 循环中使用字符串变量检索图像资源

    我有一个字符串数组 abc 我把它放在 foreach 循环中 我想使用 foreach 循环中的值从资源中检索图像并将其放入图片框中 代码如下 char stringArr inputted ToCharArray foreach cha
  • 跨多个用户共享 BigQuery 的缓存

    据我了解 BigQuery 的caching机制是基于每个用户的 但我们希望能够在项目 数据集 表级别上共享缓存 例如 约翰和玛丽都在同一个 Google 项目上工作XYZ 他们喜欢使用 BigQuery 并且都查询表Bar在数据集中Foo
  • 我的rec函数是尾递归的吗?

    这个函数是尾递归的吗 let rec rec algo1 step J if step dSs then J else let a Array init Array2D length1 M fun i gt minby1J i M J le
  • 根据所需长度分割字符串

    有没有一种简单的方法可以根据所需的长度分割字符串 例如 我有一个字符串
  • 如何在主容器中注册类型,但在子容器中解析?

    我有一个统一容器并使用RegisterType使用以下方法注册以下存储库和实现者ContainerControlledLifetimeManager public interface IPersonRepository Person Get
  • 将 C++ string/wchar_t* 转换为 C# 字符串?

    问题 我需要从 C 可执行文件调用 C dll 我使用 COM 它对于 int long 和 bool 工作得很好 但我连一根绳子都拉不起来 IDL 文件说它是一个 BSTR 但我无法正确传递它 也无法检索它 我尝试像使用 VB6 一样使用
  • C++ 中的映射可以接受任何类型的值

    我想在 c 中创建一个可以接受任何类型值的映射 我在 java 中使用 Object 类做了同样的事情 映射但不知道如何在 C 中执行此操作 请帮忙 正如前面的答案正确建议的那样 您不能在 C 中开箱即用 我假设通过 可以接受任何类型的值
  • 由于环境错误而无法安装软件包:[Errno 13]

    在我的 MacOS Mojave 终端中 我想使用 pip 安装 python 包 最后它说 You are using pip version 10 0 1 however version 18 1 is available You sh
  • TypeError:“pygame.Surface”对象不可调用并且 pygame 窗口崩溃

    我对 Pygame 和 Python 很陌生 我刚刚编写了第一个代码 但不知何故我不断收到此错误 TypeError pygame Surface object is not callable 我不知道代码是否有问题 或者只是因为Pygam
  • string_split的结果顺序?

    现在我发现这很棒string split 函数 然后我了解到输出行可以按任意顺序排列 不保证顺序与输入字符串中子字符串的顺序匹配 这使得该功能对我来说毫无用处 也许有解决方法吗 EDIT 例子 SELECT value FROM Strin
  • 当子查询格式错误时,T-SQL 删除表中的所有行[重复]

    这个问题在这里已经有答案了 可能的重复 sql server 2008 Management Studio 不检查我的查询的语法 我今天遇到一个问题 子查询很糟糕 结果是父表中的所有行都被删除 TableA ID Text GUID Tab
  • sed多行替换问题

    我遇到了 sed 替换问题 希望你们中的一位能够帮助我 我确信我错过了一些简单的事情 所以我有一个包含文本和引用的文件 引用本身可以在一行上 也可以跨多行 我希望引用内容单独占一行 作为示例 这里是文件的示例 And he said Thi
  • 发布为 Azure WebJob 在 VS 2013 中不起作用

    我正在尝试使用 Visual Studio 2013 发布一个 Azure 网站以及一些 azure webjobs 我正在关注本教程 我的解决方案具有以下结构 当我尝试将现有项目作为 Web 作业添加到我的 Web 项目中时 我在 项目名
  • 如何清理 Massscan 输出 (-oL)

    我对带有 oL 选项的 Masscan 实用程序生成的输出有疑问 grep able 输出 例如 它输出 Host 143 137 155 7 Ports 80 open tcp Host 177 105 21 41 Ports 8080
  • where_in 和 find_in_set 之间的区别

    我正在处理一个联接查询 其中我必须从包含逗号分隔值的列中获取数据 allowed activity包含1 2 3 4 5 6这就是activity id这是允许的 因此 在查询中 我正在检查当前活动是否允许 为此 我使用了where in并
  • 向 WiX 注册 COM 服务器

    我一直在尝试确定使用 WiX 注册 COM 服务器以创建 Windows Installer 包的最佳解决方案 但我正在努力 在这篇文章中部署工程存档 HOWTO 将 Regsvr32 exe 与 WIX 结合使用 有公开请求 安装警察 通
  • 引起原因:java.sql.SQLException: ORA-01795: 列表中表达式的最大数量为 1000?

    我正在使用 java hibernate Oracle 我有一个包含 3000 多个条目的列表 如果我通过了整个列表 我会得到以下异常 引起原因 java sql SQLException ORA 01795 列表中表达式的最大数量为 10
  • 为什么使用 python 的 GPS 输出为零或 Nan?

    我在 GPS 输出方面遇到问题 当我输入 cat dev ttyUSB0 我有 NMEA 句子出来 这就是我想要的 GPGGA 134131 000 4548 0018 N 01557 1026 E 1 06 1 5 123 8 M 42