คำถามติดแท็ก field-calculator

ใช้สำหรับคำถามเกี่ยวกับเครื่องคำนวณภาคสนามของ QGIS, ArcGIS Desktop, ฯลฯ และเครื่องมือคำนวณภาคสนามของพวกเขา


4
กรอกคอลัมน์ด้วยหมายเลขที่ต่อเนื่องกันใน QGIS?
ฉันสร้างคอลัมน์ใหม่ในตารางคุณลักษณะของฉันและมีค่าเริ่มต้น (เช่น 0) ฉันต้องการ (อาจใช้เครื่องคำนวณภาคสนาม) ได้ผลลัพธ์ที่แถว 1 มีค่า 1, แถว 2 = 2 และอื่น ๆ เช่นเดียวกับดัชนีที่มีหมายเลข ฉันจะขอบคุณสำหรับตัวอย่างรหัสสำหรับเครื่องคิดเลขภาคสนาม (รวมถึงการใช้งาน$rownum(ฉันคิดว่าฉันต้องการสิ่งนี้สำหรับการสลับเป็นบรรทัด))

3
จะอ้างถึงเลเยอร์อื่นในตัวคำนวณฟิลด์ได้อย่างไร
มีวิธีการเลือกแอตทริบิวต์จากรูปหลายเหลี่ยมเลเยอร์และแทรกค่าลงในเขตข้อมูลเสมือนของชั้นจุดโดยใช้ "ภายใน" ในเครื่องคิดเลขฟิลด์หรือไม่? CASE WHEN within($geometry, geometry_polygon) THEN attribute_polygon END

3
พื้นฐานถ้า / จากนั้นใน Python Parser ของเครื่องคำนวณภาคสนามของ ArcGIS?
ฉันใช้ ArcGIS 10.2 สำหรับเดสก์ท็อปและฉันได้ดูเว็บไซต์นี้แล้วและยังไม่สามารถหาคำตอบได้ ใหม่มากสำหรับ VBA และ Python แต่ใช้เวลาหลายปีกับ ArcGIS ฉันรู้ว่าฉันสามารถทำสิ่งนี้ได้อย่างช้าๆด้วย Select By Attributes แต่ใช้เวลานาน ฉันกำลังพยายามเชื่อมต่อเชิงพื้นที่ระหว่างกรณีของโรค (จุดเลเยอร์) และทางเดินสำรวจสำมะโนประชากรของสหรัฐ (ชั้นรูปหลายเหลี่ยม) ต้องใช้ข้อมูลการนับ สำหรับแต่ละจุด / กรณีฉันมีเขตข้อมูลที่เรียกว่าปีกับช่วงวันที่ 2001 ถึง 2012 ขึ้นอยู่กับสิ่งที่เกิดขึ้น ฉันต้องการคอลัมน์การนับสำหรับแต่ละปี ตัวอย่างเช่นคนแรกที่ฉันโทรมา COUNT01 หากวันที่กรณีในปีคือ 2001 แล้ว COUNT01 จะมี 1 ในนั้น หากเป็นปีอื่น (2545-2555) จะต้องมีค่า 0 ฉันจะมีคอลัมน์ COUNT02, COUNT03 ... COUNT12 ไม่สามารถมีค่า "Null" นี่คือสิ่งที่ฉันได้ลองไปแล้ว และนี่คือข้อมูลที่ดูเหมือนในอาร์ค

3
การปัดเศษคอลัมน์ในตารางแอตทริบิวต์โดยใช้เครื่องคำนวณฟิลด์ ArcGIS
ฉันต้องการใช้ Field Calculator ใน ArcMap เพื่อปัดเศษคอลัมน์ที่มีอยู่เป็นทศนิยมสองตำแหน่ง ขณะนี้ฉันมีคอลัมน์ที่มีความยาว 6 ตำแหน่งทศนิยมและต้องการเพียงแค่ปัดมันให้เหลือ 2 ทศนิยม ฉันวางแผนที่จะใช้ Field Calculator (อาจใช้ Python) เพื่อทำสิ่งนี้ แต่อาจจะมีวิธีที่ง่ายกว่านี้ไหม คำตอบที่ยอมรับอาจเป็นวิธีที่ง่ายที่สุดในการเปลี่ยนเขตข้อมูลเดียวอย่างไรก็ตามนี่คือวิธีการทำกับเครื่องคำนวณภาคสนามสำหรับทั้งไพ ธ อนและ VB VB: round([column], 2) งูหลาม: round(!column!, 2)

3
กำลังคำนวณผลรวมของส่วนต่าง ๆ ของคอลัมน์ตามคอลัมน์อื่นโดยใช้เครื่องคำนวณฟิลด์ QGIS
ฉันต้องการคำนวณผลรวมของค่าในหนึ่งคอลัมน์โดยยึดตามค่าในคอลัมน์อื่น เพื่อแสดงคำถามของฉันฉันอัพโหลดรูปภาพด้านล่าง คอลัมน์ที่สองประกอบด้วยรหัสไปรษณีย์ยอดขายรวมที่สาม ฉันต้องการที่จะรู้ว่ายอดขายรวมต่อรหัสไปรษณีย์คืออะไร? ดังนั้นในกรณีนี้: ผลรวมของคอลัมน์สามสำหรับค่าของคอลัมน์สองคือ1023อะไร 4 (0+1+1+2+0)เอาท์พุทจากนั้นควรจะเป็น ผลรวม1024จากนั้นควรเป็น 11,5 ตามตรรกะเดียวกัน เนื่องจากเป็นชุดข้อมูลที่ค่อนข้างใหญ่ฉันจึงต้องการให้เครื่องคำนวณฟิลด์ QGIS (หรือเครื่องมืออื่น ๆ ) คำนวณฟิลด์ใหม่ซึ่งระบุยอดขายรวมในรหัสไปรษณีย์ จนถึงตอนนี้ฉันไม่สามารถทำงานได้และหวังว่าคนที่นี่จะช่วยฉันได้ อย่างที่คุณเห็นฉันมีค่าขาดหายไปนี่เป็นปัญหาในการคำนวณหรือไม่? อาจจะพูดได้ดีก็คือมันเป็นโต๊ะ

7
ค้นหา / แทนที่คำพูดคู่โดยใช้ Python Parser of ArcGIS Field Calculator?
ฉันพยายามใช้ Field Calculator (ArcMap 10.0) เพื่อตัดเครื่องหมายคำพูดคู่ในช่องที่อยู่ (ฉันไม่ได้ใส่ไว้ในนั้นเชื่อฉัน) ฉันลองใช้คาถามากมาย แต่ก็ยังไม่สามารถแม้แต่จะคำนวณได้ ใช่ทั้งสองฟิลด์เป็นสตริงและทั้งสองมีความยาวที่ยอมรับได้ การคำนวณนี้: ผลลัพธ์ในสิ่งนี้: ด้วยข้อความแสดงข้อผิดพลาดนี้ในกล่องโต้ตอบผลลัพธ์: และฉันพูดซ้ำฉันไม่ได้ใส่ไว้ในนั้น

3
การสร้างคำสั่งแบบมีเงื่อนไขในเครื่องคำนวณภาคสนามของ QGIS
ฉันค้นหาคำถาม & คำตอบอื่น ๆ ในหัวข้อนี้ แต่ไม่มีใครได้พูดถึงสิ่งที่ฉันต้องการจะทำ ฉันมีชุดข้อมูลขนาดใหญ่และฉันต้องการค้นหาเขตข้อมูลหนึ่งสำหรับค่าใด ๆ ในจำนวนที่กำหนด (ในกรณีนี้ 20) และหากค่ามากกว่า 20 ฉันต้องการส่งคืนค่า 1 ในสาขาอื่นมิฉะนั้น ส่งคืนค่า 0 ฉันได้ลองเขียนบางอย่างโดยไม่มีโชค ฉันใช้ QGIS 2.8

8
การลบอักขระ return / newline (\ n) ออกจาก Field โดยใช้ Python และ Field Calculator?
ฉันมีตารางฐานข้อมูลที่มีเขตข้อมูลที่ฉันพยายามลบอักขระที่ส่งคืน (บรรทัดใหม่) ฉันพบโพสต์นี้ ( ฉันจะลบ (chomp) ขึ้นบรรทัดใหม่ใน Python ได้อย่างไร ) ของวิธีการทำอย่างไร แต่มันไม่ทำงานภายในเครื่องคำนวณภาคสนาม นี่คือตัวอย่างโค้ดที่ฉันพยายามคือ ตัวละครหมายเหตุผลตอบแทนไม่ได้ในตอนท้ายของสตริง !myField!.rstrip() หรือ !myField!.rstrip('\n') หรือ !myField!.rstrip('\r\n') หรือ !myField!.replace('\n', '') ได้รับข้อผิดพลาด 000539 สำหรับตัวเลือกนี้: คำอธิบายการคำนวณที่ใช้โดยเครื่องมือคำนวณเขตข้อมูลหรือคำนวณมูลค่าไม่ถูกต้อง ข้อความแสดงข้อผิดพลาดนี้จะแสดงรายการข้อผิดพลาด Python ที่เฉพาะเจาะจง การแก้ไขรหัสข้อผิดพลาดนี้ครอบคลุมข้อผิดพลาดของ Python จำนวนหนึ่ง: ตัวอย่างข้อผิดพลาด 1: ข้อยกเว้นประเภทข้อผิดพลาด: ไม่สามารถต่อกัน 'str' และวัตถุ 'int' ด้านบนเป็นข้อผิดพลาดเฉพาะของ Python การคำนวณพยายามเพิ่มหรือต่อสตริงและตัวเลขเข้าด้วยกัน ตัวอย่างข้อผิดพลาด 2: รูปร่างฟิลด์ @ ระยะทางไม่ถูกต้องด้านบนเป็นข้อผิดพลาดในการใช้วัตถุรูปทรงเรขาคณิต วิธีการระยะทางไม่ใช่วิธีการที่ถูกต้องของวัตถุรูปทรงเรขาคณิต สำหรับปัญหา Python …

1
ใช้คำสั่งแบบมีเงื่อนไข Elseif ในเครื่องคำนวณฟิลด์ QGIS หรือไม่
ฉันกำลังพยายามเขียนคำสั่งเงื่อนไข ELSEIF ในเครื่องคำนวณภาคสนาม QGIS (รุ่น 1.8.0) ฉันได้ใช้ตัวอย่างที่ฉันพบทางออนไลน์: CASE WHEN val < 0 THEN 'negative' WHEN val = 0 THEN "neutral' ELSE 'positive' END ฉันแก้ไขคำสั่งดังนี้: CASE WHEN "GRID_ID" = 1 THEN 'complete' ELSEIF "GRID_ID" = 2 THEN "in progress' ELSE 'not started' END คำสั่งนี้จะไม่ทำงานการแสดงตัวอย่างเอาต์พุตที่ระบุนิพจน์นั้นไม่ถูกต้อง ข้อมูลเพิ่มเติมที่ระบุไว้: ข้อผิดพลาดในการแยกวิเคราะห์: ข้อผิดพลาดทางไวยากรณ์, COLUMN_REF ที่ไม่คาดคิดโดยคาดว่า WHEN หรือ …


4
แยกจำนวนจุดยอดในแต่ละรูปหลายเหลี่ยม?
ฉันมี ArcGIS Desktop 10.2 และความท้าทายของฉันคือวิธีการแยกจำนวนจุดยอดในแต่ละรูปหลายเหลี่ยมสำหรับคุณสมบัติทั้งหมดดังนี้: ฉันมีพัสดุจำนวนมากในคลาสคุณลักษณะของฉันและฉันต้องการแยกจำนวนจุดยอดสำหรับคุณสมบัติทั้งหมดแยกจากนั้นฉันต้องการแสดงพิกัด XY สำหรับจุดยอดทั้งหมด สำหรับข้อมูลเพิ่มเติมฉันแค่ต้องการแปลงจุดยอดสำหรับแต่ละรูปหลายเหลี่ยมและแสดงหมายเลขของแต่ละจุดยอดที่จ้องมองจาก 1 หมายเลขดังนั้นถ้าฉันมีรูปหลายเหลี่ยมและมีจุดยอด 4 จุดต้องการแปลงรูปหลายเหลี่ยมเป็นจุดยอดฉันแสดงจำนวนจุดยอดเช่นนี้ (1,2,3,4,5) จากนั้นแสดง xy สำหรับแต่ละจุดยอดฉันคิดว่าความท้าทายที่แท้จริงเป็นวิธีการแปลงรูปหลายเหลี่ยมทั้งหมดไปยังจุดยอดและทำให้จุดยอดแต่ละจุดเริ่มต้นจาก 1 หมายเลข

1
คำนวณพื้นที่ภายในสคริปต์ Python ใน ArcMap
ฉันพยายามคำนวณพื้นที่ของรูปหลายเหลี่ยมภายในสคริปต์ Python ของฉัน ฉันสร้างรูปหลายเหลี่ยมใหม่จากการรวมสองรูปเข้าด้วยกันและฉันต้องการเพิ่มพื้นที่ของรูปหลายเหลี่ยมที่เป็นผลลัพธ์ลงในเขตข้อมูลในไฟล์ผลลัพธ์ รูปหลายเหลี่ยมจะถูกเก็บไว้ในรูปร่างปกติและฉาย พื้นที่โดยเฉพาะอย่างยิ่งในหน่วยแผนที่ ฉันคิดว่านี่เป็นงานที่ค่อนข้างธรรมดาและเรียบง่าย แต่ถึงแม้ว่าจะมี Googleing อยู่มากมายฉันก็ยังหาวิธีแก้ปัญหาที่ใช้งานไม่ได้ ฉันวางแผนที่arcpy.updateCursorจะใช้เพื่อแทรกค่าเมื่อคำนวณแล้ว (มีเพียงฟีเจอร์เดียวใน FC ในขั้นตอนนี้) ดังนั้นที่ง่ายที่สุดคือถ้ามันสามารถส่งคืนเป็นตัวแปรได้ โซลูชันทางเลือกใด ๆ ที่ทำภารกิจเดียวกันให้สำเร็จ (การรับค่าพื้นที่ลงในฟิลด์ที่ถูกต้อง) ก็จะใช้ได้เช่นกัน ฉันได้ลองใช้เครื่องคิดเลขภาคสนามจาก Python ด้วย แก้ไขจากหน้าช่วยเหลือฉันคิดว่าสิ่งต่อไปนี้ใช้ได้ แต่ยังไม่มีโชค arcpy.AddField_management(tempPgs, "Shape_area", 'DOUBLE') exp = "float(!SHAPE.AREA!.split())" arcpy.CalculateField_management(tempPgs, "Shape_area", exp) ใช้งาน ArcGIS Basic 10.1 SP1 ด้วย Python 2.7 บน Windows 7 ส่วนที่เกี่ยวข้องของรหัสปัจจุบันของฉันมีลักษณะดังนี้: #/.../ arcpy.Copy_management(inpgs, outpgs) arcpy.AddField_management(outpgs, …

2
มีวิธีกำหนดหมายเลขแถวสำหรับตารางที่เรียงตามคอลัมน์ใน QGIS หรือไม่?
เครื่องคิดเลขภาคสนามมีฟังก์ชั่นที่ยอดเยี่ยมภายใต้ "บันทึก" เรียกว่า "$ rownum" ซึ่งส่งกลับ (กำหนด) จำนวนแถวปัจจุบัน มีวิธีที่จะทำให้มันทำงานร่วมกับการเรียงลำดับได้หรือไม่? ให้บอกว่าฉันต้องการจัดเรียงตารางตามคอลัมน์ "ความยาว" และรับลำดับ (ลำดับ) ของเส้นตามความยาวจากสั้นที่สุดไปยาวที่สุด ฉันรู้ว่าฉันสามารถใช้ซอฟต์แวร์สเปรดชีต office ได้อย่างง่ายดายเพื่อเรียงลำดับตามคอลัมน์และเติมคอลัมน์ใหม่พร้อมลำดับ (ลำดับ) แต่ฉันต้องการทำงานทั้งหมดใน QGIS อัปเดต: เนื่องจากวิธีแก้ไขปัญหายังมีวิธีเปลี่ยนลำดับของคุณลักษณะใน Shapefile อย่างไร - การใช้ปลั๊กอิน mmqgis และฟังก์ชั่นแก้ไข / เรียงลำดับและหลังจากนั้นใช้ "$ rownum" ในไฟล์ที่บันทึกใหม่

1
QGIS, เติมฟิลด์ด้วยสูตรการอัพเดทตัวเอง (เช่นสเปรดชีต)
มีวิธีใดบ้าง (ปลั๊กอินหรืออื่น ๆ ) ในการใส่สูตรเป็นค่าของเขตข้อมูลซึ่งจะอัปเดตตัวเองเมื่อฟิลด์อื่น ๆ ที่ยึดตามนั้นถูกปรับหรือไม่ วิธีที่เครื่องคิดเลขภาคสนามอัพเดทมูลค่าของสนาม แต่แทนที่จะต้องกลับไปที่เครื่องคิดเลขภาคสนามทุกครั้งมันสามารถทำงานเหมือนสเปรดชีทเมื่อมีการอัปเดตเลเยอร์ที่ขึ้นอยู่กับ ตัวอย่างเช่นหากฉันต้องการค้นหาจำนวนหน่วยที่อยู่อาศัยภายในรูปหลายเหลี่ยมฉันสามารถทำบางสิ่งในเครื่องคิดเลขภาคสนามround("Density"*"Area")ได้ แต่ฉันต้องทำซ้ำทุกครั้งที่ปรับรูปหลายเหลี่ยม เมื่อการคำนวณมีความซับซ้อนมากขึ้นมันจะกลายเป็นความยุ่งยากที่แท้จริงในการดำเนินการด้วยตนเองและปรับใหม่ด้วยตนเอง

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