การใช้ฟังก์ชัน ArcGIS ใน Python โดยไม่ต้องเรียกใช้ ArcMap (เช่นตัวแก้ไข / สภาพแวดล้อมแยกต่างหาก)?


26

ฉันกำลังพยายามทำขั้นตอนต่อไปในการเขียนโปรแกรม ArcGIS ด้วย Python และดูว่าเป็นไปได้จริงที่จะเรียกใช้สคริปต์ / รหัสของฉันโดยไม่ต้องโหลด ArcMap และวางลงในหน้าต่าง Python ฉันคิดว่าฉันจะทำเช่นนี้ดู IDE เฉพาะประเภทกับ Python ที่โหลดบางอย่างจาก ArcGIS

ฉันจะทำสิ่งนี้ได้อย่างไร


อัปเดต: สรุปโซลูชัน

ฉันไปเส้นทาง Eclipse + PyDev นี่คือบันทึกของฉันในการติดตั้งทุกอย่างและทำให้มันทำงาน:

ดาวน์โหลด Eclipse

สิ่งนี้ทำให้เกิดความสับสนเล็กน้อยเนื่องจากมีรสชาติที่แตกต่างกันทั้งหมด (Java, Java EE, C / C ++ ฯลฯ ) ฉันไปกับ C / C ++ เพราะนั่นเป็นสิ่งที่ฉันคุ้นเคย มันไม่สำคัญเลยตั้งแต่ PyDev จะได้รับการติดตั้งหลังจากขั้นตอนนี้ เลือกสิ่งที่คุณต้องการ

ติดตั้ง PyDev

PyDev จะถูกติดตั้งผ่าน Eclipse คำแนะนำที่เชื่อมโยงทำงานได้อย่างสมบูรณ์

กำหนดค่า PyDev

คำถามข้างต้นแสดงภาพหน้าจอของการกำหนดค่า Windows ในขณะที่ลิงก์นี้จากบล็อก ESRI มีข้อมูลเพิ่มเติมสำหรับระบบ Unix แม้ว่าจะมาจากปี 2008

เรียกใช้สคริปต์ทดสอบ

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


ฉันยอมรับว่านี่ดูเหมือนว่าจะเป็นคำถามของ Python มากกว่าและก็ทำให้ฉันไม่รู้ถึงสภาพแวดล้อมของ Python แต่ก็หวังว่าคำตอบนี้จะใช้กับคนอื่น ๆ ที่ยังใหม่กับ ArcGis + Python!
mindless.panda

ฉันคิดว่าการใช้ IDLE นั้นง่ายกว่านี้ PyDev เป็นบิตของ overkill ในสถานการณ์นี้ฉันคิดว่า คุณอาจต้องการสร้างบางรุ่นใน Model Builder และส่งออกเป็นไฟล์. py ด้วยวิธีนี้คุณจะรู้สึกถึงรหัส Python
RK

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

2
ไม่ต้องสนใจคำตอบเดียวที่นี่กล่าวถึงโซลูชัน Eclipse + PyDev มีเหตุผลที่คุณไม่ได้โหวตหรือไม่
whuber

ไม่มี. ฉันยอมรับคำแนะนำ Eclipse เนื่องจากเป็นวิธีที่ฉันเลือกและชอบ ฉันตอบเฉพาะคำถามของฉันเองเพื่อจัดทำเอกสารขั้นตอนการตั้งค่า เหตุผลใดที่คำตอบของฉันควรแก้ไขในคำถาม? บางทีนี่อาจเป็น CW?
mindless.panda

คำตอบ:


11

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

IDLE นั้นดีสำหรับการทดสอบในความคิดของฉันและไม่ดีสำหรับการออกแบบวิธีการแก้ปัญหาเชิงวัตถุที่ซับซ้อน

นอกจากนี้ยังติดตั้งง่ายอย่างไม่น่าเชื่อ


มีส่วนเกี่ยวข้องกับการทำให้ Eclipse + PyDev ทำงานกับฟังก์ชันการทำงานของ ArcGIS หรือไม่? คำตอบอื่น ๆ ดูเหมือนจะบ่งบอกถึงลักษณะเฉพาะบางอย่างด้วยการใช้ Python ที่ไม่ได้ติดตั้งอาร์คหรือไม่?
mindless.panda

ไม่มีเลยเพียงแค่ให้แน่ใจว่าคุณได้ติดตั้งเดสก์ท็อป arcgis และตั้งค่า Eclipse เพื่อทำงานกับ PyDev และคุณไม่อยู่ ใช้เวลา 5 นาทีในการตั้งค่าและสิ่งที่คุณต้องทำคืออ้างอิง arcpy ในสคริปต์ของคุณ อย่างจริงจังฉันไม่ได้เห็นวิธีที่ง่ายกว่าและดีกว่าที่จะทำ
ขน

15

ฉันเพิ่งเริ่มที่จะจับกับ Python และ arcpy และฉันพบว่าPyScripterมีประโยชน์จริงๆ มันเป็น Python IDE แบบเต็มรูปแบบ


2
IDE ที่ดีที่สุดที่ฉันเคยรู้จักคือ PyScripter และฟรี!
Hornbydd

2
PyScripter ยอดเยี่ยมจริงๆ การเติมโค้ดอย่างสมบูรณ์การเน้นไวยากรณ์การค้นหาและแทนที่แท็บสำหรับการแสดงสคริปต์ PY หลายรายการ มีประโยชน์มากกว่า IDLE ในความคิดของฉัน
RyanDalton

15

หากฉันเข้าใจคำถามคุณต้องการเรียกใช้สคริปต์แบบสแตนด์อโลนนอกเซสชัน ArcMap สามารถทำได้โดยสิ้นเชิง บันทึกรหัสของคุณลงในไฟล์ Python (.py) สำหรับการแก้ไขคุณสามารถใช้IDLEหรือโปรแกรมแก้ไขข้อความใด ๆ (แม้กระทั่ง Notepad) สำหรับเรื่องนั้น บางครั้งเมื่อคุณเริ่มต้นใช้งานตัวแก้ไขข้อความได้ง่ายขึ้นเพื่อให้คุณสามารถมุ่งเน้นไปที่การเรียนรู้รหัสไม่ใช่ IDE ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปรสภาพแวดล้อม PATHอย่างถูกต้องดังนั้นพวกเขาจึงรวมไดเรกทอรีการติดตั้ง Python ของคุณไว้ดังนี้:

C:\Python26\ArcGIS10.0\Lib\site-packages\;C:\Python26\ArcGIS10.0;C:\Python26\ArcGIS10.0\Scripts

จากนั้นเป็นเรื่องของการเปิดพรอมต์คำสั่ง (เริ่ม> เรียกใช้> พิมพ์ 'cmd' [โดยไม่ใส่เครื่องหมายอัญประกาศ]) และพิมพ์:

python c:\path\to\python\script.py

ตอนนี้สมมติว่าคุณมีเส้นทางข้อมูลทั้งหมดของคุณในฮาร์ดโค้ดในสคริปต์

นั่นคือพื้นฐาน แน่นอนมีวิธีมากขึ้นเช่นการใช้พารามิเตอร์อินพุต


3
เพียงความคิดเห็นเกี่ยวกับ IDLE หรือโปรแกรมแก้ไขข้อความมาตรฐาน ฉันค้นหา PythonWin ด้วยวิธีที่ง่ายกว่ามากในการทำงานเนื่องจากมีความสามารถในการดีบั๊กที่ดีขึ้น - สำคัญในขณะที่เรียนรู้ ดูคำแนะนำเกี่ยวกับการติดตั้ง PythonWin ด้วย ArcGIS 10 คุณต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเวอร์ชันของ PythonWin จาก ArcGIS DVD หรืออาจทำให้การติดตั้ง Python เสียหาย
สตีเฟ่นนำ

6

เมื่อ ArcGIS ติดตั้งจะทำการติดตั้งไพ ธ อนของตัวเอง (เช่นคุณไม่จำเป็นต้องนำเข้าการอ้างอิง) .. ให้แน่ใจว่าได้ใช้สิ่งนี้ ..

ฉันใช้ python CLI เป็นเครื่องคิดเลขรวมถึงเรียกใช้สคริปต์ที่บันทึกไว้

Python เป็นเครื่องคิดเลขที่ยอดเยี่ยมที่คุณสามารถกำหนดตัวแปร .. ฉันได้รับคำแนะนำนี้จากบทเรียนของ python http://docs.python.org/

ฉันมีทางลัดไปยัง CLI ผ่านทางพรอมต์คำสั่งบนแถบงานของฉัน% windir% \ system32 \ cmd.exe / k "C: \ Python26 \ ArcGIS10.0 \ python.exe"

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


5

ฉันเชื่อว่า IDE สำหรับ python มาพร้อมกับการติดตั้ง ArcGIS-10 มันถูกเรียกว่า IDLE และเป็นเครื่องมือที่เรียบง่าย แต่มีประสิทธิภาพสำหรับการเชื่อมต่อกับ ArcPy โดยไม่ต้องเปิดอินสแตนซ์ของ ArcMap เอง คุณควรหามันได้จากไดเรกทอรี "Python 2.6" ของการติดตั้ง ArcGIS ของคุณบนเมนูเริ่ม เพียงให้แน่ใจว่าได้import arcpyดำเนินการก่อนสิ่งที่เฉพาะเจาะจงกับแพคเกจ! ตัวอย่างสคริปต์ใด ๆ ที่คุณเห็นในการอ้างอิง ArcPyสำหรับสคริปต์แบบสแตนด์อโลนจะทำงานในอินเทอร์เฟซของ IDLE

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