คำถามติดแท็ก arcpy

แพคเกจไซต์ที่สร้างโดย Esri เพื่อแสดงตำแหน่งทางภูมิศาสตร์ของ ArcGIS Desktop (ArcMap และ ArcGIS Pro) การประมวลผลการทำแผนที่การทำแผนที่และ Python

2
ผลลัพธ์ที่ผิดปกติสำหรับการทดสอบความเร็วการประมวลผลทางภูมิศาสตร์
ฉันสังเกตการทำงานผิดปกติด้วยสคริปต์การประมวลผล Python สคริปต์ (แนบ) ดำเนินการต่อไปนี้: ใช้เคอร์เซอร์ค้นหาเพื่อค้นหาโซน UTM ที่สอดคล้องกับคุณสมบัติรูปหลายเหลี่ยม สร้างวัตถุอ้างอิงเชิงพื้นที่โดยยึดตามผลลัพธ์ของเคอร์เซอร์ค้นหา แปลง. csv เป็นเลเยอร์คุณลักษณะแล้วไปยังคลาสคุณลักษณะจุด ฉันสังเกตเห็นเวลาการประมวลผลที่แตกต่างกันอย่างชัดเจนตามวิธีการเรียกใช้สคริปต์: การประมวลผลแบบ 32 บิตโดยใช้IDLE = 203 วินาที เครื่องมือประมวลผลเบื้องหน้า32 บิต = 91 วินาที เครื่องมือสคริปต์พื้นหลังการประมวลผล64 บิต = 206 วินาที เหตุใดสคริปต์นี้จึงทำงานแตกต่างกันไปตามเงื่อนไขข้างต้น แน่นอนว่าฉันไม่คาดหวังว่าเครื่องมือสคริปต์ 32 บิตจะทำงานในเบื้องหน้าว่าเร็วถึง 2X เท่าวิธีอื่น ๆ import arcpy, os, time ###IDLE Parameters ##fc = r'C:\path\to\polygon\fc\with\utm\zones\and\features' ##outws = r'C:\out\location' ##arcpy.env.workspace = …

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

3
ค้นหาระเบียนที่ซ้ำกันในฟิลด์โดยใช้ ArcGIS for Desktop หรือไม่
ฉันกำลังมองหาระเบียนที่ซ้ำกันในไฟล์ dbf ตามคุณลักษณะที่เรียกว่า 'ID' ฉันมีไฟล์ dbf ต่าง ๆ จาก 500,000 เรคคอร์ดถึง 1.5 ล้านและฉันรู้ว่ามีโฮสต์ของการซ้ำซ้อน ฉันต้องการเพิ่มฟิลด์ 'ทำซ้ำ' ซึ่งระบุว่าใช่หรือไม่ใช่ (หรือ 1 หรือ 0 ใช้ได้) เมื่อมีแอตทริบิวต์ ID อยู่ที่อื่น การใช้สคริปต์ python ต่อไปนี้ใน Field Calculator ส่งคืน 1 สำหรับรายการที่ซ้ำกันและ 0 สำหรับรายการที่ไม่ซ้ำ uniqueList = [] def isDuplicate(inValue): if inValue in uniqueList: return 1 else: uniqueList.append(inValue) return 0 isDuplicate(!FIELD_NAME!) …

4
การพิจารณาว่ามีจุดล้อมรอบโดยใช้การประมวลผลแบบแรสเตอร์หรือไม่
ฉันกำลังพยายามปรับปรุงกระบวนการเวกเตอร์ / หลามที่ยุ่งยากในขณะนี้สำหรับแบบจำลองความเป็นอันตรายตามธรรมชาติ ในขณะนี้เรามีสคริปต์ที่มีความยาวซึ่งสร้างเส้นระยะทาง / ทิศทางจากจุดที่กำหนดเพื่อพิจารณา: ประเภทของรูปหลายเหลี่ยมที่มันตัดกัน (เช่นป่าหญ้าป่าพรุ ฯลฯ ) ระยะทางถึงรูปหลายเหลี่ยมนั้น จำนวนเส้นเหล่านี้ตัดกันรูปหลายเหลี่ยมเพื่อกำหนดว่า 'ล้อมรอบ' เป็นเท่าใด มีส่วนร่วมมากขึ้น แต่นั่นคือส่วนสำคัญของมัน ฉันพยายามที่จะหาวิธีในการปรับปรุงและตอนนี้กำลังนิ่งงันในส่วนที่ 3 ความคิดคือการตรวจสอบว่าจุดที่ล้อมรอบด้วยรูปหลายเหลี่ยมอย่างสมบูรณ์ภายใน 200m ดังนั้นในภาพที่แนบมาของฉันฉันต้องการให้จุด A ถูกทำเครื่องหมายว่ามีความเสี่ยงสูงกว่าจุด B เนื่องจากล้อมรอบด้วยรูปหลายเหลี่ยมของฉัน สิ่งนี้ซ้ำไปซ้ำมาประมาณ 13 ล้านจุดดังนั้นจึงไม่ใช่งานเล็ก ๆ และฉันอยากมีพื้นผิวที่จะได้รับค่ามากกว่าการใช้งานสคริปต์ของเรา ฉันคิดว่าจะต้องมีการเปลี่ยนแปลงของเครื่องมืออุทกวิทยาหรือเส้นทางต้นทุนในการทำเช่นนี้ แต่ฉันไม่สามารถไปรอบ ๆ มันได้ ฉันจะไปเกี่ยวกับเรื่องนี้ได้อย่างไร

2
วิธีการสร้างบัฟเฟอร์ที่มุ่งเน้นการใช้ arcpy?
ฉันต้องการสร้างบัฟเฟอร์เชิงสำหรับทุกรูปหลายเหลี่ยมใน shapefile ของฉันโดยใช้ arcpy โดยการวางเชิงฉันหมายความว่าฉันมีสองมุม a1 และ a2 ที่ จำกัด ทิศทางของบัฟเฟอร์ สิ่งนี้แสดงอยู่ในกราฟด้านล่าง: ความคิดใด ๆ

4
กำลังคัดลอก ArcSDE Geodatabase ไปยังไฟล์ Geodatabase โดยใช้ ArcPy หรือไม่
ฉันต้องการทำสำเนาที่แน่นอน (โดเมน, ชุดข้อมูลคุณลักษณะ, คลาสคุณสมบัติ, ฯลฯ ) ของฐานข้อมูล SDE ไปยังฐานข้อมูลไฟล์ ฉันได้ลองหลายวิธีรวมถึง: ใช้กระบวนการคัดลอก (การจัดการข้อมูล) สร้าง GDB ใหม่และคัดลอกชุดข้อมูลแต่ละชุดด้วยตนเองจาก SDE ส่งออกเอกสารพื้นที่ทำงาน xml จาก SDE และนำเข้าสู่ GDB Copy_managementกระบวนการไม่ได้ดูเหมือนว่ามันจะทำงานให้คัดลอก SDE ไป GDB ตั้งแต่ประเภท input และ output ข้อมูลจะต้องตรงกับ กระบวนการนำเข้าชุดข้อมูลคุณลักษณะแต่ละชุดลงใน GDB ใหม่อาจเป็นไปโดยอัตโนมัติโดยใช้ Copy_management ด้วยการวนซ้ำผ่านชุดข้อมูลแต่ละชุด แต่ดูเหมือนว่านี่อาจทำให้เกิดปัญหาสำเนาที่ไม่สมบูรณ์หากมีข้อผิดพลาดกับกระบวนการใดกระบวนการหนึ่ง การส่งออกและนำเข้าพื้นที่ทำงาน xml ดูเหมือนว่าจะทำงานได้แม้ว่ากระบวนการนี้จะสร้างไฟล์ขนาดใหญ่อย่างไม่น่าเชื่อเมื่อมีการใช้กระบวนการบนฐานข้อมูล Geod ขนาดใหญ่ มีวิธีที่ตรงไปตรงมามากขึ้นในการคัดลอกเนื้อหาและสคีมาของ SDE ไปยัง GDB มากกว่าวิธีที่กล่าวถึงในวิธีที่สามารถเป็นแบบอัตโนมัติได้หรือไม่? ถ้าไม่มีเหตุผลใดที่ความเป็นไปได้ข้างต้นไม่ควรใช้ในกระบวนการนี้หรือไม่?

2
การสร้างรูปหลายเหลี่ยมเส้นโค้งจริงในฐานข้อมูลไฟล์โดยใช้ ArcPy?
ในฐานะพื้นหลังคำถามนี้เกิดขึ้นจากการพยายามตอบคำถามเกี่ยวกับวิธีการสร้างรูปหลายเหลี่ยมที่ทับซ้อนกันจากบรรทัดผลลัพธ์จากเครื่องมือ Table To Ellipse การใช้ ArcMap 10.1 GUI มันง่ายมากในการแปลงรูปหลายเหลี่ยมเส้นโค้งจริงให้เป็นคลาสคุณสมบัติทางภูมิศาสตร์ฐานข้อมูลโดยใช้เครื่องมือก่อสร้างEllipseแต่ ... เป็นไปได้หรือไม่ที่จะเขียนรูปหลายเหลี่ยมเชิงเส้นโค้งจริงขณะอ่านแถว (arcpy.da.SearchCursor) จากตารางที่มีจุดศูนย์กลางแกนหลักแกนแกนเล็กและแกนราบสำหรับแต่ละอัน? ฉันหวังว่าอาจมีโทเค็นที่พร้อมใช้งานกับarcpy.da.InsertCursorเพื่อทำสิ่งนี้ แต่SHAPE@ดูเหมือนว่าจะถูก จำกัด ด้วยสิ่งที่วัตถุเรขาคณิตสนับสนุนและไม่ปรากฏว่ามีส่วนโค้งจริง

5
การระบุฟิลด์การเข้าร่วมในโปรแกรมเป็นแบบ ArcMap?
เป็นไปได้หรือไม่ที่จะระบุเขตข้อมูลการเข้าร่วมทางโปรแกรมที่ใช้กับตารางเข้าร่วมสองชุดข้อมูลเข้าด้วยกันใน ArcMap ขณะนี้ฉันกำลังใช้ ArcGIS 10.0, SP5 และต้องการโซลูชัน ArcPyแต่ฉันจะไม่คัดค้านโซลูชันอื่น ๆ หากไม่มีโซลูชัน ArcPy วิธีหนึ่งที่ฉันลองใช้คือวนลูปผ่านทุกฟิลด์และมองหา "baseName" ที่ตรงกัน แต่นั่นเป็นเพียง "การศึกษาที่เดาได้" ที่คุณหวังว่าชื่อฟิลด์ในฐานข้อมูลทั้งสองจะเหมือนกัน สำหรับการแสดงกราฟิกของสิ่งที่ฉันเป็นหลังจากนั้นฉันต้องการระบุ "อินพุตเข้าร่วมฟิลด์" และ "เอาท์พุทเข้าร่วมฟิลด์" ตามที่เห็นในกล่องโต้ตอบ "เพิ่มเข้าร่วม" แต่แน่นอนหลังจากที่จริงแล้ว นี่เป็นคำถามเกี่ยวกับแท็กที่สามารถตรวจพบ“ เข้าร่วม” โดยทางโปรแกรมหรือไม่ แต่ในกรณีนี้ฉันต้องการขยายฟังก์ชั่นเพื่อระบุ FIELD (s) ที่ใช้ในการเข้าร่วมชุดข้อมูลสองชุด (หรือมากกว่า) เข้าด้วยกัน

6
วิธีตรวจสอบโดยทางโปรแกรมว่าจำนวนรูปร่าง = จำนวนระเบียนในตาราง?
ฉันมีรูปร่างหนึ่งไฟล์ประมาณ 1,000 รูปที่เสียหาย (ดูข้อความแสดงข้อผิดพลาดที่แนบมา) ShapeFiles ถูกสร้างขึ้นจาก eCognition Developer 8 มีเครื่องมือสคริปต์ที่ดูเหมือนว่าจะซ่อม Shapefile เมื่อมันถูกระบุว่าเสียหาย แก้ไข: ฉันต้องการสร้างสคริปต์อย่างรวดเร็วเพื่อวนลูปไฟล์ทั้งหมดและตรวจสอบว่าจำนวนรูปร่างตรงกับเรคคอร์ดตารางหรือไม่ ฉันสามารถนับบันทึกตารางโดยใช้สิ่งต่อไปนี้: # Name: fcCount.py # Purpose: calculate the number of features in a featureclass # Import system modules import arcpy from arcpy import env env.workspace = "C:/data" Sample = "MyShp.shp" result_dbf = int(arcpy.GetCount_management(Sample).getOutput(0)) print result_dbf ในที่สุดฉันต้องการสร้างการตรวจสอบตรรกะบางประเภทเช่น: …

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

3
arcpy สามารถตรวจจับว่ามันกำลังทำงานอยู่ในเดสก์ท็อปหรือเซิร์ฟเวอร์หรือไม่?
ฉันกำลังพัฒนาโค้ดบางส่วนที่ฉันต้องการเรียกใช้ทั้งสองเป็นบริการเว็บเซิร์ฟเวอร์ ArcGIS และเป็นสคริปต์แบบสแตนด์อโลน ฉันต้องการที่จะสามารถแก้ไขการดำเนินการเล็กน้อยขึ้นอยู่กับว่ามันทำงานเป็นบริการเว็บ AGS หรือเป็นงูหลามแบบสแตนด์อโลน / ภายในเดสก์ท็อป มีวิธีตรวจจับสิ่งนี้หรือไม่? ฉันค้นหาเสร็จแล้ว แต่ไม่พบสิ่งที่น่าพอใจมาก ฉันได้เห็นarcpy.mapping.CreateGISServerConnectionFile แล้วแต่นี่เป็นการตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์แทนที่จะตรวจสอบสภาพแวดล้อมปัจจุบัน ฉันยังค้นหาข้อมูลเกี่ยวกับวิธีการเรียกใช้บริการโดยใช้ AGS (เช่นนี้ ) แต่ฉันไม่เห็นอะไรเลยในแนวของฟังก์ชันประเภท arcpy.isWebService () ฉันต้องตรวจสอบสภาพแวดล้อม (เช่นเพื่อดูว่า "% scratchFolder% ถูกตั้งค่าหรือตรวจสอบบางสิ่งที่เกี่ยวข้องกับ sys.argv) หรือไม่ดูเหมือนโซลูชันที่ไม่เสถียร

3
การแทนที่อักขระที่ไม่ใช่ภาษาอังกฤษในตารางแอตทริบิวต์โดยใช้ ArcPy และ Python?
ฉันมีรูปแบบไฟล์เล็กน้อยที่คุณสมบัติบางอย่างมีอักขระที่ไม่ใช่ภาษาอังกฤษÅÄÖ เนื่องจากข้อความค้นหาบางข้อไม่สามารถใช้งานได้กับตัวละครเหล่านี้ (โดยเฉพาะChangeDetector ) ฉันพยายามที่จะเปลี่ยนพวกเขาล่วงหน้าด้วยสคริปต์ง่าย ๆ และเพิ่มสตริงใหม่ลงในฟิลด์อื่น อย่างไรก็ตามการเปลี่ยนแปลงในตัวละครทำงานได้ดี แต่ไม่ได้ปรับปรุงสนามด้วย arcpy.UpdateCursor อะไรคือวิธีที่เหมาะสมในการแก้ปัญหานี้? ฉันได้ลองทำเช่นนี้ผ่านเครื่องคิดเลขภาคสนามในขณะที่โพสต์ "รหัส" เพื่อ codeblock มีข้อผิดพลาดเดียวกัน ข้อความแสดงข้อผิดพลาด: ข้อผิดพลาดรันไทม์การติดตามย้อนกลับ (การโทรล่าสุดครั้งล่าสุด): ไฟล์ "", บรรทัด 1, ในไฟล์ "c: /gis/python/teststring.py", บรรทัดที่ 28, ใน val = code (str (prow.Typkod)) UnicodeEncodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถเข้ารหัสอักขระ u '\ xc4' ในตำแหน่ง 3: ลำดับไม่อยู่ในช่วง (128) รหัส: # -*- coding: cp1252 …

5
การเปลี่ยนชื่อฟิลด์โดยใช้ ArcPy?
ฉันต้องทำอะไร: เปลี่ยนชื่อฟิลด์ของคลาสตาราง / คุณสมบัติ คัดลอกค่าทั้งหมดไปยังฟิลด์ใหม่ จนถึงตอนนี้ฉันได้ทำโค้ดต่อไปนี้ตามที่ @ artwork21 แนะนำ: import sys import traceback import arcpy from arcpy import env ## ARGUMENTS # argv[1] = input table/feature class path # argv[2] = input old field name # argv[3] = input new field name path = sys.argv[1] oldFieldName = sys.argv[2] newFieldName = …

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

1
แจ้งให้ผู้ใช้ป้อนข้อมูลในระหว่างการใช้งานเครื่องมือสคริปต์ ArcGIS Python หรือไม่
ฉันต้องการให้ผู้ใช้ป้อนข้อมูลหลังจากระบุพารามิเตอร์ทั้งหมดสำหรับเครื่องมือสคริปต์แล้ว ฉันเคยเห็นโพสต์ฟอรัมและคำถามแลกเปลี่ยนมากมายเกี่ยวกับเรื่องนี้และพวกเขาสรุปว่ามันไม่จำเป็น แต่ฉันคิดว่ากรณีของฉันเป็นข้อยกเว้น ฉันต้องการให้ผู้ใช้มีโอกาสยืนยันข้อมูลเช่นมีพิกัด GPS กี่ชุด พวกเขาจะเป็นคำถามที่ตอบว่าใช่ / ไม่ใช่ ("ข้อมูลนี้ไม่ถูกต้องหรือไม่") และรูปแบบการป้อนพารามิเตอร์เครื่องมือสคริปต์ไม่ดูเหมือนว่าจะทำงานได้ดีสำหรับสิ่งนี้ ฉันรู้ว่าตัวจัดการเหตุการณ์ของ Tkinter ทำให้เกิดปัญหากับ ArcGIS และ framworks อื่นมีปัญหาคล้ายกัน วิธีแก้ปัญหาหนึ่งที่ฉันพบคือให้สคริปต์ของคุณเรียกใช้สคริปต์อื่นที่ทำงานเป็นกระบวนการแยกต่างหากและแสดง GUI จากกระบวนการที่สอง แต่ดูเหมือนว่าแฮ็กน้อยเกินไป เห็นได้ชัดว่า wxPython ไม่ทำงาน แต่ก็ไม่ได้มาพร้อมกับงูหลาม ฉันต้องสามารถแจกจ่ายสคริปต์เหล่านี้ได้โดยไม่ต้องมีข้อกำหนดเพิ่มเติมนอกเหนือจาก ArcGIS ดังนั้นมันจึงไม่ได้ผลสำหรับฉัน เพื่อชี้แจงการใช้ที่สำคัญที่สุดคือการแจ้งให้ผู้ใช้เมื่อการตรวจสอบการตรวจสอบซอฟต์แวร์ของฉันไม่สามารถตรวจสอบข้อมูล ตัวอย่างเช่นฉันมีรายการรหัสที่ฉันต้องการตรวจสอบ แต่รูปแบบไม่สอดคล้องกัน ฉันต้องการให้ผู้ใช้โต้ตอบด้วยใช่ / ไม่ใช่กล่องโต้ตอบหากฉันไม่สามารถตรวจสอบในซอฟต์แวร์ (เช่น ID ไม่ตรงกับหนึ่งในรูปแบบทั่วไป) เป็นไปได้ว่ารูปแบบ ID ใหม่จะถูกสร้างขึ้นโดยที่ฉันไม่รู้ อีกตัวอย่างหนึ่ง: ฉันมีไฟล์ที่บรรจุตารางเวลาเริ่มต้นและหยุด ฉันต้องการตรวจสอบความถูกต้องของแต่ละแถวของตารางและยัดเยียดข้อมูลทั้งหมดรวมทั้งการตรวจสอบอื่น ๆ ลงในหน้าต่างคำเตือนที่น่าเกลียดอย่างรวดเร็ว

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