Trích xuất tất cả các điểm trong một khoảng cách nhất định và chênh lệch chiều cao từ Raster


11

Tôi có một raster chứa hàng chục triệu điểm tất cả với dữ liệu X, Y và Z được xác định. Tôi cần tìm ra một cách đơn giản để trích xuất và tạo một raster hoặc vectơ mới với TẤT CẢ các điểm ở khoảng cách 720 m với nhau (X, Y) và ở độ cao 120 m (Z) với nhau.

Tôi có kiến ​​thức ZERO về SQL và Python. Tôi đã cố gắng làm điều này trên VBA và đưa ra một vài thuật toán nhưng thời gian xử lý là không hợp lý và không thực tế. Tôi chắc chắn phải có một cách tiếp cận GIS đơn giản để thực hiện điều này nhưng dường như không thể tìm thấy nó.

Tôi đang sử dụng ArcMap.


Tôi đang sử dụng ArcMap. Cám ơn bạn đã góp ý. Tôi cũng sẽ thay đổi nó trong câu hỏi ban đầu :).
user32882

Bạn nói 720m theo chiều ngang và 120m theo chiều dọc nhưng từ đâu? Âm thanh như bạn có một số loại đám mây điểm nhưng bạn có thể tìm kiếm các điểm có đầy đủ các tiêu chí của bạn từ bất kỳ vị trí nào trong đám mây này. Chắc chắn bạn phải có một số loại vị trí hạt giống hoặc tiêu chí khác mà bạn chưa đề cập, chẳng hạn như tối đa hóa số điểm đầy đủ các tiêu chí?
Hornbydd

Giống như tôi đã nói, tôi đang cố gắng "trích xuất TẤT CẢ các điểm ở khoảng cách 720 m với nhau (X, Y) và ở độ cao chênh lệch 120 m (Z) với nhau". Không có "vị trí hạt giống", tôi đang quét TẤT CẢ các điểm.
user32882

Một trong những thách thức lớn nhất mà tôi hình dung với điều này là cách kết quả được miêu tả. Có thể chấp nhận được kết quả raster trong đó 0= không có điểm cách xa 720m & độ cao ± 120m, 1= một hoặc nhiều điểm cách xa 720m & độ cao 120m? Hoặc, bạn có cần tính bao nhiêu điểm sẽ đáp ứng các tiêu chí không?
Erica

Erica thân mến, Sự lựa chọn đầu tiên sẽ được chấp nhận nhiều hơn. Tôi không có yêu cầu để đếm có bao nhiêu điểm đáp ứng tiêu chí này nhưng tôi cần phải có thể nhìn thấy chúng so với raster ban đầu. Theo đề xuất của bạn, bất kỳ điểm / pixel nào được gán giá trị 1 sẽ có điểm khác hoặc một số điểm khác trong độ cao và khoảng cách yêu cầu từ đó, vì vậy điều đó là hoàn hảo! Câu hỏi duy nhất tôi có là làm thế nào để thực hiện điều này một cách hiệu quả?
dùng32882

Câu trả lời:


13

Một cách tiếp cận có lẽ quá đơn giản sẽ là sử dụng Focal Statistics .

  • Xác định vùng lân cận quan tâm là một annulus , với bán kính bên trong chỉ dưới 720m và bán kính bên ngoài chỉ hơn 720m. .
  • Sử dụng loại thống kê MIN, để tìm giá trị độ cao thấp nhất trong vùng lân cận.
  • Lặp lại lần thứ hai, sử dụng loại thống kê MAX, để tìm giá trị độ cao cao nhất trong vùng lân cận.
  • Sử dụng Raster Calculator , đánh giá xem chênh lệch độ cao có đủ lớn hay không. Cái gì đó như

    Con((Abs("DEM" - "FSMin") > 120) | (Abs("DEM" - "FSMax") > 120), 1, 0)

    Nếu chênh lệch gốc-tối thiểu hoặc chênh lệch gốc-tối đa vượt quá 120m, giá trị là 1, nếu không thì 0. ( Lưu ý: Tôi chưa kiểm tra cú pháp. )

Điều này chỉ cho bạn biết một ô có một hoặc nhiều ô lân cận đáp ứng tiêu chí khoảng cách / độ cao của bạn hay không, nó không cho bạn biết có bao nhiêu.


Wow .... Tôi nghĩ rằng đã làm việc .... không thể tin được. Cảm ơn bạn rất nhiều. Tôi đã dành nhiều tuần mày mò với VBA để cố gắng làm điều này khi giải pháp khá đơn giản trên GIS. Chúa phù hộ bạn.
dùng32882

không phải điều này xác định các điểm với một người hàng xóm có độ cao ít nhất 120m? Tôi nghi ngờ đó là mục đích của câu hỏi, nhưng từ ngữ là "chênh lệch 120m".
Llaves

@Llaves Có, bạn đúng. Tôi nghi ngờ rằng việc tìm ra chính xác chênh lệch 120m ở chính xác 720m sẽ đòi hỏi một kịch bản rất thú vị.
Erica

Bất kể, phải có một khoảng thời gian kể từ khi chúng ta đang đối phó với địa hình tự nhiên. Đối với sự khác biệt độ cao ứng dụng của tôi vượt trội hơn 120 mét thực sự thú vị hơn. Tôi nên đã chính xác hơn trong tuyên bố ban đầu của tôi. Dù sao cũng cảm ơn các bạn.
user32882
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.