7.3 KiB
7.3 KiB
EvaluationRuleSet - pravidla vyhodnocení pro rozhodčí
Tento dokument popisuje vyhodnocovací proces a jednotlivá nastavení rulesetu
(EvaluationRuleSet). Slouží jako nápověda a vysvětlení dopadu na
skóre a výsledky.
Stručný popis vyhodnocovacího procesu
- Prepare - příprava běhu, kontrola locku, vyčištění staging tabulek.
- ParseLogs - parsování EDI souboru, naplnění
logsalog_qsos. - BuildWorkingSet - normalizace volacích znaků, lokátorů, příprava
working_qsos. - Match - párování QSO mezi logy, detekce neshod a typy chyb.
- UnpairedClassification - NIL/NO_COUNTERPART/UNIQUE pro nenapárovaná QSO.
- DuplicateResolution - výběr přeživších u duplicit podle strategie.
- Score - bodování, aplikace policy, penalizací a multiplikátorů.
- Aggregate - součty za log (score, counts), výpočet metrik.
- ApplyLogOverrides - ruční zásahy do log_results.
- RecalculateRanks - přepočet pořadí.
- Finalize - uzavření běhu a uvolnění locku.
Politiky (společné chování)
Používané policy hodnoty:
- INVALID:
is_valid=false, body 0. - ZERO_POINTS:
is_valid=true, body 0. - FLAG_ONLY:
is_valid=true, body beze změny (jen flag). - PENALTY:
is_valid=true, body 0 (u některých chyb body zůstávají) + penalizace.
Poznámka: valid_qso_count se počítá podle is_valid.
Nastavení rulesetu a dopad (kde se uplatňuje)
Skóre a body
scoring_mode(DISTANCE / FIXED_POINTS): určuje typ bodování. Uplatnění: scoring.points_per_qso: fixní body za QSO (FIXED_POINTS). Uplatnění: scoring.points_per_km: body za km (DISTANCE). Uplatnění: scoring.distance_rounding(FLOOR/ROUND/CEIL): zaokrouhlení vzdálenosti. Uplatnění: scoring.min_distance_km: minimální vzdálenost pro bodované QSO. Uplatnění: scoring.
Multiplikátory
use_multipliers: zapíná multiplikátory. Uplatnění: scoring + agregace.multiplier_type(WWL/DXCC/SECTION/COUNTRY/NONE): typ multiplikátoru. Uplatnění: scoring + agregace.multiplier_scope(PER_BAND/OVERALL): scope multiplikátoru. Uplatnění: agregace.multiplier_source(VALID_ONLY/ALL_MATCHED): z čeho se počítají. Uplatnění: agregace.wwl_multiplier_level(LOCATOR_2/4/6): délka WWL multiplikátoru. Uplatnění: scoring.
Error policy a penalizace
dup_qso_policy,nil_qso_policy: policy pro DUP/NIL. Uplatnění: scoring.no_counterpart_log_policy,not_in_counterpart_log_policy,unique_qso_policy,time_mismatch_policy: policy pro NIL/UNIQUE/TIME_MISMATCH. Uplatnění: scoring.busted_call_policy,busted_exchange_policy,busted_serial_policy,busted_locator_policy,busted_rst_policy: policy pro BUSTED chyby. Uplatnění: scoring.penalty_*_points: velikost penalizací pro jednotlivé chyby. Uplatnění: scoring.out_of_window_policy,penalty_out_of_window_points: chování mimo časové okno. Uplatnění: scoring.
Matching (párování QSO)
time_tolerance_sec: tolerance času pro match. Uplatnění: matching.allow_time_shift_one_hour,time_shift_seconds: povolený časový posun. Uplatnění: matching.allow_time_mismatch_pairing,time_mismatch_max_sec: párování mimo toleranci. Uplatnění: matching.callsign_normalization(STRICT/IGNORE_SUFFIX),ignore_slash_part,ignore_third_part,callsign_suffix_max_len,callsign_levenshtein_max: normalizace volacích znaků a fuzzy match. Uplatnění: matching.match_tiebreak_order: pořadí tiebreak kritérií (time_diff, exchange_match, ...). Uplatnění: matching (volba nejlepšího kandidáta).match_require_locator_match,match_require_exchange_match: vyžadování shody lokátoru/exchange pro match. Uplatnění: matching.exchange_type,exchange_requires_*,exchange_pattern: definice a kontrola exchange. Uplatnění: matching.letters_in_rst,rst_ignore_third_char: normalizace RST. Uplatnění: matching.discard_qso_*: určuje, zda se neshoda označí jako BUSTED a s jakou stranou (RX/TX). Uplatnění: matching.checklog_matching: zahrnout CHECK logy do matchingu. Uplatnění: matching.
Duplicity a unikátní QSO
dupe_scope(BAND/BAND_MODE): klíč pro duplicity. Uplatnění: working set + duplicity.dup_resolution_strategy: pořadí pravidel pro výběr přeživších DUP. Uplatnění: duplicate resolution.require_unique_qso: zapíná detekci UNIQUE. Uplatnění: unpaired klasifikace.
DQ limity (log-level)
out_of_window_dq_threshold: DQ při nadlimitních QSO mimo okno. Uplatnění: agregace.time_diff_dq_threshold_percent,time_diff_dq_threshold_sec: DQ při časovém rozptylu. Uplatnění: agregace.bad_qso_dq_threshold_percent: DQ při nadlimitním % chybných QSO. Uplatnění: agregace.
6H operating window
operating_window_mode(NONE/BEST_CONTIGUOUS): zapíná 6H operating window. Uplatnění: agregace (vybere nejlepší 6H okno pro log).operating_window_hours: délka 6H okna (aktuálně pevně 6 h). Uplatnění: agregace.sixhr_ranking_mode(IARU/CRK): způsob pořadí pro 6H. Uplatnění: přepočet pořadí (IARU = jedna společná 6H tabulka bez SO/MO, CRK = odděleně SO/MO).
Poznámka: Pro IARU se 6H okno vybírá jako max. 2 segmenty s pauzou >= 2 h, součet délek <= 6 h.
Options (JSON)
options: fallback hodnoty, pokud není vyplněn sloupec. Uplatnění: napříč matching/scoring (viz metodygetOption/get*v modelu).
Výchozí ruleset (default_vhf_compat)
Zdroj: database/seeders/EvaluationRuleSetSeeder.php
Nastavení (zkrácené na podstatné hodnoty):
- Profil: Default VHF (compat), permisivní matching.
- Scoring:
scoring_mode=DISTANCE,points_per_qso=1,points_per_km=1.0 - Multiplikátory:
use_multipliers=false,multiplier_type=WWL - Policy:
dup_qso_policy=ZERO_POINTSnil_qso_policy=ZERO_POINTSno_counterpart_log_policy=FLAG_ONLYnot_in_counterpart_log_policy=ZERO_POINTSunique_qso_policy=FLAG_ONLYbusted_*_policy=ZERO_POINTStime_mismatch_policy=ZERO_POINTS- penalizace vše 0
- Matching:
time_tolerance_sec=600allow_time_shift_one_hour=true,time_shift_seconds=3600allow_time_mismatch_pairing=falsecallsign_normalization=IGNORE_SUFFIXignore_slash_part=true,ignore_third_part=trueletters_in_rst=false,rst_ignore_third_char=truematch_require_locator_match=false,match_require_exchange_match=falsematch_tiebreak_order=[time_diff, exchange_match, locator_match, report_match, log_qso_id]discard_qso_rec_diff_*=true,discard_qso_sent_diff_*=false
- Duplicity:
dupe_scope=BANDdup_resolution_strategy=[paired_first, ok_first, earlier_time, lower_id]
- Exchange:
exchange_type=SERIAL_WWLexchange_requires_wwl=true,exchange_requires_serial=true,exchange_requires_report=true
- DQ limity:
out_of_window_dq_threshold=600time_diff_dq_threshold_percent=30time_diff_dq_threshold_sec=600bad_qso_dq_threshold_percent=30
Poznámky k interpretaci výsledků
valid_qso_count= počet QSO sis_valid=true.discarded_qso_count= počet QSO sis_valid=false.- Penalizace se uplatňuje v
penalty_scorea odčítá se odbase_score.