Verilerde derece, dakika ve saniye olarak ifade edilen enlem / boylamayı ondalık derecelere dönüştürmem gerekiyor . Örneğin, verilerde Latitude sütununda N335042.06 ve Boylam sütununda W86031.04 olarak listelenmiştir. Daha önce DMS DD ve tersi dönüştürülmüş bir komut dosyası oluşturdu önce bu sorunu yaptım, bu yüzden ben ondan bit kullanabilirsiniz sanırım. Ama yaşadığım problem, verilerde 'N' ve 'W' 'yi (daha iyi bir kelime olmaması nedeniyle) nasıl görmezden gelmektir? Onları atlayabilir miyim? Ve DMS, herhangi bir sembol veya boşluk olmadan birlikte listelenir.
Ben kullanabilir miyim len()
, range()
, split()
değerinden okumak için hangi kısmını belirtmek için? Örneğin, aşağıdakileri yapabilir mi?
N335042.06 burada, 33 = derece 50 = dakika 42.06 = saniye ...?
Bu ESRI makalesine rastladım , ancak VB'de. Muhtemelen referans olarak kullanacaktır, ancak bazı terminoloji / sözdizimi Python'dan farklıdır.
Nihai kod çalışıyor!
# 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!)