スクレイピングした気象庁のアメダス(AMeDAS)のデータで計算したときのメモ。

データをスクレイピングしたものをそのままアウトプットしていてもあまり賢くないので、ちょっとした計算をしてみたくなった。

気象庁の発表している気象データをTwitterに吐き出すようにしてみた(怒られないように?) – happyman web

気象庁のアメダス(AMeDAS)情報のスクレイピングは、絞ってやると良いようだ – happyman web

今の気温と1時間前の気温を読み出すことが出来たので、これを使って計算をしてみようと思った。

1.スクレイピングしたデータは文字列なのでfloat()で計算出来る数字にする

スクレイピングしたデータは、文字列のようなので、このままでは計算に使えないことが解った。

整数ならint()で数字にしてやる必要があるが、データは小数点1位まであるので、float()で小数点のある数字にしてやる。

float(output_data[2])と書けば、17.5℃というデータが数字として取り扱うことが出来る。

2.引き算をしたいからやってみた

temph = float(output_data[2])-float(output_data[4]

上記のようにすると1時間前温度から今の温度の差が計算出来る。

小数点1位の数字同士で計算しているはずなのに、なぜか小数点以下沢山の数字が並んでしまうので、以下の様にした。

temph = ("%.1f" %(float(output_data[2])-float(output_data[4])))

%.1fとしてやることによって、小数点1位の数字にまとめられる。

3.絶対値を計算してやりたい

ゆくゆくは温度変化の値をツイートしたいので、「マイナス何度上がりました」なんてツイートは格好悪いので絶対値を計算したい。

tm = abs(float(temph))

先ほど計算した引き算の結果は小数点1位に丸めたときにまた文字列になってしまったので、絶対値を計算するときにはまたfloat()で数字にしてやった。

これで絶対値が計算出来た。

(続く)