Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python-3을 사용하여 조류 이동 추적

<시간/>

일부 연구 작업에서 연구원은 GPS 모듈을 사용하여 동물의 행동을 추적합니다. 1년 중 다른 시기에 다른 장소로 여행하는 방법을 추적할 수 있습니다.

이 예에서 우리는 이러한 종류의 데이터세트를 사용하여 새들이 다른 장소에서 어떻게 움직이는지 아이디어를 얻습니다. 이 데이터 세트에는 GPS 모듈의 위치 세부 정보가 저장되어 있습니다. 전체 데이터 세트는 CSV 형식입니다. 해당 파일에는 다른 필드가 있습니다. 첫 번째는 Bird Id, 다음은 date_time, 위도, 경도 및 속도입니다.

이 작업을 위해서는 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()

출력

<중앙> Python-3을 사용하여 조류 이동 추적

이제 이 추적 결과를 실제 지리 지도에 표시하여 새들이 사용하는 정확한 방법을 시각화할 수 있습니다.

예시 코드

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

출력

<중앙> Python-3을 사용하여 조류 이동 추적