Mengedit cloud titik LiDAR untuk menghilangkan noise / outlier yang ada di bawah dan di atas tanah?

10

Saya memiliki data LiDAR "kotor" yang berisi pengembalian pertama dan terakhir dan juga kesalahan yang tak terhindarkan di bawah dan di atas permukaan. (tangkapan layar)

masukkan deskripsi gambar di sini

Saya memiliki SAGA, QGIS, ESRI dan FME di tangan, tetapi tidak ada metode nyata. Alur apa yang bagus untuk membersihkan data ini? Apakah ada metode otomatis lengkap atau akankah saya menghapus secara manual?

Robert Buckley
sumber
Apakah data cloud point Anda memiliki klasifikasi noise rendah / tinggi (kelas 7 & 8 dari spesifikasi las 1,4 R6)?
Aaron
Apa yang sudah Anda coba dengan salah satu produk perangkat lunak itu, dan di mana Anda terjebak dengannya? Anda tampaknya ingin membahas opsi daripada mengajukan pertanyaan terfokus. Opsi diskusi selalu boleh dilakukan di Ruang Obrolan GIS.
PolyGeo
1
Voting untuk dibuka kembali, sebagai moderator kesalahan pertanyaan yang meminta perangkat lunak dengan pertanyaan yang meminta metode / cara untuk melakukan sesuatu. Jawaban yang hanya berisi daftar perangkat lunak bukan jawaban nyata dalam konteks ini. Saya menjelaskan POV saya lebih baik di gis.meta.stackexchange.com/questions/4380/… .
Andre Silva
1
Juga, tampaknya penutupan unilateral "terlalu luas" telah digunakan secara berlebihan: gis.meta.stackexchange.com/questions/4816/… . Saya pikir kasus ini berlaku di sini. Apa yang membuat pertanyaan tunggal adalah memiliki semua jenis outlier di cloud point.
Andre Silva

Jawaban:

9

Anda sepertinya memiliki outlier:

  • i) di bawah permukaan tanah;
  • ii) di atas permukaan tanah dan secara vertikal di antara fitur nyata di atas tanah lainnya;
  • iii) titik-titik di atas tanah dengan ketinggian lebih besar dari semua objek yang menarik, misalnya yang disebabkan oleh awan atau burung (ini tidak diperlihatkan dalam gambar, tetapi saya berasumsi itu mungkin juga terjadi).

Untuk 'i', opsinya adalah menggunakan algoritme filter tanah yang dapat memperhitungkan 'kesalahan negatif' untuk mendapatkan cloud ground point LiDAR yang bersih. Lihat algoritma Multiscale Curvature Classification (MCC) dari Evans dan Hudak (2007). Dikatakan di halaman 4:

Kesalahan negatif adalah kejadian umum dalam data LiDAR, yang mungkin disebabkan oleh hamburan foton dalam pulsa laser yang dikembalikan. Hamburan memperpanjang waktu untuk pulsa laser yang dipancarkan untuk kembali ke sensor pesawat, menggembungkan perhitungan jarak yang ditempuh, karenanya menyebabkan kesalahan pengukuran di mana ketinggian permukaan secara salah dicatat sebagai berada di bawah pengukuran sekitarnya. Perlu dicatat bahwa pendekatan klasifikasi kelengkungan berpotensi dapat menghapus pengembalian yang valid di sekitar kesalahan negatif, yang dapat memperluas artefak tepi di sekitar kesalahan negatif untuk menciptakan efek "kawah bom" yang berbeda. Untuk mengatasi kesalahan negatif, Haugerud dan Harding menyarankan pengaturan parameter toleransi kelengkungan menjadi empat kali ukuran sel yang diinterpolasi dan memilih pengembalian yang melebihi ambang kelengkungan negatif ini. Namun, harus dicatat bahwa dalam keadaan tertentu, pengembalian yang tampak sebagai kesalahan negatif sebenarnya bisa menjadi pengembalian yang valid (misalnya, lubang pembuangan). Oleh karena itu, saran sebelumnya untuk menghilangkan kesalahan negatif potensial dapat diimplementasikan sebagai loop model terakhir opsional untuk digunakan atas kebijaksanaan pengguna jika diperlukan.

Di bawah ini ada posting dengan contoh tentang menggunakan MCC-LIDAR:

Setelah Anda memiliki cloud titik awan LiDAR yang akurat untuk membuat DEM yang akurat, dimungkinkan untuk menormalkan awan titik, dan mengecualikan titik yang berada di bawah permukaan DEM (yang memiliki nilai negatif). Dengan menggunakan pendekatan yang sama, dimungkinkan juga untuk menunjuk nomor titik 'iii' menghilangkan titik di atas ambang batas tertentu. Lihat, misalnya:

Kemudian, ia meninggalkan kita dengan 'ii', yang dialamatkan oleh jawabanlasnoise AlecZ merekomendasikan dari LAStools. Ini juga akan menangani 'iii', dan mungkin juga bagian dari 'i' (LAStools memerlukan lisensi). Alat-alat lain yang khusus dibuat untuk memeriksa / menghapus outlier dikutip di sini: filters.outlierAlat PDAL dalam jawaban Charlie Parr yang memiliki penjelasan terperinci tentang bagaimana alat itu bekerja, dan dengan keunggulannya PDAL adalah perangkat lunak bebas.

Kemudian, apa yang tersisa dari proses otomatis (jika ada outlier) dapat dihapus secara manual. Sebagai contoh:


Evans, Jeffrey S .; Hudak, Andrew T. 2007. Algoritma kelengkungan multiskala untuk mengklasifikasikan LiDAR pengembalian diskrit di lingkungan hutan . Transaksi IEEE pada Geoscience dan Remote Sensing. 45 (4): 1029-1038.

Andre Silva
sumber
3

Saya akan merekomendasikan PDAL pustaka abstratksi data titik. Saya sudah sukses menggunakan PDAL untuk masalah penyaringan serupa. Saya suka PDAL karena open source, memberikan dukungan Python, dan membuatnya mudah bagi saya untuk mereproduksi pemrosesan dan melacak parameter penyaringan saya. Saya juga suka karena memiliki 'jalur pipa' di mana Anda dapat menyatukan beberapa langkah (misalnya memotong lalu menyaring lalu mengekspor) dan menjalankannya sekaligus. Perhatikan bahwa jika Anda memiliki cloud point PDAL benar-benar besar mungkin tidak secepat seperti beberapa solusi lainnya (LASTools, QTM, dll.).

Anda bisa mengatasi masalah titik terpencil dengan pipa PDAL yang serupa dengan yang berikut:

{
"pipeline": [
    "input_utm.las",
    {
        "type":"filters.crop",
        "bounds":"([401900,415650],[7609100,7620200])"
    },
    {
        "type":"filters.outlier",
        "method":"statistical",
        "mean_k":12,
        "multiplier":2.0
    },
    {
        "type":"filters.range",
        "limits":"Classification![7:7]"
    },
    {
      "filename":"output.tif",
      "resolution":1.0,
      "output_type":"mean",
      "radius":3.0,
      "bounds":"([401900,415650],[7609100,7620200])",
      "type": "writers.gdal"
    }
    ]
}

Pipa ini membaca dalam LAS, memotongnya sampai batas UTM yang ditentukan, kemudian melakukan filter yang menandai semua titik terpencil, kemudian melakukan filter kedua yang hanya menyimpan titik-titik yang tidak terpencil (yaitu bendera Klasifikasi! = 7), kemudian mengekspor ke GeoTIFF resolusi 1 m. Filter statistik sedang melakukan perhitungan jarak rata-rata tetangga terdekat untuk menguji apakah suatu titik 'terlalu jauh' dari tetangganya dan oleh karena itu merupakan pencilan.

Dari dokumentasi :

masukkan deskripsi gambar di sini

Charlie Parr
sumber
1
@AndreSilva diedit! pada dasarnya ia bertanya apa jarak 'normal' untuk suatu titik menjadi bentuknya (mean_k) tetangga, dan jika jarak untuk suatu titik terlalu jauh (lebih besar dari (pengali) * sigma di atas jarak rata-rata) maka itu ditandai sebagai an outlier
Charlie Parr
1

Karena OP tidak membatasi solusi untuk open-source, saya sarankan Quick Terrain Modeler ( QT Modeler ). Itu memang membutuhkan lisensi. Muat titik cloud di QT, dan Anda pada dasarnya memiringkannya untuk mendapatkan tampilan profil yang Anda inginkan, karet-band cluster yang ingin Anda hapus, dan tekan saja delete.

auslander
sumber
1

Saya beruntung hanya menggunakan varians fokus pada raster yang diinterpolasi. Anda kemudian menetapkan nilai varians untuk poin Anda dan menggunakan ambang batas untuk menghapus varians lokal tinggi, mewakili keberangkatan besar dari estimasi kernel lokal.

Anda harus memastikan bahwa resolusi permukaan yang diinterpolasi adalah butiran yang cukup kecil sehingga dapat menangkap variasi lokal pada level titik. Ukuran kernel akan memiliki efek juga tetapi untuk pencilan tunggal, sebuah jendela 3x3 sudah cukup. Anda mungkin kehilangan beberapa poin tambahan dengar-dan-di sana tetapi, dengan LIDAR Anda memiliki banyak data untuk cadangan.

Jeffrey Evans
sumber
1

Lastools menyediakan apa yang Anda butuhkan - skrip otomatis yang akan menghapus semua poin ini untuk Anda. Namun, ada biaya lisensi untuk itu, tetapi jika ini adalah proses yang ingin Anda lakukan dengan cepat sebagai tugas rutin, menggunakan skrip lasnoise dari perangkat mereka adalah pilihan yang sempurna.

Seperti yang dicatat oleh @Andre Silva, ArcGIS memiliki las toolset, yang dapat Anda gunakan setelah menjalankan alat geoprosesing LAS Dataset. Dari sana, Anda dapat masuk secara manual untuk mereklasifikasi atau menghapus titik-titik kebisingan ini. Kekurangannya adalah prosesnya tidak seintuitif atau seefektif QT Modeler (disarankan oleh @auslander), mungkin program terbaik untuk memvisualisasikan / menganalisis / memanipulasi file las secara manual, dan dengan biaya lisensi juga. ArcMap akan membatasi jumlah titik yang terlihat saat mengedit awan titik Anda, yang berarti bahwa Anda kemungkinan harus memperbesar area yang berisik, menghapus atau mengklasifikasi ulang mereka, dan kemudian bergerak sebagai bagian dari proses pembersihan manual. Tapi ini akan menyelesaikan pekerjaan.

AlecZ
sumber
1

Seperti yang dikatakan Andre Silva , MCC-LIDAR adalah pilihan yang baik untuk mengekstraksi poin dasar tetapi dari pengalaman saya, itu akan sulit jika Anda memiliki pointcloud yang sangat besar (500 juta poin atau bahkan kurang). Dengan kata lain, itu akan mengembalikan kesalahan dan tidak akan menjalankan algoritma, bahkan jika Anda mengubah pengaturan (skala dan parameter kelengkungan). Juga, dari pengalaman saya, itu menyimpan beberapa "kesalahan negatif" dalam data.

Alternatif saya untuk itu adalah membalikkan pointcloud (titik-titik di bawah tanah akan naik dan tanah di atas akan turun). Untuk mendapatkan ini, saya memuat data ke R dan membalikkan ketinggian, kemudian jalankan MCC-LIDAR dan kembali data. Anda mungkin bisa melakukan ini di QGIS atau ArcGIS tetapi tergantung pada ukuran dataset Anda, mungkin perlu waktu untuk melakukannya.

Ground tool PDAL juga merupakan opsi yang baik karena berfungsi lebih baik dengan dataset yang lebih besar tetapi, sekali lagi, beberapa poin di bawah ground masih akan disimpan. Membalik dataset akan membantu menyelesaikan masalah ini lagi.

Untuk poin-poin di atas, pendekatan terbaik saya adalah pembersihan manual dan alat open source terbaik yang saya temukan untuk melakukannya adalah di dalam CloudCompare. Anda akan memilih Segmentdi menu bar bagian atas dan Anda dapat menghapus poin yang dipilih atau yang lainnya. Saya telah menggunakan LAStools sebelumnya ( lasviewalat) untuk ini, tetapi cara antarmuka 3D tidak ramah pengguna.

Andre
sumber
Pendekatan menarik membalik awan titik untuk menghilangkan kesalahan negatif. Apakah mudah memuat pointcloud 500 juta poin dalam R?
Andre Silva
Mungkin butuh beberapa menit. Saya biasanya mengunggah dari file ASCII menggunakan ketakutan dari paket pengembangan data.table di mana saya bisa bermain-main dengan jumlah utas untuk digunakan.
Andre
1

Saya dukungan teknis dari GreenValley International, alat Penghapusan Outlier di perangkat lunak andalan kami LiDAR360 dapat digunakan untuk menghapus kesalahan ini sebanyak mungkin dan karenanya meningkatkan kualitas data.

Algoritme pertama-tama akan mencari titik-titik tetangga di setiap titik dalam lingkungan yang ditentukan pengguna, dan menghitung jarak rata-rata dari titik ke titik-titik di sekitarnya. Kemudian, deviasi rata-rata dan standar dari jarak rata-rata ini untuk semua titik dihitung. Jika jarak rata-rata suatu titik ke tetangganya lebih besar dari jarak maksimum (jarak maksimum = rata-rata + n * standar deviasi, di mana n adalah angka rangkap yang ditentukan pengguna), maka akan dianggap sebagai pencilan dan dihapus dari yang asli awan titik.

masukkan deskripsi gambar di sini

chenlh
sumber
-1

Sebagai opsi Open Source, 3D Forest memiliki beberapa alat bagus untuk memfilter secara otomatis, serta alat manual untuk membersihkan titik awan. Anda mungkin harus mencoba dengan parameter filter yang berbeda untuk mendapatkan hasil yang Anda butuhkan. Meskipun berorientasi pada awan titik hutan, banyak alat berguna dalam awan titik mana pun.

A_NeriWinter
sumber