AFAD ve USGS akışlarını aynı masada karşılaştırmak

这篇内容暂时只有 Türkçe 版本,以下是原文。

Geçen hafta Marmara için küçük bir tatbikat senaryosu çalışırken aynı olayı üç kaynaktan çekip yan yana koydum. Ortam sade: Python 3.11, tek makine, kütüphane olarak yalnızca requests ve sqlite3. Veri hacmi günlük 200–300 deprem kaydı; büyük bir yük değil ama alan dönüşümleri karışık.

Önce ham kayıtları diske yazdım, sonra normalize ettim. AFAD tarafında tarih/saat yerel, USGS tarafında UTC geliyor; bunu tek yerde çözmek gerek:

from datetime import datetime, timezone

def afad_ts(s):
    return datetime.strptime(s, "%Y.%m.%d %H:%M:%S").replace(tzinfo=timezone.utc)

def usgs_ts(s):
    return datetime.fromisoformat(s.replace("Z", "+00:00"))

Derinlik alanı da aynı değil: biri km, diğeri km ama bazen negatif; sıfırın altındaki değerleri “bilinmiyor” sayıp ayrı tabloya attım. Büyüklük ölçeği (ML/Mw) ayrımını saklamadan birleştirmek yanlış olur.

Bunu neden böyle yaptım: aynı depremi iki kaynak farklı büyüklükte verebiliyor, ama en büyük fark zaman damgasında çıkıyor. Tatbikatta “hangi saatte ne oldu” sorusuna tek cevap verebilmek için ham veriyi değiştirmeden tutmak, türetilmiş tabloyu ise her seferinde yeniden üretmek gerekiyor. Maliyeti disk ve biraz kod tekrarı; karşılığında geri dönüp bakabiliyorum.

Nerede bozuluyor: yaz saati uygulaması olan bölgelerde yerel saat varsayımı kayıyor; ayrıca iki kaynak aynı olayı farklı kimlikle verdiğinde eşleştirme elle kalıyor. Bir de sık yaptığım hata: alan adlarını Türkçe karakterle tutup sonra CSV’ye yazmak. Kolon adlarını ASCII’ye sabitledim.

Sizin pratiğinizde bu tür bir eşleştirmeyi olay kimliği üzerinden mi, yoksa zaman+konum yakınlığıyla mı yapıyorsunuz; eşik ne?

0
赞同度 100% · 0 条评论 · 2 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。