スクレイピングでゲットした気象庁のAMeDASデータを計算してIFを使って判定してみた
Python初心者がやっと条件分岐をやってみることにしました。
気象庁の発表している気象データをTwitterに吐き出すようにしてみた(怒られないように?) – happyman web
ただ吐き出すだけではあまりに能が無いので、何か計算してみることにしました。
スクレイピングした気象庁のアメダス(AMeDAS)のデータで計算したときのメモ。 – happyman web
ある程度計算は出来るようになった
1.計算結果を使って判定して結果を吐くようにしてみる。
引き算した結果で、上がった下がったという判定をしてみる。
引き算して、マイナスの結果が出たら「下がった」、引き算してプラスの結果が出たら「上がった」、変化無しなら変化無しという判定をしてやる。
計算した絶対値は数字なのでまた文字列str()にして吐き出せるようにした。なんか無駄なことをしている様な気がしてはいる。
if float(temph) < 0: #計算結果がマイナス
result = "1時間で"+str(tm)+"℃下がりました"
elif float(temph) > 0: #計算結果がプラス
result = "1時間で"+str(tm)+"℃上がりました"
else:
result = "1時間で気温の変化はありません。"
これでIFの条件分岐の基礎は理解できただろうか?
2.今回やったことのまとめ
Twitterに吐き出せるようにしました。
from requests_html import HTMLSession
import os
import time
from my_module import haptweepyapi
from pprint import pprint
# 観測データのアドレス(例:名古屋)
url = "https://www.jma.go.jp/bosai/amedas/#amdno=51106&area_type=offices&area_code=230000&format=table1h&elems=40000"
# GETメソッドでリクエストを送信
session = HTMLSession()
r = session.get(url)
# ブラウザエンジンでHTMLをレンダリング
# 表の描画に若干時間がかかるためsleepで待機時間を設定
r.html.render(sleep=3)
# データを抽出
cell_data = r.html.find("table.amd-table-seriestable td")
# 先頭のデータを変数に格納し空のセルを除去
output_data = []
for item in cell_data:
if item.text:
output_data.append(item.text)
if len(output_data) >= 5:
break
# 整形して出力
temph = ("%.1f" %(float(output_data[2])-float(output_data[4])))
tm = abs(float(temph))
if float(temph) < 0:
result = "1時間で"+str(tm)+"℃下がりました"
elif float(temph) > 0:
result = "1時間で"+str(tm)+"℃上がりました"
else:
result = "1時間で気温の変化はありません。"
tempr = ('気象庁によると名古屋{day} {time} の気温は{temp}℃です。{time2} の気温は{temp2}℃でした。'.format(day=output_data[0], time=output_data[1], temp=output_data[2],time2=output_data[3], temp2=output_data[4]))
jma = url
value = tempr +"\n"+ result +"\n"+ jma
print(value)
# ファイルから読み込んだ値をツイート
def CreateTweet(value):
tweet = haptweepyapi.ClientInfo().create_tweet(text=value)
return tweet
# 関数実行・結果出力
pprint(CreateTweet(value))
こんな感じにしました。
でも・・・午前1時のツイートがこれでは出来ない。
Amazon Mastercard (アマゾン マスターカード) 最大2%ポイント還元
¥1入会ポイント 2,000ポイント以上付与
(2024年7月26日 18:36 GMT +09:00 時点 - 詳細はこちら商品価格と取扱状況は記載された日時の時点で正確で、また常に変動します。Amazon のサイトに表示された価格と取扱状況の情報は、この商品が購入されたその時のものが適用されます。)
コモライフ エアコン室外機遮熱シート マグネットタイプ 【適応サイズ:約幅80cm以下×奥行き39cm以下】 遮熱シート エアコン 室外機カバー 保護 アルミ シート 遮熱 日除け ネオジム磁石 3層構造 ワンタッチ 簡単取り付け 乗せるだけ 節電対策 電力削減 省エネ エコ 工具不要 ひさし 直射日光 雨 雪 汚れ 対策
¥9983層構造の遮熱シートで、室外機を日差しからガード! マグネットタイプなので工具不要!誰でも簡単取り付け◎ アルミ蒸着シートと気泡緩衝材で太陽熱を遮断し、室外機の温度上昇を抑えやすくする! 余分な電力を削減できるため省エネに! 【適応サイズ:約幅80cm以下×奥行き39cm以下 ※室外機の種類やサイズによっては、取り付けできない場合があります。】
(2024年7月26日 19:35 GMT +09:00 時点 - 詳細はこちら商品価格と取扱状況は記載された日時の時点で正確で、また常に変動します。Amazon のサイトに表示された価格と取扱状況の情報は、この商品が購入されたその時のものが適用されます。)
オニヤンマ君 虫除け 正規品 鬼やんま君 虫除け 14cm リアル おにやんまトンボの模型おもちゃ昆虫の模型おもちゃ 蜂よけ 玄関 バルコニー ハイキング キャンプ 登山 釣り ゴルフ 家のおもちゃ 装飾 ギフト インテリア 子供のおもちゃ Taoelifs2024型
【優れた虫除け効果】オニヤンマは多種多様な小型昆虫を捕食するため、そのモデルは蚊やミツバチ、スズメバチ、蝶々、蛾、アブ、バッタ、カマキリ、ハエなど、様々な昆虫を効果的に追い払うことが可能です。2024年型の新型オニヤンマモデルは、外観、サイズ、色、体の構造など、本物のオニヤンマとほとんど同じように作り込まれています。 【新しい完璧な】2024型のオニヤンマは、以前のモデルに比べて、尾がよりリアルで、全身の模様もリアルに再現されています。また、羽は古いものよりも薄く、丈夫な新しい材質を採用していま... もっと読む
(2024年7月26日 19:35 GMT +09:00 時点 - 詳細はこちら商品価格と取扱状況は記載された日時の時点で正確で、また常に変動します。Amazon のサイトに表示された価格と取扱状況の情報は、この商品が購入されたその時のものが適用されます。)
ディスカッション
コメント一覧
まだ、コメントがありません