2021年6月20日日曜日

電気探査 3D+sparse

電気探査(比抵抗)の3次元処理(地形の考慮)をクリアしておこうと、SimPEG を1日触っていました。

といっても、良い例題があるので、入力ファイルとコードを読めばすんなり理解できます(以前に動作確認済みですので、細部を読むだけです)。

ついでに sparse 正則化を導入 。norms が効かなかったので、2.5Dの例題を移植。結果はあまり変わりませんでした。ま、これで電気探査の 3D + sparse はクリアです。

あとは可視化。これに時間を取られました。
HPの絵のように、地形+電極位置+断面のような絵を作りたかったのですが、SimPEG からメッシュ+計算値を吐き出す方法が見つかりません。あーだ、こーだやっていても時間ばかりが過ぎていきましたので、slack の コミュニティー に投げました。

気づけば、30分強で返答がありました。
「この図はPyVistaを使った」でした。 活発ですし、制作側から返答をいただけるのはありがたい。
SimPEG では、メッシュ分割に discretize を利用していますが、そのメソッドの一部、VTK関連を有効にするには PyVista を入れないとダメ、という仕様でした。いや、わからないでしょう。どこかに書いてあるのでしょうけど。

PyVista をインストールして、例題のコードを参考にすれば、できました。断面の 「scalar=表示したいarray 名」を見つけるのにやや時間がかかりましたが、比較的あっさり図化できました。何度も結果を確認しながら、ということになれば vtu 書き出し + ParaVeiw より役立つかもしれません。ま、その書き出しも PyVista のインストールが必須だったわけですが。

PyVista で地味にうれしいのが、XYZ データから直接 TIN サーフェスを作成できる点です。matplot などではサーフェスを作成する前に Z データをグリッド化しないと描けないのですが、PyVista では座標データそのままでOK。 これは、使えます。

電気探査の3次元地形補正。長年放置してきましたが、ようやく正攻法でクリアできました(開発チームに感謝!)。

0 件のコメント:

コメントを投稿