9.週間天気予報の作り方


9-1.週間天気予報のURL

週間天気予報は府県天気予報と同じファイルに入っていますので、URLは府県天気予報と同じです。

・三重県の週間天気予報を取得する

https://www.jma.go.jp/bosai/forecast/data/forecast/240000.json


9-2.週間天気予報の発表時刻

週間天気予報の発表時刻内容は、

①発表時刻 11時、17時の一日二回となります。
②発表内容 向こう一週間の、各府県における一日ごとの天気
      最高・最低気温(1℃単位)
      降水確率(10%単位)
      予報の信頼度
      期間における降水量(1㎜単位)と気温の平年値(0.1℃単位)

※気象庁ホームページでは、最新の「府県天気予報」から、その府県予報区の代表的な一次細分区域の明日・明後日の予報を随時取り込んで掲載しています。

三重県で例えると、北中部の今日明日の天気予報を週間天気予報に取り込んでいます。


9-3.週間天気予報のデータ仕様

三重県のデータを参考に見てみます。

今回は、天気コードと最高最低気温データのみの取得になります。

①11・17時発表のデータ仕様

17時発表のものを参考にしていますが、11時発表のものと内容は同じです。

天気コードweatherCodesは、[0]~[6]まで、7日分存在します。

最低気温データは、tempsMinのものを使います。

tempsMinUppeは、最大値の最低気温データです。

tempsMinLowerは、最小値の最低気温データです。

最高気温データは、tempsMaxのものを使います。

tempsMaxUpperは、最大値の最高気温データです。

tempsMaxLowerは、最小値の最高気温データです。


9-4.週間天気予報の処理プログラム

<!-- 第一地域天気アイコンの表示 -->
      <div class="flexbox">
            <div class="f-item1">今日の天気
                  <img src="data:image/png;base64,<?php echo $img;?>">
                  <?php echo $today;
                        if(isset($data2[0]['timeSeries'][2]['areas'][0]['temps'][2])){
                           echo "最高: $tomorrow_templow1 ℃";
                        }
                        ?>
            </div>
            <div class="f-item1">明日の天気
                  <img src="data:image/png;base64,<?php echo $img1;?>">
                        <?php echo $tomorrow;
                        if(isset($data2[0]['timeSeries'][2]['areas'][0]['temps'][2])){
                              echo "最高: $tomorrow_temphigh ℃";
                              echo "最低: $tomorrow_templow ℃";
                        } else {
                              echo "最高: $tomorrow_temphigh1 ℃";
                              echo "最低: $tomorrow_templow1 ℃";
                        }
                        ?>
            </div>
      <!-- 明後日のデータ確認 -->
      <?php if(isset($data2[0]['timeSeries'][0]['areas'][0]['weatherCodes'][2])){ ?>
            <div class="f-item1"><?php echo $datetime2 ?>
                  <img src="data:image/png;base64,<?php echo $img2; ?>">
                  <?php echo $data20;
                        echo "最高: $temphigh2 ℃";
                        echo "最低: $templow2 ℃";
                 ?>
            </div>
      <?php } ?>

            <div class="f-item1"><?php echo $datetime3 ?>
                  <img src="data:image/png;base64,<?php echo $img3; ?>">
                  <?php echo $data21;
                        echo "最高: $temphigh3 ℃";
                        echo "最低: $templow3 ℃";
                  ?>
            </div>

            <div class="f-item1"><?php echo $datetime4; ?>
                  <img src="data:image/png;base64,<?php echo $img4; ?>">
                  <?php echo $data22;
                        echo "最高: $temphigh4 ℃";
                        echo "最低: $templow4 ℃";
                  ?>
            </div>

            <div class="f-item1"><?php echo $datetime5; ?>
                  <img src="data:image/png;base64,<?php echo $img5; ?>">
                  <?php echo $data23;
                        echo "最高: $temphigh5 ℃";
                        echo "最低: $templow5 ℃";
                  ?>
            </div>

            <div class="f-item1"><?php echo $datetime6; ?>
                  <img src="data:image/png;base64,<?php echo $img6; ?>">
                  <?php echo $data24;
                        echo "最高: $temphigh6 ℃";
                        echo "最低: $templow6 ℃";
                  ?>
            </div>
            
            <div class="f-item1"><?php echo $datetime7; ?>
                  <img src="data:image/png;base64,<?php echo $img7; ?>">
                  <?php echo $data25; ?>
                        echo "最高: $temphigh7 ℃";
                        echo "最低: $templow7 ℃";
                  ?>
            </div>     
      </div>
  

17時発表時は、[0]番目の明日予報コードの前に、[-1]番目として今日の府県予報データを埋め込みます。

5時発表の府県天気コードは、今日明日のデータのみになります。

5時発表の時点で17時発表の週間天気コード[0]番目の明日のデータは、今日の予報になっています。

その為、5時発表時の今日の予報を[0]番目にいれます。

明日の予報を[1]番目に入れます。

23行目で明後日のデータを確認していますが、データが存在しない場合は[1]番目のデータは表示しません。

なぜなら、5時発表の明日のデータと重複しているからです。

その場合、予報は7日分になります。

また、11・17時発表の明後日のデータがある場合、[1]番目のデータを表示し、[-1]番目の予報から数えて8日分になります。

気象庁のHPは今日明日のみ予報を埋め込んでいますので、明後日のデータは使いませんが、条件分岐式に利用します。

今日明日の最高最低気温の確認につきましては、

8-3.府県天気予報の処理プログラム 

と同じです。ご参照ください。

以上で、週間天気予報の作り方は終わりです。

お疲れ様でした‼️

次は→10.天気予報のWordPress化

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA