Authors
S.imazu
Version
22.0.0
Date
2020-07-31
サンプリング開始時刻(double:sec, integer:pico-sec)
サンプリングインターバル(double:sec, integer:pico-sec)
時間軸データ数(サンプリング数と異なる場合がある。)
サンプリングデータ
パラメータ
new( start_time=nil, sampling_interval=nil, samp_data=nil, samp_params=nil, num_of_times=nil)
set_parameters( dict_obj)
add_parameters( dict_obj)
add_parameter( param_name, param_value, param_type)
set_data( obj)
set_time( start_time, sampling_interval, num_of_times=nil)
set_samples( dtype, data, bsize=nil)
init_frames( i_type, x_size, y_size)
add_frame( binary_str, bsize=nil)
計測(保存)データクラス
計測データは、サンプリングデータおよびパラメータ、時間軸情報を保持する。
18.0.0 初版 19.0.0 内部データの時間単位を整数時はピコ秒とした。(倍精度時は秒)
時間軸データ数は、疑似フレームデータをサポートすることにより、異なる場合があるので、メンバ変数で管理する。 更新:initialize(),time(),set_time() 追加:num_times()
22.0.0 追加:converted_rgb()
サンプリング開始時刻
サンプリングインターバル
データ
パラメータ
時間軸データ数
[説 明] コンストラクタ
# File labcom/ArcData.rb, line 66 def initialize( start_time=nil, sampling_interval=nil, samp_data=nil, samp_params=nil, num_of_times=nil) @start_time = start_time @sampling_interval = sampling_interval @num_of_times = num_of_times set_data( samp_data) set_parameters( samp_params) end
データ一次元配列(binary string)
バイトサイズ
なし
RuntimeError
[説 明] メンバー変数(samples)に1フレームのデータを追加する。
# File labcom/ArcData.rb, line 357 def add_frame( binary_str, bsize=nil) if nil != @samples then @samples.add_frame( binary_str, bsize) else raise RuntimeError, 'No initialize samples(ArcFrames).' end end
追加するパラメータ名
追加するパラメータ値
追加するパラメータの型コード
なし
[説 明] メンバー変数(parameters)にパラメータを追加する。 型コード:1(String), 2(byte), 3(int16), 4(int32), 5(float), 6(double), 7(int64)
# File labcom/ArcData.rb, line 253 def add_parameter( param_name, param_value, param_type) if nil == @parameters then @parameters[param_name] = param_value @parameters[param_name+'#PTYPE'] = param_type else @parameters.store(param_name,param_value) @parameters.store(param_name+'#PTYPE', param_type) end end
追加するパラメータオブジェクト
なし
[説 明] メンバー変数(parameters)にパラメータオブジェクトを追加(マージ)する。 引数の型チェックをしていない。
# File labcom/ArcData.rb, line 231 def add_parameters( dict_obj) if nil == @parameters then @parameters = dict_obj else @parameters.merge( dict_obj) end end
なし
配列データ(NArray)
[説 明] 計測データのframeデータをRGB変換しNArrayクラスのオブジェクトで戻す。
# File labcom/ArcData.rb, line 105 def converted_rgb() return @samples.converted_rgb() if is_frame() return nil end
イメージタイプ
X方向サイズ
Y方向サイズ
なし
[説 明] メンバー変数(samples)をArcFramesに初期化する。 イメージタイプ: 'GRAY8', 'GRAY10', 'GREY8', 'GREY10', 'RGB', 'YUV',...
# File labcom/ArcData.rb, line 340 def init_frames( i_type, x_size, y_size) @samples = ArcFrames.new( i_type, x_size, y_size) end
なし
true:フレーム構造である。 false:フレーム構造でない。 nil:サンプリングデータがない。
[説 明] サンプリングデータの構造がフレーム構造であるかチェックする。
# File labcom/ArcData.rb, line 198 def is_frame() return nil if( nil == @samples ) return @samples.kind_of?(ArcFrames) end
なし
サンプリングデータのデータ件数(int)
[説 明] 配列データのデータ件数を戻す。 Frame形式の場合はフレーム数
# File labcom/ArcData.rb, line 122 def num() return nil if nil == @samples return @samples.num() end
なし
時間軸データのデータ件数(int)
[説 明]
# File labcom/ArcData.rb, line 181 def num_times() num_data = @num_of_times if nil != @num_of_times num_data = num() if nil == num_data return num_data end
格納するデータオブジェクト
なし
TypeError
[説 明] メンバー変数(samples)にデータを格納(代入)する。
# File labcom/ArcData.rb, line 277 def set_data( obj) if nil == obj then @samples = obj elsif obj.kind_of?(ArcSamples) @samples = obj elsif obj.kind_of?(ArcFrames) @samples = obj else raise TypeError,'Object type(' + obj.class + ' ) is unsupported.' end end
設定するパラメータオブジェクト
なし
[説 明] メンバー変数(parameters)にパラメータオブジェクトを設定(代入)する。 引数の型チェックをしていない。
# File labcom/ArcData.rb, line 215 def set_parameters( dict_obj) @parameters = dict_obj end
データ型
データ配列(binary string)
バイトサイズ
なし
[説 明] binary string形式のサンプリングデータをメンバー変数(samples)に格納する。 データ型 : 'INT8', 'INT16', 'INT16', 'FLT32', 'FLT32' ('INT64'はNArrayが未サポート)
# File labcom/ArcData.rb, line 322 def set_samples( dtype, data, bsize=nil) @samples = ArcSamples.new(dtype, data, bsize) end
サンプリング開始時刻(double:秒, integer:ピコ秒)
サンプリング間隔(double:秒, integer:ピコ秒)
時間軸データ数
なし
[説 明] 該当メンバー変数に代入する。
# File labcom/ArcData.rb, line 302 def set_time( start_time, sampling_interval, num_of_times=nil) @start_time = start_time @sampling_interval = sampling_interval @num_of_times = num_of_times end
なし
時間軸配列データ(NArray)
[説 明] 時間軸情報から配列を作成し戻す。 時間軸情報がない場合は、index配列になる。
# File labcom/ArcData.rb, line 140 def time() num_data = @num_of_times if nil != @num_of_times num_data = num() if nil == num_data return nil if nil == num_data # p 'sampling_interval.class : '+ @sampling_interval.is_a?(Integer).to_s #TODO # p 'start_time.class : '+ @start_time.class.to_s # TODO if nil == @sampling_interval then interval = 1 else interval = @sampling_interval end interval = 1 if 0.0 == interval if nil == @start_time then start_t = 0 else start_t = @start_time end # p 'interval.class : '+ interval.class.to_s #TODO # p 'start_t.class : ' + start_t.class.to_s #TODO if( interval.is_a?(Integer) && !(1 == interval && 0 == start_t) ) then return (start_t + interval * NArray.float( num_data).indgen!(1))/1000000000000.0 else return start_t + interval * NArray.float( num_data).indgen!(1) end end
なし
配列データ(NArray)
[説 明] 計測データのサンプリングデータをNArrayクラスのオブジェクトに変換し戻す。
# File labcom/ArcData.rb, line 89 def val() return nil if nil == @samples return @samples.val() end