このページではPythonを使って、以下のようなマップ特性データから、指定のX軸、Y軸における値を線形補間で算出する方法をご紹介していきます。
このようなマップ特性データは工学分野では非常に良く出てきますので、ぜひ処理の仕方を覚えておきましょう。
※マップデータはcsv形式で保存してあることを想定して解説していきます。
それではさっそくやっていきましょう!
必要なライブラリ一覧
まずは必要なライブラリです。
〇numpy
〇pandas
どちらもよく使うものなので普段からPythonを使っているひとなら同じみですね。
使用するマップデータの紹介
今回は以下のようなマップデータを使用します。
エアコンの消費電力をイメージして作っています。
A列が室内の設定温度、1行目が外気温を表しています。
以降のプログラムでは設定温度をset_temp、外気温をamb_tempという変数で指定していきます。
このデータがプログラム実行フォルダにmap_data.csvという名前で保存されています。
マップデータを2軸補間して数値取得するサンプルコード
それでは前置きはこのくらいにして、冒頭に紹介したような処理を実行してくれるサンプルコードをご紹介します。
import numpy as np
import pandas as pd
file_name='map_data.csv'
data=pd.read_csv(file_name,header=None).values
vali=data[0,0]
data[0,0]=None
data=data.astype('float')
#X軸、Y軸の数値を指定
amb_temp=-5
set_temp=23
#該当部分を探索
x,y=1,1
while data[y,0]<set_temp:
y+=1
while data[0,x]<amb_temp:
x+=1
#線形補間で数値を算出
v1=(data[y,x]-data[y-1,x])/(data[y,0]-data[y-1,0])*(set_temp-data[y-1,0])+data[y-1,x]
v2=(data[y,x-1]-data[y-1,x-1])/(data[y,0]-data[y-1,0])*(set_temp-data[y-1,0])+data[y-1,x-1]
v3=(v1-v2)/(data[0,x]-data[0,x-1])*(amb_temp-data[0,x-1])+v2
print(vali+'='+str(v3))
やっていることはシンプルで、指定したX軸、Y軸のデータに対して、それぞれ線形補間を実施しているだけです。
サンプルコードの実行結果
まずは先ほどのサンプルコード同様に、
amb_temp=-5
set_temp=23
で実行してみましょう。
マップデータと照らしあわせてみましょう。
なんとなくそれらしい数値になっていそうですね。
次は
amb_temp=-17
set_temp=20
こちらもいい感じに算出できていそうですね。
おわりに
というわけで今回はpythonを使って、マップ特性データを二軸で線形補間してほしいデータを取得する方法をご紹介しました。
機械設計などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント