犬の健康や行動レポート

2024年技術ブログ集

その1 複数犬の健康管理について

これまで、頼まれて犬の健康管理ツールや行動管理ツールの試作を行ってきました。非接触心拍測定とか加速度センサ入りGPSロガーとか肉球測定とかサーモカメラ等です。複数の犬に対して、これを定期的に行い記録に残す必要があるということで、なんちゃってデータベースを作ってみました。データベースというと敷居が高く基礎勉強してない私には手に負えないと思いましたので、これまで作ってきた測定装置のデータと個犬のIDを結びつけて、こんなレポートを出力したいといったあとは専門家に任せるための形見本のようなものを検討しました。
考え方は、測定からDB保存まで一気通貫で行うのではなく、人が介在して個犬IDフォルダにデータをためるというものです。ID登録や編集用のソフト、データ閲覧やデータ転送など作業者をサポートするソフトも必要だと考えました。

DBのの中身は、個犬情報などのマスタ(master.csv)とID管理ソフト、測定プログラムとID別ユーザーフォルダから構成されています。赤文字が当初に追加したソフトウェアです。測定系ソフトはこれからも増え続ける予定です。まず、ID管理(マスタ管理)用GUIソフト(master.exe)を以下に示します。

各測定ソフトの結果データをIDフォルダーに保存する目的で、ID名をQRコードスキャナで入力できるようにしました。測定ソフトはQRコード連動ですが、マニュアル操作が必要な場合もあり、クリップボードにQRコード内容を一時保存する補助的なGUIプログラム(qrcode_rd.exe)を準備しました。

上記ツールと併せて、新規メンバー用QRコード発行のためのGUIプログラム(qrcode_gn.exe)も作りました。

各測定プログラムの出力は、集約された画像で保存するようにしています。集約画像(結果画像)等の確認を行うGUIプログラム(browse.exe)です。

上記、「browse.exe」でRS12LC(心拍・呼吸・体温・環境測定)のサマリ画像を表示したものを示します。

最後に、集約画像ファイルをIDフォルダーに振り分けて保存するGUIソフト(selector.exe)の操作方法を示します。

以上、その1では、DBの管理ソフトを説明しました。その2では、DBに組込んだ各測定ソフト(2024年3月現在)の説明を予定しています。

その2 健康状態や行動状態の測定装置ソフトウェア

その1では、とりあえずDBの構成を考えて、DBそのものの管理ソフトを説明しました。
その2では、測定データを取り扱うソフトウェアの説明をします。基本的にはGUIのファイル名等入力にはQRコードリーダーが使用できるようになっています。が使用することは少ないと思います。下図で赤枠部分が説明対象のソフトウェアです。

非接触ドップラセンサ(RS01D)の測定と結果表示(画像として出力)する
「DOP01D」の説明です。

非接触温度マップ測定(RS02D)の測定と結果表示(画像として出力)する
「DOP02D」の説明です。熱画像で生成したOpticalFlowも表示します。

非接触心拍/呼吸/体温/環境の統合測定装置(RS12LC)の測定結果表示(画像として出力)する「DOP12WEB」の説明です。

接触式心拍/呼吸測定装置(同時聴音型電子聴診装置:AUSCAL)のwav測定と結果表示(画像として出力)する「AUSCAL」の説明です。この時点では健康レポート用測定方法としての優先順位が高かったのですが、その後、非接触式聴診器「ASTAB」を開発しており置き換える計画です。

以上が健康データ関係の測定表示ソフトウェアでした。

次は、行動データ関係の測定表示ソフトウェアです。測定装置は「GPS02」完全自己完結型GPSロガーを使用します。行動データは1秒間隔のGPS位置データと6軸加速度センサとGPSのタイムスタンプを保存したcsvファイルです。以下、解析ソフ「GPSLOGC」の説明です。

ここまでのDBを構成するフォルダー類を整理しました。これまで開発した測定装置のデータを解析し保存するところまでの構成です。2.2GBのDBフォルダーをWindows-PCのDesktopに移植すれば一連の操作はできます。

このようなツールは準備していても、結局のところ何をレポートすれば良いのかわからなくなっていると思います。片っ端からIDフォルダーに測定データをぶち込んでも活用の方法は将来に託すといったものではピンとこないとの反省から、その3では、DBに保存したデータから、必要なものを抽出して、健康レポート(pdf形式)で出力するソフトウェアの開発について説明します。

その3 健康状態レポートの作成例

その1,その2ではDBの管理ソフトとDBに組み込んだ各測定ソフト(健康データと行動データ測定)を説明しました。その3では、DB内から情報をピックアップしpdf形式で半自動でレポートを作成するという内容です。
pythonでpdfを作成するライブラリとして、「reportlab」を使います。まず、必要なライブリ関係をインポートします。
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait, landscape
from reportlab.lib.units import mm
import os
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
フォントについてはWindows内のものを使用します。
pdfmetrics.registerFont(TTFont(“HGRGE”, “C:/Windows/Fonts/HGRGE.TTC”))
pdfmetrics.registerFont(TTFont(“HGRME”, “C:/Windows/Fonts/HGRME.TTC”))
p.setFont(“HGRGE”, 10)
グラフなど画像を表示する場合、左下を原点としたmm単位座標を指定します。素晴らしいのは、元画像を自動でリサイズしてくれるところです。
dWidth = 110mm;dHeight = 55mm;dx =105mm;dy =5mm
p.drawImage(“./TEMP/figure9.png”, dx, dy, dWidth, dHeight)
文字を表示する場合は以下のようにします。
dx =10mm;dy =278mm ;p.drawString(dx,dy, “[基本情報]”)
dx =10mm;dy =270mm ;p.drawString(dx,dy, “ID番号:”+str(dftt[1]))
「reportlab」ライブラリは簡単で便利です。

今回は、健康レポート(pdf)を作成するソフトとフローを纏めました。データの流れを示します。

DB全体と今回の健康レポート関係のソフトウェや仮置きフォルダなど追加した部分を赤字で示しました。心拍測定にASTAB02ソフトを追加していますが今回は説明しません。

まず、pdfに表示するデータをかき集めるため「HCdata_select.exe」を起動します。ポイントは、GUIのwindowを順次開いていくところが個人的には、新しい発見です。プログラムコードを示します。

操作方法は、GUIを開いては閉じを繰り返します。最初に戻って変更したい場合は、変更したいGUI以外は入力操作せず閉じればOKです。選択したファイル群はTEMPフォルダに一時保存されます。これらデータを使ってpdfを作っていきます。

次にpdfレポートを作成するプログラムです。画像データなどは、HCdata_selector.exeでTEMPフォルダに保存されましたが、他に基本情報登録や測定値のマニュアル入力を行う必要があります。以下に、「HCdata_report.exe」のプログラムコードを示します。

操作方法を示します。5つの項目を入力するとレポートが完成します。

出力されたpdfを示します。

その4 行動状態レポートの作成例

前回の健康状態レポート同様にDB内の情報をピックアップして、行動状態レポートのひな形を作ってみました。まず、GPSロガーですが以前に報告した完全自己完結型GPS02は本体ラズパイZEROに蓄えられたデータを吸い出して使用します。また、GPS02は150gと重く大型犬向けです。現在小型犬向け75gのGPS03(SDカードロガー)を製作中です。この両方に対応し同じようなpdfレポートが書けるようにしました。GPS03の話はまた別途報告します。

行動状態レポートのpdfを作るまでの流れを示します。

DBの構成ですが、前回の健康状態レポートアプリに加え行動状態レポートアプリが加わります。赤字で示したのが、行動状態レポート関係の追加ファイルです。

GPS02のデータとGPS03のデータを示します。GPS02では加速度センサーのデータを含めましたが、GPS03はGPSデータのみです。行動レポートには、共通項目のみを表示することにしました。行動距離、平均速度、行動軌跡です。

DB内から行動レポート作成のためのデータを選択する「GPSdata_select」のプログラムコードを示します。

「GPSdata_select.exe」の操作方法を示します。

調査不足で、htmlからpngなどの変換するライブラリを見つけられずPaintなどを使って画像ファイルに変換してマニュアルで保存します。(申し訳ない)

次に、pdfに書き出すプログラム「GPSdata_report」を示します。

操作方法:入力項目と入力例です。

DBのデータを拾いバッファフォルダに集めて、GUI連発ソフトでpdfにデータやグラフを配置していくという力任せなやり方を使って、健康状況レポートと行動状況レポートの見本を作ってみました。応用(レポートのカスタマイズ)には有効な方法の1つではないかと思いました。

出力されたpdfを示します。

タイトルとURLをコピーしました