【Python】マップ特性データから2軸補間で数値を取得する方法!

このページではPythonを使って、以下のようなマップ特性データから、指定のX軸、Y軸における値を線形補間で算出する方法をご紹介していきます。

特性マップデータから2軸補間をするという作業イメージ図

このようなマップ特性データは工学分野では非常に良く出てきますので、ぜひ処理の仕方を覚えておきましょう。

※マップデータは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を使って、マップ特性データを二軸で線形補間してほしいデータを取得する方法をご紹介しました。

 

機械設計などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました