2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

COCOAログを Python で読んでみた(リンク集あり)

Posted at

COCOA 接触確認アプリ

COCOA 接触確認アプリで出力されるログファイルを読み込んで、接触リスクは低いがニアミス(?)している可能性をチェックしてみようと思いました。

きっかけは元祖のサイト

COCOAログをチェックしてくれるサイト(公式?)があったので、試してみたら、結構ニアミスしているようでした。
COCOAログチェッカー
さらに、気になって調べてみたら、ソースも公開されていました。
https://github.com/ktansai/COVID-19-ExposeChecker

Pythonプログラムの参考にしたサイト

COCOAデータを読む」というサイトに、COCOAログファイルを読む Python プログラムがありましたので、早速使ってみました。

自分なりにプログラムを変更してみた

上記のプログラムでも結果は出ますが、全記録が出てくるので、
・割と近くで検出されたものだけ(MinAttenuationDb が 100未満のもの)を表示
するように変更しました。

変更後のソース

cocoaLogChecker.py
import json
import pandas as pd

with open("exposure_data.json") as f:
	exposure = json.load(f)

print("Date Infectiousness  TypicalAttenuationDb MinAttenuationDb SecondsSinceLastScan")
ts = ""
for x in exposure["exposure_windows"]:
	t = pd.Timestamp(x['DateMillisSinceEpoch'], unit='ms')
	td = str(t)[:10] + " " + str(x["Infectiousness"])
	for y in x["ScanInstances"]:
		if y["MinAttenuationDb"] < 100 :
			if td != ts :
				print()
				print(td, end="")
				ts = td
			print(" ", y["TypicalAttenuationDb"], y["MinAttenuationDb"],
              y["SecondsSinceLastScan"], end="")
print()

このプログラム「cocoaLogChecker.py」と、COCOA接触確認アプリで出力された JSONファイル「exposure_data.json」を同じディレクトリに置いて、ターミナルからコマンドで
$ python cocoaLogChecker.py
と実行させると、ログの開始日から現在までの結果が表示されます。

出力サンプル
2022-07-24 2  97 97 60
2022-07-25 2  79 79 60  87 76 120  91 84 120  92 92 180  93 82 120  95 95 120
2022-07-31 2  97 97 60  95 95 60  97 97 60  98 98 60  90 90 60  96 96 120  90 81 60  77 68 60
2022-08-02 2  71 64 120  70 65 120  71 69 60  83 72 120
2022-08-03 2  90 78 60
2022-08-04 2  87 87 60  98 93 60
2022-08-05 2  80 80 60  94 94 60
2022-08-06 2  99 99 60
2022-08-07 2  96 96 60  97 97 60

結構ニアミスしていたようです。
日付以外の数値の意味については、上記の「COCOAデータを読む」のサイトをご覧ください。
(私も良くわかっていません...)

後書きなど...

このプログラムでは全期間を対象としていますが、本家のように2週間以前のものは処理しないようにしたいところですが、面倒で組み込んでいません。
M1 Mac mini で動かしましたが、Python をどのように入れたのか覚えていません。
で、M1 MacBook Air で動かそうとしたら、Pythonが入っていませんでした。

基本的には、このサイトが参考になりますしたが、最初の Home brew のインストールでつまづく
https://www.python.jp/install/macos/install_python.html

M1 macOSに Home brew をインストールするには、このサイトの情報を利用する
https://docs.brew.sh/Installation

また pip もアップデートして、 pandas をインストールする
https://www.geeksforgeeks.org/how-to-install-python-pandas-on-macos/

で、Airでは Python3 になっています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?