Bagaimana cara Spasial Partisi banyak poin?


9

Saya memiliki data lokasi pelanggan, dengan lebih dari 130 juta catatan, tersebar di seluruh negeri. Ini adalah Tabel Spasial di PostGIS

Sekarang saya ingin mempartisi seluruh negara menjadi 'area layanan', sehingga setiap area layanan memiliki:

  • Atleast 30 Pelanggan
  • Paling banyak 1000 km persegi.

Saya telah meneliti alat Agregat ArcGIS, tetapi tidak memenuhi kriteria saya, karena:

  • Itu tidak memperhitungkan minimum
  • Saya hanya memiliki Qgis & Rumput yang saya miliki.

Alat / proses apa yang dapat saya gunakan untuk Mencapai ini?

Jawaban:


4

Saya menjalankan eksperimen kecil:

  • menghasilkan 900 poin acak
  • menghubungkan mereka menggunakan pohon rentang minimum
  • mengambil wastafel di suatu tempat di tengah

masukkan deskripsi gambar di sini

  • membalik tautan untuk membentuk grafik arah, yaitu setiap node akhirnya dibuang ke wastafel yang sama

masukkan deskripsi gambar di sini

  • berlari skrip yang saya gunakan untuk menggabungkan tangkapan kecil ke yang lebih besar mencoba untuk mendapatkan "ukuran" rata-rata 30.

HASIL:

masukkan deskripsi gambar di sini

Beri tahu saya jika ini menarik, saya dapat menggali skripnya (sudah dipublikasikan di suatu tempat di situs ini) atau menjelaskan alur kerjanya dengan lebih detail. Saya menggunakan ArcGIS.

-------------------------------------

** PEMBARUAN September 2017

Ini sangat mirip dengan di atas, tetapi menggunakan pendekatan raster, Jarak dan alat Hidrologi dari ArcGIS. Bagian yang rumit adalah penciptaan pohon spanning minimum dan menemukan outlet 'tangkapan air' dalam format raster.

Ini adalah langkah-langkah yang saya ikuti:

  • Triangulasi node (titik ke cluster), ekstrak tepi jaringan segitiga, konversi node ke WEIGHT raster:

masukkan deskripsi gambar di sini

  • Hitung bidang di tabel tepi: Saya menggunakan (ShapeLength ^ 3 / 1e6). Konversikan ke raster, isi celah dengan nilai yang sangat tinggi untuk membuat COST raster. Ini mendorong aliran antara titik yang dekat satu sama lain. Diharapkan bahwa jalur aliran akan terlihat mirip dengan pohon spanning minimum (MST) bukannya dekat garis lurus menuju wastafel.
  • Pilih sembarang simpul (OUTLET / SINK) dan buat raster Cost Back Link, menggunakan permukaan BIAYA dan SINK sebagai sumber. Konversikan back link raster ke raster Flow Direction yang layak menggunakan Int(Power(2,"backlink"-1)). Akumulasi aliran menggunakan arah aliran dan raster berat. Karena orang dapat melihat triknya dengan penetapan biaya benar-benar menghasilkan sesuatu yang mirip dengan MST:

masukkan deskripsi gambar di sini

Saya memutuskan untuk mengelompokkan poin hingga 50. Dengan mengingat struktur fraktal jaringan saya menetapkan batas poin INLET sedikit lebih rendah pada awal 'Aliran Aliran Tinggi', yaitu Con ("FlowAccum"> 45,1). Inlet didefinisikan sebagai sel tempat

High Flow ada & statistik fokus = 2 & sel bukan SINK (tidak ada nilai data di Arah Aliran) :

masukkan deskripsi gambar di sini

Gunakan saluran masuk sebagai titik tuangkan dan arah aliran untuk menentukan daerah tangkapan air. Gambar menunjukkan 115 tangkapan yang diturunkan:

masukkan deskripsi gambar di sini

Statistik mereka: rata-rata = 50,33, min = 46 dan maks = 74.

Untuk mendapatkan set tangkapan kedua yang cukup untuk menghapus raster BERAT di bawah tangkapan yang telah ditentukan, hitung Akumulasi Aliran dll.

Metode akan bekerja untuk jutaan poin karena berbasis raster, triangulasi jumlah poin itu tidak akan menjadi masalah juga.


1
Saya tidak tahu apakah ini akan dapat digunakan untuk saya, tetapi itu terlihat menarik sekali .. Tolong posting skrip jika Anda bisa.
Devdatta Tengshe

Saya akan memposting skrip hari ini atau Senin, mengambil cuti sehari kerja. Sementara itu lihatlah gis.stackexchange.com/questions/179559/... di mana saya menggambarkan ide di baliknya
FelixIP

Saya mengujinya pada 100.000 poin semalam. Langkah terakhir memakan waktu hampir 6 jam dan itu membuatnya pendekatan tidak pergi , setidaknya di ArcGIS. Belum lagi saya harus kode MST sendiri, karena alat saya oleh Patterson macet.
FelixIP

Apakah Anda berhasil menyelesaikannya? Sepertinya saya memang menggunakan pendekatan raster, dapat memposting alur kerja jika ini menarik /
FelixIP

Silakan lakukan. Saya menyelesaikannya dengan metode Bruteforce, yang cukup baik untuk tujuan saya; Tapi saya yakin orang lain bisa mendapat manfaat dari pendekatan baru Anda.
Devdatta Tengshe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.