Ad Code

Data Science labs blog

Hướng dẫn lập trình ứng dụng phân tích dự báo thời tiết bằng python cơ bản

Hướng dẫn lập trình ứng dụng phân tích dự báo thời tiết bằng python cơ bản



Để lập trình một ứng dụng phân tích và dự báo thời tiết bằng Python, bạn cần sử dụng các thư viện hỗ trợ việc lấy dữ liệu thời tiết và phân tích chúng. Dưới đây là hướng dẫn chi tiết cho việc xây dựng ứng dụng này.

Bước 1: Cài đặt các thư viện cần thiết

Trước hết, hãy chắc chắn bạn đã cài đặt các thư viện cần thiết. Chúng bao gồm requests để lấy dữ liệu từ API, pandas để xử lý dữ liệu và matplotlib hoặc seaborn để vẽ biểu đồ.

Bạn có thể cài đặt chúng bằng pip:

bash
pip install requests pandas matplotlib seaborn

Bước 2: Lấy dữ liệu thời tiết từ API

Sử dụng một dịch vụ API thời tiết như OpenWeatherMap. Bạn cần đăng ký để lấy API key.

Dưới đây là ví dụ về cách lấy dữ liệu thời tiết từ OpenWeatherMap:

python
import requests def get_weather_data(city, api_key): url = f"http://api.openweathermap.org/data/2.5/forecast?q={city}&appid={api_key}&units=metric" response = requests.get(url) data = response.json() return data api_key = 'your_api_key_here' city = 'Hanoi' weather_data = get_weather_data(city, api_key) print(weather_data)

Bước 3: Phân tích dữ liệu

Sau khi có dữ liệu thời tiết, bạn có thể sử dụng pandas để phân tích và xử lý dữ liệu này. Dưới đây là ví dụ về cách chuyển đổi dữ liệu JSON thành DataFrame và thực hiện một số phân tích cơ bản:

python
import pandas as pd def parse_weather_data(data): weather_list = data['list'] parsed_data = { 'datetime': [], 'temperature': [], 'humidity': [], 'weather': [] } for entry in weather_list: parsed_data['datetime'].append(entry['dt_txt']) parsed_data['temperature'].append(entry['main']['temp']) parsed_data['humidity'].append(entry['main']['humidity']) parsed_data['weather'].append(entry['weather'][0]['description']) df = pd.DataFrame(parsed_data) return df weather_df = parse_weather_data(weather_data) print(weather_df.head())

Bước 4: Vẽ biểu đồ

Sử dụng matplotlib hoặc seaborn để vẽ biểu đồ giúp trực quan hóa dữ liệu.

python
import matplotlib.pyplot as plt import seaborn as sns # Vẽ biểu đồ nhiệt độ plt.figure(figsize=(14, 7)) sns.lineplot(x='datetime', y='temperature', data=weather_df) plt.xticks(rotation=45) plt.title('Temperature Forecast') plt.xlabel('Datetime') plt.ylabel('Temperature (°C)') plt.show() # Vẽ biểu đồ độ ẩm plt.figure(figsize=(14, 7)) sns.lineplot(x='datetime', y='humidity', data=weather_df) plt.xticks(rotation=45) plt.title('Humidity Forecast') plt.xlabel('Datetime') plt.ylabel('Humidity (%)') plt.show()

Bước 5: Dự báo thời tiết (Tùy chọn)

Bạn có thể sử dụng các mô hình học máy để dự báo thời tiết dựa trên dữ liệu lịch sử. Ví dụ, sử dụng mô hình hồi quy tuyến tính để dự báo nhiệt độ trong tương lai.

python
from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split # Chuẩn bị dữ liệu weather_df['timestamp'] = pd.to_datetime(weather_df['datetime']).astype(int) / 10**9 X = weather_df[['timestamp']] y = weather_df['temperature'] # Chia dữ liệu thành tập huấn luyện và tập kiểm tra X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Tạo và huấn luyện mô hình model = LinearRegression() model.fit(X_train, y_train) # Dự báo y_pred = model.predict(X_test) # Vẽ biểu đồ so sánh plt.figure(figsize=(14, 7)) plt.plot(X_test['timestamp'], y_test, label='Actual') plt.plot(X_test['timestamp'], y_pred, label='Predicted', linestyle='--') plt.xticks(rotation=45) plt.title('Temperature Forecast') plt.xlabel('Timestamp') plt.ylabel('Temperature (°C)') plt.legend() plt.show()

Trên đây là các bước cơ bản để xây dựng một ứng dụng phân tích và dự báo thời tiết bằng Python. Bạn có thể mở rộng và cải thiện ứng dụng này bằng cách sử dụng các kỹ thuật và mô hình phân tích dữ liệu nâng cao hơn.

Reactions

Post a Comment

0 Comments