Loại bỏ xu hướng độ cao trên các bề mặt dốc?


16

Có một phương pháp đã biết để loại bỏ xu hướng khỏi bề mặt DEM không?

Ví dụ, nếu tôi có DEM của một dòng sông, dòng sông đó sẽ chảy từ độ cao cao (thượng nguồn) đến độ cao thấp hơn (hạ lưu). Ngay cả khi khoảng cách từ đỉnh mặt nước đến đáy sông là như nhau trên toàn bộ dòng sông, phần hạ lưu của raster vẫn có giá trị độ cao thấp hơn trong DEM. Có thể thậm chí đưa ra các giá trị này để các khu vực có độ sâu bằng nhau cũng sở hữu độ cao bằng nhau?

Khi loại bỏ xu hướng này, sẽ là lý tưởng để bảo tồn các đặc điểm chung của DEM, chẳng hạn như ngâm dưới lòng sông.nhập mô tả hình ảnh ở đây

Câu trả lời:


9

@jul là chính xác rằng "bạn cần tính toán một bề mặt xu hướng, và sau đó trừ nó khỏi DEM ban đầu của bạn để có được một" sự hủy bỏ ", nhưng có vẻ như cần các thủ tục đơn giản hơn trong trường hợp này để" bảo toàn dấu chấm ". Nếu "bề mặt xu hướng" quá sát với DEM ban đầu, thì phần dư sẽ không giữ được các đặc tính cục bộ của bề mặt. Do đó, trong số các kỹ thuật cần tránh là tất cả các kỹ thuật cục bộ (splines, bộ lọc và - đặc biệt - giết chết) và những kỹ thuật được ưa chuộng là toàn cầu.

Một cách tiếp cận trực tiếp, đơn giản, mạnh mẽ là lắp máy bay vào DEM trong vùng lân cận của dòng sông. Điều này không có bất kỳ công nghệ ưa thích hoặc tính toán nặng nề nào, bởi vì (theo Euclid) một mặt phẳng được xác định bởi ba điểm (không cộng tuyến) trong không gian. Theo đó, chọn một điểm (x1 ', y1', z1 ') = (tọa độ, độ cao) ở đầu sông, một điểm khác (x2', y2 ', z2') ở đầu hạ lưu và điểm thứ ba tại (x0 ', y0', z0 ') khi bạn chọn cách xa đoạn đường nối hai điểm đầu tiên. (Các tọa độ này được biểu thị bằng các số nguyên tố vì chúng tôi sẽ sớm thay đổi chúng.) Điểm cuối cùng này khôngphải tương ứng với một điểm trên hoặc thậm chí gần mặt đất! Trên thực tế, một lựa chọn ban đầu tốt có thể là đặt độ cao của nó thành trung bình của độ cao thượng lưu và hạ lưu, z0 '= (z1' + z2 ') / 2.

Các tính toán được nới lỏng bằng cách lấy điểm (x0 ', y0', z0 ') làm gốc của hệ tọa độ cục bộ. Trong các tọa độ này, hai điểm khác nằm ở

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Bất kỳ vị trí tùy ý, tại (x ', y') trong hệ tọa độ ban đầu, đều có tọa độ (x, y) = (x'-x0 ', y'-y0') trong hệ thống mới này. Bởi vì bất kỳ mặt phẳng nào đi qua gốc tọa độ (0,0,0) đều phải có phương trình có dạng z = a * x + b * y, điều này làm giảm vấn đề như sau:

Tìm một phương trình có dạng z = a * x + b * y cho mặt phẳng đi qua các điểm (0,0,0), (x1, y1, z1) và (x2, y2, z2).

Giải pháp độc đáo là tính toán

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

trong đó

a = u/w, b = v/w.

Đã tìm thấy hai số a và b và nhớ lại hai tọa độ ban đầu x0 'và y0', một phép tính raster có dạng

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

xóa "độ nghiêng" khỏi DEM . Trong biểu thức này [X '] đề cập đến lưới tọa độ x trong tọa độ gốc và [Y'] đề cập đến lưới tọa độ y ban đầu. DEM kết quả được đảm bảo có cùng độ cao (cụ thể là z0 ') tại mỗi ba điểm bạn chọn ban đầu; những gì nó làm ở nơi khác phụ thuộc vào chính DEM!


(Tôi hy vọng một số độc giả đánh giá cao cách tiếp cận này tránh tất cả các tham chiếu đến lượng giác hoặc máy móc hình vuông nhỏ nhất. :-)


Đừng quên thêm tài liệu tham khảo của bạn để nghiêng một raster tại forum.arcgis.com/threads/22904-Trouble-with-Hillshading

@Dan Điểm hay: bài viết trước tại gis.stackexchange.com/questions/10959/ Quảng có vẻ liên quan chặt chẽ với bài này.
whuber

Câu hỏi trước đó cũng là của tôi - tôi cảm thấy rằng tôi nên tinh chỉnh nó để hỏi ngắn gọn hơn các câu hỏi (ví dụ như cần phải bảo tồn dips). Tôi đã tìm kiếm mã sẽ thực hiện loại phân tích này, nhưng tôi đã không thành công. Bạn có biết bất cứ điều gì sử dụng ArcObjects sẽ hữu ích hay tôi nên bắt đầu lại từ đầu? Cảm ơn sự giúp đỡ - nó đã là vô giá.
Radar

@Radar Trước tiên hãy thử phân tích này bằng tay. Nó đòi hỏi một số phán đoán (bạn phải chọn ba điểm đó một cách cẩn thận) và, thường, một số lần lặp lại để làm đúng. Trải nghiệm đó sẽ cho bạn cảm giác tốt hơn về cách tính toán hoạt động. Bạn cũng có thể so sánh phương pháp này với sự phù hợp bề mặt xu hướng tuyến tính được cung cấp trong ArcGIS.
whuber

Đủ công bằng - Tôi đã tự động hóa việc tạo ra các điểm thượng lưu và hạ lưu. Tôi tưởng tượng phần khó nhất sẽ có được điểm thứ 3 đó. Cảm ơn một lần nữa!
Radar

3

Tôi đã tìm thấy xu hướng giảm với phân tích xu hướng không thỏa đáng cho các dòng sông. Nó có thể hoạt động ở các khu vực như trung tây nhưng ở phía tây, một bề mặt tuyến tính hoặc đa thức duy nhất dường như không bao giờ xấp xỉ độ dốc của sông rất tốt do địa hình phức tạp. Những gì tôi đã sử dụng thay vào đó là tính trung bình theo trọng số khi tôi so sánh độ cao của một pixel vùng cao với mức trung bình có trọng số của dòng sông bằng mật độ hạt nhân (xem bài viết trong Winter 2010 ArcUser). Điều này tạo ra một kết quả "cục bộ" hơn. Vẫn có thể nhận được một số giá trị âm, nhưng tôi thấy rằng các giá trị đó dường như bị giới hạn trong kênh sông và phổ biến nhất ở các khu vực dốc dốc. Gần đây tôi đã thử nghiệm các phương pháp tiếp cận đường dẫn để lập bản đồ "chiều cao lũ" nhưng điều này không thắng '


Cảm ơn bạn đã nhận xét của bạn Tom. Chào mừng đến với trang web của chúng tôi - thật tốt khi gặp bạn ở đây!
whuber

2

Bạn cần tính toán một bề mặt xu hướng, và sau đó trừ nó khỏi DEM ban đầu của bạn để có được bề mặt "bị loại bỏ".

Để tính toán một bề mặt xu hướng, bất kỳ chức năng đơn giản hóa bề mặt nào cũng có thể được sử dụng (lọc, làm mịn spline, tưới tiêu, v.v.). Sự lựa chọn này phụ thuộc vào cách bạn muốn bề mặt xu hướng này trông như thế nào.

Dưới đây là một ví dụ về cách sử dụng kuceing trong arcGIS 10.0 cho điều đó.


1
Ví dụ của tôi, có một phương pháp ưa thích để có được bề mặt xu hướng (ví dụ như loại đơn giản hóa bề mặt)?
Radar

Đó là câu hỏi! Nó phụ thuộc vào các biến thể địa hình mà bạn muốn được coi là "xu hướng" và loại bỏ, và những biến thể bạn muốn giữ. Đơn giản hóa càng mạnh, bạn càng ít giữ các biến thể cục bộ của địa hình. Như đã nói bởi whuber, một bề mặt xu hướng bao gồm các mặt phẳng địa phương thậm chí có thể thỏa mãn.
Julien
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.