【Python】FisPointEstimation System開発その0<FISポイントルール面白い>

STAにご関心があるスキーレース界の有名人様とお会いできました。
長野市の有名スキーメーカーO社にお勤めの横田様というお方です。
ご経歴は、HARTスキーのサービスマンとして、アルペン界トップ選手の湯浅直樹選手
15年も帯同されて数多く、オリンピック、ワールドカップなどスキーレースの最高峰の大会に選手の好成績に貢献されてきた実績とご経験があります。

横田様自身も、スキーの達人で、技術戦決勝に出場されてます。
SKI好きのたまり場 というチャンネルに出演されてます。
横田様からSTAのご要望をお聞きしたついでに、熱心に欲しいコトがあるとご説明をお聞きして
現在学習中のPYTHONの練習ネタとして丁度良いテーマだと思い、7月初旬から着手しています。
その1で計算の内容と結果が正しいかデバッグしてます。2024年シーズンFIS大会では計算は合ってます。
 【Python】FisPoint Estimation Systemその1<ポイントの計算法>

百聞は一見にしかずで、形にして使ってみてかた評価試験しながら仕様をつめていくモデル作りました。

●スキーレース関係者が欲しいコト 「FISポイントを速く知りたい」コトです
「オフィシャルなFISポイントは、厳正正確を期して主催者とFISが保証している値ですが、本プロジェクトでは、見積値(Estimated Value)でよいから速く知りたいという選手の気持ちに寄り添った値です。
=>実際オフィシャルではタイムがでていても失格になってポイントがつかない場合もあります。」

 私は、スキー遊びだけで、レースについては、テレマークスキー協会のレースには出場したことがありますが、アルペン界の知識が全くありませんでした。横田様のお話しでは、スキー競技が終わった瞬間にSEIKOの計測システム自動的にデータをアップロードされてSEIKO SPORTS LINKというサイトへ結果が表示されるシステムがあります。

ここで表示されているデータは、順位Rank、選手名Name、クラブ名Club
1走目のタイムRun 1、2走目のタイムRun 2と合計Totalととトップとの時間差Diff
です。これだけで十分かと思っていたら、横田様のご説明で、FISポイントのランキングがあるので
それが、選手の成績のすべてであって、レース終了直後に自分のFISポイントがどうなっているのかを
一秒でも早く知りたいのですが、公式のFISポイントが発表されるのは、大会が終了して、責任者のTD様が
SAJ FISに正式な報告書を送付して、それを受けて、SAJ FISがWEBで公開するという時間遅れがあります。

※その1をアップしました。計算の詳細を説明してます。プログラム結果とFISオフィシャルポイントの比較もOKです。

【Python】FisPoint Estimation Systemその1<ポイントの計算法>

●FISポイントの計算方法
背景:スキーレースは、雪の状態、天候、参加メンバーのレベルと人数によって、順位が変動します。
あるスキーレースで一位をとっても別のスキーレースの一位と比較するには、何等かルールを決めて
スキーレースの尺度で比較することが必要です。それが、FISポイントルールです。
PDFがあります。http://www.ski-japan.or.jp/wp-content/uploads/FIS_Points_Rules_Alpine_23_06_23_JP.pdf
概要:

ポイントの種類 要点 備考
FISポイント
選手の総合ポイント
そのシーズンで、良い成績ポイント2個の平均値を選手の現時点のポイント 各種ポイントから計算します。
※レースで所持ポイントより悪いポイントなら更新されません
※ポイント数が少ないほど強い選手です。
ゼロに近いほど強いということです。
有名な米国のスーパースターShiffrin選手
回転SL=0,GS=0,SG=0.75、DH=7.11
です(2024年5月1日FIS NL LIST)
https://www.fis-ski.com/DB/alpine-skiing/fis-points-lists.html
NLとBLというポイントLISTがあります。
NLはそのシーズンで20回ほど更新、BLは、毎年7月1日の更新
レースポイント

レースタイムで得られるポイント

レースポイントは、トップとの時間差できまりますので
一位はゼロ点で、一位のTOTAL時間T0を基準に
自分のTOTAL時間Txとすると
 RacePoint=(Tx/T0-1)*F となります。
Fは、競技種による重みです。
AC(アルペンコンバインド)とDHは高Fなので、選手間の差が大きくつきます。
F値
DH:1250
SL:730
GS:1010
SG:1190
AC:1360
ペナルティポイント

スキー競技会の偏差値

大会によって、同じ一位でも実力差は歴然とありますので、
一位にゼロをつけてもローカル大会と世界のトップ大会の一位には、ハンディをつけてポイントを加算します。
この計算がややこしくて、次回以降で解説します。
要するに 出場選手の上位5位までの所持ポイントの合計を
3種類の計算方法で算出して、(A+B-C)/10したポイントが
そのレースのペナルティポイントで、全選手のレースポイントにプラスされます。つまりペナルティポイントの小さい大会に出たほFISポイントが稼げるということです。それは、参加選手がどのくらいのポイント保持者かで決まりますので、偏差値の高いレースとそうでないレースでは一位をとっても全然違ったポイントになります。ちなみにオリンピック、ワールドカップは、ペナルティはゼロです。
それ以外のナショナルレースクラスだと15以上
ローカルレースだと23以上999以下となるので
ローカルレースに出たら一位をとっても23ポイント以上になってしまいます。

 

●プログラム作ってみた
未だ、バグあるので、私しか使えません。
https://gist.github.com/dj1711572002/986820e92842f0f1443ca2f403d8bb4f

Python スクレーピングして、Pandasで処理します。だいたい1週間くらいで計算精度確認まできました。
経緯は、以後その1から回を重ねて備忘録していきます。
結果の表示は、横田様のご要望でWEBページにHTMLで表を公開します。
一発目の計算例は下記です。
https://shinshu-makers-ski.qc-plus.jp/Test_SEIKO_The%2026th%20Nukabira%20Gensenkyo%20Spring%20Cup%20GS%20Race_24W.html

●以後
試運転するためには、サーバーを用意しないといけないのですが、プログラムが重いので、
自宅サーバーでやろうかと検討してます。

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です