Membuat TIN di ArcGIS dari elemen segitiga?


8

Saya bekerja dengan model Finite Element Method (FEM) dengan elemen segitiga, dan saya ingin melihat hasilnya sebagai permukaan TIN di ArcGIS (dan di ArcScene). Dalam sumber eksternal saya, saya memiliki node (dengan X, Y, Z coords) dan elemen (membentuk segitiga dari tiga node), yang merupakan dasar dari TIN. Bagaimana saya bisa menyatukan ini dalam ArcGIS untuk mengubah elemen segitiga saya menjadi permukaan TIN baru? Ini idealnya konversi 1: 1, tetapi dokumentasi tidak membantu saya.

Berikut adalah contoh ilustrasi dari data yang saya miliki:

TIN sederhana

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

Saat ini saya menggunakan ArcGIS 9.3 dengan Ekstensi 3D Analyst (antara lain), dan ingin beberapa petunjuk untuk solusi yang ditargetkan untuk Python atau VBA.


Pendekatan alternatif : Data mentah -> Esri TIN konversi tidak terlihat sangat mudah, dan saya tidak bisa membuat kepala atau ekor API untuk Analis 3D, jadi saya akan menahan solusi Python / VBA.

Saya memiliki data yang sama diwakili dalam Shapefile di mana semua fitur adalah bentuk PolygonZM segitiga dan simpul memiliki bidang-tinggi. (Jika Anda bertanya, Shapefile ini dibuat menggunakan OGR via Python dari dataset asli yang terstruktur sama seperti di atas). Melihat file ini di ArcScene benar-benar lambat, seperti yang saya miliki ~ 100k poligon segitiga di Shapefile. Shapefile PolygonZM ini idealnya mengubah segitiga demi segitiga menjadi dataset TIN. Saya punya data, jadi interpretasi atau interpolasi tidak diinginkan!

Jadi, bagaimana saya bisa mengubah PolygonZM Shapefile ini (gambar di bawah) menjadi TIN? Di ArcScene, di menu "3D Analyst", ada alat "Buat TIN Dari Fitur", tapi saya tidak mengerti bahasa "klip lunak" dll. Dialog tidak memberikan bantuan.

ArcScene: Buat TIN Dari Fitur


LandXML

Ternyata format terbaik adalah LandXML, berkat jawaban terkait di bawah ini. Untuk contoh di atas, file terlihat seperti ini (catatan: pesanan koordinat adalah 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>

Kemudian gunakan alat LandXMLToTin_3d untuk memproses hasilnya menjadi file TIN Esri:

Menghasilkan TIN

Jawaban:


3

Satu-satunya cara kami menemukan untuk mendapatkan mesh segitiga dengan topologi yang ada ke ArcGIS adalah dengan menggunakan arcpy.LandXMLToTin_3dfungsinya. Agak gila harus menulis file LandXML hanya untuk mendapatkan TIN Anda ke Arc, tetapi itu berhasil. Berikut adalah Python Toolbox untuk ArcGIS10.1 yang mengakses data pada mesh segitiga dari model laut, dan membawanya ke ArcGIS sebagai TIN. https://github.com/rsignell-usgs/dap2arc/blob/master/dap2tin.pyt Kami telah memberi tahu ESRI bahwa peningkatan besar akan dapat membuat instantiate TIN langsung menggunakan arcpy.


3

Ketika fitur ditambahkan ke TIN, perlu ada beberapa cara untuk menentukan dari mana ketinggian mereka berasal. Jika Anda memasukkan fitur 3D, Anda dapat menentukan bidang Bentuk sebagai sumber ketinggian. Ini menunjukkan nilai -z akan diambil langsung dari geometri fitur. Saat menambahkan fitur 2D, Anda dapat referensi bidang angka. Anda juga dapat menentukan Tidak Ada, dalam hal ini fitur-fitur pertama-tama akan memiliki ketinggian mereka diinterpolasi dari TIN sebelum ditambahkan ke dalamnya. Ini mengharuskan beberapa fitur ditambahkan ke TIN tanpa opsi None, sehingga akan ada beberapa ketinggian yang tersedia untuk diinterpolasi dari.

Delineate TIN Data Area (Analis 3D) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Delineate_TIN_Data_Area/00q900000087000000/

Metode (opsional) Metode yang digunakan saat memproses segitiga. PERIMETER_ONLY akan beralih melalui segitiga dari batas luar TIN ke dalam dan akan berhenti saat iterasi tepi segitiga batas saat ini tidak melebihi Panjang Tepi Maksimum . ALL akan mengklasifikasikan seluruh koleksi segitiga TIN berdasarkan panjang tepi. Standarnya adalah PERIMETER_ONLY.


"Delineate TIN Data Area" memerlukan TIN ... Saya tidak punya TIN
Mike T

1

Saya telah mengalami masalah yang pasti mengenai ketidakmampuan untuk mengimpor informasi TIN secara langsung. Sejauh yang saya tahu pendekatan LandXML adalah satu-satunya fungsi impor asli yang akan menjaga konektivitas segitiga yang ada. Untungnya, skema LandXML tidak terlalu rumit untuk sebagian besar masalah. Sayangnya, proyek LandXML tidak lagi didukung dan situs webnya mati. Ada beberapa contoh file yang menunjukkan format LandXML di web, tetapi semoga ESRI akan mengatasinya dalam pembaruan.

UPDATE: Saya telah melakukan kontak dengan perwakilan ESRI dan dia telah mengirimkannya ke rantai. Jika cukup banyak orang mengganggunya tentang hal ini, mungkin itu akan diatasi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.