見出し画像

【エンジニア長期インターン報告】#03Lアラートの放送原稿自動生成&台風進路予想図の自動生成

テレビやネットで報道される前に、今起きている世の中の出来事が耳に入ってくる。日本の情報の最先端といえる環境で、報道前の生データを扱い開発を行うのはかなり珍しい体験だったのではないでしょうか。

情報系学生が3カ月にわたり共同通信で開発をした記録と、そこで感じたことを書いてもらいました。長期インターン生レポート第3弾です!

自己紹介

所属:早稲田大学大学院基幹理工学研究科情報理工・情報通信専攻 修士1年
名前: 鈴木 嘉恵
研究テーマ:群知能アルゴリズムを用いたドローンのフォーメーション遷移
趣味:旅行、博物館巡り、舞台観劇、読書、ゲーム
参加期間:9月下旬~1月中旬
参加頻度:週1~2回(11月末に大学で学会発表があったため11月は少なめ、12月は多めという形で調整していました)

参加動機

共同通信をインターン先として視野に入れたきっかけは、大学主催の説明会でした。オリンピックでエンジニア自ら現地に足を運ぶというエピソードは、同説明会で紹介されたエンジニア職の中でもかなり異色だと思い、興味を持ちました。

加えて、今社会は情報を元に成り立っており、報道の与える影響力は非常に大きなものになってきていると感じています。短いながら人間として生きている中、正確公平な報道の重要性を知ることも多く、ニュース配信に興味を持ったのも理由の一つです。

と、このような感じで興味を持ちはしたものの、通信社でエンジニアが何をやるのか具体的には正直全く想像がつきませんでした。そんな中、たまたまエンジニアインターンを開催しているのを見つけ、業務体験をしたいなと考え応募することを決めました。

テーマ

気象データを活用したシステムを作る

インターンでは1人の学生に1人メンターがついてくださり、メンターの方と一緒に開発を進めました。メンターの方が出してくれたアイデアの中で、気象データが一番馴染みがなかったのでこれをテーマにしようと決めました。

やったこととしては大きく2つあり、1つ目はLアラートの放送原稿自動生成、2つ目は台風進路予報図の自動生成です。次の活動内容で、具体的な内容を書いていこうと思います。

活動内容

Lアラートの放送原稿自動生成

Lアラートとは、災害発生時に地方公共団体等が、放送局・アプリ事業者等の多様なメディアを通じて、地域住民へ必要な情報を迅速かつ効率的に伝達する共通基盤のことです。このインターンでは、地方公共団体等から地震や津波の避難情報に関するLアラートが送られてきた時に、自動で放送原稿を生成するシステムを作成しました。


図1

細かい部分は省いていますが、今回作成したシステムは上記のようなものです。このシステムを導入することで、Lアラートの受信後、特に何もすることなく放送原稿が自動生成されるようになり、現場の作業を減らすことができます。言語はpythonを使って作成しました。

ただ、折角ならもっと便利なものを。そう考えて次に取り組んだのが、必要な画像を自動生成できるサービスです。放送原稿をつくる際にデータベースを作成していますが、そのデータベースを参照して画像を生成し、ダウンロードできるようにします。

図2

図2がプロトタイプとして作成したもののスクリーンショットです。技術に詳しくない人でも、ボタンを押すだけで操作できるWebサービスという形でシステムを作りたいと考えました。

では、実際にはどういう画像が必要なのでしょうか。メンターの方の助力の元、ヒアリングをしたところ、台風の進路予想図について自動生成の需要があることが分かったため、台風進路予想図の自動作成するプログラムの検討を始めることになりました。

台風進路予報図の自動生成

初めに目指したのは、新聞向けの台風進路予想図を自動作成することです。今現在新聞に挿入されている台風の進路予想図の画像形式はEPSとなっていることから、Adobe IllustratorのAPIを使ってTypescriptでプログラムを作成しました。

図3

この進路予報図を作成することが、私のインターン最大の難関ポイントでした。

まず、台風の位置情報は緯度経度で渡されます。この緯度経度は球体である地球上での位置を決めるための数値なので、画像という平面に起こすには座標変換をしてあげる必要があります。

図4

次に難しかったのが接線を生成することです。Adobe IllustratorのAPIには勿論接線を引くというものは存在せず、直線を引くには始点と終点の座標を与える必要があります。図4で言えばp1とp2の座標にあたります。図4は円と円の共通接線を求める時に思考整理がてら作成した図なのですが、点と円の接線の場合はまた少し違う求め方をする必要がありました。これらの試行錯誤の末生まれたのが図3にある台風の進路予報図です。

では、実際に作り出したこの図を新聞に挿入する時、他に何が必要なのか。それを聞くためにグラフィックス部の方にお会いする機会を作っていただきました。そこで、新聞に載せるには自分の想定よりも遥かに多くの事項を考慮する必要があることを知りました。

例えば、色についてです。ユニバーサルデザインを考慮するなどは勿論、一番の新しい発見は印刷に関する観点でした。印刷におけるインクはマゼンタ・シアン・イエロー・ブラックで、Webで用いられやすい色データであるRGBと使用する色が若干異なります。例えば、RGBで黒色を設定すると、印刷する際にはマゼンタ・シアン・イエロー・ブラック全てのインクが使用されてしまうのです。そのため、色をCMYKで指定する必要があり、同様の事情で色の重ね方にも規定が存在しました。

ここで追加で意見をもらったのは、新聞向けではなくデジタル向けで記者が使いやすい台風進路予報図を作ってみるのはどうか、というものでした。新聞と違い規格が少なく、使用される幅も広いとの話でした。

図5

この助言を受けて作成したのが図5のWebサービスです。これは台風進路予報情報からgeojson形式の位置データを生成し、それをwebサービスにアップロードすることで可視化できるサービスとなっています。平面・球体に対応しており、平面から垂直に視点を固定すれば従来の台風進路予報図を再現することが可能となっています。ファイルをアップロードするだけなので、使用する際の技術的ハードルも低くなると思われます。

図5のサービスを作成した後にちょうどインターン終了となりました。心残りとしては、図1で作ったLアラートで台風進路予報情報のデータベースから、自動で図5のサービスに使用できるgeojsonファイルを生成できるようにする所のプログラムを終わらせきれなかったことです。これは今後の課題として心に留めておこうと思います。

その他

開発以外にあったちょっとしたイベントを軽く紹介したいと思います。

  • 他インターン生とのLT会

インターン生が同日にたくさん出社した日に、およそ1時間くらいのLT会(LT=ライトニングトーク。短時間のプレゼンのこと)が催されました。今回のインターン生に知り合いはおらず、研究分野も被っていなかったのもあり、馴染みのない話題について議論するのが楽しかったです。皆さん優秀かつ技術に関心を持って多種多様の活動をしていたので、LTを聞くだけでも良い刺激になりました。

  • デジタルコンテンツ部向けの研究紹介

デジタルコンテンツ部の皆さんの自己紹介の機会をいただけるということで、1時間ほど時間をとっていただき簡単に研究紹介をさせていただきました。業務中にも関わらず多くの方が集まってくださり、様々な質問や意見を投げかけてくださいました。学会などでは出ない視点の話を聞くことができ、新鮮な時間でした。

感想

まず初めに会社の雰囲気について、最初はかなり硬めの空気をイメージしていたのですが、想像以上にラフな環境で驚きました。メンターの方は勿論、近くの席にいる社員の方々も話しかけてくれたり、気象関係の現場の方も沢山意見を出してくれました。頼むとすぐに話が通り、風通しの良さを感じました。オフィスの真ん中に穴が空いているからでしょうか。(オフィスが三角形なのですが、一部のフロア間が吹き抜けという構造になっています。理由を聞いたところ、大事件が起こった時に叫べば繋がっているフロア全体に一瞬で情報が行き届くからだとか…… )

次に活動内容について、自分自身に対する技術面での課題は溢れんばかりにあるのですが、一番感じたのはプログラムで業務効率化を図ることの難易度の高さでした。歴史の長い放送・新聞業界が持つ厳密な仕様に当てはめること、そして業務を実際に行う人が使いやすいものを作ること。特に後者を疎かにすると結局現場で使われずに眠ってしまいます。このような問題は本来はユーザーのアンケートなどを介して得られるものであり、インターンのような形の短い開発で気付くことができるとは思ってもいませんでした。

最後にインターン全体について、本当に良いのだろうかと思うくらい自主性を重んじてもらう形で、言語や設計方針など好きに実装をしながら会社の雰囲気を味わえる、非常に有意義な時間を過ごすことができたのではないかと感じています。ありきたりな言葉になってしまい恐縮ですが、3ヶ月間とても楽しかったです。

 

鈴木さん、ありがとうございました。社風として風通しのよさを挙げてくださいましたが、「オフィスの真ん中に穴があいているから、、?」というのが面白いです。インターン生の皆さんとの交流も刺激になったようで、何よりでした。どうもありがとうございました!


この記事が気に入ったらサポートをしてみませんか?