Adalah umum untuk menggunakan indeks spasial kotak pembatas untuk meningkatkan kinerja ketika bekerja dengan sejumlah besar fitur. Di mana operasi dilakukan terhadap masing-masing geometri dengan sejumlah besar simpul, apakah ada strategi optimasi yang serupa?
Misalnya, apakah ada struktur data yang dapat mempercepat titik dalam poligon, atau operasi gabungan?
algorithm
optimization
indexing
Matthew Snape
sumber
sumber
R
) akan menawarkan pengguna jauh lebih banyak kontrol atas hal-hal seperti itu.Jawaban:
OK untuk Point in Polygon saja:
Saya pikir masalahnya didasarkan pada "sifat fraktal" dari objek 2d dan distribusi informasi spasial yang tidak pasti dan tidak seimbang. Jika Anda memiliki kisi-kisi biasa, mudah untuk menghitung posisi atau hubungan sel. Tetapi isoline model terrain mungkin memiliki bagian yang tidak rumit di sisi dan bagian yang rumit secara matematis di sisi lain (bagian yang secara morfologis aktif seperti bubungan, lembah ...).
Pengindeksan mencoba menangani dua hal:
Rutin cepat yang memberi Anda satu set ember tempat Anda mengumpulkan objek yang dapat secara spasial membingungkan (ember!). Dan BBox mudah dihitung dan ditangani.
Seperangkat relasi (tumpang tindih, sentuh) untuk membedakan atau menghubungkan hal-hal spasial (objek).
Sayangnya BBox tidak akan memberi Anda petunjuk, berapa banyak poin dalam setiap BBox, bagaimana objek dibentuk (lubang, cembung, ...) dan bagaimana info tersebut didistribusikan secara lokal (90% titik di sudut kiri atas jendela). BBox). Jadi, Anda dapat menemukan anggota operasi cepat pada tingkat objek dan kehilangan banyak waktu dalam membangun hubungan tes.
Untuk menggunakan pendekatan yang lebih tidak teratur, triangulasi IMO dalam kombinasi dengan dan quadtrees adalah salah satu strategi, di mana Anda dapat mendekatkan bucketing dan bagian building relasi dari indeks (bucket == building build).
Untuk contoh Point-in-Polygon-Test dimungkinkan untuk membuat cache tidak teratur dengan menggunakan:
Biaya untuk membangun timah dan quadtrees sangat tinggi dan sulit untuk dihitung dan quadtree harus menyeimbangkan segitiga besar dan kecil (segitiga yang tidak muat di kotak subtree yang lebih kecil).
Beberapa Alat dan Tautan:
Triangle - Membatasi triangulasi poligon
Quadtrees - Dengan contoh sumber
Stony Brook Repository - Struktur data dan geometri diskrit
sumber