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:
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.
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:
sumber
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.
sumber