Geçen yıl bir tatbikatta, 4 kişilik bir ekiple iki mahallede hasar ön taraması yaptık. Ortam şuydu: internet yok, elektrik kesik, 6 saatlik bir pencere. Elimizde üç Android telefon, iki powerbank ve bir de eski bir dizüstü vardı. Toplam 180 bina noktası işaretledik. Kâğıt form yerine telefonda tutmak istedim çünkü sonradan Excel’e geçirmek iki kişiyi yarım gün yiyordu.
Yaklaşım basit: her telefonda yerel bir SQLite dosyası, form alanları sabit, kayıt anında GPS’i de yazıyoruz. Python tarafında şu şemayı kullandım:
import sqlite3, json, time
con = sqlite3.connect("saha.db")
con.execute("""CREATE TABLE IF NOT EXISTS kayit (
id INTEGER PRIMARY KEY,
zaman TEXT NOT NULL,
lat REAL, lon REAL, acc REAL,
hasar TEXT, kat INTEGER, not_ TEXT,
foto_path TEXT, cihaz TEXT, gonderildi INTEGER DEFAULT 0
)""")
con.commit()
def ekle(lat, lon, acc, hasar, kat, not_, foto=None, cihaz="tel-1"):
con.execute(
"INSERT INTO kayit (zaman,lat,lon,acc,hasar,kat,not_,foto_path,cihaz) VALUES (?,?,?,?,?,?,?,?,?)",
(time.strftime("%Y-%m-%dT%H:%M:%S"), lat, lon, acc, hasar, kat, not_, foto, cihaz))
con.commit()
Her akşam telefonları USB ile dizüstüne bağlayıp dosyaları tek bir yerde birleştirdim. Aynı binayı iki kişi işaretlediyse 15 metre yarıçapla grupladım, çakışanları elle çözdüm. 180 noktanın 11’i çakıştı, hepsi de aynı sokakta iki ekibin birbirini görmemesiydi.
Bunu neden böyle yaptım: merkezi bir sunucuya canlı yazmak, bağlantı koptuğunda formu kaybettiriyor. Yerel yazma her tuşta diske gidiyor, uygulama kapansa bile son kayıt duruyor. Bedeli de var: eşzamanlılık yok, aynı veriyi iki kişi girebilir; ayrıca telefon saati kayarsa sıralama bozulur. Saati tatbikat sabahı tek tek kontrol ettim, biri 4 dakika gerideydi.
Nerede çöker: GPS doğruluğu 30 metrenin üstüne çıktığında (dar sokak, beton blok arası) nokta komşu binaya kayıyor. Bunu acc alanında tutup 25 metreden kötü kayıtları “konum doğrulanmalı” diye işaretledim. İkincisi, fotoğraflar: 180 fotoğraf 2,1 GB tuttu, telefon hafızası dolunca yazma sessizce durdu, fark etmem yarım saat sürdü. Artık her kayıttan önce boş alanı kontrol ediyorum. Üçüncüsü, tek dizüstü tek nokta arıza demek; birleştirme betiğini iki kişide ayrı ayrı çalıştırıp çıktıları karşılaştırmak gerekiyor.
Siz saha verisini toplarken çakışan kayıtları neye göre birleştiriyorsunuz: konum yarıçapı mı, zaman penceresi mi, yoksa bina kimliği mi?
0 条评论
还没有评论,写下第一条。