0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Hi-netでダウンロードした一日分のwinファイルをsacへ変換(一月分)

Last updated at Posted at 2021-03-20

事前準備

Hi-netでダウンロードした
20200201000000_001440_85524.zip
のような一日分のzipファイルを解凍すると,

直下に
/Users/gen/2021/noise/2002/2020/02/01/01/01/V/M
というディレクトリが作成され,/M に
一分間のcntファイル×60×24が作られる.
※(/Users/gen/2021/noise/2002)で解凍した場合

なので,

$ mv /Users/gen/2021/noise/2002/"2020 29"/02/29/01/01/V/M/*.cnt /Users/gen/2021/noise/2002

のコマンドで
/Users/gen/2021/noise/2002
にcntファイルを移動

※解凍したタイミングにもよるが,太字を対応させるように手動で入力
/Users/gen/2021/noise/2002/"2020 29"/02/29/01/01/V/M/*.cnt

こんなかんじで
/2002に一月分のcntファイルをコピーする

あとは
channels.tbl/2002に入れておく

必要なファイル

channels.tbl
1month.sh(本プログラムシェル)
win2sac1day_3.sh(一日分のsacファイルを作るシェル)

使い方

$ ./1month.sh 2003 7f73  N.MMOH_U

のように西暦・月(4桁),観測点・成分コード,観測点名を引数で入れて実行すれば
あとは勝手にひとつき分のsacファイルが作られるはず.

チャンネルテーブルの中身

channels.tbl
7f73 1 0 N.MMOH U 6 27 174.90 m/s 0.97 0.70 0 1.023e-07 36.2578 137.9898 539 0 0 Matsumoto
7f74 1 0 N.MMOH N 6 27 163.50 m/s 0.98 0.70 0 1.023e-07 36.2578 137.9898 539 0 0 Matsumoto
7f75 1 0 N.MMOH E 6 27 165.40 m/s 0.99 0.70 0 1.023e-07 36.2578 137.9898 539 0 0 Matsumoto
6063 1 0 N.MWDH U 6 27 169.70 m/s 1.00 0.70 0 1.023e-07 36.2118 137.9140 562 0 0 Matsumotowada
6064 1 0 N.MWDH N 6 27 170.10 m/s 0.96 0.70 0 1.023e-07 36.2118 137.9140 562 0 0 Matsumotowada
6065 1 0 N.MWDH E 6 27 167.80 m/s 0.95 0.70 0 1.023e-07 36.2118 137.9140 562 0 0 Matsumotowada

本プログラムのコード

1month.sh
# !/bin/bash
# 使い方
# ./1month.sh 2003 7f73  N.MMOH_U

for day in {1..9}
do
    echo "${1}0${day}"
    ./win2sac1day_3.sh ${1}0${day} ${2} ${3}
done


for day in {10..31}
do
     echo "${1}${day}"
    ./win2sac1day_3.sh ${1}${day} ${2} ${3}
done

echo "一月完了"

一日分のsacファイルを作るシェル

win2sac1day_3.sh
# !/bin/bash

# cntファイルをwinファイルに変換
# 00時〜09時
for hour in {0..9}
do

 for min in {0..9}   
 do
    w32tow1 20${1}0${hour}0${min}0101VM.cnt 20${1}.0${hour}0${min}
 
 done

 for min in {10..59} 
 do
     w32tow1 20${1}0${hour}${min}0101VM.cnt 20${1}.0${hour}${min}

 done
      
done

# 10時〜24時
for hour in {10..23}
do

 for min in {0..9}   
 do
    w32tow1 20${1}${hour}0${min}0101VM.cnt 20${1}.${hour}0${min}
 
 done

 for min in {10..59} 
 do
     w32tow1 20${1}${hour}${min}0101VM.cnt 20${1}.${hour}${min}

 done
      
done

echo "cntからwinへの変換完了"

# 1時間分に結合
for hour in {0..9}
do
cat 20${1}.0${hour}?? > 0${hour}00_test
done

for hour in {10..23}
do
cat 20${1}.${hour}?? > ${hour}00_test
done

# 一時間のwinファイルを一時間のsacファイルに変換
for hour in {0..9}
do
cat 0${hour}00_test | shmdump -tq - ${2} | wintosac -t channels.tbl ${2}
done

for hour in {10..23}
do
cat ${hour}00_test | shmdump -tq - ${2} | wintosac -t channels.tbl ${2}
done

echo "sacへの変換完了"


# sacファイルを一日分にする
# バックアップ
cp ${1}0000_${3}.s  ${1}0000_${3}_t.s

# 24時間分のsacファイルを結合
sac << EOF > /dev/null
  r ${1}0000_${3}_t.s
  merge ${1}0100_${3}.s
  merge ${1}0200_${3}.s
  merge ${1}0300_${3}.s
  merge ${1}0400_${3}.s
  merge ${1}0500_${3}.s
  merge ${1}0600_${3}.s
  merge ${1}0700_${3}.s
  merge ${1}0800_${3}.s
  merge ${1}0900_${3}.s
  merge ${1}1000_${3}.s
  merge ${1}1100_${3}.s
  merge ${1}1200_${3}.s
  merge ${1}1300_${3}.s
  merge ${1}1400_${3}.s
  merge ${1}1500_${3}.s
  merge ${1}1600_${3}.s
  merge ${1}1700_${3}.s
  merge ${1}1800_${3}.s
  merge ${1}1900_${3}.s
  merge ${1}2000_${3}.s
  merge ${1}2100_${3}.s
  merge ${1}2200_${3}.s
  merge ${1}2300_${3}.s
  w ${1}0000_${3}_t.s 
  q
EOF

# 最後の処理(名前の変更)
sac << EOF > /dev/null
  r ${1}0000_${3}_t.s
  rmean
  w ${1}_${3}.s 
  q
EOF

# ディレクトリの掃除
rm ${1}????_${3}.s
rm 20${1}.????
rm ????_test
rm ${1}0000_${3}_t.s
echo "sac一日結合完了"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?