地区的json数据_Python 连接开放航空交通数据,轻松构建航班跟踪应用!

4293e70ccabc33679fa946d51e0b2005.gif

b0287890c965d997cc13e50cccafa323.png

作者 | geomatics 译者 | 弯月,责编 | 郑丽媛 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews)

以下为译文:

我喜欢跟踪位置这个主题,因为感觉像是我有第六感一样。尽管看不到物体,却可以知道物体怎样移动。那么怎样才能获得第六感呢?通常人类只有五种感官。

我认为,既然我们生活在数字时代,那么科技就是我们的第六感。这篇文章将介绍的航班跟踪就是如此。现在已有很多航班跟踪应用,如flightradar24、FlightAware、flightview等,我们能够通过它们监控飞机在地球上的位置。本文不打算讨论这些应用,而是要探讨如何用Python制作自己的航班跟踪应用。

之前我发表过两篇用python跟踪航班的教程。一篇是使用python创建简单的航班跟踪应用,另一篇是使用pandas和bokeh创建航班跟踪应用。那么那两篇文章跟本文有什么区别?主要的区别是数据源。那两篇文章我使用了ADS-B Exchange,而这篇文章将使用Opensky Network。另一个区别就是模块的版本。本文将使用最新的python库,特别是绘图库。所以代码会略有不同。

闲话少说,现在开始介绍怎样通过python使用开放航空交通数据构建航班跟踪应用。本文由几个主题组成,包括:获取数据,导入依赖库,加载基础地图,绘制飞机位置,还有制作“实时”的航班跟踪应用。我们将依次讨论每个部分,在本文结束时,我们将会得到一个在浏览器中运行的航班跟踪应用,如图1所示。

480d835d26d289ddff87cb1e6dbf629b.png

图1 航班跟踪应用

c5314d56556f9e0a16e7c2188cc98900.png

获取航班交通数据

前面说过,本文将使用OpenSky Network提供的开放航空交通数据。OpenSky Network是一个非营利组织,它面向公众提供了开放的航空交通数据,用于研究和非商业用途。这些数据可以通过REST API、Python API和Java API访问。本文我们使用REST API来获取实时的航空交通数据。

使用REST API获取数据,可以通过发送请求来完成。可以使用两种类型的请求。第一种就是根据UNIX时间戳格式的时间,或者ICAO24地址来请求指定的航班。第二种就是使用WGS84坐标系统指定的地区,获取地区内的所有飞机数据。而且,数据访问可以匿名进行,也可以通过注册用户进行。匿名用户的数据分辨率为10秒,注册用户为5秒。

本文我们使用第二种方式。我们使用最小和最大坐标定义一个地区,然后发送查询,获取该地区内的所有飞机数据。例如,如果我们要获取美国上空的所有飞机,那么最小坐标为-125.974,30.038,最大坐标为-68.748,52.214。匿名用户和注册用户使用的查询分别如下所示。

# 匿名用户查询

https://opensky-network.org/api/states/all?lamin=30.038&lomin=-125.974&

lamax=52.214&lomax=-68.748

# 注册用户查询

https://username:password@opensky-network.org/api/states/all?lamin=30.038&lomin=-125.974&

lamax=52.214&lomax=-68.748

在继续阅读之前,我们先来尝试一下这两个请求,确保它们是正确的。将匿名查询复制粘贴到浏览器中。如果能获得如图2所示的响应,就说明是正确的。

4eeb5ae291d141ee85d7619b170020b1.png图2 航空交通数据响应

图2中的响应的格式为JSON,包含两个键。第一个是time,第二个是states,它是一个列表数组,其中包含每架飞机的数据。该列表数组中有许多数据,如ICAO24地址、飞机的呼号、所属国家、时间位置、最后联系、经度、纬度、气压计高度等等。关于数据相应的完整解释和有关OpenSky Network API的进一步说明,请参见OpenSky Network API文档。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值