Saya perlu mengkonversi lat / long yang dinyatakan sebagai derajat, menit, dan detik dalam data menjadi derajat desimal. Misalnya, dalam data, mereka terdaftar sebagai N335042.06 di kolom Latitude, dan W86031.04 di kolom Longitude. Saya telah melakukan masalah ini sebelumnya di mana saya membuat skrip yang mengubah DMS ke DD, dan sebaliknya, jadi saya kira saya bisa menggunakan bit dari itu. Tetapi masalah yang saya alami adalah bagaimana mengabaikan (karena tidak ada kata yang lebih baik) 'N' dan 'W' dalam data? Bisakah saya melewati mereka? Dan DMS terdaftar bersama-sama tanpa simbol atau spasi.
Dapatkah saya menggunakan len()
, range()
, split()
untuk menentukan apa bagian untuk membaca dari nilai? Misalnya, dapat melakukan hal berikut?
N335042.06 di mana, 33 = derajat 50 = menit 42.06 = detik ...?
Saya datang di ini artikel ESRI, tapi itu di VB. Mungkin akan menggunakannya sebagai referensi tetapi beberapa terminologi / sintaks berbeda dari Python.
Kode terakhir berhasil!
# 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!)