ฉันต้องการแปลง lat / long ที่แสดงเป็นองศานาทีและวินาทีในข้อมูลเป็นองศาทศนิยม ตัวอย่างเช่นในข้อมูลจะแสดงรายการเป็น N335042.06 ในคอลัมน์ Latitude และ W86031.04 ในคอลัมน์ลองจิจูด ฉันทำปัญหานี้มาแล้วก่อนที่ฉันจะสร้างสคริปต์ที่แปลง DMS เป็น DD และในทางกลับกันดังนั้นฉันเดาว่าฉันสามารถใช้บิตจากสิ่งนั้นได้ แต่ปัญหาที่ฉันมีก็คือวิธีที่จะเพิกเฉย (สำหรับคำที่ดีกว่า) 'N' และ 'W' ในข้อมูล? ฉันข้ามได้ไหม และ DMS จะแสดงรายการทั้งหมดเข้าด้วยกันโดยไม่มีสัญลักษณ์หรือช่องว่าง
ฉันสามารถใช้len()
, range()
, split()
สามารถระบุสิ่งที่เป็นส่วนหนึ่งที่จะอ่านจากค่าที่? ตัวอย่างเช่นสามารถทำสิ่งต่อไปนี้?
N335042.06 โดยที่ 33 = องศา 50 = นาที 42.06 = วินาที ... ?
ฉันมาข้ามนี้บทความ ESRI แต่ก็ใน VB อาจจะใช้เป็นข้อมูลอ้างอิง แต่คำศัพท์ / ไวยากรณ์บางอย่างแตกต่างจาก Python
รหัสสุดท้ายที่ใช้งานได้!
# Pre-logic
def latDD(x):
D = int(x[1:3])
M = int(x[3:5])
S = float(x[5:])
DD = D + float(M)/60 + float(S)/3600
return DD
# Expression
latDD(!Latitude!)