使用 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()

输出

Map

现在,我们可以在真实的地理地图上绘制此追踪结果,以可视化那些鸟类使用的的确切路径。

示例代码

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()

输出

Geographical Map

更新日期:2019 年 7 月 30 日

333 次浏览

助你开启 职业生涯

完成课程获得认证

立即开始
广告