0
1

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からsac(2021以降のデータ)

Last updated at Posted at 2021-05-17

事前準備

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ファイルを移動

ファイル移動シェル

zip_2021.sh
# !/bin/bash
# 使い方
# ./zip_2.sh /home/takehiko/2021/noise/2107  2021  07
# 展開先 年 月

mv ${1}/${2}/${3}/01/01/01/V/M/*.cnt ${1}

for num in {1..9}
do
mv ${1}/${2}" ""("${num}")"/${3}/0${num}/01/01/V/M/*.cnt ${1}
done

for num in {10..31}
do
mv ${1}/${2}" ""("${num}")"/${3}/${num}/01/01/V/M/*.cnt ${1}
done
	   
ls -1 | wc -l

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

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

必要なファイル

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

使い方

$ ./1month_2.sh 2003 7f73  N.MMOH

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

win.prmの中身

win.prm
.
channels.tbl
.
.

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

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_2.sh
# !/bin/bash

# 使い方
# ./1month.sh 2003 7f73  N.MMOH

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


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

echo "一月完了"

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

win2sac1day_2.sh
# !/bin/bash

# 使い方
# ./win2sac1day.sh 191201 7f73 N.MMOH

# 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

# 4時間に結合
cat 0000_test 0100_test 0200_test 0300_test  > 03_test
cat 0400_test 0500_test 0600_test 0700_test  > 07_test
cat 0800_test 0900_test 1000_test 1100_test  > 11_test
cat 1200_test 1300_test 1400_test 1500_test  > 15_test
cat 1600_test 1700_test 1800_test 1900_test  > 19_test
cat 2000_test 2100_test 2200_test 2300_test  > 23_test


# 一時間のwinファイルを一時間のsacファイルに変換

win2sac_32 03_test ${2} s > gomi.txt
mv ${3}.U.s ${1}0300_${3}_U.s
win2sac_32 07_test ${2} s > gomi.txt
mv ${3}.U.s ${1}0700_${3}_U.s
win2sac_32 11_test ${2} s > gomi.txt
mv ${3}.U.s ${1}1100_${3}_U.s
win2sac_32 15_test ${2} s > gomi.txt
mv ${3}.U.s ${1}1500_${3}_U.s
win2sac_32 19_test ${2} s > gomi.txt
mv ${3}.U.s ${1}1900_${3}_U.s
win2sac_32 23_test ${2} s > gomi.txt
mv ${3}.U.s ${1}2300_${3}_U.s


echo "sacへの変換完了"

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

# 24時間分のsacファイルを結合
sac << EOF > /dev/null
  r ${1}0300_${3}_U_t.s
  merge ${1}0700_${3}_U.s
  merge ${1}1100_${3}_U.s
  merge ${1}1500_${3}_U.s
  merge ${1}1900_${3}_U.s
  merge ${1}2300_${3}_U.s
  w ${1}0000_${3}_U_t.s 
  q
EOF

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

# ディレクトリの掃除
rm ${1}????_${3}_U.s
rm 20${1}.????
rm ????_test
rm ??_test
rm ${1}0000_${3}_U_t.s
rm ${1}0300_${3}_U_t.s
rm gomi.txt
echo "sac一日結合完了"
0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?