使用 Python-3 跟踪鸟类迁徙
在一些研究工作中,研究员使用 GPS 模块跟踪动物行为。他们能追踪它们在一年中的不同时间如何前往不同的地点等。
在这个示例中,我们使用这种数据集来了解鸟类如何在不同的地方移动。这个数据集存储了从 GPS 模块获得的位置信息。 完整的数据集采用 CSV 格式。在这个文件中,有不同的字段。第一个是鸟类的 ID,然后是日期时间、纬度、经度和速度。
对于此任务,我们需要一些可以在 Python 代码中使用的模块。
我们使用 matplotlib、pandas 和 cartopy 模块。若要在 Anaconda 中安装它们,请遵循以下命令。它在需要时将安装一些其他重要模块。
conda install -c conda-forge matplotlib conda install -c anaconda pandas conda install -c scitools/label/archive cartopy
首先,我们将使用纬度和经度值绘制位置。因为数据集中有两个鸟,所以使用两种不同的颜色,我们可以可视化追踪位置
示例代码
import pandas as pd from matplotlib import pyplot as plt df = pd.read_csv('bird_tracking.csv') cr = df.groupby('bird_id').groups cr_groups = df.groupby('bird_id') group_list = [] for group in cr: group_list.append(group) plt.figure(figsize=(7, 7)) #Create graph from dataset using the first group of cranes for group in group_list: x,y = cr_groups.get_group(group).longitude, cr_groups.get_group(group).latitude plt.plot(x,y, marker='o', markersize=2) plt.show()
输出
现在,我们可以在真实的地理地图上绘制此追踪结果,以可视化那些鸟类使用的的确切路径。
示例代码
import pandas as pd import cartopy.crs as ccrs import cartopy.feature as cfeature import matplotlib.pyplot as plt df = pd.read_csv("bird_tracking.csv") bird_id = pd.unique(birddata.bird_id) # Setup the projection to display the details into map projection = ccrs.Mercator() plt.figure(figsize=(7,7)) axes = plt.axes(projection=projection) axes.set_extent((-30.0, 25.0, 50.0, 10.0)) axes.add_feature(cfeature.LAND) axes.add_feature(cfeature.OCEAN) axes.add_feature(cfeature.COASTLINE) axes.add_feature(cfeature.BORDERS, linestyle=':') for id in bird_id: index = df['bird_id'] == id x = df.longitude[index] y = df.latitude[index] axes.plot(x,y,'.', transform=ccrs.Geodetic(), label=id) plt.legend(loc="lower left") plt.show()
输出
广告