Home > work > 気象観測盤データ取り込み

気象観測盤データ取り込み

気象観測盤データをSQL鯖に取り込みExcelの表を出力する必要があったので行った方法。

気象観測盤のコンパクトフラッシュからFDTファイルをPCに取り込む。
ExcelVBAでFDTファイル中の必要なデータを取り出しCSVに保存。
PQADMIN上SQLエディタでSQL文を打ちSQL鯖にデータ取り込み。
MS Accessからリンクテーブルを参照し、必要なデータを取り出すクエリとレポートを作成。
MS AccessからMS Excel形式でエクスポートし、Excel上で手直しして保存。

テキストエディタで文字列の置換を実行するよりもExcelVBAで行った方が高速かつ低負荷でした。

以下はExcelVBAコード及びSQL文
Perlの方が遙かに簡単なスクリプトで同じ処理をできる模様。
詳しくはこの記事参照

ExcelVBA
     ThisWorkbook内


Option Explicit

Public Sub tikan()
'---------- 変数の宣言 ----------
Dim j As Integer '開始行

Dim strLPass, strSPass As String
Dim strLName, strSName As String
'L:ロード  S:セーブ

Dim iLRowSt, iLRowEd As Variant
'CSVファイル中抽出開始行,終了行
Dim fs, fsLoad, fsSave As Object           'FSO用
Dim strLine As String                                '読み込んだ文字列


'---------- 変数の宣言 End ----------


'----------- 編集ここから -----------


iLRowSt = 1                    '処理開始行
iLRowEd = 831              '処理終了行

'3万行ほどまでしか一度に処理できないので注意

'読み込むパスとファイル名(パス末尾に必ず\つける)
strLPass = "C:\"
strLName = "2007-07-16.log"

'書き込むパスとファイル名(パス末尾に必ず\つける)
strSPass = "C:\"
strSName = "2007-07-16_re.csv"

'まだ下に置換文字列の設定箇所がある

'----------- 編集ここまで -----------



'----------- 処理ここから -----------

Set fs = CreateObject("Scripting.FileSystemObject")

'OpenTextFile(ファイル名,モード(1:読取専,2:上書き,8:追記))

'読み取り専用モードでファイルを開く
Set fsLoad = fs.OpenTextFile _
(strLPass & strLName, 1)

'上書きモードで保存用CSVファイルを開く(作成)
Set fsSave = fs.OpenTextFile _
(strSPass & strSName, 2, True)

j = 1 '開始行

'1行分読み込む
strLine = fsLoad.ReadLine

'読み込んだ行がファイルの末尾になるまで以後の処理を繰り返す
Do Until fsLoad.AtEndOfLine = True

'抽出開始行以降ならば抽出する
If j >= iLRowSt Then


'----------- 編集ここから -----------

'無駄な半角スペースを除去
strLine = Replace(strLine, " ", "")
strLine = Replace(strLine, ":00, 2", ":00',2")
strLine = Replace(strLine, " ", "")
strLine = Replace(strLine, "/ ", "/")
strLine = Replace(strLine, ", ", ",")
strLine = Replace(strLine, "2007", "'2007")

'----------- 編集ここまで -----------


'抽出した行を別ファイルに保存
fsSave.WriteLine strLine

End If

'抽出終了行になったら処理を中断する
If j >= iLRowEd Then Exit Do
j = j + 1
strLine = fsLoad.ReadLine
Loop

'CSVファイルを閉じる
fsLoad.Close
fsSave.Close

End Sub

SQL文

COPY 気象観測.kisyo
FROM 'c:\\2007-07-16_re.csv'
CSV;

0

Google search for: 気象観測盤データ取り込み

Trackback:No Trackbacks

TrackBack URL for this entry
Sorry, no trackback pings are accepted.
Listed below are links to weblogs that reference
気象観測盤データ取り込み from まやろぐlocal
トラックバック
このエントリにトラックバックはありません

Home > work > 気象観測盤データ取り込み

Feeds

Page Top