ฉันจะแบ่งพาร์ติชันเป็นจำนวนมากได้อย่างไร


9

ฉันมีข้อมูลตำแหน่งของลูกค้าที่มีมากกว่า 130 ล้านระเบียนกระจายอยู่ทั่วประเทศ นี่คือตารางเชิงพื้นที่ใน PostGIS

ตอนนี้ฉันต้องการแบ่งทั้งประเทศเป็น 'พื้นที่ให้บริการ' ซึ่งแต่ละพื้นที่ให้บริการมี:

  • อย่างน้อย 30 ลูกค้า
  • อยู่ที่มากที่สุด 1,000 ตารางกิโลเมตร

ฉันได้วิจัยเครื่องมือการรวมของ ArcGIS แล้ว แต่ไม่เป็นไปตามเกณฑ์ของฉันเนื่องจาก:

  • มันไม่ได้นับขั้นต่ำในการพิจารณา
  • ฉันมี Qgis & Grass เพียงแค่การกำจัดของฉัน

เครื่องมือ / กระบวนการใดที่ฉันสามารถใช้เพื่อให้บรรลุสิ่งนี้

คำตอบ:


4

ฉันทำการทดลองขนาดเล็ก:

  • สร้างคะแนนสุ่ม 900 คะแนน
  • เชื่อมต่อพวกเขาโดยใช้แผนผังทอดขั้นต่ำ
  • เลือกอ่างล้างจานอยู่ตรงกลาง

ป้อนคำอธิบายรูปภาพที่นี่

  • พลิกลิงค์เพื่อสร้างกราฟทิศทางคือแต่ละโหนดจะปล่อยลงในอ่างเดียวกันในที่สุด

ป้อนคำอธิบายรูปภาพที่นี่

  • เรียกใช้สคริปต์ที่ฉันใช้สำหรับการรวมที่มีขนาดเล็กลงเป็นที่ใหญ่กว่าพยายามที่จะได้รับ "ขนาด" เฉลี่ย 30

ผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่

แจ้งให้เราทราบว่าสิ่งนี้เป็นที่สนใจหรือไม่ฉันสามารถขุดสคริปต์ (เผยแพร่แล้วในบางแห่งในไซต์นี้) หรืออธิบายขั้นตอนการทำงานโดยละเอียด ฉันใช้ ArcGIS

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

** อัปเดต ก.ย. 2017

มันคล้ายกับข้างบน แต่ใช้ raster, Distance และ Hydrology tools จาก ArcGIS ส่วนที่ยากลำบากคือการสร้างต้นไม้ที่ทอดน้อยที่สุดและค้นหาร้านค้า 'catchments' ในรูปแบบแรสเตอร์

นี่คือขั้นตอนที่ฉันปฏิบัติตาม:

  • Triangulate nodes (ชี้ไปที่คลัสเตอร์), ดึงขอบเครือข่ายสามเหลี่ยม, เปลี่ยนโหนดเป็นWEIGHT raster:

ป้อนคำอธิบายรูปภาพที่นี่

  • คำนวณเขตข้อมูลในตารางขอบ: ฉันใช้ (ShapeLength ^ 3 / 1e6) แปลงเป็นแรสเตอร์เติมช่องว่างที่มีมูลค่าสูงมากเพื่อสร้างแรสเตอร์COST สิ่งนี้ส่งเสริมการไหลระหว่างจุดที่อยู่ใกล้กัน หวังว่าเส้นทางการไหลจะมีลักษณะใกล้เคียงกับแผนผัง Spanning ขั้นต่ำ (MST) แทนที่จะอยู่ใกล้กับเส้นตรงที่มุ่งหน้าไปยังอ่างล้างจาน
  • เลือกโหนดใด ๆ (OUTLET / SINK) และสร้างแรสเตอร์ลิงก์ย้อนกลับของต้นทุนโดยใช้พื้นผิว COST และ SINK เป็นแหล่งที่มา แปลง raster Int(Power(2,"backlink"-1))เชื่อมโยงกลับไปที่ดีไหลทิศทางแรสเตอร์โดยใช้ สะสมการไหลโดยใช้ทิศทางการไหลและแรสเตอร์น้ำหนัก ในฐานะที่เป็นหนึ่งสามารถดูเคล็ดลับที่มีการกำหนดต้นทุนผลิตสิ่งที่คล้ายกับ MST อย่างแท้จริง:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันตัดสินใจที่จะจัดกลุ่มคะแนน 50 โดยคำนึงถึงโครงสร้างแฟร็กทัลของเครือข่ายฉันตั้งค่าขีด จำกัด จุดลดลงเล็กน้อยที่จุดเริ่มต้นของ 'High Flow Streams' เช่น Con ("FlowAccum"> 45,1) เวิ้งถูกกำหนดให้เป็นเซลล์ที่

มีโฟลว์สูงและสถิติโฟกัส = 2 & เซลล์ไม่ใช่ SINK (ไม่มีค่าข้อมูลในทิศทางการไหล) :

ป้อนคำอธิบายรูปภาพที่นี่

ใช้ทางเข้าเป็นจุดไหลและทิศทางการไหลเพื่อกำหนดอ่างล้างจาน รูปภาพแสดงสิ่งที่ได้มา 115 ครั้ง:

ป้อนคำอธิบายรูปภาพที่นี่

สถิติของพวกเขา: mean = 50.33, min = 46 และ max = 74

เพื่อให้ได้ชุดเก็บกักน้ำชุดที่สองมันเพียงพอที่จะลบน้ำหนักแรสเตอร์ภายใต้อ่างล้างจานที่กำหนดไว้แล้วคำนวณการไหลของการไหล ฯลฯ

วิธีการนี้ใช้งานได้หลายล้านคะแนนเพราะเป็นแบบ raster การคำนวณจำนวนจุดนั้นจะไม่เป็นปัญหาเช่นกัน


1
ฉันไม่รู้ว่ามันจะใช้งานได้สำหรับฉันหรือไม่ แต่มันก็น่าสนใจเหมือนนรก ... โปรดโพสต์สคริปต์ถ้าคุณทำได้
Devdatta Tengshe

ฉันจะโพสต์สคริปต์ภายหลังวันนี้หรือวันจันทร์หยุดงานหนึ่งวัน ในระหว่างนี้ให้ดูที่gis.stackexchange.com/questions/179559/ซึ่งฉันได้อธิบายแนวคิดที่อยู่เบื้องหลัง
FelixIP

ฉันทดสอบกับ 100,000 คะแนนในชั่วข้ามคืน ขั้นตอนสุดท้ายใช้เวลาเกือบ 6 ชั่วโมงและทำให้ไม่เข้าใกล้ไม่ใช่ใน ArcGIS เป็นอย่างน้อย ไม่ต้องพูดถึงว่าฉันต้องรหัส MST ตัวเองเพราะเครื่องมือที่ฉันโดย Patterson ติดอยู่
FelixIP

คุณจัดการเพื่อแก้ปัญหาได้หรือไม่? ดูเหมือนว่าฉันใช้ raster approach สามารถโพสต์เวิร์กโฟลว์ได้ถ้าเป็นเรื่องที่น่าสนใจ /
FelixIP

กรุณาทำ ฉันแก้ไขด้วยวิธี Bruteforce ซึ่งก็โอเคพอสำหรับวัตถุประสงค์ของฉัน แต่ฉันแน่ใจว่าคนอื่นจะได้ประโยชน์จาก aproach ใหม่ของคุณ
Devdatta Tengshe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.