Skip to content

keichi/isurf

Repository files navigation

Isosurface Generatorマニュアル

for Isosurface Generator v1.0, by Keichi Takahashi (keichi.t@me.com)

概要

Isosurface Generatorは、GrADS用フォーマットで格納された3次元空間内の格子点のデータを入力として受け取り、 特定の値に対する等値曲面のメッシュデータ出力するプログラムです。

動作環境

  • Windows
    • OS: Windows Vista/7/8
    • メモリ: 1GB以上
    • 依存ライブラリ・プログラム: .NET Framework 3.5以降
  • Mac OSX
    • OS: Mac OSX Lion/Mountain Lion
    • メモリ: 4GB以上
    • 依存ライブラリ・プログラム: Mono 2.10以降

(以下では動作環境がWindowsであるとしてご説明いたします。)

インストール方法

ディレクトリbin以下の、

  • isurf.exe
  • isurf.exe.config

上記2つのファイルを任意のディレクトリにコピーしてください。インストーラの実行などは必要ありません。

操作方法

  1. コマンドプロンプト(ターミナル)を開いてください。

  2. isurf.exeが存在するディレクトリへ移動してください。

     cd C:\Users\keichi\Documents\isurf
    
  3. 以下のコマンドを実行してください

     isurf.exe 入力ファイル/ディレクトリ 出力ディレクトリ 値1 [値2] [値3] […]
    

    ただし、各項目は以下の意味です:

    • 入力ファイル/ディレクトリ
      • 等値曲面を抽出したいCTLファイルのパス、あるいは複数のCTLファイルを含むディレクトリを 指定してください。ディレクトリ直下のファイルのみが処理されます。相対パスで指定した場合は、 isurf.exeからの相対パスとなります。
    • 出力ディレクトリ
      • 生成されたメッシュデータが保存されるディレクトリを指定してください。相対パスで指定した場合は、 isurf.exeからの相対パスとなります。
    • 値1, 値2, ...
      • 等値曲面を生成する値を1つ以上数値(半角)で指定してください。

    例:

     isurf.exe C:\Users\keichi\Documents\pawr3D_20120722 ouput 25.0 30.0 40.0
    

    この例では、C:\Users\keichi\Documents\pawr3D_20120722に存在する全てのctl/datファイルについて、 25.0 30.0 40.0の等値曲面を生成し、isurf.exeが存在するディレクトリにoutputという ディレクトリを作成し、メッシュデータを出力します。

  4. isurf.exeの終了を待ってください。

    例: 3. での例のコマンドを入力すると、コマンドプロンプトに以下のような出力が表示されます。

     Isosurface Generator 1.0.4791.42791
     Copyright (C) 2013 Keichi Takahashi. All Rights Reserved.
    
     ========================================
     CTLファイル"C:\Users\keichi\Documents\pawr3D_20120722\pawr3D_20120722-184750.ctl
     "の処理を開始します。
     GrADSファイルを読み込みました。 (598[ms])
     等値曲面生成エンジンを初期化しました。 (467[ms])
     値25について等値曲面を生成しました。 (216[ms])
     359470ポリゴンをファイルに出力した。 (1919[ms])
     値30について等値曲面を生成しました。 (202[ms])
     237772ポリゴンをファイルに出力した。 (1201[ms])
     値40について等値曲面を生成しました。 (164[ms])
     124930ポリゴンをファイルに出力した。 (619[ms])
     メッシュデータを"ouput\pawr3D_20120722-184750.obj"に出力しました。
     ========================================
     .
     .
     .
    

    現在実行中の処理ステージとともに、その処理ステージの所要時間がミリ秒単位で表示されています。 また、等値曲面をファイルに出力する際、ポリゴン数が表示されます。

エラーが発生したとき

  • コマンドライン引数が足りません。
    • コマンドライン引数の指定の仕方が間違っている可能性があります。

        isurf.exe 入力ファイル/ディレクトリ 出力ディレクトリ 値1 [値2] [値3] […]
      

      と入力しているかご確認ください。

  • 等値曲面を生成する値の指定が間違っています。
    • 等値曲面の値が正しい形式で入力されていない可能性があります。半角数字のみにて入力されているか ご確認ください。
  • ファイルXXXの処理中にエラーが発生しました。
    • 表示されているファイルの処理中に何らかのエラーが発生しました。表示されているエラーをご連絡ください。
  • 回復不能なエラーが発生しました。
    • 処理を続行できないエラーが発生しました。表示されているエラーをご連絡ください。

入力データ・出力データ

入力データ

入力データは、GrADS(Grid Analysis And Display System)にて読み込めるGrADS Grid Dataフォーマットを 想定しています。このフォーマットの詳細については、このページを参考にしてプログラムを作成しています。

出力データ

生成されたメッシュデータは、Wavefront OBJフォーマットでファイルとして出力されます。各値の等値曲面のメッシュは、 個別のオブジェクトグループとして出力されます。それぞれのグループの名前は、等値曲面の値となっています。 当方の環境では、Blender 2.65aとMeshLab 1.3.2_64bitにて表示確認を行っています。

技術的な詳細

このプログラムは、Mac OSX 10.8.2上のMono 2.10とMono Develop 3.1を用いて開発しました。 Windowsでのビルド・テストの際は、Windows 7 64bit (JPN)上のVisual Studio 2012 Professional Edition、 および.NET Framework 3.5を用いました。開発言語はC#で、依存する外部のライブラリなどは.NET Framework ・Monoを除いてありません。C# 3.0の機能までを使用しているため、Visual Studio 2008以降でビルドが 可能です。

等値曲面を求めるアルゴリズムとしては、Lorensen ClineがSIGGRAPH '87で発表したMarching Cubes法を 用いています。


Copyright © 2013 Keichi Takahashi. All Rights Reserved.

About

Isosurface generator for NICT PAR data

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages