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

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

2
ประสิทธิภาพของเคอร์เซอร์การเข้าถึงข้อมูลมีการปรับปรุงอย่างไรเมื่อเทียบกับรุ่นก่อนหน้า
โมดูลการเข้าถึงข้อมูลถูกนำมาใช้กับ ArcGIS รุ่น 10.1 ESRI อธิบายถึง data access module ดังต่อไปนี้ ( แหล่งที่มา ): data access module, arcpy.da เป็นโมดูล Python สำหรับการทำงานกับข้อมูล จะช่วยให้การควบคุมของเซสชั่นการแก้ไข, การดำเนินการแก้ไข, การสนับสนุนเคอร์เซอร์ที่ดีขึ้น (รวมถึงประสิทธิภาพที่เร็วขึ้น), ฟังก์ชั่นสำหรับการแปลงตารางและชั้นเรียนคุณลักษณะไปยังและจากอาร์เรย์ NumPy และการสนับสนุนสำหรับรุ่น อย่างไรก็ตามมีข้อมูลน้อยมากเกี่ยวกับสาเหตุที่ประสิทธิภาพเคอร์เซอร์ดีขึ้นกว่าเคอร์เซอร์รุ่นก่อนหน้า รูปที่แนบมาแสดงผลลัพธ์ของการทดสอบเกณฑ์มาตรฐานในdaวิธีใหม่UpdateCursor เทียบกับวิธี UpdateCursor เก่า เป็นหลักสคริปต์ดำเนินการเวิร์กโฟลว์ต่อไปนี้: สร้างคะแนนสุ่ม (10, 100, 1,000, 10000, 100000) สุ่มตัวอย่างจากการแจกแจงแบบปกติและเพิ่มมูลค่าให้กับคอลัมน์ใหม่ในตารางแอตทริบิวต์จุดสุ่มด้วยเคอร์เซอร์ รันการวนซ้ำ 5 ครั้งในแต่ละสถานการณ์ของจุดสุ่มสำหรับทั้ง UpdateCursor ใหม่และเก่าและเขียนค่าเฉลี่ยลงในรายการ วางแผนผลลัพธ์ เบื้องหลังเกิดอะไรขึ้นกับdaเคอร์เซอร์อัปเดตเพื่อปรับปรุงประสิทธิภาพของเคอร์เซอร์ตามระดับที่แสดงในภาพ import arcpy, os, …

5
วนรอบ 16 ล้านบันทึกโดยใช้ ArcPy?
ฉันมีตารางที่มี 8 คอลัมน์และประมาณ 16.7 ล้านเรคคอร์ด ฉันต้องใช้ชุดสมการ if-else บนคอลัมน์ ฉันเขียนสคริปต์โดยใช้โมดูล UpdateCursor แต่หลังจากบันทึกไปสองสามล้านครั้งมันมีหน่วยความจำไม่เพียงพอ ฉันสงสัยว่าจะมีวิธีที่ดีกว่าในการประมวลผลระเบียน 16.7 ล้านรายการเหล่านี้หรือไม่ import arcpy arcpy.TableToTable_conversion("combine_2013", "D:/mosaic.gdb", "combo_table") c_table = "D:/mosaic.gdb/combo_table" fields = ['dev_agg', 'herb_agg','forest_agg','wat_agg', 'cate_2'] start_time = time.time() print "Script Started" with arcpy.da.UpdateCursor(c_table, fields) as cursor: for row in cursor: # row's 0,1,2,3,4 = dev, herb, forest, water, …

3
การลบเคอร์เซอร์ที่ใช้ใน SearchCursor ภายในความเข้าใจในพจนานุกรม?
หากเป็นการดีที่สุดที่จะเปิดเคอร์เซอร์โดยใช้คำสั่ง with เพื่อให้แน่ใจว่ามันถูกลบออกไปเช่น: with arcpy.da.UpdateCursor(fc,fields) as cursor: จากนั้นหากเคอร์เซอร์ถูกใช้เป็น iterable ในความเข้าใจเช่นนั้น: d = {k:v for (k,v) in arcpy.da.SearchCursor(fc,fields)} จำเป็นต้องลบเคอร์เซอร์หลังจากใช้มันในความเข้าใจหรือไม่?
12 arcpy  cursor 

1
วิธีที่เร็วที่สุดสำหรับการปรับเปลี่ยนตารางแอตทริบิวต์ด้วย Python?
เมื่อไม่นานมานี้ฉันได้เขียนฟังก์ชั่น Python อย่างรวดเร็วสำหรับการแปลงตารางแอททริบิวไปเป็นพจนานุกรมไพ ธ อนโดยที่คีย์นั้นนำมาจากฟิลด์ ID เฉพาะที่ผู้ใช้ระบุ (โดยทั่วไปคือฟิลด์ OID) นอกจากนี้ตามค่าเริ่มต้นทุกช่องจะถูกคัดลอกไปยังพจนานุกรม แต่ฉันได้รวมพารามิเตอร์ที่อนุญาตให้ระบุเฉพาะชุดย่อย def make_attribute_dict(fc, key_field, attr_list=['*']): dict = {} fc_field_objects = arcpy.ListFields(fc) fc_fields = [field.name for field in fc_field_objects if field.type != 'Geometry'] if attr_list == ['*']: valid_fields = fc_fields else: valid_fields = [field for field in attr_list if field in …

4
การล็อคไฟล์ ArcGIS Python SearchCursor?
ฉันมีสคริปต์ที่ได้รับค่าจากเขตข้อมูลของ shapefile เพื่อกลับไปที่ผู้ใช้ ดูเหมือนว่าเฉพาะเมื่อ arcpy.SearchCursor เรียกว่า ArcMap 10.0 ล็อคไฟล์และจะไม่ถูกลบหลังจากสคริปต์ทำงานเสร็จ เพื่อปิดล็อคฉันต้องปิด ArcMap ในสคริปต์ฉันลบวัตถุ SearchCursor หลังจากใช้งานเช่นเดียวกับวัตถุแถว วิธีที่ฉันใช้งานสคริปต์ก็คือพยายามที่จะลบโฟลเดอร์เวิร์กสเปซในการทำงานครั้งต่อไป แต่ไม่สามารถทำได้เพราะล็อค ... จนกว่าจะปิด ArcMap แน่นอน มีคำแนะนำใด ๆ ในการทำให้ล็อคนี้หายไปหรือไม่?

2
กำลังคำนวณเขตข้อมูลวันที่ด้วยวันที่วันนี้จาก datetime.date.today ()?
ฉันกำลังทำงานในส่วนของเครื่องมือที่จะใช้ arcpy.CalculateField_management เพื่อเพิ่มวันที่ปัจจุบันลงในตารางที่เกี่ยวข้อง ฉันเดินข้าม interwebs ไปทั่วและดูเหมือนจะไม่สามารถแก้ไขปัญหานี้ได้ เมื่อใช้รหัสนี้ฉันจะได้รับค่า "12:00:00 AM" input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = today.strftime('%m/%d/%Y') arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") เมื่อใช้รหัสนี้ฉันจะได้รับค่า "06/19/1905" ตั้งแต่วันนี้ของ "10/07/2014" input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = str(today) arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") มีความคิดเกี่ยวกับสิ่งที่ฉันทำผิดหรือเปล่า? ฉันต้องการหลีกเลี่ยงการใช้เคอร์เซอร์อัปเดต แต่จะทำเช่นนั้นหากเป็นตัวเลือกสุดท้าย

5
วิธีปรับปรุงประสิทธิภาพเมื่อใช้เคอร์เซอร์ ArcGIS ใน Python กับตารางขนาดใหญ่
ฉันมีคลาสฟีเจอร์จุดใหญ่ในไฟล์ฐานข้อมูลภูมิศาสตร์ (~ 4 000 000 บันทึก) นี่เป็นตารางคะแนนปกติที่มีความละเอียด 100 ม. ฉันต้องทำการวางแนวทั่วไปบนเลเยอร์นี้ สำหรับสิ่งนี้ฉันสร้างกริดใหม่โดยที่แต่ละจุดอยู่ตรงกลางของจุด 4 "เก่า": * * * * o o o * * * * o o o * * * * [*] = จุดของตารางเดิม - [o] = จุดของตารางใหม่ ค่าแอททริบิวของแต่ละจุดใหม่จะคำนวณตามค่าน้ำหนักของ 4 เพื่อนบ้านในกริดเก่า ฉันวนรอบทุกจุดของกริดใหม่ของฉันและสำหรับแต่ละจุดฉันวนรอบทุกจุดบนกริดเก่าของฉันเพื่อค้นหาเพื่อนบ้าน (โดยการเปรียบเทียบค่าของ X และ Y ในตารางคุณลักษณะ) เมื่อพบ 4 เพื่อนบ้านแล้วเราก็ออกไปจากวง …

6
การย้าย / ชดเชยตำแหน่งจุดโดยใช้ ArcPy หรือ ModelBuilder?
ฉันมีเลเยอร์ CAD ที่ไม่มีการอ้างอิงทางภูมิศาสตร์จำนวนหนึ่ง (ดูคำถามนี้ ) ที่มีคุณสมบัติการเพิ่มความคิดเห็นแบบข้อความ ฉันได้สร้างแบบจำลองเพื่อแปลงข้อความให้เป็นจุด แต่หลังจากแปลงคำอธิบายประกอบเป็นคุณลักษณะแบบจุดฉันเห็นว่าจุดยึดข้อความ CAD ไม่ตรงกับจุดศูนย์กลางของข้อความ CAD (ซึ่งเป็นจุดที่อยู่) ดังนั้นฉันต้องการเขียนโปรแกรม (ใช้ ArcPy หรือ ModelBuilder) [ย้าย] คุณลักษณะที่สัมพันธ์กับตำแหน่งปัจจุบัน (delta x, y)โดยใช้ค่า X, Y ที่วัดได้ที่ฉันจะให้ สิ่งนี้จะช่วยให้ฉันย้ายจุด GIS กลับไปที่ที่พวกเขาอยู่แทนจุดยึด CAD ชดเชย ฉันจะทำงานนี้ให้สำเร็จได้อย่างไร @PolyGeo ให้คำตอบที่ยอดเยี่ยมโดยใช้SHAPE @ XY IN 10.1 แต่ขณะนี้ฉันกำลังใช้งาน 10.0 10.0 ความคิดใด ๆ

1
วิธีการลบแถวที่เลือกโดยใช้ ArcPy
ฉันต้องการลบแถวทั้งหมดในคลาสคุณลักษณะ แต่ยังคงอยู่แถวที่ 1 ถึง 5 ในอีกทางหนึ่งฉันต้องการคงแถวห้าแถวแรกและลบแถวอื่น ๆ ฉันรู้ว่าฉันต้องใช้เคอร์เซอร์ค้นหาและอัปเดตเคอร์เซอร์ แต่ฉันไม่สามารถใช้ได้ ฉันจะลบแถวโดยใช้ ArcPy ได้อย่างไร
10 arcpy  cursor 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.