Tạo TIN trong ArcGIS từ các yếu tố hình tam giác?


8

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ó:

TIN đơn giản

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.

ArcScene: Tạo TIN từ các tính năng


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:

Kết quả TIN

Câu trả lời:


3

Cách duy nhất chúng tôi tìm thấy để có được một lưới hình tam giác với cấu trúc liên kết hiện có vào ArcGIS là sử dụng arcpy.LandXMLToTin_3dchức năng. Thật là hơi điên khi phải viết ra một tệp LandXML chỉ để đưa TIN của bạn vào Arc, nhưng nó hoạt động. Dưới đây là Hộp công cụ Python cho ArcGIS10.1 truy cập dữ liệu trên lưới hình tam giác từ mô hình đại dương và đưa nó vào ArcGIS dưới dạng TIN. https://github.com/rsignell-usgs/dap2arc/blob/master/dap2tin.pyt Chúng tôi đã cho ESRI biết rằng một cải tiến tuyệt vời sẽ có thể khởi tạo TIN trực tiếp bằng arcpy.


3

Khi các tính năng được thêm vào TIN, cần có một số cách để xác định độ cao của chúng đến từ đâu. Nếu bạn đang nhập các tính năng 3D, bạn có thể chỉ định trường Hình dạng làm nguồn chiều cao. Điều này cho biết các giá trị z sẽ được lấy trực tiếp từ hình dạng đối tượng. Khi thêm các tính năng 2D, bạn có thể tham chiếu trường số. Bạn cũng có thể chỉ định Không có, trong trường hợp đó, các tính năng trước tiên sẽ có chiều cao của chúng được nội suy từ TIN trước khi được thêm vào nó. Điều này yêu cầu một số tính năng được thêm vào TIN mà không có tùy chọn Không có, vì vậy sẽ có một số độ cao có sẵn để nội suy từ đó.

Phân định vùng dữ liệu TIN (Nhà phân tích 3D) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Delineate_TIN_Data_Area/00q900000087000000/

Phương thức (tùy chọn) Phương pháp được sử dụng khi xử lý các hình tam giác. PERIMETER_ONLY sẽ lặp qua các hình tam giác từ phạm vi bên ngoài của TIN vào trong và sẽ dừng lại khi lần lặp hiện tại của các cạnh tam giác biên không vượt quá Độ dài cạnh tối đa . ALL sẽ phân loại toàn bộ bộ sưu tập tam giác TIN theo chiều dài cạnh. Mặc định là PERIMETER_ONLY.


"Phân định vùng dữ liệu TIN" yêu cầu TIN ... Tôi không có TIN
Mike T

1

Tôi đã gặp phải vấn đề chính xác này liên quan đến việc không thể nhập thông tin TIN trực tiếp. Theo như tôi có thể nói cách tiếp cận LandXML là chức năng nhập gốc duy nhất sẽ duy trì kết nối tam giác hiện có. May mắn thay, lược đồ LandXML không quá phức tạp đối với hầu hết các vấn đề. Thật không may, dự án LandXML không còn được hỗ trợ và trang web không còn tồn tại. Có các tệp ví dụ hiển thị định dạng LandXML trên web, nhưng hy vọng ESRI sẽ giải quyết vấn đề này trong bản cập nhật.

CẬP NHẬT: Tôi đã liên hệ với một đại diện ESRI và anh ấy đã gửi nó lên chuỗi. Nếu đủ người mắc lỗi về điều này, có lẽ nó sẽ được giải quyết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.