“space-track-api”包的小型异步包装器。
aio-space-track-api的Python项目详细描述
AsyncSpaceTrackAPI异步客户端
“空间跟踪API”包的小型异步包装器。
要求
- python>;=3.5.0
- 空间轨迹API>;1.0.0
- aiohttp>;=2.0.7
安装
pip install aio-space-track-api
开始
要从太空轨道中检索某些内容:
# -*- coding: utf-8 -*-importasynciofrompprintimportpprintfromaio_space_track_apiimportAsyncSpaceTrackApiasyncdefmain(loop):asyncwithAsyncSpaceTrackApi(loop=loop,login='<YOUR_LOGIN>',password='<YOUR_PASSWORD>')asapi:tle_list=awaitapi.tle(EPOCH='>now-3',NORAD_CAT_ID=(25544,25541,),order_by=('EPOCH desc','NORAD_CAT_ID',),predicate=('EPOCH','NORAD_CAT_ID','TLE_LINE0','TLE_LINE1','TLE_LINE2',))pprint(tle_list,indent=2)if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(main(loop))
创建简单的代理空间跟踪服务器:
# -*- coding: utf-8 -*-fromaiohttpimportwebfromaio_space_track_apiimportAsyncSpaceTrackApiasyncdefquery(request):params={mvk:request.query.getall(mvk)formvkinrequest.query.keys()}result=awaitapp['space_track'].query(**params)ifisinstance(result,(dict,list)):returnweb.json_response(result)elifisinstance(result,str):returnweb.Response(text=result)returnweb.Response(body=result)asyncdefstart_space_track(app):app['space_track']=AsyncSpaceTrackApi(loop=app.loop,login='<YOUR_LOGIN>',password='<YOUR_PASSWORD>')awaitapp['space_track'].login()asyncdefcleanup_space_track(app):awaitapp['space_track'].logout()app['space_track'].session.close()if__name__=='__main__':app=web.Application()app.on_startup.append(start_space_track)app.on_cleanup.append(cleanup_space_track)app.router.add_get('/',query)web.run_app(app,port=8080)
使用“httpie”<;https://github.com/jakubroztocil/httpie>;包检索:
$ http 'http://localhost:8080/?EPOCH=>now-2&NORAD_CAT_ID=25544&order_by=EPOCH%20desc&order_by=NORAD_CAT_ID&predicate=NORAD_CAT_ID&predicate=EPOCH&NORAD_CAT_ID=25541&predicate=TLE_LINE0&predicate=TLE_LINE1&predicate=TLE_LINE2' HTTP/1.1 200 OK Content-Length: 787 Content-Type: application/json; charset=utf-8 Date: Fri, 19 May 2017 15:36:30 GMT Server: Python/3.6 aiohttp/2.0.7 [ { "EPOCH": "2017-05-18 12:54:34", "NORAD_CAT_ID": "25544", "TLE_LINE0": "0 ISS (ZARYA)", "TLE_LINE1": "1 25544U 98067A 17138.53789694 +.00010471 +00000-0 +16649-3 0 9993", "TLE_LINE2": "2 25544 051.6431 186.1005 0005417 167.7458 303.2068 15.53904648057142" }, { "EPOCH": "2017-05-18 01:38:13", "NORAD_CAT_ID": "25541", "TLE_LINE0": "0 ARIANE 44LP DEB", "TLE_LINE1": "1 25541U 88109H 17138.06821101 +.00000205 +00000-0 +11912-2 0 9995", "TLE_LINE2": "2 25541 006.9551 084.3526 7116887 037.1179 355.1935 02.36325430158541" }, { "EPOCH": "2017-05-17 18:20:34", "NORAD_CAT_ID": "25544", "TLE_LINE0": "0 ISS (ZARYA)", "TLE_LINE1": "1 25544U 98067A 17137.76428422 +.00000891 +00000-0 +20809-4 0 9995", "TLE_LINE2": "2 25544 051.6403 189.9518 0005214 167.7282 292.6823 15.54019900057027" } ]
源代码
github存储库中提供了最新的开发人员版本: https://github.com/nkoshell/aio-space-track-api