#!/bin/sh
# downloading AMeDAS from JMA website interface
# 2012/10/02 Kenlo Nasahara
# run this script on Unix shell environment.
# no argument required.

year=2011

for month in 03 04 05 06 07 08 09 10 11 12; do

# 1桁の月番号 (例えば, 01を1に）
m=`echo $month | awk '{printf "%d", $1}'`

# 年_月ごとのディレクトリを作る
mkdir ${year}_${month}
cd ${year}_${month}

# 全国のページをダウンロード。
wget http://www.data.jma.go.jp/obd/stats/etrn/select/prefecture00.php?prec_no=40\&block_no=1012\&year=${year}\&month=${m}\&day=\&view=

# 全国のページをもとに, 134地域(precとno)の各ページをダウンロード。
cat prefecture* | grep prec_no | grep href | grep -v div | grep -v map | awk '{print "wget http://www.data.jma.go.jp/obd/stats/etrn/select/"$NF}' | sed 's/href=//' | sed 's/>//' > download_prec_no.sh
mv prefecture* Japan.html
sh download_prec_no.sh

# 各地域のページをもとに, 各サイトのデータをダウンロード
## daily_a1 ... たぶんAMeDAS局
## daily_s1 ... たぶん気象台
for i in prefecture.php\?prec_no\=*; do f1=`echo "$i" | sed 's/&/\\&/g'`; f2=`echo "$i".html | sed 's/&/_/g' | sed 's/prefecture.php?//' | sed 's/_no//g' | sed 's/_block=//' | sed 's/_day=_view=//'`; mv "$f1" "$f2"; done

cat prec*year=${year}* | grep "area shape" | grep index.php | awk '{print $NF}' | sed 's/prec/ prec/' | sed 's/&year/ /' | awk '{print $2}' | sed 's/&/\\&/' | uniq > site_list.txt
cat site_list.txt | awk '{print "wget http://www.data.jma.go.jp/obd/stats/etrn/view/daily_a1.php?"$1"\\&year="year"\\&month="m"\\&day=\\&view="}' year=$year m=$m > download_sitedata_a.sh
cat site_list.txt | awk '{print "wget http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?"$1"\\&year="year"\\&month="m"\\&day=\\&view="}' year=$year m=$m > download_sitedata_s.sh
sh download_sitedata_a.sh
sh download_sitedata_s.sh

# ファイル名変更
for i in daily_a*; do f1=`echo "$i" | sed 's/&/\\&/g'`; f2=`echo "$i".html | sed 's/&/_/g' | sed 's/1.php?/_/' | sed 's/_no//g' | sed 's/_day=_view=//'`; mv "$f1" "$f2"; done
for i in daily_s*; do f1=`echo "$i" | sed 's/&/\\&/g'`; f2=`echo "$i".html | sed 's/&/_/g' | sed 's/1.php?/_/' | sed 's/_no//g' | sed 's/_day=_view=//'`; mv "$f1" "$f2"; done
for i in daily_*; do
if [ `wc -c $i | awk '{print $1}'` -lt 10000 ]; then echo "deleting "$i; rm $i; fi
done

# データ抽出 (htmlタグを消去)
for i in daily*html; do
cat $i | grep "table class=\"data2_s\" summary=" | awk '{print $3}' | sed 's/summary=\"//' | sed 's/\"><caption//' > ${i%html}txt
cat $i | grep "td class=\"data_0_0\"" | awk 'BEGIN{FS="view=p1\">"}{print $NF}' | sed 's/td class="data_0_0"//g' | sed 's/\///g' | sed 's/<a>//g' | sed 's/<div>//g' | sed 's/<td>/ /g' | sed 's/<>/ /g' | sed 's/< style="text-align:center">//g' | sed 's/<tr>//g' | sed 's/ )/ /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/北/N/g' | sed 's/西/W/g' | sed 's/南/S/g' | sed 's/東/E/g' >> ${i%html}txt
done
cd ..

done

