Raporlama
EarthquakeAPI.run_sync() ve run_async() basarili oldugunda
PipelineResult dondurur.
result = api.run_sync(criteria, strategy.get_name())
pipeline_result = result.value
PipelineResult alanlari
| Alan | Tip | Aciklama |
|---|---|---|
selected_df |
pd.DataFrame |
Secilen kayitlar |
scored_df |
pd.DataFrame |
Tum puanlanan kayitlar |
report |
dict |
JSON'a yazilabilir rapor |
execution_time |
float |
Calisma suresi |
failed_providers |
list[str] |
Veri cekemeyen provider'lar |
logs |
list[str] |
Pipeline olaylari |
DataFrame izlenebilirlik kolonlari
scored_df tum kayitlar icin su kolonlari tasir:
SCORESCORE_BREAKDOWNSELECTION_STATUSSELECTION_REASONEVENT_GROUP: ayni depremin farkli provider'lardaki adlarini birlestiren olay kimligi (tek provider'da<PROVIDER>|<EVENT>); "ayni depremden en fazla 3 kayit" siniri bu kolona gore uygulanir.
SELECTION_STATUS:
selectedrejected
SELECTION_REASON ornekleri:
selectedscore_below_min_score:55.0max_per_station:3max_per_event:3num_records_limit:11
report alanlari
report = pipeline_result.report
Temel alanlar:
statussearch_criteriaselected_counttotal_consideredstrategyprovidersrecordsstatistics
Izlenebilirlik alanlari:
selection_summaryscore_breakdowndeduplication: birlestirilen olay gruplari ve cikarilan tekrar kayit sayisicompliance: secilen/istenen kayit sayisi, eksik kayit (shortfall), ayni depremden secilen en fazla kayit vemax_per_eventsiniri,warnings,compliant(TBDY: her yon 11 kayit => 22, ayni depremden en fazla 3)
Selection summary
print(report["selection_summary"])
Ornek:
{
"status_counts": {"selected": 11, "rejected": 42},
"rejection_reasons": {
"score_below_min_score:55.0": 24,
"max_per_event:3": 10,
"num_records_limit:11": 8,
},
}
JSON rapor yazma
import json
with open("selection_report.json", "w", encoding="utf-8") as fp:
json.dump(pipeline_result.report, fp, indent=2, ensure_ascii=False, default=str)