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

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

1
ไวยากรณ์ของข้อความสั่งแบบมีเงื่อนไขใน QGIS Field Calculator (s)
ฉันมีรูปร่างไฟล์ที่ฉันต้องแก้ไข มีหนึ่งคอลัมน์ "CLASS" พร้อมแอตทริบิวต์: "A", "B" และ "C" ฉันต้องเปลี่ยน "A" เป็น "1", "B" เป็น "2" และ "C" เป็น "3" ฉันลองด้วยcase whenฟังก์ชั่น ด้วยกรณีหนึ่งมันไม่ใช่ปัญหา แต่มันทำงานกับ 3 ในแถวได้อย่างไร เป็นไปได้ไหมที่จะสร้างแบบจำลองด้วยFieldCalculatorฟังก์ชั่น? ฉันคิดว่าฉันคิดออก! ถูกต้องหรือไม่ CASE WHEN "VSt_K" IS 'E' THEN '5' WHEN "VSt_K" IS 'A' THEN '1' WHEN "VSt_K" IS 'B' THEN '2' WHEN "VSt_K" IS …

2
แปลงจาก DMS เป็น DD โดยใช้ Python ใน Field Calculator หรือไม่
ฉันต้องการแปลง lat / long ที่แสดงเป็นองศานาทีและวินาทีในข้อมูลเป็นองศาทศนิยม ตัวอย่างเช่นในข้อมูลจะแสดงรายการเป็น N335042.06 ในคอลัมน์ Latitude และ W86031.04 ในคอลัมน์ลองจิจูด ฉันทำปัญหานี้มาแล้วก่อนที่ฉันจะสร้างสคริปต์ที่แปลง DMS เป็น DD และในทางกลับกันดังนั้นฉันเดาว่าฉันสามารถใช้บิตจากสิ่งนั้นได้ แต่ปัญหาที่ฉันมีก็คือวิธีที่จะเพิกเฉย (สำหรับคำที่ดีกว่า) 'N' และ 'W' ในข้อมูล? ฉันข้ามได้ไหม และ DMS จะแสดงรายการทั้งหมดเข้าด้วยกันโดยไม่มีสัญลักษณ์หรือช่องว่าง ฉันสามารถใช้len(), range(), split()สามารถระบุสิ่งที่เป็นส่วนหนึ่งที่จะอ่านจากค่าที่? ตัวอย่างเช่นสามารถทำสิ่งต่อไปนี้? N335042.06 โดยที่ 33 = องศา 50 = นาที 42.06 = วินาที ... ? ฉันมาข้ามนี้บทความ ESRI แต่ก็ใน VB อาจจะใช้เป็นข้อมูลอ้างอิง แต่คำศัพท์ …

3
การคำนวณตัวเลขเรียงลำดับลงในตารางที่เรียงลำดับโดยใช้ ArcGIS Desktop หรือไม่
มีวิธีการคำนวณที่เรียงลำดับข้อมูลที่มีหมายเลขลำดับ? ฉันเคยเห็นclass feature sorting เพื่อคำนวณเขตข้อมูล ID ตามลำดับโดยใช้ ArcGIS Field Calculator หรือไม่ ที่สรุปวิธีการคำนวณตัวเลขตามลำดับ แต่จะคำนวณตามลำดับ FID เสมอไม่ใช่ตามลำดับที่เรียงลำดับ #Pre-logic Script Code: rec=0 def autoIncrement(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec += pInterval return rec #Expression: autoIncrement() ตัวอย่างของสิ่งที่ฉันพยายามที่จะทำ ฉันใช้การเรียงลำดับขั้นสูงเพื่อจัดเรียงตามปีเดือนวันและตอนนี้ต้องการมีหมายเลขเรียงลำดับในSeqฟิลด์ คุณจะเห็นว่าOBJECTIDฟิลด์ของฉันไม่เป็นไปตามลำดับดังนั้นโค้ดด้านบนจะไม่ทำงาน สามารถทำได้ทั้งในเครื่องคำนวณภาคสนามหรือใช้ Update Cursor …

3
จะใช้ฟังก์ชั่นแทนที่สตริงใน Field Calculator ได้อย่างไร?
ภายในตารางคุณลักษณะฉันพยายามแทนที่สตริงหนึ่งด้วยอีกสตริงหนึ่งโดยใช้ฟังก์ชัน 'replace' ตัวอย่างเช่นมีคุณสมบัติหลายอย่างที่ฟิลด์ 'NAME' มีสตริง '(B)' และฉันต้องการแทนที่ด้วยคำว่า 'County' ฉันกำลังเลือกช่องทำเครื่องหมาย 'อัปเดตฟิลด์ที่มีอยู่' และใช้นิพจน์ต่อไปนี้ replace( '(B)','(B)','County') ผลลัพธ์ที่ได้คือฟิลด์ 'NAME' สำหรับทุกคุณสมบัติจะถูกแทนที่ด้วย 'County' โดยไม่คำนึงว่าฟิลด์ 'NAME' นั้นมีอยู่ในตอนแรกหรือไม่นั้นมีสตริง '(B)' ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

2
กำลังคำนวณคุณลักษณะใหม่โดยอิงตามการเปลี่ยนแปลงในแอตทริบิวต์อื่นโดยใช้ ArcGIS Desktop กับ Python หรือไม่
ฉันกำลังพยายามจำแนกชุดข้อมูล gps ที่เข้ารหัสเวลาเป็นพฤติกรรมตามคุณลักษณะที่แตกต่างกัน ฉันสร้างคุณลักษณะที่เป็น 0 สำหรับบ้านและ 1 สำหรับออกไปตามสถานที่และตอนนี้ต้องการกำหนดจำนวนการเดินทางออกจากบ้าน (ชุดของคะแนน01111111111110จะเป็นการเดินทางหนึ่งครั้งเพราะเริ่มต้นและสิ้นสุดที่บ้าน) ฉันได้เพิ่มฟิลด์แอททริบิวที่จะมีหมายเลขการเดินทาง แต่ไม่ทราบวิธีการคำนวณฟิลด์ดังนั้นจึงเป็นไปตามฟิลด์บ้าน / ออกไป นี่คือตัวอย่างของข้อมูล GPS (ใช้ "*" เพื่อระบุข้อมูลที่ไม่เกี่ยวข้องและเพียงทำดัชนีครั้งที่ 1, 2 ฯลฯ ) ตัวบ่งชี้ "บ้าน / ออกไป" ที่อธิบายไว้ข้างต้นและตัวบ่งชี้การเดินทางที่ต้องการ "การเดินทาง" ซึ่งฉันต้องคำนวณ: Time Lat Lon Home/Away Trip 1 * * 0 0 2 * * 1 1 3 * * 1 1 .... …

7
กำลังแยกการยกระดับ DEM ไปยังตารางแอตทริบิวต์ของเวกเตอร์ในเดสก์ท็อป ArcGIS?
ฉันมีโครงการ ArcMap 10 ที่มีหลายกลุ่มเลเยอร์ หนึ่งเลเยอร์คือ raster DEM กลุ่มเลเยอร์อีกอันหนึ่งเป็นพวงของเวกเตอร์รูปร่างไฟล์ (รวมถึงจุดเส้นและรูปหลายเหลี่ยม) ลูกค้าต้องการให้ข้อมูลเวกเตอร์ทั้งหมดมีค่า Z การเติมตารางแอตทริบิวต์สำหรับข้อมูลเวกเตอร์ด้วยค่า X และ Y นั้นง่ายพอ แต่ฉันจะเติมค่า Z ได้อย่างไร มีวิธีที่ฉันสามารถใช้ Field Calculator เพื่อ "คว้า" ค่าความสูงจากเลเยอร์ DEM สำหรับแต่ละคุณลักษณะของเวกเตอร์หรือไม่ ฉันควรเพิ่มว่าเราไม่มีใบอนุญาตสำหรับส่วนขยายนักวิเคราะห์ 3 มิติหรือนักวิเคราะห์เชิงพื้นที่

3
การใช้เครื่องคำนวณภาคสนามใน QGIS เพื่ออัปเดตคอลัมน์ด้วยพิกัดเซนทรอยด์
ใน QGIS ฉันต้องการอัปเดตสองคอลัมน์ด้วยเซนทรอยด์ตะวันออกและทิศเหนือของรูปหลายเหลี่ยมของฉัน ฉันกำลังใช้เครื่องคำนวณภาคสนาม ฉันได้ลองใช้ $ x และ $ y แต่นี่ดูเหมือนจะใช้ได้กับคะแนนเท่านั้น ฉันตรวจสอบความช่วยเหลือแล้ว แต่ไม่ได้พูดถึงความสามารถในการทำเช่นนี้

1
การรับส่วนหนึ่งของสตริงจากฟิลด์ในตารางแอตทริบิวต์ QGIS?
ฉันมีปัญหาเล็กน้อยที่นี่กับสถานการณ์นี้ ฉันต้องการ "NumeroCamp" เท่านั้นที่จะแสดงตัวเลขใน "ข้อความ" มีฟังก์ชั่นใด ๆ ในเครื่องคำนวณภาคสนามที่สามารถช่วยฉันได้หรือไม่?

1
ฟังก์ชั่น QGIS-Custom ไม่แสดงใน Field Calculator
ฉันใช้เอสเซนและพยายามที่จะทำตามแอนนิต้า Graser กวดวิชาที่ยอดเยี่ยมแบบเรืองแสงรูปทรง ฉันได้สร้างazimuthฟังก์ชั่นแล้วโหลด แต่ไม่มีอะไรแสดงในแท็บนิพจน์ - ไม่ได้กำหนดเองด้วยค่าเริ่มต้น func! นิพจน์มีอยู่azimuth.pyในรูปแบบ C :\Users\Max\.qgis2\python\expressionsพร้อม.pycไฟล์ที่เกี่ยวข้อง การรีสตาร์ท QGIS นั้นไม่ได้สร้างความแตกต่างเลย

1
เลิกทำการคำนวณภาคสนามใน ArcGIS Pro หรือไม่
ฉันใช้ ArcGIS Pro และไม่สามารถหาวิธีเลิกทำการคำนวณฟิลด์ได้ ด้วย ArcGIS 10.x สำหรับเดสก์ท็อปการคำนวณฟิลด์สามารถเลิกทำได้เมื่อเซสชันการแก้ไขแอ็คทีฟ แต่ Pro ดูเหมือนจะอยู่ในเซสชั่นการแก้ไขแบบถาวรที่ไม่รวมความสามารถในการเลิกทำการคำนวณฟิลด์ เป็นไปได้ไหมที่จะเลิกทำการคำนวณภาคสนามใน ArcGIS Pro?

1
การเพิ่มฟิลด์อัตโนมัติขึ้นอยู่กับกลุ่มภายในคลาสคุณลักษณะ?
ฉันต้องการเพิ่มฟิลด์โดยอัตโนมัติตามกลุ่มภายในคลาสคุณลักษณะ ฉันมี 8 แปลงภายในรูปหลายเหลี่ยมที่กำหนดและฉันต้องกำหนด ID จาก 1-8 สำหรับแต่ละชุดของรูปหลายเหลี่ยมภายในแต่ละรูปหลายเหลี่ยม รูปหลายเหลี่ยมจะมีหมายเลข ID เฉพาะของตัวเองเพื่อใช้จัดกลุ่มแปลง ฉันคิดว่ามันจะเป็นการเปลี่ยนแปลงของสิ่งนี้: rec=0 def autoIncrement(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec

4
จำเป็นต้องค้นหาสตริงที่มีคำเดียวกันสองครั้ง
ฉันมีข้อมูลคุณลักษณะที่มีชื่อเจ้าของ ฉันจำเป็นต้องเลือกข้อมูลที่มีนามสกุลเป็นครั้งที่สอง ตัวอย่างเช่นฉันอาจมีชื่อเจ้าของที่อ่าน " BENNETT MCCARL & ARNETTE BENNETT " ฉันต้องการเลือกแถวในตารางแอตทริบิวต์ที่มีนามสกุลซ้ำเช่นตัวอย่างด้านบน ไม่มีใครรู้ว่าฉันจะไปเกี่ยวกับการเลือกข้อมูลที่?

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") มีความคิดเกี่ยวกับสิ่งที่ฉันทำผิดหรือเปล่า? ฉันต้องการหลีกเลี่ยงการใช้เคอร์เซอร์อัปเดต แต่จะทำเช่นนั้นหากเป็นตัวเลือกสุดท้าย

2
ใช้อักขระตัวแทนสำหรับส่วนหัวคอลัมน์ในเครื่องคำนวณฟิลด์ QGIS หรือไม่
ฉันรู้ว่าคุณสามารถใช้อักขระตัวแทนสำหรับฟิลด์เช่นนี้ (ในเครื่องคำนวณฟิลด์): case when "column" ILIKE '%example%' then 1 else 0 end คุณสามารถทำสิ่งที่คล้ายกันสำหรับส่วนหัวของคอลัมน์ตัวเอง? ฉันถามสิ่งนี้เพราะฉันเข้าร่วมหลายเลเยอร์ (ใช้คุณสมบัติJoins ) และมันจะทำให้ง่ายขึ้นสำหรับฉันที่จะแก้ไขชุดตัวกรองหนึ่งชุดแทนที่จะแก้ไขตัวกรองหลายตัวเนื่องจากชื่อคอลัมน์จะต้องรวมชื่อเลเยอร์ที่เข้าร่วมด้วย ฉันใช้ QGIS 2.2

1
จะทำอย่างไรถ้า Statement ใน Field Calculator ของ ArcGIS for Desktop?
ฉันมีไฟล์รูปร่างที่มีสองฟิลด์ตัวเลข ("Dist_1" และ "Dist_2") ฉันต้องการการคำนวณภาคสนามที่จะเติมฟิลด์เพิ่มเติม ("ผลลัพธ์") ด้วยหนึ่งในสามคำตอบ: ก่อนถ้า Dist_1 มากกว่า Dist_2 จะเติมผลลัพธ์ด้วย 'True' ที่สองถ้า Dist_1 น้อยกว่า Dist_2 ที่เติมด้วย 'False' และที่สามถ้า Dist_1 และ Dist_2 นั้นมีค่าเท่ากับ "Equal"

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