Tôi đang làm việc với các mô hình Phương pháp phần tử hữu hạn (FEM) với các phần tử hình tam giác và tôi muốn xem kết quả dưới dạng bề mặt TIN trong ArcGIS (và trong ArcScene). Trong nguồn bên ngoài của tôi, tôi có các nút (với các chuỗi X, Y, Z) và các phần tử (tạo thành một tam giác từ ba nút), đó là các nguyên tắc cơ bản của TIN. Làm cách nào tôi có thể kết hợp những thứ này trong ArcGIS để chuyển đổi các phần tử tam giác của mình thành bề mặt TIN mới? Điều này lý tưởng nhất là chuyển đổi 1: 1, nhưng tài liệu không giúp tôi.
Dưới đây là một ví dụ minh họa về dữ liệu tôi có:
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
Tôi hiện đang sử dụng ArcGIS 9.3 với Tiện ích mở rộng phân tích 3D (trong số những người khác) và muốn có một số gợi ý cho giải pháp được nhắm mục tiêu cho Python hoặc VBA.
Cách tiếp cận khác : Dữ liệu thô -> Chuyển đổi Esri TIN trông không dễ dàng gì và tôi không thể tạo đầu hoặc đuôi API cho Nhà phân tích 3D, vì vậy tôi sẽ tắt giải pháp Python / VBA.
Tôi có cùng dữ liệu được biểu thị trong Shapefile trong đó tất cả các tính năng là hình dạng PolygonZM hình tam giác và các đỉnh có trường chiều cao. (Nếu bạn hỏi, Shapefile này được tạo bằng OGR thông qua Python từ bộ dữ liệu ban đầu có cấu trúc tương tự như trên). Xem tệp này trong ArcScene thực sự rất chậm, vì tôi có ~ 100k đa giác tam giác trong Shapefile. Shapefile PolygonZM này lý tưởng nên chuyển đổi tam giác theo tam giác thành tập dữ liệu TIN. Tôi có dữ liệu, vì vậy không muốn giải thích hoặc nội suy!
Vì vậy, làm thế nào tôi có thể chuyển đổi Shapefile PolygonZM này (hình dưới) thành TIN? Trong ArcScene, trong menu "Phân tích 3D", có công cụ "Tạo TIN từ các tính năng", nhưng tôi không hiểu ngôn ngữ "clip mềm", v.v ... Hộp thoại không cung cấp trợ giúp.
LandXML
Hóa ra định dạng tốt nhất là LandXML, nhờ các câu trả lời liên quan bên dưới. Đối với ví dụ trên, tệp trông như thế này (lưu ý: thứ tự tọa độ là 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>
Sau đó, sử dụng công cụ LandXMLToTin_3d để xử lý kết quả thành tệp Esri TIN: