コンテンツにスキップ

歴史的変更点

JV-Linkのデータ仕様やコード表には、年代ごとに変更された項目があります。過去のデータを正確に解釈するために参照してください。

コード表の初期値・未設定値の扱い

JV-Linkのコード表では、多くのフィールドで以下の初期値が使用されます:

  • 「00」または「0」: 未設定・未整備時の初期値
  • 特に注意: 地方競馬・海外国際レースに関するデータで頻出
# 例:競馬場コードの処理
if racecourse_code == "00":
    # 地方競馬または海外レースの可能性
    # 別途フィールドから情報を取得する必要がある
    pass

競馬場コードの特殊なケース

コード 競馬場名 注意事項
58 札幌競馬場(地方競馬) 中央競馬の札幌(01)とは別
59 函館競馬場(地方競馬) 中央競馬の函館(02)とは別
60 新潟競馬場(地方競馬) 中央競馬の新潟(04)とは別
61 中京競馬場(地方競馬) 中央競馬の中京(07)とは別

これらは地方競馬場として中央競馬の競馬場を使用する場合のコードです。

年齢表記の変更

2000年以前と2001年以降で年齢の表記方法が異なります:

  • 2000年以前: 数え年表記(生まれた年を1歳とする)
  • 2001年以降: 満年齢表記(現在の一般的な年齢表記)
# 競走種別コードの解釈例
if race_date < "20010101":
    # 2000年以前:コード「11」は「サラブレッド系3歳」
    age = coded_age + 1
else:
    # 2001年以降:コード「11」は「サラブレッド系2歳」
    age = coded_age

着差コードの地方競馬特殊ケース

地方競馬では以下の特殊な処理が必要です:

  • 「短クビ」「短アタマ」: それぞれ「クビ」「アタマ」コードとして設定
  • 特殊な分数表記: 1バイト目=整数部、2バイト目=分子、3バイト目=分母

コード体系の複雑な構成

一部のコードは複数バイトで複雑な情報を表現します。

競走記号コード(3バイト構成)の例:

  • 第1バイト:産地・購買条件等(0, A〜N)
  • 第2バイト:性別制限(0〜4)
  • 第3バイト:交流競走関係等(0〜4)
# 競走記号コードの解析例
symbol_code = "A21"  # (混合) 牝 (指定)
# A = 混合
# 2 = 牝
# 1 = 指定

騎手見習コードの変更履歴

騎手見習コードは年代により条件が変更されています:

  • 2023年1月〜:平地競走と障害競走を分離
  • 2019年3月〜:男女で異なる減量制度
  • 2016年〜:通算免許期間5年未満に変更
  • 2004年〜:通算免許期間3年未満

最新の仕様を確認して適切に処理する必要があります。

グレードコード判定の特殊ケース(2007-2009年)

この期間の重賞競走は以下の複雑な表記になっています:

  • 国際格付けあり: 「G」表記(例:G1、G2、G3)
  • 国際格付けなし: 「Jpn」表記(例:Jpn1、Jpn2、Jpn3)

JV-Data仕様だけでは国際格付けの有無を判定できません。別途国際格付け競走一覧を併用する必要があります。

# 国際格付け競走の判定例
INTERNATIONAL_RACES_CSV = "http://dl.cdn.jra-van.ne.jp/datalab/grade/International.csv"

# 2007-2009年の重賞の正確な表記判定
if 2007 <= race_year <= 2009 and grade_code in ["A", "B", "C"]:
    if special_race_number in international_race_list:
        display_grade = f"G{grade_code}"
    else:
        display_grade = f"Jpn{grade_code}"
  • 2006年以前:すべて「G」表記
  • 2010年以降:格付けのない競走を除きすべて「G」表記
  • CSVファイルは2007-2010年の情報のみ(2011年以降は追加されない)

競走条件コードの歴史的変更

平成18年度夏季競馬以降の変更(2006年)

収得賞金システムの変更により競走条件の設定方法が変更されました:

変更前(2006年夏季競馬以前):

  • 3歳500万下、4歳以上1000万下 → 3歳に"005"、4歳5歳以上に"010"を設定

変更後(2006年夏季競馬以降):

  • 3歳以上500万下 → 3歳4歳5歳以上ともに"005"を設定

平成31年度夏季競馬以降の呼称変更(2019年)

変更前 変更後 コード
500万下 1勝クラス "005"
1000万下 2勝クラス "010"
1600万下 3勝クラス "016"
# 競走条件コードの解釈例
def interpret_race_condition(race_date, condition_code):
    if race_date >= "20190701":  # 令和元年夏季競馬以降
        condition_map = {
            "005": "1勝クラス",
            "010": "2勝クラス",
            "016": "3勝クラス"
        }
    elif race_date >= "20060701":  # 平成18年度夏季競馬以降
        condition_map = {
            "005": "500万下",
            "010": "1000万下",
            "016": "1600万下"
        }
    # 処理...

オッズの最大値変更履歴

賭式の最大オッズ値は3連単開始(2004年8月14日)を境に変更されています:

賭式 2004年8月13日以前 2004年8月14日以降
複勝 99.9倍 999.9倍
枠連 999.9倍 9999.9倍
馬連 9999.9倍 99999.9倍
馬単 9999.9倍 99999.9倍
3連複 9999.9倍 99999.9倍

複勝払戻の特殊ケース

複勝で2着払いの場合:

# 複勝払戻馬番の処理
if len(place_horses) == 2:  # 2着払いの場合
    # 3回目の馬番には"00"が設定される
    assert place_horse_numbers[2] == "00"

海外レース固有の制限事項

海外レースでは以下の制限があります:

  • 入線順位: すべて初期値
  • 走破タイム: 1着馬と日本馬のみ設定
  • レース番号: キー重複時は90番台を使用
  • 馬番: 不明時は初期値、血統登録番号をキーとして使用

関連情報