Farklı özniteliklere dayalı davranışlar halinde gps zaman kodlu nokta verileri kümesi sınıflandırmak çalışıyorum.
Ben yere 0 dayalı ev için 0 ve uzak için 1 bir öznitelik oluşturduk, ve şimdi evden uzakta yolculukları numaralandırmak istiyorum (bir dizi nokta 01111111111110
çünkü o başladı ve evde sona erdi). Yolculuk numaralarına sahip olacak öznitelik alanını ekledim, ancak alanın nasıl hesaplanacağını bilmiyorum, böylece ev / deplasman alanına dayanıyor.
Aşağıda GPS verilerinin bir örneği (alakasız bilgileri belirtmek ve sadece 1, 2 vb. Olarak endeksleme sürelerini belirtmek için "*" kullanılması), yukarıda açıklanan "Ev / Deplasman" göstergesi ve istenen yolculuk göstergesi "Yolculuk", hangi hesaplamak gerekir:
Time Lat Lon Home/Away Trip
1 * * 0 0
2 * * 1 1
3 * * 1 1
....
12 * * 1 1
13 * * 0 0
14 * * 0 0
15 * * 1 2
16 * * 1 2
....
34 * * 1 2
35 * * 0 0
36 * * 0 0
37 * * 1 3
....
Veri kümem manuel olarak geçilemeyecek kadar büyük ve nitelik tablosundaki her bir yolculuğu numaralandırdığından, alanı home / away özelliğinin nasıl sıralandığına ve uzak noktaların her bir "kümesinin" bir yolculuk?
Bunlar Python kodu gibi görünebilir çıplak kemikleri (kod ile deneyimli değilim).
İfade:
trip = Reclass(!home!)
kod bloğu:
def Reclass(home):
if (home = 0):
return 0
elif (home = 1 and lastValue = 0):
return _(incremental numbering?)_
elif (home = 1 and lastValue = 1):
return lastValue
Matt Wilkie'nin tavsiye ettiği betiği kullandıktan sonra ilk seyahatimin 1 numara, ikincimin 2 vb. Olması için bazı değişiklikler yaptım.
Matt'in modifiye edilmiş kodu:
import arcpy
rows = arcpy.UpdateCursor("test2")
trip = 0
for row in rows:
if row.home == 0:
prev = row.home
row.TRIP = trip
rows.updateRow(row)
elif row.home == 1 and prev == 0:
trip += 1
prev = row.home
row.TRIP = trip
rows.updateRow(row)
rows.next()
elif row.home == 1 and prev == 1:
prev = row.home
row.TRIP = trip
rows.updateRow(row)
rows.next()
row.TRIP = trip
rows.updateRow(row)
del row, rows
Sonra sadece ev = 0'ı seçiyorum ve gezi alanımı 0'a geri hesaplıyorum. Düzgün sıralı geziler.
trip
değişken herhangi bir sayıda rasgele yeniden başlatılabilir.