Python演習問題:トレンド解析の基礎

インポート・エイリアス設定

import numpy as np
import matplotlib.pyplot as plt
import datetime
import csv
from scipy import signal, interpolate
from datautil.parser import parse

問題

  1. csv(コンマ区切り)データ"dat_climate.csv"を読み込みなさい.
    読み込みに使う関数は自由.
    with open(filename,'r') as f:
    f.readline()
    csv.reader(f)
  2. 読み込んだ時間データ(文字列)を数値に変換しなさい.
    parse(time_str)
  3. 不等間隔のデータを1日毎に補間しなさい.
    下記に挙げるdatetime関数は必ずしも使わなくてよい.
    datetime.timedelta(days=x)
    totalseconds, datetime.datetime
    interpolate.interp1d
  4. 補間データを元に,線形トレンドを求めて図にしなさい.
    np.polyfit
    np.polyval
  5. データのスペクトル解析を行い,固有日数(1/f)を求めなさい.
    signal.welch(val, fs, nperseg=xxx)
    signal.argrelmax
    ax.semilogx

データ

  • csvファイル 1行目はヘッダー
    2行目以降は日時,データ

解答例(参考)

300〜400[days]で最も強い周期が現れればOKとする.
パラメータは試行錯誤.
trend.png periods.png


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-07-11 (Wed) 05:25:47 (2113d)