ฉันมีคลาสคุณลักษณะเฉพาะที่แสดงถึงที่ตั้งสำนักงานของนายจ้างทั้งหมดในอุตสาหกรรมหนึ่ง ๆ คลาสคุณลักษณะนี้มีคุณลักษณะสำหรับจัดเก็บจำนวนพนักงานที่ทำงานในแต่ละสำนักงาน มีคนขอใช้ข้อมูลนี้เข้าร่วมเชิงพื้นที่กับหน่วยทางภูมิศาสตร์ที่เล็กที่สุดเท่าที่จะเป็นไปได้ - บล็อกการสำรวจสำมะโนประชากรในกรณีนี้ อย่างไรก็ตามข้อตกลงความเป็นส่วนตัวป้องกันการเปิดเผยข้อมูลตามที่เป็นอยู่ แต่จะต้องระงับเพื่อให้ตรงกับเกณฑ์สองประการ:
- รูปหลายเหลี่ยมใด ๆ จะต้องมีนายจ้างอย่างน้อย 3 คน (คะแนน);
- ไม่เกิน 80% ของการจ้างงานทั้งหมดภายในรูปหลายเหลี่ยมอาจเป็นนายจ้างคนเดียว
ฉันประสบความสำเร็จในการเขียนสคริปต์ที่เชื่อมโยงประเด็นไปยังบล็อกการสำรวจสำมะโนประชากรเชิงพื้นที่โดยรักษาผลรวมและการจ้างงานสูงสุดในแต่ละ แต่ละรายการที่ไม่ตรงตามเกณฑ์การปราบปรามจะถูกตั้งค่าสถานะ (รูปหลายเหลี่ยมที่ไม่มีคะแนนจะไม่ถูกตั้งค่าสถานะเนื่องจากไม่มีข้อมูลที่จะระงับ) จากนั้นฉันจะตรวจสอบแต่ละกลุ่มบล็อกเพื่อดูว่ามีบล็อกภายในที่ถูกตั้งค่าสถานะอยู่หรือไม่ กลุ่มบล็อกที่มีเฉพาะบล็อกที่ไม่ติดธงจะถูกแทนที่ด้วยบล็อก คลาสคุณลักษณะที่ได้จะถูกตรวจสอบกับเกณฑ์การปราบปรามเพื่อตรวจสอบว่ากลุ่มบล็อกได้ระงับข้อมูลอย่างเพียงพอหรือไม่
กระบวนการเดียวกันนี้ทำซ้ำสำหรับ Tracts โดยปล่อยให้ฉันมีชุดข้อมูลที่ประกอบไปด้วย Tracts (บางคนถูกตั้งค่าสถานะและบางคนไม่ได้) กลุ่มบล็อกและบล็อก (ยกเลิกการตั้งค่าสถานะทั้งหมด) อย่างไรก็ตามความก้าวหน้าครั้งต่อไปในลำดับชั้นทางภูมิศาสตร์เป็นเขตที่ไม่ได้ใช้กับบุคคลที่ขอข้อมูลนี้
จากนั้นคำถามของฉันคือสิ่งนี้: มีวิธีการใดที่ยอมรับกันโดยทั่วไปในการรวมรูปหลายเหลี่ยมเป็นกลุ่มให้ได้มากที่สุดเพื่อให้เป็นไปตามเกณฑ์ขั้นต่ำทั้งหมดหรือไม่
นี่คือกฎบางอย่างที่ฉันต้องการนำไปใช้กับการรวม:
- เมื่อใดก็ตามที่เป็นไปได้ผืนที่ถูกตั้งค่าสถานะควรรวมกับทางเดินที่ถูกตั้งค่าสถานะอื่นเท่านั้น
- สำหรับทางเดินที่ถูกตั้งค่าสถานะซึ่งไม่ต่อเนื่องกับคนอื่น ๆ (หรือกลุ่มแยกที่ยังไม่ตรงตามเกณฑ์) พวกเขาสามารถเข้าร่วมกับผืนที่ตรงกับเกณฑ์แล้วแม้ว่าอาจจะมีผืนที่ไม่มีนายจ้างในระหว่างพวกเขาที่จะ จะต้องรวม
- ฉันต้องการให้เขตแดนของเขตนั้นสมบูรณ์เว้นแต่จะเป็นไปไม่ได้อย่างแน่นอน (และฉันคาดว่าจะทำสิ่งนี้ได้โดยการแยกคุณสมบัติอินพุตเข้าสู่เขตของตนก่อนดำเนินการ)
- การแก้ปัญหาจะต้องอยู่ใน Python ด้วยการใช้เครื่องมือ ArcGIS หรือไลบรารี Python โอเพนซอร์ส
เป็นการดีที่ใครบางคนสามารถชี้ให้ฉันไปที่วิธีการที่มีอยู่ของการใช้การรวมตัวนี้ ถ้าไม่ฉันยินดีที่จะเขียนอัลกอริทึมด้วยตนเองแม้ว่ารายการขั้นตอน / เครื่องมือเฉพาะจะได้รับการชื่นชมมาก ปัญหาดังกล่าวทำให้ฉันเป็นกรณีพิเศษของการกำหนดใหม่ (ด้วยรูปหลายเหลี่ยมที่ไม่ต่อเนื่องกัน) และด้วยเหตุนี้ฉันจึงได้มองถึงการใช้อัลกอริทึมการกำหนดภูมิภาคของ PySALแม้ว่าจะยังไม่ชัดเจนสำหรับฉัน .