ホームページ >バックエンド開発 >Python チュートリアル >Django Prophet に基づく天気予報アプリケーション開発ガイド

Django Prophet に基づく天気予報アプリケーション開発ガイド

王林
王林オリジナル
2023-09-26 12:01:451364ブラウズ

基于Django Prophet的天气预测应用程序开发指南

Django Prophet に基づく天気予報アプリケーション開発ガイド

はじめに:
天気予報は人々の日常生活の非常に重要な部分です。正確な天気予報は人々を助けることができます。旅行の計画、作物の植え付け、エネルギーの供給などの決定を下します。この記事では、Django Prophet を使用して、過去の気象データに基づいて将来の天気を予測できる天気予報アプリケーションを開発する方法を紹介します。

1. 準備作業
開発を開始する前に、次の環境とツールを準備する必要があります:

  1. Python 3.xx
  2. Django
  3. Prophet
  4. Pandas
  5. データベース (MySQL、SQLite など)

2. Django プロジェクトの作成

  1. コマンド ラインで次のコマンドを実行して、新しい Django プロジェクトを作成します:

    django-admin startproject weather_forecast
  2. #プロジェクト ディレクトリを入力します:

    cd weather_forecast

  3. # #新しい Django アプリケーションを作成します。 プログラム:
  4. python manage.py startapp forecast

  5. プロジェクトの settings.py ファイルにアプリケーションを追加します:
  6. INSTALLED_APPS = [
     ...
     'forecast',
     ...
    ]

  7. 3. 定義します。データ モデル

    天気モデルを予測アプリケーションの models.py ファイルに定義します。このファイルには、日付、最低気温、最高気温などのフィールドが含まれます:
  1. from django.db import models
    
    class Weather(models.Model):
     date = models.DateTimeField()
     min_temperature = models.FloatField()
     max_temperature = models.FloatField()
     humidity = models.FloatField()
    
     def __str__(self):
         return str(self.date)

  2. コマンド ラインで次のコマンドを実行してデータベース テーブルを作成します:
  3. python manage.py makemigrations
    python manage.py migrate

  4. 4. 過去の気象データをインポートします

プロジェクトのルート ディレクトリにある Weather.csv ファイル。過去の気象データを保存するために使用されます。データには、日付、最低温度、最高温度、湿度などのフィールドが含まれている必要があります。
  1. 予測アプリケーションの views.py ファイルにデータをインポートするビュー関数を作成します:
  2. from django.shortcuts import render
    import pandas as pd
    from .models import Weather
    
    def import_data(request):
     data = pd.read_csv('weather.csv')
    
     for index, row in data.iterrows():
         weather = Weather(
             date=row['date'],
             min_temperature=row['min_temperature'],
             max_temperature=row['max_temperature'],
             humidity=row['humidity']
         )
         weather.save()
    
     return render(request, 'forecast/import_data.html')

  3. ビュー関数を urls.py ファイルに追加します。インポートされたデータのプロジェクト URL マッピング:
  4. from django.urls import path
    from forecast import views
    
    urlpatterns = [
     ...
     path('import/', views.import_data, name='import_data'),
     ...
    ]

  5. 5. 天気予報に Prophet を使用します

    views.py ファイルにビューを書き込みます天気予報アプリケーションの View 関数で天気を予測します:
  1. from django.shortcuts import render
    from .models import Weather
    from fbprophet import Prophet
    import pandas as pd
    
    def predict_weather(request):
     data = Weather.objects.all()
     df = pd.DataFrame(list(data.values()))
    
     df = df.rename(columns={'date': 'ds', 'max_temperature': 'y'})
     model = Prophet()
     model.fit(df)
    
     future = model.make_future_dataframe(periods=365)
     forecast = model.predict(future)
    
     return render(request, 'forecast/predict_weather.html', {'forecast': forecast})

    #天気を予測するための URL マッピングをプロジェクトの urls.py ファイルに追加します:
  2. from django.urls import path
    from forecast import views
    
    urlpatterns = [
     ...
     path('predict/', views.predict_weather, name='predict_weather'),
     ...
    ]
  3. # # 6. テンプレート ファイルを作成します

#過去の気象データをインポートするためのページである、予測アプリケーションのテンプレート ディレクトリに import_data.html ファイルを作成します:

<!DOCTYPE html>
<html>
<head>
 <title>Import Data</title>
</head>
<body>
 <h1>Import Data</h1>
 <form action="{% url 'import_data' %}" method="POST">
     {% csrf_token %}
     <input type="submit" value="Import">
 </form>
</body>
</html>

  1. 予測された天気結果を表示するには、予測アプリケーションのテンプレート ディレクトリに detect_weather.html ファイルを作成します。

    <!DOCTYPE html>
    <html>
    <head>
     <title>Predict Weather</title>
    </head>
    <body>
     <h1>Predicted Weather</h1>
    
     <table>
         <thead>
             <tr>
                 <th>Date</th>
                 <th>Max Temperature (°C)</th>
                 <th>Humidity</th>
             </tr>
         </thead>
         <tbody>
             {% for index, row in forecast.iterrows %}
             <tr>
                 <td>{{ row['ds'] }}</td>
                 <td>{{ row['yhat'] }}</td>
                 <td>{{ row['humidity'] }}</td>
             </tr>
             {% endfor %}
         </tbody>
     </table>
    </body>
    </html>

  2. 7. アプリケーションを実行します。

コマンド ラインで次のコマンドを実行して、Django 開発サーバーを起動します:

python manage.py runserver

    ブラウザで http://localhost:8000/import/ にアクセスして、過去の気象データをインポートします。
  1. 天気予報については http://localhost:8000/predict/ にアクセスすると、予測結果がページに表示されます。

  2. 結論:
  3. この記事では、Django Prophet を使用して天気予報アプリケーションを開発する方法を紹介します。過去の気象データをインポートし、予測に Prophet モデルを使用することで、過去の気象条件に基づいて将来の天気を予測できます。この記事がお役に立ち、天気予報アプリケーションの開発についてより深く理解していただければ幸いです。

以上がDjango Prophet に基づく天気予報アプリケーション開発ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。