蛇使いな彼女BLOG
【第70回】 流向流速計の原理と図化について #2.
2022.10.21
こんにちは~!
^今日はお待ちかねのベクトル図化をやっていきます( `―´)ノ
Pythonでベクトルを図化するために今回は
matplotlib.pyplot.quiverを使います。
x,y,u,vのパラメーターでは始点(x,y)から終点(u,v)に向かうベクトルを指定可能です。
ax.quiver(x, y, u, v, angles='xy', scale_units='xy',
scale=1,width=0.002,headwidth=1)
また、widthは矢印の幅、anglesは矢印のアングルを決める方法で、‘uv’と‘xy’があります。
scale_unitsは’xy’が扱いやすいらしく、scaleは大きいほど実際の値より矢印のシャフトが小さくなります。
今回作成するベクトル図は流向角度と流速が合わさったものなので、大小さまざまな長さのベクトルが混在しています。
それらのスケールを小さく調整することが可能です。
図化するときはx軸方向で時系列変化を表したいので、パラメーターのxはデータの数を整数で表し、yは0とします。
x軸上にベクトルの始点を置く形ですね💡
u,vの値は元の始点からx軸上の始点に移動させます。
このとき、元のベクトルの始点と終点を逆転させるので、xの符号は常に正、yは正と負が逆転します。
u_=np.abs(u.values)
v_=-v.values
上記のプロジェクトを実行するとベクトルのグラフが出力されますが、、
あれあれ??前回流向流速計の原理で説明したHeading281.18の例はこの図ではオレンジの丸印で表した
箇所ですがほぼ180°になってますね??100°くらいを期待していたのに!!💦
これについて、いろいろと調べたところ、パラメーターのuとvは始点(x,y)を基準としたときの増減値(u=x成分,v=y成分)である他に、明確にはパラメーターx,yのように北を0°として時計回りに360°の方位を表すのではなく、東西風速(90°⇒270°方向に向かう風)、南北風速(180°⇒0°に向かう風)を表す配列である場合がある事が分かりました。
これは方位で言うと東の90°から反時計回りに角度が増していくデータの事だったようです!!
(矢羽根型風向計の原理を調べると詳細が載っているはずです💦)
そしてそして、今回指定したangles='xy'のパラメーターだと、始点(x,y)から東を0°として反時計回りにHeading281.18°=約169°(u,v)の位置に当たる方位にベクトルの終点が来るみたいです!!
ちなみにangles='uv'とすると北を0°とした図が描けました!(^^)
anglesのパラメーターは使用するのが流向計なのか風向計なのかによって使い分けが必要のようですね!!
すごい発見をしました(笑)
※補足ですが、上記のようなx軸を時系列に見立てたベクトル図では東西の流れがわかりづらいという特徴が有ります。今回は一例として紹介しましたが、用途に応じて変更してくださいね!
【参考文献】
1. 大西 亮一,中村 充,干ガタ上の波浪流,農業土木試験場技報,B,水理,1974年3月 34号 p.99-104
2. 丸山 裕, 高崎 正也, 石野 裕二, 水野 毅, 石神 隆之, 亀野 浩徳, 磁気浮上式マイクロジャイロに関する研究 : 第1報:角速度検出原理と基礎実験, Dynamics & Design Conference,, 2006, 2006 巻, セッションID 518, p. _518-1_-_518-4_