背景
猫がご飯を全然食べずに順調に痩せていってしまったので、ウェットフードやドライフードやおやつなどの複数種類のご飯を合わせたときに必要な食事量はどれくらいにすべきなのかについて調べていました。
複数種類を1日にあげるとしたとき、ウェットフードは1袋あげるとした場合にドライフードは何gあげるべきかを計算できるようにしたいというのが目的でした。
その結果作ったのが猫のカロリー計算出来るページです。
いくつか自分が見たことのある市販のフードのカロリーを入れているので、後に出てくるDERを元にそのフードを1日何gあげればいいのかを出してくれるようなツールです。
一般食を含めると素人には無理な気がしているので、総合栄養食のみであればカロリーの計算で大丈夫と思うんだけどな・・・という気持ちで実装しています。
3行まとめ
- 猫のカロリー計算は体重から出した安静時エネルギー要求量のRERと、運動量やライフステージを元にした係数を合わせて1日当たりのエネルギー要求量のDERという値で求められる
- 体重と係数を入れると、DERを満たすような1日分のフードの量を 猫のカロリー計算|ara-ta3の物置 で求められる
- 自分が便利に思える機能をたくさん拡張していきたい
計算方法
必要なカロリーの計算についてツールの方では勝手に計算するようにしていますが、どういう考え方で計算しているのかを紹介します。
ド素人が調べた結果なので、活用する際はかかりつけの獣医師の方と相談の上自己責任で活用してください。
いやいやおかしい!とかあればぜひコメントなどで教えていただけると嬉しいです。
安静時エネルギー要求量 RERについて
安静時エネルギー要求量(Resting Energy Requirement:RER)は猫の体重を基に計算され、次のいずれかの方法で求めることができます。
計算式
- 計算式:RER(kcal) = 70 × 体重(kg)0.75
- 簡易計算式:RER(kcal) = 体重(kg) × 30 + 70
簡易式との差分について
簡易式でも大きな問題とならないので良いという話を見かけましたが、差分からどうなのかを考えてみました。
これらの差分は、体重をxとすると
f(x) = 70x0.75-30x-70
になり、微分すると
f'(x) = 52.5x-0.25-30 = (52.5-30x0.25) / x0.25
となります。この場合、f'(x)が0になるのは
x0.25 = 52.5/30 ⇔ x = (52.5/30)4 ≒ 9.378...
なので、f(x)は約x=9~10あたりまでは単調に増加します。
したがって、差分はxの定義域を1kg~10kgと考えると、取りうる値域は-30kcal~23.6kcalとなります。
3kg~5kgの場合、2式の差分は-0.43kcal~14kcalとなるので、大きな猫ちゃんじゃなければ確かに大きな問題にはならなさそうに思いました。
1日当たりのエネルギー要求量 DERについて
1日当たりのエネルギー要求量(Daily Energy Requirement:DER)は、RERに猫のライフステージや活動量を考慮した係数を掛け合わせることで計算します。
これにより、日々の生活や成長、健康状態に応じた適切なカロリー量を把握できます。
計算式
DER(kcal) = RER × 係数
係数一覧
以下は、一般的な係数の例です。
- 成長期の猫(生後1歳まで):
- 生後4ヶ月未満:RER×3
- 生後4~6ヶ月:RER×2.5
- 生後7~12ヶ月:RER×2
- 未避妊・未去勢の成猫:RER×1.4~1.6
- 避妊・去勢済みの成猫:RER×1.2~1.4
- 活動的な成猫:RER×1.6
- 非活動的・肥満傾向の猫:RER×1.0
- 減量が必要な猫:RER×0.8
- 増量が必要な猫:RER×1.2~1.4
- 妊娠中の母猫:
- 妊娠初期:RER×1.6
- 分娩時:RER×2.0
- 授乳中の母猫:RER×2.0~6.0
- 高齢猫(7~11歳):RER×1.1~1.4
- 超高齢猫(11歳以上):RER×1.1~1.6
計算例
体重3kgの避妊済み成猫の場合:
- RER = 70 × (30.75) ≒ 159.57kcal
- DER = RER × 1.2 = 159.57 × 1.2 ≒ 191.48kcal
または簡易計算式を使用して:
- RER = 3 × 30 + 70 = 160kcal
- DER = RER × 1.2 = 160 × 1.2 = 192kcal
カロリー計算に関して参考記事
- 環境省 飼い主のためのペットフード・ガイドライン
- エサの適正量|よくあるご相談|猫のお悩み相談室|アクサダイレクトのペット保険
- www.anicom-sompo.co.jp
- www.youtube.com
今後の機能追加
- スマホで見てもいい感じに見れるようにしたい
- フード内容を増やしたい
- フードローテーションさせたいと思ったのでそのたびに追加していこうと思っています
- フードの選び方のUIを選びやすくしたい
- もしこんな機能が欲しいとかフードがほしいとかあればこちらのフォームから送ってもらえたらできる限り対応します
- コメントもらえたらめちゃくちゃ喜びます
(余談)簡単な技術選定の話
- フロントエンドだけで簡潔する気がしたのでGitHub Pagesでやりました
- TypeScript + React + Vite + Tailwind CSS(Flowbite) を使っています
- TypeScriptとReactは特に理由なく
- VueとReactだとReactのほうがなんとなく好きなので選んだ
- ViteとTailwind選定理由はなんとなく今流行りな気がしたため
- TypeScriptとReactは特に理由なく
- SSGやってみたかったのでVikeでSSGしてみました
まとめ
- 猫に必要なカロリーを計算して市販のフードを何gあげるといいかのツールを作った
- 結果猫も体重を取り戻してきたので良かった
- フロントエンドでパッと作るの楽しかった
- 技術検証がてら機能追加していきたい