คำถามติดแท็ก python-parser

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)

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

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 …

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 …

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 .... …

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

4
การลบอักขระที่เป็นตัวเลขจากค่าตัวอักษรและตัวเลขในการคำนวณฟิลด์?
ฉันมีฟิลด์ที่มีค่าตัวอักษรและตัวเลขในรูปแบบต่อไปนี้: A-AA00 บางครั้งพวกเขาก็ยัง A-AAA0 ฉันต้องการสคริปต์ Python ที่ฉันสามารถใส่ลงในเครื่องคำนวณภาคสนามใน ArcMap 10 ซึ่งอย่างน้อยก็จะลบอักขระที่เป็นตัวเลขออกและฝึกเรียงตัวอักษรและยัติภังค์ใหม่ ตัวอย่างเช่นนี้: A-AA0 กลายเป็นสิ่งนี้: A-AA ฉันต้องการแทนที่ตัวอักษรตัวเลขด้วยตัวอักษรตัวเลขจากฟิลด์อื่น รายการแลกเปลี่ยน Stackนี้แก้ไขปัญหานี้ แต่สตริงมีช่องว่างก่อนหมายเลขและสามารถใช้สำหรับการแยกและการทำดัชนี ... สตริงของฉันไม่ได้ถูกสร้างขึ้นอย่างคล่องแคล่ว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.