東京大学運動会ヨット部

東大ヨット部の現役部員によるブログです。練習の様子、レース結果、部員の主張から日記まで。

春休み、積読を解消できずじまいでした。

2021年04月04日 21時26分57秒 | 通常練習

いつもお世話になっております。クルーザー班二年の伊東です。

投稿が遅くなってしまいました。申し訳ありません。まずは練習報告から。3月30日まで、ラスト春合宿でした。マストハンド動作も慣れてきて、今合宿ではバウマン動作の練習を多めにやらせてもらいました。ポールの扱いが難しく、ドタドタしておりますが、少しずつ理解してきたように感じています。ただ、トラブル対応であったり、スピード感をもってこなすことが課題であり、どんどん場数を踏んで得意にしていきたいと思っています。

実は予てからブログに書こうと思っていたことがありました。

クルーザー班の気象情報報告業務を自動化したことについてです。我ながらいい仕事をした気がするので、まことに僭越ながらこの場ですこしだけ自慢させてください。

大前提として、ヨット部の活動には気象の要素がかなり強く影響します。そのため毎朝担当者がネットをチマチマと検索をかけて気象情報を取集して、SlackなりLINEなりに流して、ミーティングで読み上げる、ということを行っています。クルーザー班の気象情報の担当は僕なんですが、この業務、まあまあ面倒くさくて(こんなこと言ったらお叱りをうけそうですが)、毎朝眠い目をこすりながらやる時間を睡眠に費やしたいなあ、と思ったのでした。ところで、世の中は便利になったもので、ちょっとコードを書けばこのような単純作業を自動化できるのです。僕は全くのプログラム初心者なのですが、この機会に勉強も兼ねてお天気業務の自動化に挑戦してみようと思った次第です。

大きな枠組みは気象庁のサイトやヤフーの潮汐情報のページからスクレイピングという技術を用いてweb上の情報を取得して、LINE notifyのAPI(自作プログラムとアプリを繋げることのできる機能)を使ってLINE上で通知してくれる、というものです。

以下、僕がやったことをまとめておきます。完全に独学なので、もっと良いやり方とかあるかもしれません。というか、プログラミングができる部員の人なんてたくさんいそうなものなので、教えてほしいです。

言語はPythonを使いました。まあ、無難ですね。結構気軽にコードが書けて、その上自動化やデータ分析、機械学習など幅広く応用できるみたいです。スクレイピングというのは、指示されたwebページに飛んで、特定の情報を抜き取るというものです。これをするには裸の状態のPythonでは太刀打ちできないので、スクレイピング用のモジュール、という拡張機能をインポートしてあげる必要があります。スクレイピング用の拡張機能は主にseleniumというものか、BeautifulSoup4というものが主に使われるのですが、初心者の僕には後者が使いこなせなかったのでseleniumを使用しました。

seleniumがどういうことをしてくれるか、というと、普段なにか検索したいときってChromeのアイコンをクリックして起動して、URL入力して検索していると思うのですが、それを自動かつバックグラウンドで行ってくれるのです。で、webページの情報を読み込んでくれるので、そこからデータを引っ張ってくる、ということまでしてくれます。その機能を用いて、気象庁のサイトに飛びます。

で、今取得したい情報を丸で囲んだ部分(天気のところ)だとします。この情報は'td.forecast-sentence'というタグがつけられたweb上の情報のうち7個目なので、まずは'td.forecast.sentence'の要素をリスト化して取得する関数get_informaitionを定義してあげて、さらにその7番目をtodays_weatherという変数に割り当ててあげます。同じような要領で最高気温、降水確率、風向、波の高さ、潮汐、注意報警報に対してデータを割り当てます。これでデータの取得は完了です。

次は、LINEに送ってくれるようにするパートです。LINEnotifyというシステムを使えば自分でもbotのようなものを作成できるのですよね。今回はそれを使って、クルーザー班のグループに送信してくれるようにしました。このパートはググってコピペしただけなのでそんなに大変ではなかったです。たぶんSlackとかにも応用できるはずです。

で、毎朝僕がやらなくてはいけないのはkoajiro_weatherforecast.py(上のプログラムを書いたコードです)を実行するだけ、というわけです。朝集の日なら京急線で寝る時間が増え、合宿中なら歯磨き中に仕事が完了する、というQOL爆上がりする結果となりました。

とはいえプログラミング歴1か月の僕がやったことなので課題もまあまああります。まず、seleniumは前述の通りいちいちブラウザを開くので(バックグラウンドとは言え)結構実行に時間がかかるということです。まあ1分くらいなのでに手動に比べたら断然速いですが。BeautifulSoup4を使えばそのあたりは解決しそうですが、うまいこと気象庁のサイトを開けなかったので頓挫しました。次に、最大風速ネットに乗ってない問題です。こればっかりは仕方ないのですが、毎朝177に電話するしかありません。載ってるサイトあるなら教えてください。合宿期間中の電話料金かかっちゃう問題が解決するので。それから、一度潮汐情報の取得でバグがあったことです。バグがあったのは3月23日で、前日は満潮が一度しかない日だったのが原因なのかな、と思っています。うまいこと修正しないといけません。あと、命名規則とかプログラミングのお作法をガン無視したスパゲティ・コードであることは間違いないので何とかしたいですね。それに、いちいちVScodeというプログラミング用のソフトウェアを開いてプログラムを実行しないといけないのでユーザ・インターフェイスは最悪です。現状、他の人がいじることは想定されていない。最後に、いまは毎朝7時くらいにPCを開いてプログラム開いて、ってやっているのですが、それすらもめんどくさくなってきたので自動的に定期実行してくれるようにしたいですね。まあ、本業はヨットなので、暇をみつつぼちぼち頑張ってみたいと思います。

ひとつ感じたのは、作りたいものがあると色々調べて試行錯誤するので勉強になるな、ということです。普段のヨット部の活動でも、常に目的意識をもってやっていきたいと思います。

長々となってしまいました。あっという間にサクラの季節も半ばを過ぎ、大学の授業が始まろうとしています。今一度気を引き締めて精進して参ります。それでは、失礼いたします。

伊東秀晃


気づいたらラスト春合宿

2021年04月02日 17時49分00秒 | 通常練習

お世話になっております。ヨット部4470クルーの齊藤崇です。もう新4年でもなく、本格的に4年生になりました。時間の経過というものは本当に早いものですね。

1年生の時の春合宿は、雪も降るなか練習してめちゃ寒い、手の皮がむけてヒリヒリ痛い、動作に追われて余裕がない、と毎日泣きたくなるのを堪えて練習していました。

こうした苦い思い出のある春合宿は、去年も、そして最後である今年も、気づいたらあっけなく終わっていました。果たして喜ぶべきか悲しむべきかといった複雑な気持ちであります。


先合宿の練習を振り返ります。


土曜日は南風順風の中、他大学との合同練習を行いました。全日本インカレ常連校が多く、かなりレベルの高いコース練習となりました。我々東大はまだ葉山に引っ越してきたばかりということもあって、なかなか前を走る経験はできませんでしたが、他の大学のレベルを知ることができる、学びの充実した良い1日でした。


日曜日は本来は六大学戦が予定されていたのですが、平均10メートルが吹いているど強風で、葉山新港には赤旗がそれはそれは高らかにあがり、部員の期待とは裏腹に中止が余儀なくされました。

レースは中止となりましたが、470チームは470 3艇、レスキュー2艇という安全は十分に確保された状態で海に出ました。大波と爆風の中の練習で、沈艇も続出するサバイバルコンディションでした。海上に出たのはほんの2時間程度でしたが、部員がシーマンとして大いに成長できる、実りある2時間であったと思います。


月曜日は南からインデッキからフルトラくらいまでの風が安定して吹いていました。風は弱いながらも、大きなうねりが残っている中の練習だったので、ヒールトリムやハンドリングには苦労した1日でした。


火曜日、水曜日は似たようなコンディションで、朝出艇してから、北風強風でしたが、だんだん落ちて、南に風が周り、午後時間が経つにつれて南風が強くなるという、葉山の海ではよくある風の中で練習ができました。また、東大と横国の合同練習(通称、東横戦)も開催され、チームレースを考える良い経験となりました。


総じて、葉山での練習が本格的に始まり、充実した1週間でした。合宿もチームごとに2日に1回できるようになったので、部としての結束力は少しずつ強まってきていると思っています。


自分の課題としては、艇数が多くなるコース練習の中での、マーク際の動作と立ち回りがまだまだだと痛感しました。前に出る瞬間があっても、ボロボロと順位を落としてしまうことが多く、悔しい思いをすることもありました。


春合宿は終了し、新歓も始まるので、今後はなかなか練習時間を確保することが難しくなってきますが、積極的に自主練習を行なって、春インカレまでに今合宿で発見できた弱点を一つ一つ克服していきたいと思っています。


最後になりますが、お忙しい中、練習を見にきてくださったLB西坂様、多賀谷様、戸沢様、小野様、塚本様、天木様、野村様、ありがとうございました。たくさんのLBの方が来てくださって、レースや練習内容に関して様々な角度からフィードバックしていただけるのは実に贅沢なことだと思っております。また何より、LBの方々が練習に来てくださると、春インカレに向けて本当に心強く思えます。

今後ともよろしくお願いします。


それではこの辺で失礼させていただきます。


4470クルー  齊藤崇