วิธีปรับปรุงประสิทธิภาพการเรนเดอร์ของไฟล์รูปร่างที่มีขนาดใหญ่มาก?


20

ฉันมีรูปหลายเหลี่ยมรูปร่างที่มีองค์ประกอบไฟล์. 100MB .dbf และ 500MB .shp เหตุผลที่มันมีขนาดใหญ่มากก็คือมันถูกจัดเป็นฐานที่ดินสำหรับทั้งอำเภอ

ทุกครั้งที่ฉันดูไฟล์ใน ArcCatalog หรือ ArcMap และย้ายหน้าต่างมุมมองออกไปเล็กน้อยไฟล์ทั้งหมดจำเป็นต้องวาดใหม่ทั้งหมดตั้งแต่เริ่มต้น ฉันได้ลองการจัดทำดัชนีเชิงพื้นที่และนำเข้าสู่ฐานข้อมูลภูมิศาสตร์ - ทั้งสองวิธีไม่ได้ให้การปรับปรุงประสิทธิภาพที่น่าทึ่งใด ๆ เกี่ยวกับการเรนเดอร์

หน้าความช่วยเหลือของ Esri ชี้ให้เห็นว่าเพื่อปรับปรุงประสิทธิภาพการทำงานของ shapefile ผู้ใช้สามารถวางมาตรฐานไฟล์ได้ ในขณะนี้จะทำงานได้อย่างชัดเจนฉันไม่ต้องการสูญเสียข้อมูลใด ๆ การแยกไฟล์ขึ้นนั้นไม่เหมาะเนื่องจากฉันกำลังทำการประมวลผลทางภูมิศาสตร์ / สอบถามจำนวนมากด้วยพื้นที่ทั้งหมด ฉันเดาว่าฉันสามารถหลีกเลี่ยงการดูทั้งพื้นที่ได้ในคราวเดียว แต่บางครั้งตัวอย่างเช่นมันเป็นการดีที่จะดูว่าส่วนใดของไฟล์ที่แบบสอบถามเลือกไว้

มีวิธีอื่นที่ฉันสามารถทำได้เพื่อปรับปรุงประสิทธิภาพการแสดงผลหรือไม่

(ในทางทฤษฎีแล้วการสร้างรูปร่างของ "ปิรามิด" จะเป็นอุดมคติ - ฉันไม่แน่ใจว่าทำไม ArcGIS ไม่เคยสนับสนุนวิธีการดังกล่าว - อย่างน้อยฉันก็รู้ ...


2
มีไฟล์รูปร่างขนาดใหญ่เพียงแค่ถามหาปัญหา จากประสบการณ์ของฉันรูปร่างใหญ่ ๆ มักจะเสียหายได้ง่ายมาก รับในฐานข้อมูลไฟล์เพื่อหลีกเลี่ยงความเสียหาย ประสิทธิภาพการวาดที่ดีขึ้นจะเป็นโบนัสเพิ่ม
Devdatta Tengshe

เมื่อฉันทราบอย่างชัดแจ้งข้างต้นฉันพบว่าการนำเข้าไฟล์รูปร่างขนาดใหญ่ไปยัง gdb นั้นไม่สร้างการปรับปรุงใด ๆ - จากมุมมองของการแสดงผลอย่างหมดจด คุณค่อนข้างถูกต้องจากมุมมองทั่วไปมันไม่มีเหตุผลที่จะไม่มีไฟล์ shp ขนาดใหญ่ใน gdb (สำหรับเหตุผลทุกประเภท)
youzer

2
คุณได้พิจารณาการใช้แรสเตอร์แทนที่จะเป็นรูปร่างหรือไม่?
Kirk Kuykendall

ฉันสับสนในสิ่งหนึ่งสิ่งที่ถ้าขนาดไฟล์เป็น 2gb และหน่วยความจำคอมพิวเตอร์ก็เป็น 2gb แล้ววิธี arcgis จะจัดการข้อมูลไฟล์นี้เพราะมันจะกินหน่วยความจำเต็ม
user2174920

หากคุณมีรูปหลายเหลี่ยมขนาดเล็กหลายล้านรูปควรใช้ raster เป็นคำพูดที่น่าอับอาย (เว้นแต่ว่าคุณกำลังสร้างชั้นดิน ... )
หากคุณไม่ทราบ - เพียงแค่ GIS

คำตอบ:


22

ความคิดของฉันคือ:

  1. ส่งออกรูปร่างไฟล์ของคุณไปที่คลาสคุณลักษณะฐานข้อมูลไฟล์ - ฉันคิดว่าประสิทธิภาพการวาดจะดีขึ้น แต่ฉันไม่แน่ใจ
  2. หากคุณใช้ ArcGIS Desktop 10.0 หรือใหม่กว่าให้ย้ายลงในเลเยอร์ Basemapซึ่งจะปรับปรุงประสิทธิภาพการวาดภาพได้อย่างมาก
  3. ถ้าคุณชอบเสียงของปิรามิดสำหรับข้อมูลเวกเตอร์อย่าลืมโหวตให้กับแนวคิด ArcGISนี้

3
ยกเว้นว่าคุณไม่สามารถทำการวิเคราะห์หรือเลือกบน basemap layer IIRC
blah238

4
สงสัยว่าอาจมีอากาศรอบ ๆ โดยมีเลเยอร์ที่สองใน TOC ชี้ไปที่แหล่งเดียวกันและไม่ใช่เลเยอร์ basemap ซึ่งโดยปกติจะปิด แต่สามารถแสดงเมื่อจำเป็นสำหรับการวิเคราะห์หรือการเลือก
PolyGeo

PolyGeo - ขอบคุณสำหรับคำตอบ ฉันลองใช้ baselayer และการปรับปรุงประสิทธิภาพที่สำคัญคือเมื่อคลิก "zoom to layer" ไฟล์จะไม่ถูกเรนเดอร์ตั้งแต่เริ่มต้น วิธีแก้ปัญหาที่คุณแนะนำให้รับความเห็นของ blah238 อาจจะทำงานได้จากบางโครงการ แต่ฉันพบสิ่งเพิ่มเติมที่ จำกัด การใช้ baselayer คือคุณไม่สามารถมองเห็น dbf โดยใช้สัญลักษณ์ใด ๆ ด้วยข้อ จำกัด นี้ฉันอาจสร้างไฟล์เพื่อการอ้างอิง (ไม่ใช่ baselayer) และจากนั้นยกเลิกการซ่อนเลเยอร์ "ของจริง" เมื่อต้องการ ไม่ใช่ทางออกที่ยอดเยี่ยมจริงๆฉันจะลงคะแนนความคิด "ปิรามิด" ตามที่คุณแนะนำ!
youzer

6

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

  1. ฉันต้องแน่ใจว่าระบบพิกัดของ Data Frame นั้นตรงกับรูปร่างของฉันและเลเยอร์อื่น ๆ ที่ฉันมีใน TOC แต่เลเยอร์น้อยกว่าที่จะแสดงดีกว่า
  2. ฉันจะใช้สัญลักษณ์ของฉันตามบรรทัดที่เรียบง่ายและเติมโดยไม่มีความโปร่งใสหรือความซับซ้อนอื่น ๆ
  3. หากคุณต้องการทั้งภาพรวมและความสามารถในการเลื่อนดูใกล้ ๆ ลองใช้แว่นขยายหรือวิวเวอร์

โดยทั่วไปแล้วคำแนะนำที่ดีมาก ฉันใช้สิ่งเหล่านี้ทั้งหมดในการทดสอบครั้งแรกของฉัน - ดูเหมือนว่าจำเป็นต้องมีเทคนิคเพิ่มเติม / แตกต่างกันในการจัดการกับคลาส / รูปร่างไฟล์ที่มีขนาดใหญ่มาก
youzer

4

คุณสามารถปรับปรุงการเรนเดอร์โดยการตั้งค่าพารามิเตอร์การแสดงเลเยอร์เพื่อที่เลเยอร์จะไม่แสดงในระดับใหญ่ (เช่น> 1: 10,000) คุณสามารถค้นหาตัวเลือกนี้ได้ในคุณสมบัติของเลเยอร์: คุณสมบัติเลเยอร์> แท็บทั่วไป> "ไม่แสดงเลเยอร์เมื่อซูมออกเกินกว่า ... "

นอกจากนี้สถานที่เก็บข้อมูลมีความสำคัญเช่นหากเก็บไว้ในเซิร์ฟเวอร์เก่าที่มีแบนด์วิดท์ต่ำคุณรับประกันได้ว่าจะมีประสิทธิภาพต่ำ ฉันจัดการข้อมูลเวกเตอร์ 1GB + บนเซิร์ฟเวอร์เป็นประจำซึ่งทำให้ฉันถามว่าข้อมูลจำเพาะของระบบของคุณจำเป็นต้องได้รับการอัปเดตหรือไม่ (สำหรับการอ้างอิงฉันใช้ RAM 12GB, 2nd Gen i7, การ์ดกราฟิกเฉลี่ย)

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


3

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


3

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


3

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

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