Mengekstraksi semua titik dalam jarak dan perbedaan ketinggian tertentu dari Raster

11

Saya memiliki raster yang berisi puluhan juta poin, semua dengan data X, Y, dan Z ditentukan. Saya perlu mencari cara sederhana untuk mengekstrak dan membuat raster atau vektor baru dengan SEMUA titik pada jarak 720 m satu sama lain (X, Y) dan pada perbedaan ketinggian 120 m (Z) dari satu sama lain.

Saya memiliki NOL pengetahuan tentang SQL dan Python. Saya telah mencoba melakukan ini di VBA dan muncul dengan beberapa algoritma tetapi waktu pemrosesan tidak masuk akal dan tidak realistis. Saya yakin harus ada pendekatan GIS sederhana untuk mencapai ini tetapi tampaknya tidak dapat menemukannya.

Saya menggunakan ArcMap.

pengguna32882
sumber
Saya menggunakan ArcMap. Terima kasih atas komentar Anda. Saya juga akan mengubahnya di pertanyaan awal :).
user32882
Anda mengatakan 720m di horizontal dan 120m di vertikal tetapi dari mana? Kedengarannya Anda memiliki semacam cloud poin tetapi Anda dapat mencari poin yang memenuhi kriteria Anda dari lokasi mana pun di dalam cloud ini. Tentunya Anda harus memiliki semacam lokasi benih atau kriteria lain yang belum Anda sebutkan seperti memaksimalkan jumlah poin yang penuh memenuhi kriteria?
Hornbydd
Seperti yang saya katakan, saya mencoba untuk "mengekstrak SEMUA titik pada jarak 720 m satu sama lain (X, Y) dan pada perbedaan ketinggian 120 m (Z) dari satu sama lain." Tidak ada "lokasi unggulan", saya memindai SEMUA poin.
user32882
Salah satu tantangan terbesar yang saya bayangkan adalah bagaimana hasilnya digambarkan. Apakah dapat diterima untuk memiliki hasil raster di mana 0= tidak memiliki titik 720m jauhnya & ± 120m ketinggian, 1= satu atau lebih poin 720m jauhnya & ± 120m ketinggian? Atau, apakah Anda perlu menghitung berapa poin yang memenuhi kriteria?
Erica
Dear Erica, Pilihan pertama akan lebih dari cukup. Saya tidak memiliki persyaratan untuk menghitung berapa banyak poin yang memenuhi kriteria ini, tetapi saya harus dapat melihatnya dibandingkan dengan raster asli. Menurut saran Anda, setiap titik / piksel yang diberi nilai 1 akan memiliki titik lain atau beberapa lainnya dalam ketinggian dan jarak yang diperlukan darinya, sehingga itu sempurna! Satu-satunya pertanyaan yang saya miliki adalah bagaimana mencapainya dengan cara yang efisien?
user32882

Jawaban:

13

Pendekatan yang mungkin terlalu sederhana adalah menggunakan Focal Statistics .

  • Tetapkan lingkungan yang diminati sebagai anulus , dengan radius bagian dalam tepat di bawah 720m dan radius luar lebih dari 720m. (Ini agak tergantung pada ukuran sel. Misalnya, sel 5m akan memiliki annulus 717,5 - 722,5; ini mungkin jendela yang terlalu besar untuk raster sel 1m.)
  • Gunakan tipe statistik MIN, untuk menemukan nilai ketinggian terendah di lingkungan tersebut.
  • Ulangi untuk kedua kalinya, gunakan tipe statistik MAX, untuk menemukan nilai ketinggian tertinggi di lingkungan tersebut.
  • Menggunakan Kalkulator Raster , evaluasi apakah perbedaan ketinggian cukup besar. Sesuatu seperti

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

    Jika perbedaan original-min atau perbedaan original-max melebihi 120m, nilainya 1, jika tidak 0. ( Catatan: Saya belum menguji sintaks. )

Ini hanya memberi tahu Anda apakah sebuah sel memiliki satu atau lebih sel tetangga yang memenuhi kriteria jarak / ketinggian Anda, itu tidak memberi tahu Anda berapa banyak.

Erica
sumber
Wow .... Saya pikir itu berhasil .... luar biasa. Terima kasih banyak. Saya telah menghabiskan waktu berminggu-minggu bermain-main dengan VBA mencoba melakukan ini ketika solusinya cukup sederhana pada GIS. Tuhan memberkati Anda.
user32882
bukankah ini mengidentifikasi titik dengan tetangga yang memiliki ketinggian setidaknya 120 m? Saya menduga itulah maksud dari pertanyaan, tetapi kata-katanya adalah "selisih 120m".
Llaves
@ Daun Ya, Anda benar. Saya menduga bahwa menemukan perbedaan 120m tepat pada 720m persis akan membutuhkan skrip yang sangat menarik.
Erica
Bagaimanapun, harus ada jeda karena kita berhadapan dengan medan alami. Untuk perbedaan ketinggian aplikasi saya, superior hingga 120 meter sebenarnya lebih menarik. Seharusnya saya lebih tepat dalam pernyataan asli saya. Terima kasih semuanya.
user32882