Cartopy地图中实时更新国际空间站的位置

问题描述 投票:0回答:1

我正在使用简单的脚本,使用Cartopy在世界地图上定位ISS。这是代码及其输出

import requests
from datetime import datetime
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

# finding the current location   
url = 'http://api.open-notify.org/iss-now.json'

r = requests.get(url)
data = r.json()

dt = data['timestamp']
lat = data['iss_position']['latitude']
lon = data['iss_position']['longitude']

print('Date and time : ',datetime.fromtimestamp(dt))
print('Latitude :',lat)
print('Longitude :',lon)

# plotting the location on map
plt.figure(figsize=(10,8))   
ax = plt.axes(projection=ccrs.PlateCarree())
ax.stock_img()

# lon lat
plt.scatter(float(lon),float(lat),color='blue', marker='o')
plt.show()

这部分工作正常,这是输出。

Currently ISS is near Australia

现在,我想要的是每30秒向url发出一个请求,然后在地图上绘制该位置以清除先前的位置。是否可以用matplotlib做。我对matplotlib不太了解。请帮助。

我当前的代码每次都会创建带有散点图的新图。我只希望删除当前位置和先前位置的一张地图。

这是我当前的代码

import requests
import matplotlib.pyplot as plt
import time
import cartopy.crs as ccrs

url = 'http://api.open-notify.org/iss-now.json'

plt.figure(figsize=(10,8))

ax = plt.axes(projection=ccrs.PlateCarree())
ax.stock_img()

plt.ion()

while True:
    r = requests.get(url)
    data = r.json()

    dt = data['timestamp']
    lat = data['iss_position']['latitude']
    lon = data['iss_position']['longitude']

    plt.scatter(float(lon),float(lat),color='blue', marker='o')
    plt.show()
    time.sleep(30)
python matplotlib maps cartopy
1个回答
0
投票
matplotlib.animation.FuncAnimation
© www.soinside.com 2019 - 2024. All rights reserved.