GameSprit

自転車やMac・AppleScript、映画・小説やドラマのレビュー、備忘メモ・クイズなどを置いています。

AppleScript : 東京電力電力供給状況APIで東京電力の需給情報(5分間隔データを追加)

2012-10-16 12:01:57 | AppleScript
AppleScript : 東京電力電力供給状況APIで東京電力の需給情報 - GameSprit では、東京電力電力供給状況API のAPIを活用して、1時間毎の東京電力供給状況を表示してみました。

ところで、同じサイトで東京電力供給状況に関して「5分ごとに更新される速報データ」を取得できるAPIが公開されています。このAPIでは、http://tepco-usage-api.appspot.com/quick.txt にアクセスすると、次のようなデータが取得できます。
23:30,2520,3651



このデータを利用して、1時間毎の東京電力供給状況を表示するスクリプトを改良して、下記のような出力をするようにしてみます。
瞬間使用率 69%(23:30)
瞬間消費電力 2520万KW

使用率 74%(2012/10/14 22時台)
消費電力 2687万KW
最大供給 3651万KW



1時間毎の東京電力供給状況を表示するスクリプトの、出力するテキストの生成部分から削除します。
set msg to "時刻" & tab & tab & tyear & "/" & tmonth & "/" & tday & " " & hour & "時台"



「使用率」の部分に、次の修正を加えます。
set msg to "使用率" & tab & (ratio as text) & "%(" & tyear & "/" & tmonth & "/" & tday & " " & hour & "時台)"



上記の削除と修正により、次のような結果が出力されるようになります。
使用率 74%(2012/10/14 22時台)
消費電力 2687万KW
最大供給 3651万KW



この出力の前に、5分間隔のデータを連結します。
5分間隔のデータですが、ここでは「瞬間使用率」、「瞬間消費電力」と表現することにします。


まず、http://tepco-usage-api.appspot.com/quick.txt からデータを取得して、変数 srct に格納します。
-- 5分間隔データの取得
set srct to do shell script "curl " & "http://tepco-usage-api.appspot.com/quick.txt"



このデータを使って、出力するテキストを生成し、1行毎に連結します。
-- 出力する5分間隔データテキストの生成
set quickTime to item 1 of bunkai(srct, ",")
set quickUsage to item 2 of bunkai(srct, ",")
set quickRatio to ((quickUsage * 100) / capacity) as integer
set quickMsg to "瞬間使用率" & tab & tab & (quickRatio as text) & "%(" & quickTime & ")"
set quickMsg to quickMsg & return & "瞬間消費電力" & tab & tab & quickUsage & "万KW"



その結果、変数 quickMsg には次のようなテキストが納められます。
瞬間使用率   69%(23:30)
瞬間消費電力  2520万KW



このテキスト文字列を1時間毎の供給状況を納めた変数 msg の前に連結します。
set msg to quickMsg & return & return & msg



変数 msg の前に変数 quickMsg を連結した結果を、変数 msg としたので、出力部分は修正不要です。
結果として、次のような出力が得られます。
瞬間使用率  69%(23:30)
瞬間消費電力  2520万KW

使用率 74%(2012/10/14 22時台)
消費電力 2687万KW
最大供給 3651万KW







さて、コードをまとめると、次の通りです。
なお、このブログに掲載されているコードは無保証です。自己責任でどうぞ。
また、コピペでも動作すると思いますが、利用にあたっては 東京電力電力供給状況API に記載されている注意事項などを理解したうえでご利用ください。
-- http://tepco-usage-api.appspot.com の東京電力の電力使用状況を、JSON形式で返すAPIを利用
-- http://tepco-usage-api.appspot.com/latest.json
-- 1時間毎に集計したデータなので、頻繁にアクセスする必要はない

-- インターネット上のファイルを取得する
set srcj to do shell script "curl " & "http://tepco-usage-api.appspot.com/latest.json"

-- 取得したファイルから、項目別データを作成する
set srcjList to my bunkai(srcj, ",")
--count srcjList -- 15
set saving to (item 2 of my bunkai(item 1 of srcjList, ": "))
set hour to (item 2 of my bunkai(item 2 of srcjList, ": "))
set forecast_peak_period to (item 2 of my bunkai(item 3 of srcjList, ": "))
set capacity_updated to (item 2 of my bunkai(item 4 of srcjList, ": "))
set forecast_peak_updated to (item 2 of my bunkai(item 5 of srcjList, ": "))
set tmonth to (item 2 of my bunkai(item 6 of srcjList, ": "))
set usage_updated to (item 2 of my bunkai(item 7 of srcjList, ": "))
set entryfor to (item 2 of my bunkai(item 8 of srcjList, ": "))
set capacity_peak_period to (item 2 of my bunkai(item 9 of srcjList, ": "))
set forecast_peak_usage to (item 2 of my bunkai(item 10 of srcjList, ": "))
set tyear to (item 2 of my bunkai(item 11 of srcjList, ": "))
set usage to (item 2 of my bunkai(item 12 of srcjList, ": "))
set capacity to (item 2 of my bunkai(item 13 of srcjList, ": "))
set forecast to (item 2 of my bunkai(item 14 of srcjList, ": "))
set tday to item 1 of my bunkai((item 2 of my bunkai(item 15 of srcjList, ": ")), return) -- "14"

-- 出力するテキストの生成

-- 使用率の計算
set ratio to ((usage * 100) / capacity) as integer

set msg to "使用率" & tab & (ratio as text) & "%(" & tyear & "/" & tmonth & "/" & tday & " " & hour & "時台)"
set msg to msg & return & "消費電力" & tab & usage & "万KW"
set msg to msg & return & "最大供給" & tab & capacity & "万KW"


-- 5分間隔データの取得
set srct to do shell script "curl " & "http://tepco-usage-api.appspot.com/quick.txt"
--> "23:15,2565,3651"

-- 出力する5分間隔データテキストの生成
set quickTime to item 1 of bunkai(srct, ",")
set quickUsage to item 2 of bunkai(srct, ",")
set quickRatio to ((quickUsage * 100) / capacity) as integer

set quickMsg to "瞬間使用率" & tab & tab & (quickRatio as text) & "%(" & quickTime & ")"
set quickMsg to quickMsg & return & "瞬間消費電力" & tab & tab & quickUsage & "万KW"


set msg to quickMsg & return & return & msg



-- クリップボードへの出力
set the clipboard to msg as text

-- ファイルへの出力
do shell script "echo \"" & (msg as text) & return & "\" >> ~/Desktop/tepco.txt"

-- ダイアログ表示出力
display dialog msg as text



on bunkai(orgData, delim)
set orgDelimi to text item delimiters of AppleScript

try
set text item delimiters of AppleScript to delim

set op to {}
repeat with i from 1 to (count text item of orgData)
set the end of op to text item i of orgData
end repeat
return op
end try

set text item delimiters of AppleScript to orgDelimi
end bunkai






キーワード:AppleScript節電東京電力電力需給でんき予報csvクリップボードへのコピーファイルへの出力ダイアログ出力

最新の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。