
私のゴルフデータ管理法~ガーミンとグラフDBがつなぐショット履歴~
週末ゴルファーの行き着く先は、時にデータベース構築という奇異な領域にまで及ぶ。今回ご紹介するのは、そんな私の歪んだゴルフ愛の産物――ゴルフのデータベースである。
このデータベースは、市販のアプリでは飽き足らず、私が自ら構築したもので、Garmin Approachで取得したショットデータを、グラフ型データベースという新しいテクノロジーを用いて格納している。システムの技術的な詳細については、別途、沼にハマりたいIT系ゴルファー向けに解説記事を用意する予定だ。
まずは、現物をご覧いただこう。(図1,図2)


これは、2024年12月1日、つくばねカントリークラブでの私のラウンドデータ(スコア82)である。図1は1ラウンド分の全ショットデータ、図2は1ショット分の詳細である。
緑の円は飛距離、水色はクラブ、赤または青はショットの評価(青:成功、赤:失敗)を表している。つまり、一つのショットは、緑、水色、赤/青の3つの円で構成されている。
図1には、82個のショットデータが表現されていることになる。(※1)

そして、それぞれの円には詳細なデータが格納されている。
例えば、緑の円をクリックすると(図3)、
courseName: つくばねカントリークラブ
distance: 258
holeName: アウト
holeNumber: 1
shotNumber: 1
comment: グリップを引っ張って…
score: 4
shotId: 20241201011
といった情報が表示される。つまり、この緑の円は「2024年12月1日、つくばねカントリークラブ、アウト1番ホール(パー4)の第1打、飛距離258ヤード。『グリップを引っ張って…』という状況(考えたことやショット環境)で打った」というデータを表している。

次に水色の円(図4)。ここには、
clubType: 2h
clubTypeJapanese: 2番ハイブリッド
clubName: 18度_JUT_attas75s
といったクラブの情報が格納されている。ヘッドやシャフトの交換という、ゴルファー特有の収集癖に対応するため、クラブの種類だけでなく、具体的な製品名まで記録している。この場合、jBEAMのj-UT 18度を使用している。

そして、青色の円(図5)。これは、
evaluation: OK
と、至極シンプルな成功の証。
これらの情報を組み合わせると、「2024年12月1日、つくばねカントリークラブ、アウト1番ホール(パー4)の第1打。2番ハイブリッド(18度_JUT_attas75s)で258ヤード。『グリップを引っ張って…』という状況で打ったショットは、奇跡的にOK」という、一打の物語が浮かび上がる。ちなみに、このホールは打ち下ろしでフォロー。普段は258ヤードも飛ばない。
1番ホールの全ショットを表示すると、図5のようになる。

これを見ると、
1打目:2番ハイブリッド、258ヤード、OK。
2打目:ギャップウェッジ、118ヤード、NG。
3打目:サンドウェッジ、20ヤード、OK。
4打目:パター、OK。
という流れが分かる。

2打目のミスショット(赤色の円:図6)をクリックすると、「GPSがおかしかった。100ヤードくらいからレーザー距離計を使用した方が良いかもしれない」という、自己弁護にも似た反省点が記録されている。これはショット時の状況とは別に記録された、次ラウンドへの戒めである。
このデータベースの真の目的は、ショット単位での詳細なデータ記録にある。ホールごとのスコアならGDOなどの既存のアプリで事足りる。しかし、私の探求心はそんなものでは満たされない。
データ登録は、ラウンド終了後、Garmin Connectにアップロードされたデータから、スクレイピング技術を用いて情報を抽出し、データベースに流し込む。このあたりの技術的な解説は、後日、一部のマニア向けに公開することにしよう。
次回は、このデータからスコアアップへの糸口を見つけられるのか。その挑戦の記録を公開する。
※1 パッティングデータは、入力の手間とGarmin CT10センサー装着時の違和感から、1打単位でデータ化することはしなかった。ノード数が82というのは、わかりやすく解説するための便宜上の数字。