ArcGISで三角形要素からTINを作成しますか?


8

私は働いている有限要素法(FEM)三角形要素を持つモデル、と私はTINは、ArcGISで(とArcSceneで)表面のような結果を表示したいと思います。私の外部において、私はノードと(X、Y、ZのCOORDSで)要素 TINの基礎であり、(3つのノードから三角形を形成します)。これらをArcGISでまとめて、三角形要素を新しいTINサーフェスに変換するにはどうすればよいですか?これは1対1の変換が理想的ですが、ドキュメントは役に立ちません。

ここに私が持っているデータの説明された例があります:

単純なTIN

Nodes: n, X, Y, Z
1, 51.06, 84.98, -7.46
2, 30.45, 80.67, -7.47
3, 44.83, 72.70, 19.46
4, 64.99, 69.91, 61.48
5, 30.33, 63.40, 71.31
6, 46.95, 61.96, 48.44
7, 62.04, 51.97, 82.51
Elements: n1, n2, n3
6, 7, 4
4, 3, 6
3, 5, 6
5, 3, 2
1, 3, 4
2, 3, 1

現在、ArcGIS 9.3と3D Analyst Extension(特に)を使用しており、PythonまたはVBAを対象としたソリューションのヒントを教えてください。


代替アプローチ:生データ-> Esri TIN変換は簡単に見えません。また、3Dアナリスト用のAPIの表と裏を作成できないため、Python / VBAソリューションを保留します。

同じデータをShapefileで表していますが、すべてのフィーチャは三角形のPolygonZMシェイプで、頂点には高さフィールドがあります。(尋ねると、このShapefileは、上記と同様に構造化された元のデータセットからPython経由のOGRを使用して作成されました)。このファイルをArcSceneで表示すると、Shapefileに約100kの三角形ポリゴンが含まれるため、非常に時間がかかります。このPolygonZMシェープファイルは、三角形ごとにTINデータセットに変換するのが理想的です。データがあるので、解釈や補間は必要ありません。

では、このPolygonZMシェープファイル(下図)をどのようにTINに変換できますか?ArcSceneの[3D Analyst]メニューに[フィーチャからTINを作成]ツールがありますが、「ソフトクリップ」などの言語が理解できません。ダイアログではヘルプが表示されません。

ArcScene:フィーチャからTINを作成する


LandXML

以下の関連する回答のおかげで、LandXMLが最適な形式であることがわかります。上記の例では、ファイルは次のようになります(注:座標の順序はYXZです)。

<?xml version="1.0" ?>
<LandXML version="1.2" xmlns="http://www.landxml.org/schema/LandXML-1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.landxml.org/schema/LandXML-1.2 http://www.landxml.org/schema/LandXML-1.2/LandXML-1.2.xsd">
  <Surfaces>
    <Surface name="My TIN">
      <Definition surfType="TIN">
        <Pnts>
          <P id="1">84.98 51.06 -7.46</P>
          <P id="2">80.67 30.45 -7.47</P>
          <P id="3">72.70 44.83 19.46</P>
          <P id="4">69.91 64.99 61.48</P>
          <P id="5">63.40 30.33 71.31</P>
          <P id="6">61.96 46.95 48.44</P>
          <P id="7">51.97 62.04 82.51</P>
        </Pnts>
        <Faces>
          <F id="1">6 7 4</F>
          <F id="2">4 3 6</F>
          <F id="3">3 5 6</F>
          <F id="4">5 3 2</F>
          <F id="5">1 3 4</F>
          <F id="6">2 3 1</F>
        </Faces>
      </Definition>
    </Surface>
  </Surfaces>
</LandXML>

次に、LandXMLToTin_3dツールを使用して、結果をEsri TINファイルに処理します。

結果のTIN

回答:


3

既存のトポロジを持つ三角形メッシュをArcGISに取り込む唯一の方法は、arcpy.LandXMLToTin_3d関数を使用することでした。TINをArcに取り込むためだけにLandXMLファイルを書き出さなければならないのは少しおかしいですが、うまくいきます。Pythonツールボックスfor ArcGIS10.1は、海洋モデルから三角形メッシュのデータにアクセスし、それをTINとしてArcGISに取り込みます。 https://github.com/rsignell-usgs/dap2arc/blob/master/dap2tin.pyt ESRIに、arcpyを使用してTINを直接インスタンス化できるようにすることで、大幅な機能強化ができることを通知しました。


3

フィーチャがTINに追加されるとき、それらの高さがどこから来るかを定義する何らかの方法が必要です。3Dフィーチャを入力する場合は、Shapeフィールドを高さソースとして指定できます。これは、Z値がフィーチャジオメトリから直接取得されることを示しています。2Dフィーチャーを追加する場合、数値フィールドを参照できます。[なし]を指定することもできます。その場合、フィーチャに追加する前に、フィーチャの高さがTINから補間されます。これには、一部のフィーチャを[なし]オプションなしでTINに追加する必要があるため、補間に使用できる高さがいくつかあります。

TINデータエリアの輪郭を描く(3Dアナリスト) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Delineate_TIN_Data_Area/00q900000087000000/

メソッド(オプション)三角形を処理するときに使用されるメソッド。PERIMETER_ONLYは、TINの外側の範囲から内側へ三角形を反復処理し、境界三角形のエッジの現在の反復が[ 最大エッジ長]を超えないときに停止します。ALLは、TIN三角形のコレクション全体をエッジの長さで分類します。デフォルトはPERIMETER_ONLYです。


「TINデータエリアの描画」にはTINが必要です... TINがありません
マイクT

1

TIN情報を直接インポートできないというこの問題に遭遇しました。私が知る限り、LandXMLアプローチは、既存の三角形の接続を保持する唯一のネイティブインポート関数です。幸い、LandXMLスキーマはほとんどの問題に対してそれほど複雑ではありません。残念ながら、LandXMLプロジェクトはサポートされなくなり、ウェブサイトは機能しなくなりました。LandXML形式を示すサンプルファイルがウェブ上にありますが、ESRIがアップデートでこれに対処することを期待しています。

更新:私はESRIの担当者と連絡を取り、彼はそれをチェーンに送りました。十分な数の人々がこれについて彼らにバグを犯すならば、おそらくそれは対処されるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.