การสร้างส่วนโค้งระหว่างสองจุดใน ArcPy?


11

ฉันทำงานกับสคริปต์หลามโดยอัตโนมัติการแสดงข้อมูลจุดสด ฉันมีตารางที่มีพิกัดสองคู่ ฉันต้องการเชื่อมต่อสองจุดนี้กับส่วนโค้งของวงกลมหรือคล้ายกัน (parabola ??)

ฉันสามารถเชื่อมต่อสองจุดเข้ากับเส้นตรงได้ แต่มันทำให้ฉันเห็นภาพที่น่าเบื่อ

หนึ่งในอุปสรรคสำคัญคือระดับสิทธิ์การใช้งานของฉัน: ArcView

ใครมีความคิดใด ๆ ว่าฉันสามารถสร้างชุดของจุดที่แสดงเส้นทางของเส้นระหว่างสองจุดเหล่านี้ได้อย่างไร

ฉันสามารถใช้คะแนนเพื่อคำสั่ง polyline


5
คุณไม่ได้ให้ข้อมูลที่เพียงพอ: "ปรับปรุงภาพที่น่าเบื่อ" ไม่เฉพาะเจาะจงหรือเป็นปัญหาที่ดี แต่บางทีคุณอาจจะได้รับความคิดบางอย่างจากด้ายใกล้เคียงที่gis.stackexchange.com/questions/5204/...
whuber

1
คุณกำลังดูหลายบรรทัดพร้อมกันหรือเพียงครั้งละหนึ่ง (หรือสองสาม)?
Andy W

จำนวนจุดอาจอยู่ที่ใดก็ได้ตั้งแต่ 2 ถึงประมาณ 50
พิกเซล

คำตอบ:


28

ดูเหมือนว่าปัญหาที่พบบ่อยที่สุดกับ "แผนที่การไหล" ประเภทนี้คือเมื่อรวมหลายบรรทัดพวกเขาชนกันมากจนทำให้ยากที่จะมองเห็นรูปแบบที่ไม่ชัดเจนใด ๆ (เมื่อกระแสการไหลเวียนซึ่งถูกพิจารณาว่าเกิดขึ้นกับ ขอบเขตที่ยิ่งใหญ่กว่า) เส้นยาวมีแนวโน้มที่จะครอบงำกราฟิกแม้ว่ามันจะค่อนข้างเป็นไปได้ที่การกระจายของกระแสจะมีอำนาจเหนือช่องว่างสั้น ๆ (เช่นโฮสต์ของการกระจายที่แตกต่างกันระหว่างสถานที่มีแนวโน้มที่จะคล้ายกับเที่ยวบิน Levy ) ฉันคิดว่านี่ไม่จำเป็นต้องเป็นสิ่งที่ไม่ดี (เส้นยาวอาจน่าสนใจยิ่งกว่านั้นคือเส้นสั้น ๆ สำหรับปรากฏการณ์หลายอย่าง) แต่ฉันไม่คิดว่าเราต้องการสูญเสียป่าเพื่อให้ต้นไม้พูด

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

การบิดเบือนเส้น

หากคุณอ่านหัวข้ออื่น ๆ ที่เห็นคุณจะเห็นตัวอย่างว่าผู้คนจัดการกับปัญหานี้อย่างไร โดยเฉพาะอย่างยิ่งเส้นที่บิดเบี้ยวดังนั้นพวกเขาจึงไม่ทับซ้อนกันหรือวัตถุอื่น ๆ บนแผนที่ คำตอบของ Whuber กับคำถามที่คล้ายกัน (ที่กล่าวถึงแล้วในความคิดเห็น) เป็นตัวอย่างของเรื่องนี้ นำเสนอโดยนักวิจัยบางคนที่ Stanford แสดงให้เห็นถึงความคิดเดียวกันนี้ (พาน et al., 2005) ขอบคุณสำหรับการนำเสนอนั้นไปที่ dslamb สำหรับคำตอบนี้ในหัวข้ออื่น (และคำตอบทั้งหมดของหัวข้อนั้นจะเป็นที่สนใจสำหรับคำถามของคุณเช่นกัน) ฉันพบว่ามันน่าสนใจเป็นอย่างยิ่งที่หนึ่งในตัวอย่างสำคัญนี้คือแผนที่ตรวจคนเข้าเมืองเก่าโดย Minard เป็นตัวอย่างของผลลัพธ์ที่พึงประสงค์ (ประมาณปี 1864!)

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

การใช้การผสมสีและความกว้าง / ความสูงของเส้น

แผนที่ที่ฉันระบุไว้ในหัวข้อเดียวกันที่ระบุไว้ก่อนหน้านี้การเป็นตัวแทนของกระแสเครือข่ายเป็นตัวอย่างของสิ่งเหล่านี้ เพื่อน Facebook เป็นกรณีที่ดีในการปรับระดับอัลฟาของสายดังนั้นจึงต้องใช้การไหลมากขึ้นเพื่อแสดงการเชื่อมต่อที่มืดกว่า (หรือสว่างกว่าในกรณีนั้น) ระหว่างสองสถานที่ สิ่งนี้ยังลดความสำคัญของบรรทัดที่ยาวขึ้นเนื่องจากมีแนวโน้มที่จะเกิดขึ้นไม่บ่อยนัก ตรรกะที่คล้ายกันมาจากราคาโดยอัลฟาแผนที่สำหรับพื้นที่รูปหลายเหลี่ยม (Roth et al., 2010) ที่ได้รับการกล่าวถึงในฟอรั่มนี้มาก่อน

แผนที่อื่นที่ฉันนำเสนอในคำตอบเดียวกันนั้นใช้สีและเส้นมุมมอง 3 มิติที่ไม่ใช่แบบดั้งเดิม (Ratti et al., 2010) ผู้เขียนใช้เกณฑ์การจัดกลุ่มเพื่อจัดกลุ่มพื้นที่ที่เป็นเนื้อเดียวกันด้วยกันและกำหนดรหัสสี (ดังนั้นโดยการกำหนดพื้นที่ภายในสีจะมีรูปแบบการไหลคล้ายกันมากกว่าระหว่างสี) เกณฑ์การจัดกลุ่มในและของตัวเองอาจเป็นที่น่าสนใจในการระบุรูปแบบในข้อมูลแม้ว่ามันจะเป็นปัญหาที่เกิดขึ้นกับสิ่งนี้ตามที่ Andrew Gelman ได้กล่าวถึงคือมันบอกสิ่งที่คุณรู้อยู่แล้วซึ่งอยู่ใกล้กันมาก มีแนวโน้มที่จะมีการเชื่อมต่อมากขึ้น

สุดท้ายในหมวดหมู่นี้ฉันมีเทคนิคที่ให้น้ำหนักเส้น (คล้ายกับการผสมอัลฟา) โดยใช้ความกว้างของเส้นหรือในกรณีของความสูงของเส้นมุมมอง 3 มิติเพื่อถ่ายทอดปริมาตรของการไหล ดูหน้าในหน้าซอฟต์แวร์แผนที่การไหลของ Tobler สำหรับตัวอย่างใน 2d (และบทความอื่น ๆ ที่ฉันพูดถึงเป็นตัวอย่างในแบบ 3 มิติโดยใช้ความสูงของบรรทัด) นอกจากนี้ในหน้านั้น Tobler มีบทความที่มีประโยชน์มากที่อธิบายถึงปัญหาเกี่ยวกับ flowmapping และการประยุกต์ใช้ในอดีต (Tobler, 1987)

อีกตัวอย่างในรูปแบบ 3 มิติคือคำตอบของ mankoff ในเว็บไซต์นี้ โพสต์นี้ในบล็อกภาพสังคมวิทยาแสดงวิธีที่มีประโยชน์ในแผนภาพการไหลเพื่อแยกความแตกต่างระหว่างการไหลเข้าและออก (แม้ว่าจะทำงานได้อีกครั้งเนื่องจากจำนวนโหนดและค่อนข้างเล็กและโหนดบนเครือข่ายสามารถจัดวางใน วิธีการตามอำเภอใจเพื่อลดการโอเวอร์โหลด) ลูกศรประเภทเดียวกันเหล่านั้น (และอีกสองสามคนที่ใช้แฮชชิ่ง) ก็อยู่ใน (Tobler, 1987)

ในที่สุดแม้ว่าความกว้างและสีของเส้นจะไม่สามารถแก้ปัญหาที่เกิดขึ้นจริงได้ ส่วนโค้งในแบบสามมิติช่วยได้บ้าง แต่ด้วยรูปแบบการไหลที่ซับซ้อนมากขึ้นฉันคิดว่าพวกมันจะมียูทิลิตี้ที่ จำกัด การผสม IMO อัลฟาน่าจะมีประโยชน์มากที่สุดในสถานการณ์ที่หลากหลายในทั้งสามสถานการณ์นี้ แต่ควรใช้สีและความกว้างของเส้นร่วมกับความเพี้ยนของเส้นข้างต้น

การลดข้อมูล

ฉันจัดกลุ่มเทคนิคสองประเภทที่นี่ 1) การใช้แผนที่เล็ก ๆ หลาย ๆ แผนที่ (เช่นแผนที่จำนวนมากที่มีวัตถุน้อยลงอย่างเห็นได้ชัดเพื่อลดการ overplotting) หรือ 2) ภาพกราฟิกอื่น ๆ ที่ไม่ใช่เส้น แต่เป็นตัวแทนกระแสบางส่วนผ่านความหนาแน่น หรือแผนที่นักร้อง ตัวอย่างของสิ่งเหล่านี้สามารถพบได้ใน (Corcoran et al., 2009; Rae, 2009; Wood et al., 2010) (ขอบคุณ iant สำหรับการอ้างอิง Rae) สิ่งเหล่านี้มีแนวโน้มที่จะลดปริมาณข้อมูลภาพที่นำเสนอโดยการนำเสนอแผนที่หลายชุดเล็ก ๆ (หรือเพียงแค่พื้นที่เล็ก ๆ ) หรือใช้รูปแบบการทำแผนที่ choropleth เพื่อเป็นตัวแทนของสถิติบางอย่าง (ตัวอย่างอาจเป็นจำนวนไหลเข้าจำนวนไหลออก ทิศทางของการไหลระยะทางเฉลี่ยของการไหล) หากคุณมีข้อมูลระดับจุดคุณสามารถนำเสนอสถิติเหล่านี้ผ่านแผนที่แรสเตอร์ความหนาแน่นของเมล็ดข้าวหรือรวมเป็นสี่เหลี่ยม

เมื่อข้อมูลถูกลดขนาดลงเช่นนี้การทำ overplotting ไม่ใช่ปัญหามากนัก ตัวอย่างออนไลน์มากเย็นโต้ตอบนี้เป็นแผนที่การโยกย้ายโดยนิตยสาร Forbes คุณสามารถดูได้ครั้งละหนึ่งเขตเท่านั้น แต่การลดข้อมูลทำให้แยกวิเคราะห์บรรทัดได้ง่ายขึ้น (และความแตกต่างระหว่างการไหลเข้าและการไหลออก) โพสต์เมื่อเร็ว ๆ นี้ในบล็อกการแมป ESRIยังใช้เทคนิคที่คล้ายกันกับทวีคูณขนาดเล็ก (พวกเขายังเลือกการฉายภาพเฉพาะสำหรับแผนที่โลกที่จะมีเส้น "ดูสวย" และใช้สีเพื่อเน้นจุดกำเนิดระหว่างประเทศที่แตกต่างกัน) ในตัวอย่างนั้นทำงานได้ค่อนข้างดีเพราะปลายทางปลายทางนั้นเหมือนกันสำหรับการไหลทั้งหมด แต่ถ้ากระแสสามารถแลกเปลี่ยนซึ่งกันและกันมันอาจจะไม่ได้ผลเช่นกัน

การใช้การแสดงผลอื่นที่ไม่ใช่แผนที่ของโฟลว์

คนอื่น ๆ ในไซต์นี้แนะนำให้ใช้ไดอะแกรมทางเลือกในแผนที่จริงเพื่อเป็นตัวแทนกระแส (เพียงทำแผนที่ต้นกำเนิดและปลายทางในลักษณะอื่นนอกเหนือจากที่ตั้งทางภูมิศาสตร์จริง) ตัวอย่างของสิ่งเหล่านี้คือการสร้างภาพข้อมูลที่เฉพาะเจาะจง (เช่นที่สร้างโดยCircos ), ไดอะแกรมส่วนโค้ง (ดูตัวอย่างนี้ใน Protovis เหล่านี้จะเรียกว่า kriskograms (Xiao & Chun, 2009) หรือเมทริกซ์ความร้อน ( นี่คืออีกตัวอย่างจาก เว็บไซต์ Protovis) อีกตัวเลือกหนึ่งคือใช้โครงร่างเครือข่ายอัตโนมัติบางประเภทเพื่อระบุรูปแบบในโฟลว์ (เช่นนั้นสามารถใช้กราฟวิซได้ ) นอกจาก Graphviz จะปรากฏ Gephi, ไลบรารี NetworkX python, และไลบรารี R บางตัวเป็นเครื่องมือยอดนิยมเช่นกัน (ดูคำตอบนี้ในเว็บไซต์สถิติ)

ห้องสมุดที่ฉันอ้างถึงนั้นค่อนข้างเท่ห์เพราะพวกเขาได้พัฒนาการสร้างภาพข้อมูลเชิงโต้ตอบด้วยเช่นกัน นี่คือตัวอย่างที่มีสไตล์คล้ายกับกราฟิกวงกลม (แม้ว่าจะไม่ใช่แบบวงกลม!) นี่เป็นอีกหนึ่งการสร้างภาพแบบโต้ตอบโดยใช้บางส่วนของเส้นเทคนิคการบิดเบือนกล่าวก่อนหน้านี้ตำแหน่งในเครือข่าย (ที่ปรากฏคล้ายกับ cartograms Dorling วงกลม) เช่นเดียวกับการสรุปสถิติอื่น ๆ ที่มีประโยชน์ (ผมเห็นทั้งสองตัวอย่างเหล่านั้นแรกในบล็อกข้อมูลความงาม )


บางแหล่งข้อมูลอื่น ๆ ผมคิดว่ามีประโยชน์เป็นซอฟแวร์และบทความที่มาจากการทำเหมืองข้อมูลเชิงพื้นที่และ Visual Analytics แล็บ นอกจากนี้รูปแบบความต้องการการเดินทางอาชญากรรมในโปรแกรม CrimeStat เป็นการแนะนำเล็กน้อยถึงเทคนิคการถดถอยที่ใช้สำหรับข้อมูลการไหลดังกล่าว เครื่องมือเหล่านี้อาจช่วยให้คุณระบุความสัมพันธ์ที่น่าสนใจในรูปแบบการไหลของข้อมูลทางภูมิศาสตร์อื่น ๆ อีกสถานที่ที่อาจได้รับแรงบันดาลใจที่มีประโยชน์สำหรับการแสดงข้อมูลหรือการวิเคราะห์เชิงสถิติจะเป็นฉบับล่าสุดของวารสารการคำนวณและสถิติแบบกราฟิกเล่มที่ 20 ฉบับที่ 2ในการตรวจสอบสถิติการมาถึง / ออกของเที่ยวบินสำหรับผู้ให้บริการเชิงพาณิชย์ในสหรัฐอเมริการะหว่างปี 2530-2551 (หากคุณสนใจที่จะจัดการกับข้อมูลขนาดใหญ่สิ่งนี้จะคุ้มค่าสำหรับการตรวจสอบเช่นกัน) บทความทั้งหมดฟรีและมีโปสเตอร์ที่เกี่ยวข้องกับกระดาษแต่ละแผ่น

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


อ้างอิง

* หมายเหตุลิงก์ไปยังเอกสาร pdf ที่ไม่ได้บันทึกจะรวมอยู่เมื่อฉันหาเจอได้


2
ขณะนี้ฉันไม่ได้ใส่กราฟิกใด ๆ แต่ถ้ามีการร้องขอฉันสามารถใส่อะไรก็ได้หากผู้คนต้องการดูตัวอย่างโดยไม่ต้องติดตามลิงค์
Andy W

ว้าว !! ... สมบูรณ์ด้วยการอ้างอิง! ถ้าฉันสามารถลงคะแนนสองครั้งฉันจะ! คำตอบที่ยอดเยี่ยมผู้ชาย :)
R Thiede

ปัจจุบันฉันได้พบการสร้างภาพข้อมูลเชิงโต้ตอบที่น่าสนใจอีกรูปแบบหนึ่งโดยใช้การลดข้อมูล (และวงกลมใหญ่) ค้นหาว่าเมืองใดในสหรัฐอเมริกาที่ได้รับความนิยมสูงสุดในหมู่นักล่าบ้านระหว่างประเทศผ่านบล็อกข้อมูลเชิงลึกของ Trulia
Andy W

5

มีขั้นตอนที่ดีที่นี่โดย underdark ของเราเอง

โดยทั่วไปขั้นตอนจะเป็นดังนี้: - ปฏิเสธจุดที่คุณต้องการให้เส้นอยู่ระหว่าง - รับเส้นตรงที่ลากระหว่างพวกเขา - แบ่งบรรทัดนั้นออกเป็นจำนวน x ชิ้นและในที่สุด - ฉายเส้นแบ่งกลับเป็นต้นฉบับของคุณ ติ่ง

ฉันหยุดใช้ Arc เพราะมีค่าใช้จ่าย แต่สำหรับขั้นตอนนี้ในการทำงานฉันไม่คิดว่าคุณต้องจ่ายสินบนพิเศษให้ ESRI เพื่อให้คุณมีฟังก์ชั่นพื้นฐาน ฉันหมายความว่าฉันไม่คิดว่าคุณจะต้องซื้อ "ส่วนขยาย" ใด ๆ ฉันพูดภายใต้การแก้ไขเพราะฉันไม่แน่ใจว่าการแบ่งบรรทัดเป็นส่วนหนึ่งของนักวิเคราะห์เชิงพื้นที่หรือไม่ บางทีความโน้มเอียงของ ESRI เพิ่มเติมบางอย่างอาจช่วยฉันได้ที่นี่ :)


1
คุณเคยไม่สามารถทำโค้งจริงด้วย ArcView แต่ ArcView สามารถทำโค้งจริงตั้งแต่รุ่น 9 ในขณะนี้
blord-castillo


2

คุณสามารถสร้าง polylines ที่ดึงดูดสายตาจากจุดสองจุดบนแผนที่โดยใช้วิธีการวงกลมที่ยอดเยี่ยม ตรวจสอบhttp://www.esri.com/software/arcgis/defense-solutions/military-analyst.html - นักวิเคราะห์ทางทหาร ควรมีสิ่งที่คุณกำลังมองหา!


ฉันไม่ได้เร่งความเร็วอาร์คอีกต่อไปแล้ว แต่มันเป็นไปไม่ได้ไหมที่จะทำเช่นนี้กับการถอดแบบ? เพราะทหารนักวิเคราะห์อาจจะเสียค่าใช้จ่าย ...
R Thiede

ฉันไม่เชื่อว่าวิธีนี้จะใช้งานได้ดีเนื่องจากขอบเขตของแผนที่ของฉันจะอยู่ที่ประมาณ 40 ไมล์ ฉันเชื่อว่านี่อาจใช้งานได้หากอยู่ในระดับของทวีป
พิกเซล

Military Analyst ฟรี @Realiede มันจะทำงานได้ดีขึ้นในระดับที่สูงขึ้น อย่างไรก็ตามคุณอาจแก้ไขบรรทัดหลังจากสร้างเพื่อให้สิ่งที่คุณต้องการ (เนื่องจากใช้เส้นโค้ง bezzier เพื่อสร้างคะแนนหลายร้อยจุดตามแนว polylines เพื่อสร้างเส้นโค้ง)
Michael Markieta

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