Select Page

# Tracking Bird Migration Using NumPy Module

by | Mar 19, 2022 | Coding, Python

Home » DIY » Tracking Bird Migration Using NumPy Module

## Introduction of the Project

Hello! Do you like birds? Are you curious to know where all of these birds migrate when climate changes? Today, we will create a simple and efficient code for Tracking Bird Migration with NumPy Module in Python. We will plot their migrations, speed, and location on graphs and maps! Wow, so interesting! So, what are you waiting for? Let’s code it to find their migration route and speed.

## Requirements

1. To run the code, you need Python; you can use VSCode or any python IDE.

2. Pre-installed Numpy, Pandas & Matplotlib Module.

## Steps For Tracking Bird Migration Using NumPy Module

Step 1: Install the modules; if you haven’t it in your system, paste the below command lines in your command prompt and press enter.

pip install matplotlib

pip install pandas

pip install numpy

Step 2: Paste the below code in your IDE/code editor.

## Source Code

```# Import required modules
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import datetime

# To read the CSV file

# To get the unique names of birds
birdNames = pd.unique(birdData.bird_name)

# To store the indices of the bird Eric
i = birdData.bird_name == "Eric"
x,y = birdData.longitude[i], birdData.latitude[i]

# Create a new figure, or activate an existing figure
plt.figure(figsize = (4.5,6))
plt.plot(x,y,"b.")

# Plot each bird in the same figure
plt.figure(figsize = (4.5,6))

# Plot latitude & longitude in graph
for name in birdNames:
i = birdData.bird_name == name
x,y = birdData.longitude[i], birdData.latitude[i]
plt.plot(x,y,".", label=name)

# Labelling Longitute and Latitude
plt.xlabel("Longitude")
plt.ylabel("Latitude")
plt.legend(loc="lower right")

# To get the timestamps of a day
timestamps = []
for k in range(len(birdData)):
timestamps.append(datetime.datetime.strptime(birdData.date_time.iloc[k][:-3], "%Y-%m-%d %H:%M:%S"))
birdData["timestamp"] = pd.Series(timestamps, index = birdData.index)

data = birdData[birdData.bird_name == "Eric"]
times = data.timestamp
elapsed_time = [time-times[0] for time in times]
elapsed_days = np.array(elapsed_time)/datetime.timedelta(days=1)

# To find the mean speed
next_day = 1
inds = []
daily_mean_speed = []
for (i,t) in enumerate(elapsed_days):
if t < next_day:
inds.append(i)
else:
daily_mean_speed.append(np.mean(data.speed_2d[inds]))
next_day += 1
inds = []

# For plotting the graph and labelling
plt.figure(figsize = (5,6))
plt.plot(daily_mean_speed, "rs-")
plt.xlabel(" Day ")
plt.ylabel(" Mean Speed (m/s) ");

# Display all open figures
plt.show()```

## Explanation Of The Code

In the beginning, we imported all the necessary modules into our code.

1. Firstly, we read the CSV file and get the unique names of the birds from it.

2. After this, we get the indices of the bird named Eric and plot the figure using the plot function.

3. After this, we plot latitude and longitude in the second figure using x and y coordinates.

4. We are labeling the x and y-axis using the label function.

5. Now, we are calculating the timestamp for our third figure.

6. After it, we find the mean speed for the same bird – Eric.

7. Then, we plot the graph and label it according to the axis.

8. We have shown the speed in meters per second, and the x-axis represents the days.

9. Finally, we display all the open figures using the show function.

## Output

Below are the results of successfully running the code for Tracking Bird Migration Using the NumPy Module.

Figures 1 and 2. show the migrating route of the birds in terms of latitude and longitude.

Figure 3. shows the graphical representation of the mean speed of a bird per day when observed for a long time.

## Things to Remember

• Install all the required modules before running the code.
• Alter the CSV file path in your code according to your CSV file location.

## Knowledge Evaluator Software Java Project

Introduction The Knowledge Evaluator Software Java Project creates knowledge evaluator software....

## 5 Simple Onam Decoration Ideas You Can Do At Office

In this article, we will explore five simple and exciting decoration ideas that you can easily...

## Attendance Management System Java Project

The Online Attendance Management System Java Project creates a system for colleges and...