ฉันได้รับการเข้ารหัสกับ Python มาหลายเดือนแล้วและได้พัฒนาสคริปต์ที่ซับซ้อนพอสมควรสำหรับงานการประมวลผลทางภูมิศาสตร์เป็นหลัก ที่ถูกกล่าวว่าฉันยังคงเรียนรู้มากขณะที่ฉันมาจากพื้นหลัง SQL / VBA / VBScript
ฉันรู้ว่ารหัสที่คอมไพล์ทำงานได้เร็วกว่าโค้ดที่ต้องใช้ตัวแปลภาษาดังนั้นฉันจึงสนใจที่จะรวบรวมสคริปต์ Python สำหรับการประมวลผลทางภูมิศาสตร์กับไฟล์. EXE สำหรับการทำงานกับข้อมูลขนาดใหญ่
เป็นไปได้ไหม ถ้าเป็นวิธีที่ดีที่สุดในการรวบรวมสคริปต์ Python (.py) ที่นำเข้าโมดูล arcgisscripting หรือ arcpy คืออะไร
ฉันใช้เวลาสองสามนาทีเพื่อค้นหาสิ่งที่ฉันต้องการจะทำและการค้นหาส่งคืนบทความนี้ให้คนอื่น ๆ : http://www.ehow.com/how_2091641_compile-python-code.html
คอมไพเลอร์ดูเหมือนจะใช้งานได้ แต่เมื่อทำการประมวลผลไฟล์. EXE ที่เกิดขึ้นมันทำให้เกิดข้อผิดพลาดที่ซ่อนเร้นว่าบางไฟล์ไม่มี
สคริปต์ Python ทำงานในสิ่งที่ดูเหมือนจะดีพอสมควรจากบรรทัดคำสั่ง แต่ฉันสงสัยว่าฉันจะเห็นการปรับปรุงเล็กน้อยถ้าฉันสามารถรวบรวมไฟล์. py อีกครั้งฉันกำลังทำงานกับชุดข้อมูลขนาดใหญ่ที่ใช้เวลาในการประมวลผลประมาณ 20 ชั่วโมง (การแยกแหล่งต้นกำเนิดจากแหล่งตัวอย่างคุณภาพน้ำที่ป้อน) ฉันจะทำทุกอย่างที่จะทำให้ดีขึ้น
สคริปต์รันเร็วกว่า 10% นอก ArcGIS จากบรรทัดคำสั่งโดยใช้ชุดทดสอบของเว็บไซต์เทียบกับการตั้งค่าสคริปต์เป็นเครื่องมือสคริปต์ในกล่องเครื่องมือใหม่ใน ArcCatalog ฉันใช้งานสคริปต์จากบรรทัดคำสั่งโดยไม่มีอินสแตนซ์ใด ๆ ของ ArcGIS ที่เปิดอยู่บนเครื่องเฉพาะ
ดังนั้นจึงเป็นไปได้ที่จะรวบรวมสคริปต์ Python ที่นำเข้าโมดูล arcgisscripting และเรียกเครื่องมือ ArcToolBox หรือไม่?
แก้ไข
ขอบคุณสำหรับอินพุตสิ่งนี้มีประโยชน์สำหรับฉัน สคริปต์ส่วนใหญ่เป็นวิธีการประสานงานเครื่องมือ ArcGIS จำนวนหนึ่งและส่งออกในรูปแบบ / สถานที่ที่ต้องการ / พร้อมการระบุแหล่งที่มาที่เหมาะสม ฉันได้ตัดแต่งไขมันบางส่วนฉันคิดว่าโดยการเขียนไปยังโฟลเดอร์เริ่มต้นแทนการลบฐานข้อมูลส่วนบุคคลส่วนบุคคลสำหรับไฟล์แรสเตอร์ชั่วคราวบางไฟล์เพื่อให้สามารถจัดเก็บในรูปแบบ ESRI GRID เทียบกับรูปแบบ IMG ฉันจะตรวจสอบคำแนะนำของผู้สร้างโปรไฟล์ว่า
มีบางอย่างในสำนักงานของฉันที่คำถามของ Python ที่พูดว่า"รหัสที่รวบรวมนั้นเร็วกว่ารหัสที่ทำงานผ่านล่าม"ส่วนใหญ่เมื่อเปรียบเทียบกับการพูดโปรแกรม Visual Basic ที่คอมไพล์หรือโปรแกรม VB.NET ที่คอมไพล์แล้ว เครื่องมือจะต้องใช้เวลาอย่างใดอย่างหนึ่ง และดูเหมือนว่าในปัจจุบันคอมพิวเตอร์เครื่องที่ตีความรหัสอาจไม่ช้ากว่ารหัสที่คอมไพล์เพื่อรับประกันว่าจะได้รับไมล์พิเศษ
แก้ไข - อัปเดตเกี่ยวกับการเพิ่มประสิทธิภาพของโปรแกรมด้วยรูปแบบแรสเตอร์
ต้องการติดตาม "การเพิ่มประสิทธิภาพ" ของโปรแกรม Python ของฉันและฉันสามารถโกนเวลาการประมวลผล 2 ชั่วโมงโดยการเขียน rasters ระหว่างกาลเป็นรูปแบบ GRID แทนที่จะเป็นฐานข้อมูลส่วนบุคคลทางภูมิศาสตร์ ไม่เพียงเท่านั้นยังมีการลดการใช้พื้นที่ดิสก์ขนาดข้อมูลลงอย่างมาก การเริ่มต้นที่ฉันเขียน rasters ทั้งหมด (และพวกเขาเป็นเพียงคุณสมบัติจุดแปลงเป็น rasters แล้ว rasters ลุ่มน้ำ) ส่งผลให้ข้อมูล 37.1 GB สำหรับไฟล์เหล่านั้น การเขียนเอาต์พุตข้อมูลสองหลังไปยังโฟลเดอร์ในรูปแบบ GRID จะลดลงเป็น 667 MB ของข้อมูล
ฉันอยากรู้ว่า GDB จะจัดการกับข้อมูลเหล่านี้อย่างไรแม้ว่าขนาดของข้อมูลจะเป็นอย่างไร แต่การลดเวลาในการประมวลผลของฉันลงจาก 9.5 ชั่วโมงเหลือ 7.5 ชั่วโมงก็เพียงพอแล้วที่จะสนับสนุนการจัดการ rasters นอกฐานข้อมูลภูมิศาสตร์ในรูปแบบ GRID