(57)【特許請求の範囲】
【請求項１】
機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体であって、前記命令は、実行されると１つ以上のプロセッサに、
（ａ）  機器を備え付けた力検知用床部を横切る前記複数の動物についての位置データおよび地面反力データを含むデータファイルを得るステップと、
（ｂ）  前記位置データを、各々が開始時刻および終了時刻を有する複数の時間帯に分割するステップと、
（ｃ）  前記時間帯の各々が、１本の肢または複数の肢のいずれについての位置データおよび地面反力データを表わすかを判定するステップと、
（ｄ）  複数の肢の時間帯を複数の別個の１本の肢の時間帯に個別化するステップと、
（ｅ）  各時間帯内の各肢を、前肢または後肢、および左肢または右肢として識別するステップと、
（ｆ）  識別した各前肢および後肢を、前記複数の動物のそれぞれ１頭に関連付けるステップとを実行させるように構成される、コンピュータ読取可能な媒体。
【請求項２】
ステップ（ｄ）は、帰納法により、複数の肢の時間帯を複数の別個の１本の肢の時間帯に個別化するステップを含む、請求項１に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項３】
実行されると１つ以上のプロセッサにステップ（ｅ）を実行するように構成される前記命令はさらに、検査した肢の領域が１本の肢のものであり、かつ、データのシーケンスにおいて検査された最初の肢である場合に、検査した肢を前肢と指定し、そして、前記検査した肢の領域が１本の肢を有しており、かつ、平均のＹの位置がプレートの端部から７２インチよりも離れている場合、または、前記検査した肢の領域が１本の肢を有しており、かつ、平均のＹの位置が前記プレートの前端部から１インチ未満である場合に、肢のデータを不定であると指定するように構成される１つ以上の命令を含み、前記Ｙの位置は、前記プレートに加えられる力の位置を表わすために前記プレートにおいて規定されるＸ−Ｙ座標系のうちのＹ座標の値であり、前記Ｙ座標は前記プレートにおける動物の歩行方向に対応する、請求項１に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項４】
実行されると１つ以上のプロセッサにステップ（ｅ）を実行させるように構成される前記命令はさらに、（１）検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、検査した肢の平均地面反力の１．０４倍以上であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が５インチ未満であること、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が１０インチ未満であること、（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、以前の肢の地面反力のピークが現在の肢の地面反力のピークの１．１５倍よりも大きいこと、および（４）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、現在の領域の地面反力の傾きのカウンタが３よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢を後肢と明確に示すように構成される１つ以上の命令を含む、請求項３に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項５】
実行されると１つ以上のプロセッサにステップ（ｅ）を実行するように構成される前記命令はさらに、検査した肢の領域が１本の肢のものであり、前記検査した肢の前の肢が前肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が５インチ以上である場合に、肢のデータを前肢のものと指定するように構成される１つ以上の命令を含む、請求項４に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項６】
実行されると１つ以上のプロセッサにステップ（ｅ）を実行させるように構成される前記命令はさらに、（１）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、前記検査した肢の平均地面反力の１．０５倍よりも大きく、以前の肢の領域と現在の肢の領域との平均のＹの位置の差がゼロ以下であること、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記以前の肢の平均地面反力が、現在の肢の平均地面反力の１．０２倍よりも大きく、現在の肢と以前の肢との平均のＹの位置の差が−１５インチ以下であること、（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の平均地面反力が、現在の肢の平均地面反力の１．１倍よりも大きいこと、および（４）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記以前の肢の地面反力のピークが、現在の肢の地面反力のピークの１．１倍よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢を前肢と指定するように構成される１つ以上の命令を含む、請求項４に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項７】
実行されると１つ以上のプロセッサにステップ（ｅ）を実行させるように構成される前記命令はさらに、（１）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、前記検査した肢の平均地面反力の１．０５倍以下であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差がゼロよりも大きいこと、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の平均地面反力が、現在の肢の平均地面反力の１．０５倍以上であり、現在の肢と以前の肢との平均のＹの位置の差が４０インチ以上であること、および（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、現在の肢と以前の肢との平均のＹの位置の差が４０インチ以上であること、の条件セットのいずれか１つが満たされた場合に、前記検査した肢を後肢と指定するように構成される１つ以上の命令を含む、請求項４に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項８】
実行されると１つ以上のプロセッサにステップ（ｆ）を実行させるように構成される前記命令はさらに、（１）現在の肢の１つ前の肢が後肢であり、現在の肢が前肢であり、現在の肢の前の肢の平均のＹの位置が、現在の肢の平均のＹの位置よりも大きいこと、（２）現在の肢の前の肢が後肢であり、現在の肢が前肢であり、現在の肢の開始時刻と現在の肢の前の肢の終了時刻との差が０．５秒よりも大きいこと、（３）検査した領域内の肢の数が１であり、現在の肢の前の肢が前記プレートの開始部分から５インチ以内にあり、現在の肢の前の肢の平均のＹの位置と現在の肢の平均のＹの位置との差が１５インチよりも大きいこと、および（４）現在の肢の前の肢が後肢であり、現在の肢が前記プレートの前端部から約１インチ以内にあり、現在の肢の前の肢の平均のＹの位置が、現在の肢の平均のＹの位置よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢の領域を新規の牛のものであると指定するように構成される１つ以上の命令を含む、請求項３に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための命令を有するコンピュータ読取可能な媒体。
【請求項９】
機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法であって、
（ａ）  機器を備え付けた力検知用床部を横切る前記複数の動物についての位置データおよび地面反力データを含むデータファイルを得るステップと、
（ｂ）  前記位置データを、各々が開始時刻および終了時刻を有する複数の時間帯に分割するステップと、
（ｃ）  前記時間帯の各々が、１本の肢または複数の肢のいずれについての位置データおよび地面反力データを表わすかを判定するステップと、
（ｄ）  複数の肢の時間帯を複数の別個の１本の肢の時間帯に個別化するステップと、
（ｅ）  各時間帯内の各肢を、前肢または後肢および左肢または右肢として識別するステップと、
（ｆ）  識別した前肢および後肢の各々を、前記複数の動物のそれぞれ１頭に関連付けるステップとを含む、方法。
【請求項１０】
ステップ（ｄ）は、帰納法により、複数の肢の時間帯を複数の別個の１本の肢の時間帯に個別化するステップを含む、請求項９に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１１】
ステップ（ｅ）はさらに、検査した肢の領域が１本の肢のものであり、かつ、データのシーケンスにおいて検査された最初の肢である場合に、検査した肢を前肢と指定するステップと、前記検査した肢の領域が１本の肢を有しており、かつ、平均のＹの位置が前記プレートの端部から７２インチよりも離れている場合、または、前記検査した肢の領域が１本の肢を有しており、かつ、平均のＹの位置が前記プレートの前端部から１インチ未満にある場合に、肢のデータを不定と指定するステップを含み、前記Ｙの位置は、前記プレートに加えられる力の位置を表わすために前記プレートにおいて規定されるＸ−Ｙ座標系のうちのＹ座標の値であり、前記Ｙ座標は前記プレートにおける動物の歩行方向に対応する、請求項９に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１２】
ステップ（ｅ）はさらに、（１）検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、検査した肢の平均地面反力の１．０４倍以上であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が５インチ未満であること、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が１０インチ未満であること、（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、以前の肢の地面反力のピークが現在の肢の地面反力のピークの１．１５倍よりも大きいこと、および（４）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が前肢であり、現在の領域の地面反力の傾きのカウンタが３よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢を後肢と明確に指定するステップを含む、請求項１１に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１３】
ステップ（ｅ）はさらに、検査した肢の領域が１本の肢のものであり、前記検査した肢の前の肢が前肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の領域と現在の肢の領域との平均のＹの位置の差が５インチ以上である場合に、肢のデータを前肢のものと指定するステップを含む、請求項１２に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１４】
ステップ（ｅ）はさらに、（１）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、前記検査した肢の平均地面反力の１．０５倍よりも大きく、以前の肢の領域と現在の肢の領域との平均のＹの位置の差がゼロ以下であること、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の平均地面反力が、現在の肢の平均地面反力の１．０２倍よりも大きく、現在の肢と以前の肢との平均のＹの位置の差が−１５インチ以下であること、（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の平均地面反力が、現在の肢の平均地面反力の１．１倍よりも大きいこと、および（４）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の地面反力のピークが現在の肢の地面反力のピークの１．１倍よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢を前肢と指定するステップを含む、請求項１２に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１５】
ステップ（ｅ）はさらに、（１）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、前記検査した肢の前の肢が前記プレートの端部に隣接せず、前記検査した肢の前の肢が前記プレートの開始部分に隣接せず、以前の肢の平均地面反力が、前記検査した肢の平均地面反力の１．０５倍以下であり、以前の肢の領域と現在の肢の領域との平均のＹの位置の差がゼロよりも大きいこと、（２）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、以前の肢の平均地面反力が、現在の肢の平均地面反力の１．０５倍以上であり、現在の肢と以前の肢との平均のＹの位置の差が４０インチ以上であること、および（３）前記検査した肢の領域が１本の肢を有しており、前記検査した肢の前の肢が後肢であり、現在の肢と以前の肢との平均のＹの位置の差が４０インチ以上であること、の条件セットのいずれか１つが満たされた場合に、前記検査した肢を後肢と指定するステップを含む、請求項１２に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【請求項１６】
ステップ（ｆ）はさらに、（１）現在の肢の１つ前の肢が後肢であり、現在の肢が前肢であり、現在の肢の前の肢の平均のＹの位置が、現在の肢の平均のＹの位置よりも大きいこと、（２）現在の肢の前の肢が後肢であり、現在の肢が前肢であり、現在の肢の開始時刻と現在の肢の前の肢の終了時刻との差が０．５秒よりも大きいこと、（３）検査した領域内の肢の数が１であり、現在の肢の前の肢が前記プレートの開始部分から５インチ以内にあり、現在の肢の前の肢の平均のＹの位置と現在の肢の平均のＹの位置との差が１５インチよりも大きいこと、および（４）現在の肢の前の肢が後肢であり、前記現在の肢が前記プレートの前端部から約１インチ以内にあり、現在の肢の前の肢の平均のＹの位置が、現在の肢の平均のＹの位置よりも大きいこと、の条件セットのいずれか１つが満たされた場合に、検査した肢の領域を新規の牛のものと指定するステップを含む、請求項１１に記載の、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
この出願は、２００３年５月２９日に出願された米国仮出願第６０／４７３，８８６号と、２００２年１２月２３日に出願された米国仮出願第６０／４３５，３２０号との優先権を主張する。
【０００２】
この出願は一般に、この明細書において引用により援用される米国特許出願連続番号第０９／８２７，３１１号に関連するが、その優先権は主張しない。
【０００３】
背景情報
この開示は、動物の特性を動的に記録および分析するための新規の方法およびシステムに関し、動物の特性には、以下のものに限定されないが、直接的にまたは導出により測定データから、およびその分析から得られる動物の重量または動物の生体力学的もしくは生物測定学的データ（たとえば、１つ以上の活動（直立、歩行、トロット等）中における肢の偏位、速度、加速度および／または力）が含まれる。動的な記録および分析により、動物、特に、以下のものに限定されないが、乳用牛、非乳用牛、豚、および羊等の家畜を含む四足動物について問題となる特性を求めることができる。
【背景技術】
【０００４】
米国において酪農は重要な産業であり、全世界の多数の国では農業の主部門となっている。牛の、蹄および下肢の疾患により生じる跛行は、酪農家にとって費用のかさむ問題である。跛行により、医療の必要性、牛乳生産量の低下、結果として体調の低下、および繁殖性能の低下を生じ、動物の社会的状況に悪影響を及ぼす。跛行は、乳用家畜にとって、乳腺炎および低受胎に続き、経済的な観点から最も費用のかさむ問題の第３位であることが報告されている。跛行にかかる平均的な費用は、１件につき４１２ドルであると報告されており、米国国内における年間発生率は１５％である。したがって、跛行による年間の経済損失は、米国の９００万頭を超える牛に対して５億７千万ドルを上回る。これらの損失は、酪農に著しく損害を与え、牛産業全体に著しい悪影響を及ぼす。したがって、乳用家畜における跛行は、全世界の酪農産業にとって決定的な経済的要素であり、かつ、動物福祉上の極めて重要な問題である。
【０００５】
栄養状態、細菌性および真菌性感染症、細菌内毒素、環境状態、住居、床面、給餌の管理、ならびに牛の行動を含む病因論的要因が、跛行の一因である。この発明およびその他の発明により、米国特許出願連続番号第０９／８２７，３１１号「重量および歩様を分析するための方法および装置（Method and Device for Analyzing Weight and Walking Gait）」に開示され、現在、ウィスコンシン州マディソン（Madison）のボーマチック社（Bou-Matic, LLC）が販売する有望な反力検出（Reaction Force Detection（ＲＦＤ））が開発されるまで、蹄および下肢の疾患の早期検出は、大部分が、重篤な段階または後期の跛行を農業従事者が目視観測することによるものであった。このような後期になってからでは、効果の得られる介入であっても、対処により多くの費用がかかり、牛またはその他の家畜を速やかに日常生活に戻すことは不可能であるため、農業従事者には費用が倍増する。したがって、当該技術では、蹄および下肢の問題の早期検出を可能にし、かつ、獣医師による迅速な医療介助により経済的損失を減らし、動物が受ける苦痛を減らし、動物の回復過程を速めることのできる方法および装置が必要とされる。また、乳用家畜における跛行の発生率を下げるように設計された管理プログラムの科学的検査を可能にする早期検出システムもまた必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の反力検出（ＲＦＤ）、および米国特許出願（連続番号第０９／８２７，３１１号）「重量および歩様を分析するための方法および装置」における関連の開示により著しい進歩が得られたにもかかわらず、以下のものに限定されないがたとえば、直接的にまたは導出により測定データから得られる肢の偏位、速度、加速度および／または力（生体力学的データ等）を含む動物の特性の抽出、ならびにその分析には、依然として改良が必要とされる。
【０００７】
体重は、酪農産業にとって効果的な管理パラメータとなる、もう１つの動物の特徴であり（マルツ（Maltz）他、１９９７年）、中規模および大規模農場では通り抜け式の計量装置（パイパー（Peiper）他、１９９３年）の使用が増えている。定置された計量装置を乳用家畜が歩いて通過する際に、家畜を操作して個別化し、一頭毎の動物の重量が記録されるようにしなければならない。牛は家畜型の動物であるため、この個別化は、操作上の課題を提起する。この課題は、市販されていることにより入手可能な２つの解決策、すなわち、（ｉ）空気圧で作動する入口および出口ゲート、ならびに（ii）イスラエル（Israel）のＳ．Ａ．Ｅ．アフィキム（Afikim）（www.afimilk.co.il等を参照）により製造されたもの等の、動物自体が作動させる受動型Ｓ字ゲートにより、現在対処されている。
【０００８】
しかしながら、計量システムおよびＲＦＤシステムがいずれも、動物を個別化するための手段を使用することから、動物の通行の流れを中断して減速させ、動物の管理者に対してさらなる作業を課す。したがって、重量または力の検出等のために、現行のシステムが現在行なうほど動物の通行の流れを妨げずに動物を個別化することのできる手段が必要とされる。
【課題を解決するための手段】
【０００９】
開示の概要
この開示は、以下のものに限定されないが、直接的または導出により測定データから、およびその分析から得られた動物の重量または動物の生体力学的もしくは生物測定学的データ（１つ以上の活動（直立、歩行、トロット等）中における肢の偏位、速度、加速度および／または力）を含む動物の特性の動的な記録および分析を行なうための新規の方法およびシステムに関する。
【００１０】
一局面において、機器を備え付けた力検知用床部を横切る複数の動物の肢を個別化するために、方法およびコンピュータ読取可能な命令セットが提供される。この局面において、この方法および命令セットは、（ａ）機器を備え付けた力検知用床部を横切る動物についての位置データおよび地面反力データを含むデータファイルを得るステップと、（ｂ）位置データを、各々が開始時刻および終了時刻を有する複数の時間帯に分割するステップと、（ｃ）該時間帯の各々が、１本の肢または複数の肢のいずれについての位置データまたは地面反力データを示しているかを判定するステップと、（ｄ）帰納法等により、複数の肢の時間帯を複数の別個の１本の肢の時間帯に個別化するステップと、（ｅ）各時間帯内の各肢を、前肢または後肢、および左肢または右肢として識別するステップと、（ｆ）識別した前肢および後肢の各々を、動物のそれぞれ１頭に関連付けるステップとを含む。
【００１１】
これに従い、動物の通行の流れを物理的に妨げるのではなくソフトウェアを介して動物を個別化することのできるコンピュータベースの手段が、この明細書で提示される。一局面において、個別化は帰納法により実施される。すなわち、一度に１頭の牛がn頭の牛からなる群から分離されて、１頭の牛と、結果的に得られる新規の群内の(n-1)頭の牛とが得られる。これは、j回繰返される反復プロセスであり、そのたびごとに１頭の牛と(n-j)頭の牛からなる群とが得られる。このプロセスは、(n-j)=1まで繰返される。帰納法によ
る個別化により、検出プレートシステムまたは検出現場を一斉に横切って進み得るどのような数の牛をも分離することができ、この分離は、ハードウェアの制約（すなわちメモリおよびＣＰＵの制約）によってのみ制約を受ける。
【００１２】
開示されたこの個別化技術により、たとえばＲＦＤを一斉に通行するn頭の牛の一群に関する肢の動作の変数（ＬＭＶ）は、N個のファイルに記録される。これらのファイルの各々は、１頭の動物のＬＭＶを含む。開示されたこの個別化技術は、従来の物理的な個別化技術とは異なって障壁を用いない。この障壁は、測定領域を一度に１頭の動物にのみ制限して、所定の牛(nx)のデータが、このような牛に対応するデータファイルに直接割当てられるようにする。その代わりに、開示されたこの個別化技術は、ソフトウェアベースの演算に依存して、n頭の動物のうちの１頭以上が測定領域内に同時に存在しているか否かを判定し、データファイル（この例では、動物の数nよりも少ない数のデータファイルを含むファイルのサブセット）のうちの１つに存在するＬＭＶを、測定領域内に同時に存在する検出動物（nx, ny等）に対応する多数の別個のファイルに抽出する。
【００１３】
この発明のさらに別の利点および他の特徴の或る部分は以下の説明に明示され、或る部分は、当業者が以下の説明を吟味することにより明らかになるか、またはこの発明を実施することにより認識され得る。この発明の利点は、前掲の請求項に具体的に指摘されるように実現かつ獲得され得る。
【発明を実施するための最良の形態】
【００１４】
詳細な説明
この発明の概念に従った使用に有利にも適合される反力装置（Reaction Force Device）（ＲＦＤ）１００が、図１（ａ）〜図１（ｃ）に示される。このＲＦＤは、動物の歩様に関する重量および力を含む変数を測定するように構成される。以下に論じるように、および、この明細書においてその全体が引用により援用される、テイシュ（Tasch）他への上述の米国特許出願連続番号第０９／８２７，３１１号「重量および歩様を分析するための方法および装置」に論じられるように、動物がＲＦＤシステムを通過して、機器を備え付けたプレート上に踏み出すと、動物の肢の反力、重量、肢の反力の左右対称性、および他の要素を求めることができる。
【００１５】
複数の動物の移動を容易にするために、ここに開示する概念では、動物の移動に対する妨害（物理的な個別化等）は有利にも行なわれない。側壁（１１５等）が動物の横方向の動きを制約し、それによって動物にプレートおよび間仕切り１２５上を歩かせ、高さに応じて左脚を左プレート１３０上に、右脚を右プレート１２０上に置くように促すか、または強制する。このことは、ここに開示する概念と組合せて用いられる装置にとって、より有利である。
【００１６】
一局面において、ＲＦＤの床部は、図１（ａ）〜図１（ｃ）に示すように、平行な左右の部分またはプレート１３０および１２０を含み得、これらのプレートは任意に、左プレートと右プレートとの間の位置から上方に突出する間仕切りまたは仕切り１２５により隔てられる。構成により、動物がＲＦＤを１回通過する間に動物の肢の４本すべてについて地面反力（ＧＲＦ）を測定することができる限り、プレートのサイズおよび数を変化させてよい。
【００１７】
図１（ｃ）の例に示すように、各プレート１３０および１２０は、それぞれのプレート１３０および１２０の４つの角部に隣接して配置された４つのロードセル１５０のアレイにより支持されている。ＲＦＤは、プレート１３０および１２０の上、下、または隣接してさまざまな位置および配列で配置された、それよりも多くのまたはそれよりも少ないロードセル１５０を含んでよい。ロードセル１５０は、動物が各プレート上に踏み出すのに
伴って生じるＧＲＦを測定する。ＲＦＤシステム１００は、これらのＧＲＦを測定し、それぞれの床部のプレート１３０および１２０上に加えられた重量の位置を計算する。図１（ｃ）に示すように、プレート１３０および１２０の各々は、(XL, YL）および（XR, YR）により規定される別個の座標系を含む。ここで、(XL,R, YL,R)=(0 cm, 0 cm)は、プレート１３０および１２０の各々の最も内側の角部に任意に位置付けられる。使用する軸の好ましい配向において、Xは、プレートの外側に向かう方向が正であり、Yは、プレートの後ろまたは後部の方向が正であり、Zは、上方向が正である。
【００１８】
したがって、プレート１３０および１２０に印加される力の位置は、図１（ａ）〜図１（ｃ）に示す左右の座標系（XL, YLおよびXR, YR）により規定される。１本の肢（すなわち蹄または脚）がプレート１３０および１２０上にあるとき、ＲＦＤシステム１００は、その肢の位置を計算する。２本以上の脚が床部のプレート１３０および１２０に接触しているとき、ＲＦＤシステム１００は、以下に論じるように、等価の力または結果的に得られる力の位置を計算する。牛を含む適用例に関し、上述の米国特許出願連続番号第０９／８２７，３１１号「重量および歩様を分析するための方法および装置」のテイシュ他は、ＧＲＦが実質的に垂直方向のものであり、これらの垂直方向のＧＲＦの差に基づいて、跛行または跛行の発症によるＧＲＦの変動の測定が可能になることを明らかにした。
【００１９】
ロードセル１５０の出力は、たとえば以下のものに限定されないが、外部の８チャネル歪みゲージモジュール（アイオテック社（Iotech）のＤＢＫ４３Ａ等）から信号を受信するＡ／Ｄボード（アイオテック社のDaqBookモデル２００等）などの従来の任意のデータ収集装置に出力され、このデータ収集装置により分析され得る。これらの８つのチャネルは読出され、必要であれば処理され（たとえば増幅され）、サンプリングされたデータは、従来の形態の従来のコンピュータ読取可能な記憶装置に記憶される。サンプリングおよび／または記憶されたデータは、任意に、通信インターフェイスまたはネットワークリンクを介して、たとえばこれらのものに限定されないが、遠隔のコンピュータ、遠隔の記憶装置のローカルネットワーク、ホスト、ＩＳＰ、またはサーバ等の外部のシステムに出力され得る。サンプリングレートは自由に変化させることができるが、当業者に公知であるように、ナイキスト（Nyquist）速度よりも高い速度に維持されるべきである。
【００２０】
耳のタグまたは首輪に組込まれたもの等の、動物に取付けられたトランスポンダ装置（無線周波識別装置（ＲＦＩＤ）等）を用いて、動物の速度を計算することができる。当業者に公知であるように、トランスポンダは、トランスポンダから何らかのデータ、たとえば識別コードもしくは測定値を返すか、または実質的に時間遅延のない状態で質問器から受信した信号の本来の特性を返すことにより、質問器から受信した問合せ要求に応答することでその機能を果たし、それにより、飛行時間に基づいた測距を可能にする。たとえば、ベースユニットまたは質問器は、指定された周波数（２２Ｈｚ等）でエネルギパルス（高強度赤外線パルス等）を問合せ要求として放射することができ、これによりトランスポンダは、データを運ぶ搬送波（超音波パルス等）をベースユニットに放射して返す。ベースユニットは次に、公知の態様で出力パルス（赤外線パルス等）の放射と入来パルス（超音波パルス等）の到着との時間差を測定することができる。基準フレームを規定するための複数のベース（定置センサ）および全地球位置測定システムを含むより高度なシステムもまた、有利にも使用することができる。
【００２１】
便宜上、ここに開示する、動物の特性を動的に記録および分析するための方法およびシステムは、この明細書において、略記「Softseparator」の使用と称される、このような概念の一局面を特に強調して説明する。「Softseparator」は、さらなる処理のために動物のデータを個別化するように適合された、コンピュータ実行可能なコードまたは命令セットを表わす。
【００２２】
一局面において、Softseparatorは、ＲＦＤシステムが生成した２つの入力データファイル、すなわち、識別ファイル（YYMMDDxxx.ID）およびアナログファイル（YYMMDDxxx.ANA）を用いる。YYMMDDxxx.IDファイルは、データが記録された時刻と、日付および稼動中のファイル番号（xxx）と、牛のトランスポンダの番号と、対応する牛の番号とを記録する（表１参照）。繰返される稼動中のファイル数（YYMMDDxxx）を数えることにより、各ファイル内の牛の記録数（n）を得ることができる。図２（表１）に挙げるサンプルについて、ファイル020527020は、２頭の牛199および1027（n=2）の記録を含み、ファイル020527021は、４頭の牛961、217、980、および1026（n=4）の記録を含み、ファイル020527022は、３頭の牛991、213、および885（n=3）の記録を含む。各アナログファイルの記録数（n）が一旦求められると、Softseparatorは、帰納法により、対応するYYMMDDxxx.ANAファイルをn個のアナログファイルに変換する。変換されたファイルの各々は、以下の章で論じるように、１頭の動物のＬＭＶを含む。
【００２３】
YYMMDDxxx.ANAに記録されたＬＭＶに基づき、米国特許出願連続番号第０９／８２７，３１１号「重量および歩様を分析するための方法および装置」のテイシュ他において論じられた手順に従い、Ｙの位置、地面反力（ＧＲＦ）、および体重のプロットが生成される。図３は、ファイル020527020.ANAに記録されたデータに関して生成されたプロットを示す。TimeZones関数により、各蹄／床部の接触の開始時刻（TStart）および終了時刻（TEnd）が求められる。図４は、右プレートの蹄／床部の接触に関して記録されたTimeZones1、2、および3を示す（図３参照）。これらの３つのTimeZonesの開始時刻および終了時刻はそれぞれ、TSTART=1.81（TimeZone_1）、2.85（TimeZone_2）、および4.76（TimeZone_3）と、TEND=2.74（TimeZone_1）、4.65（TimeZone_2）、および7.57（TimeZone_3）とである。
【００２４】
個々のTimeZonesを識別した後に、LimbZoneStatistics関数が呼出され、図５（表２）に規定される１３個の統計学的パラメータが各LimbZoneに関して評価される。列挙したパラメータから明らかなように、７個のパラメータがＹの位置の統計値を評価し、５個のパラメータがＧＲＦの統計値を評価する。これらの１２個の（Ｙの位置およびＧＲＦの）パラメータに基づき、Softseparatorは、各別個のLimbZoneにおける肢の数（J_Limb）を求める。図４に示す３つのLimbZonesの統計学的パラメータを図６（表３）に挙げる。TimeZone_1は１本の肢を反映し、TimeZone_2およびTimeZone_3は２本および３本の肢をそれぞれ反映する。
【００２５】
成体の乳用牛に関し、現行の寸法のＲＦＤは、１列に歩く２頭の牛に満たない長さに対応する。このことは、左または右のＲＦＤの床部に同時に接触する肢の最大数を３に制限する。したがって、任意の所定のLimbZoneにおける１、２、および３本の肢の接触に対応することにより、考え得る限りの妥当な、交差しないすべての歩行に対処することができる。交差する歩行は現時点で考慮されない。しかしながら、この明細書に開示する原理をこの開示に従って適宜拡大縮小および／または変更して、１列に歩く３頭以上の牛または他の動物を許容する寸法を有するＲＦＤに対応することができる。
【００２６】
任意の所定のLimbZone(J_Limb）において床部に接触する肢の数は、以下の事例の１つが選択されることを規定する。
【００２７】
事例１：J_Limb=1である場合、SoftSeparator（登録商標）は、LimbSequence関数を呼出し、所定のLimbZoneが１本の前肢（Ｆ）または後肢（Ｈ）のいずれに関連しているかを判定する。
【００２８】
事例２：J_Limb=2である場合、SoftSeparator（登録商標）は、TwoLimbSeparation関数を呼出し、このLimbZoneは２つの分離された１本の肢の領域に分割される。次に、LimbSe
quence関数を用いて、分離した肢の領域を前肢（Ｆ）または後肢（Ｈ）のいずれかに関連付ける。
【００２９】
事例３：J_Limb=3である場合、ThreeLimbSeparation関数を作動させ、このLimbZoneを３つの１本の肢の領域に分離する。この後、前肢および後肢をそれぞれＦおよびＨと指定するLimbSequence呼出が続く。
【００３０】
図６（表３）において、TimeZone_1は、１本の肢の領域であると識別され、LimbSequence関数は、それを前肢（Ｆ）と指定する。第２のTimeZoneは２本の肢の領域（J_Limb=2）であるため、TwoLimbSeparation関数は、それを２つの１本の肢の領域に変換する（図７（ｃ）参照）。図７（ａ）〜（ｃ）は、分離前のTimeZone_2（図４参照）のＹの位置およびＧＲＦのプロットが、参照番号（ａ）および（ｂ）によりそれぞれ表わされていることを示す。TwoLimbSeparation関数は、２本の肢の領域を２つの１本の肢の領域に分離する。別個の領域についてのＧＲＦのプロットを図７（ｃ）に示す。２つの分離された時間帯（TimeZone_21およびTimeZone_22）のLimbZoneStatisticsが評価され、LimbSequence関数は、TimeZone_21およびTimeZone_22において床部に接触する肢がそれぞれ、後肢（Ｈ）および前肢（Ｆ）であると判定する（図８（表４）参照）。
【００３１】
肢の順序がＦ、Ｈ、およびＦであることを識別した後に（図８（表４）参照）、NewCowCheckを作動させて、この肢の順序が１頭の牛または２頭の牛のいずれのものであるかを判定する。動物は逆行して歩かないという前提が存在するため、後肢（Ｈ）の後ろに前肢（Ｆ）が続く場合、この前肢（Ｆ）は、新規の異なる動物のものであると仮定される。
【００３２】
したがって、TimeZone_1および_21は第１の動物（この場合では牛199）のものであり、LimbZones_22および_3は、他の（n-1）頭の牛のものである。この場合n=2であることから、後者の２本の肢は、歩行する第２の牛（牛1027、図８（表４）参照）のものである。
【００３３】
この反復的アルゴリズムを左右両方の床部に適用し、その結果、図３に示すＬＭＶの記録は、２つの個々のファイルに分離され得る。そのＹの位置、ＧＲＦ、および体重を図９（ａ）および図９（ｂ）に示す。図９（ａ）および図９（ｂ）がそれぞれ、牛199および1027の２つの分離されたＬＭＶの記録におけるＹの位置、ＧＲＦ、および体重のプロットを示すことに注目されたい。体重のプロットが、分離が成功したことを反映する２本、４本、および２本の肢の重量を反映することに注目されたい。牛の分離が成功したことにより、図９（ａ）および図９（ｂ）に示すように、２本の（前）肢、４本の（前および後）肢、および２本の（後）肢の計量の順序を反映する体重のプロットが生じる。
【００３４】
所定のLimbZoneのJ_Limbが３である場合、ThreeLimbSeparation関数を作動させ、図１０（ｃ）に示すように、ＬＭＶの記録を３つの１本の肢の領域に分離する。TwoLimbSeparationの手順と同様に、この場合のSoftSeparatorは、肢の領域の統計値を計算し、肢の順序を求め、新規の牛の記録を識別する。
【００３５】
さらに、上述の内容に加え、SoftSeparatorを３頭および４頭の牛からなる２つの群に適用した。３頭の牛の群の記録およびそれを個々のファイルに分離したものを図１１（ａ）〜図１１（ｄ）に示す。４頭の牛の群の記録を図１２（ａ）〜図１２（ｅ）に示す。これらの３頭の牛および４頭の牛の群における体重のプロットは、２本、４本、および２本の肢の重量を反映し、動物の分離が成功したことを示す。
【００３６】
したがって、SoftSeparatorは、いくつかの群となって反力検出システムを通行する動物のＬＭＶの記録を、個々の動物の複数の記録に分離する。このようなアルゴリズムまたは実行可能な符号化により、動物の通行の速度を遅らせるゲートまたは他の物理的な障壁
が必要ではなくなる。上述の例示的な事例研究は、SoftSeparatorが２、３、および４頭の牛からなる群に対して作動することと、帰納法により、この明細書における概念を拡張して、どのような大きさの動物の群にも対応できることとを示す。
【００３７】
一局面において、このシステムは、時間に対してＹの位置、ＧＲＦ、および体重をプロットする。体重のプロットは、動物の記録の分離が成功したことの測定単位として用いられ得る。１頭の分離された動物の体重のプロットは、２本、４本、および２本の肢の重量の順序を反映する。このパターンからの逸脱はいずれも、２頭以上の動物のＬＭＶの記録、または換言すると、動物の分離が成功しなかったことに関連する。
【００３８】
以下の開示内容では、MATLAB（登録商標）を前提とした例示的な符号化およびコマンドの特定の要素を広範囲に参照する。MATLAB（登録商標）は、効率のよいデータの収集および分析、ならびに数学的な計算と視覚化との統合を可能にし、かつ、機器、ファイル、外部のデータベースおよびプログラム（Ｃ，Ｃ＋＋、Fortran、およびJava（登録商標）で記述された外部ルーチン等）からデータへの高速アクセスおよびデータの導入を可能にする工学用途および科学用途向けの従来の環境である。以下に明示する例ではMATLAB（登録商標）が使用されているが、開示された概念に従い、従来の他の符号化言語もまた、有利にも使用することができる。
【００３９】
図１３は、この明細書に開示する概念のSoftseparatorの実施例に従った論理演算（すなわちフローチャート）の非限定的な例である。ファイル名および変数名はいずれも任意であり、当業者に公知の態様で自由に変化させることができる。さらに、さまざまなサブルーチン、呼出、およびシーケンスの実行の順序は、当業者の知識に整合する態様で、この発明の概念に従って種々に変化させることができる。
【００４０】
以下の開示を容易にするために、次に、さまざまなSoftSeparatorのサブルーチンの短い概要を提示する。Softseparatorのメインプログラムまたはサブルーチンは、未処理のデータファイルを開き、他の関数を呼出す。xygrfplot.m関数は、肢の配置のＸおよびＹの位置と、それに関連する地面反力を計算し、それらを時間の関数としてプロットする。TimeZones_LEFTRRIGHT.m関数は、各時間帯の開始時刻および終了時刻を計算する。LimbZoneStatistics.m関数は、各時間帯についてのさまざまなlimbzoneの統計値を計算する。TwoLimbSeparation.m関数は、所定の時間帯に２本の肢が存在する場合、この２本の肢の領域を、各々が１本の肢を有する２つの領域に分離する。LimbZoneStatisticsfortwolimb.m関数は、２本の肢の領域の分離後に、２つの１本の肢の時間帯に関するさまざまな脚の領域の統計値を計算する。ThreeLimbSeparation.m関数は、１つの時間帯に３本の肢が存在する場合、この３本の肢の領域を、１本の肢からなる３つの領域に分離する。LimbSequence_LEFTRIGHT_Check.m関数は、１本脚の領域を前脚または後脚と指定する。NewCow_LEFTRIGHT_Check.m関数は、このデータが同一の牛または異なる新規の牛のいずれのものであるかを検査する。Cows_separation.m関数は、データベースから新規の牛についての未処理のデータを分離する。
【００４１】
Ｉ．メインプログラム
図１３に示すメインプログラムでは、_.IDファイルを開き、これらのファイルの各々に存在する牛の数nを導出する。サブルーチンは、たとえばMATLAB（登録商標）のtextreadコマンドを用いて_.IDファイルからデータを読出し、そのデータを、charコマンドを用いて文字フォーマットで記憶する。_.IDファイル内の牛の総数は、D_indexという名の変数に格納される。１で始まりD_indexまで進むループが開始され、各ファイルに記録された牛の数が求められる。この牛の数は、_.ID記録に所定のファイル番号が現われる回数を求めることによって得られる。ファイル番号は、一局面において、_.IDファイルの行における３番目の文字である。各ロードセルファイル内の牛の数は、行列「dc」に書き込まれる
。
【００４２】
次に、p=1から長さ（dc）までのループが開始される。このループでは、ロードセルの記録（filename.ANA）およびフォトセルのデータ（filename.DIG）が開かれる。動物の識別番号が、datetimeという名の変数に記録されたdate_strおよびtime_strとともに読出される。較正要素もまた読出され（０、傾き、およびupdated_zero）、cal_factorsという名の２４項目の行列に加え、caliber.DATという名のファイルに記録される。変数char_raw_dataに書き込まれる文字の総数は、lengthコマンドを用いて計算され、このファイルの長さは、変数last_indexに記録される。ファイルloadcell.datが開かれて、i=29から（last_index-3）までのループが開始される。このループでは、未処理のロードセルのデータの文字フォーマットが、８つの列に書き込まれた数字のフォーマットに変換される。この８つの列のデータファイルはloadcell.datと名付けられ、閉じられる。これらのファイルCalibr.datおよびloadcell.datは、コードを実行する１台のプロセッサまたは複数のプロセッサのＲＡＭにロードされ、ロードセルの未処理のデータ値は、以下の関係を用いる適切な重量単位（lb単位等）に変換される。
【００４３】
LCi=ロードセル*傾き＋０      （１）
LCiは、第１列に時間記録（秒単位）を、第２〜第９列にロードセルの値（lb）記録する行列である。
【００４４】
メインプログラムは、関数cows_separationを呼出す。この関数への入力が複数の牛のデータである場合、この関数は、cowseparation変数が１頭の動物のデータしか含まなくなるまで第１の牛を分離することにより、残りの牛のロードセルの未処理の値を別個のcowseparation変数に返す。cowseparationが１頭の動物のデータしか含まなくなると、メインプログラムのループは終了する。
【００４５】
ＩＩ．  TimeZones_LEFTRIGHT
以下の変数、すなわち、Ｙの位置（LEFTRIGHT_Y）および対応するＧＲＦの値（LEFTRIGHT_GRF）は、関数TimeZones_LEFTRIGHTに渡される。
【００４６】
MATLABのfind関数は、右肢または左肢のいずれかのＹの位置が０よりも大きい指数（LR_Y）のベクトルを返す。LR_Yベクトルの最小値および最大値は、識別されてそれぞれLR_tSおよびLR_tEに記憶される。
【００４７】
Ｙの位置がゼロよりも大きな指数のベクトル間の差が計算されて、diff_LR_Yに記憶される（たとえばLR_Y=find（LEFTRIGHT_Y＞0）に関して、LR_tS=min（LR_Y）およびLR_tE=max（LR_Y）。差のベクトルが１よりも大きく、かつ、diff_LRYという名の変数に記憶される（たとえば（diff_LRY=find(diff_LR_Y＞１)）指数を識別するために、find関数をここでもまた用いる。次にサブルーチンは、１本の肢のみが右側または左側に存在する第１の事例（事例１）と、３本以上の肢が右側または左側に存在する第２の事例（事例２）と、２本の肢が右側または左側に存在する第３の事例（事例３）を含むループを実行する。
【００４８】
事例１に関して、ベクトルdiff_LR_Yの長さがゼロ（たとえば、If（length（diff_LR_Y）==０））である場合、検査されたＹの位置は継続される。LR_tSがLRt(1)に記憶され、LR_tEがLRt(2)に記憶される。LRt(x)は、肢の領域内の肢を表わすベクトル変数である。この場合、LRt(1)およびLRt(2)は、左側または右側のいずれかにある１本の肢のみを反映する。
【００４９】
事例２の場合、「elseif」ループが実行される。diff_LRYの長さが１よりも大きい場合、i=0から（length(diff_LRY)-2）までのループが開始される。LRt(1)はLR_tSに等しいと
定義され、LRt(2)は、LR_Yの最小値にdiff_LRY((1)-1）を加えたものに等しい。LRY(1)は、LRYベクトルの最初の数字である。LRt(2*i+3）は、LRt(2*i+2）に(diff_LR_Y(diff_LRY(i+1)を加えたものに等しいと定義される。また、LRt(2*i+4）は、LRt(2*i+3）に(diff_LRY(i+2)-diff_LRY(i+1))-1)を加えたものに等しいと定義され、この時点においてループは終了し、このループの指数ｉが１だけインクリメントされる（i=i+1）。次に、LRt(2*i+3）は、LRt(2*i+2）にdiff_LR_Y(diff_LRY(i+1))を加えたものに等しいと定義され、LRt(2*i+4）は、LR_tEに等しくなるようセットされる。
【００５０】
事例３に関し、elseループが実行される。LRt(1)がmin(LR_Y)に等しいと定義された場合、LRt(2)は(min(LR_Y)+diff_LRY(1)-1)に等しいと定義され、LRt(3)は(LRt(2)+diff_LR_Y(diff_LRY(1)))に等しいと定義され、LRt(4)はLR_tEに等しいと定義される。
【００５１】
上述のサブルーチンの一例として、２つの肢の領域が存在しかつその中に３本以上の肢が示されている場合、計算は、少なくとも１つの共通解を有する処理を有するループ内にとどまる。この例において、第１の肢の領域は指数５に始まり１０で終了し、第２の肢の領域は指数１５に始まり２０で終了する。LR_Yベクトル（Y>0の場合）は、5 6 7 8 9 10 15 16 17 18 19 20 25 26 27 28 29 30として規定される。このサンプルのベクトルから、LR_tS=5(min(LR_Y))およびLR_tE=30(max(LR_Y))である。Diff_LR_Y、すなわち指数の差（Y>0の場合）は、1 1 1 1 1 5 1 1 1 1 1 5を生じる。次に、Diff_LRY(diff_LR_Y>1の指数）は、6 12を生じる。異なる時間帯に対する時間の割当については、LRt(1)=LR_tSおよびLRt(2)=LR_tS+diff_LRY((1)-1)であり、これは、(5+6-1)すなわち１０である。上述のように、LRt(2*i+3)=LRt(2*i+2)+(diff_LR_Y(diff_LRY(i+1)))である。また、LRt(2*i+4)=LRt(2*i+3)+(diff_LRY(i+2)-(diff_LRY(i+1))-1)である。i=0である場合、LRt(3)は、LRt(2)+(diff_LR_Y(diff_LRY(1)))=10+(diff_LR_Y(6))=10+5=15に等しい。LRt(4)=LRt(3)+(diff_LRY(2)-diff_LRY(1))-1)=15+(12-6-1)=20である。ループは、(n-2)個の時間帯にわたって継続する。最後の２つの時間帯には、i=i+1を用いて時間が割当てられ、ここでは、LRt(2*i+3)=LRt(2*i+2)+(diff_LR_Y(diff_LRY(i+1))およびLRt(2*i+4)=LR_tEである。
【００５２】
上述のループが終了した後、別のiiループが開始される。このループに関し、iは０で始まり、length(LRt)/2-1)まで進む。time11はLRt(2*i+1)に等しいと定義され、time22は、LRt(2*i+2)に等しいと定義される。(time22-time11)が１０よりも大きい場合、LimbZoneStatisticsが呼出され、結果的に得られる値がLimbZoneStatsに記憶される。LimbZoneStatsは、LimbZoneStatistics(LEFTRIGHT_Y,LEFTRIGHT_GRF,time11,time22)にセットされる。この時点で、ifおよびforループが終了し、limbZoneの開始時刻および終了時刻がTimeZonesLEFTRIGHTに記憶される。
【００５３】
ＩＩＩ．  Cows_Separation.m サブルーチン
cows_Separationサブルーチンでは、ミリ秒を単位とした時間の値(time_ms)、左右の肢のＸおよびＹ座標(X_LEFT,Y_LEFT,X_RIGHT,およびY_RIGHT)、左右のプレートに関する、Ｙ軸についてのモーメントの値(ADD_LEFT,ADD_RIGHT)、左右のプレートに関する地面反力（ＧＲＦ）(GRF_LEFT,GRF_RIGHT)、時間に対する重量の関数(WEIGHT)、ならびに記録された重量の最大値(max_weight)が記録される。これらの値はすべて、XYGRFPlotという名の関数により計算され、それらの値は、変数XYGRF_LEFT_RIGHTに記録される。ファイルY_POS.datが開かれ、記憶されたデータが変数Y_POSに読出される。Y_POSは、５個の列を有する行列であり、割当てられた値は以下の通りである。すなわち、（１列目で始まり５列目まで）time_ms、LEFT_Y、LEFT_GRF、RIGHT_Y、およびRIGHT_GRFである。
【００５４】
次に、関数TimeZones_LEFTRIGHTが、LEFT_YおよびLEFT_GRFの値により呼出される。この関数は、左プレートの検査された時間帯の開始時刻および終了時刻（それぞれL_tS、およびL_tEと記す）の値を返す。
【００５５】
LEFTRIGHT_LIMB_STATS.datという名のデータファイルに記録されたデータは、L_Limbsという名の変数としてロードされ記憶される。カウンタを有し、yyという名のループは、１で始まって、左プレート上を通った肢の総数の合計（L_Limbs(12,;)の累積総計（cumsum））まで進む。NewCow_TimeOnLeft＞0である場合、yyループは終了する。
【００５６】
次のいくつかの「ifステートメント」は、プログラムがこのコードを通過するのが始めてであるかどうかを確認する。初回の確認は、それ以外の確認とは異なる。プログラムは、検査された時間帯が１本の肢のデータを含む(L_Limbs(12,:)==1)かどうか、およびFHL_Limb==0)を通過するのが始めてであるか否かを確認する。これらの２つの条件が満たされた場合、検査した肢は前肢であり、FHL_Limbは１にセットされる。
【００５７】
検査された時間帯が２本の肢のデータを含み(L_Limb(12,;)==2)、(FHL_Limb==0)を初めて通過する場合、関数TwoLimbSeparationを作動させて、２本の肢のＧＲＦの軌跡（signature）を１本の肢の２つのＧＲＦの軌跡に分解する。これらの軌跡は、L_Limbs変数に書き込まれる。この時点で、関数LimbSequence_LEFTRIGHT_Checkを作動させ、この関数がTRUE（１０の値）を返した場合、ループは終了する。そうでない場合、LimbSequence_LEFTRIGHTから返された値が変数LimbSequenceCheckおよびFHL_Limbに記録される。
【００５８】
検査された時間帯が３本の肢のデータを含み(L_limb(12,;)==3)、(FHL_Limb==0)を初めて通過し、Ｙの位置の最大の傾きの時間が、Ｙの位置の最小の傾きが生じた時間よりも小さい(L_Limbs(5,;)＜L_Limbs(7,;))場合、関数ThreeLimbSeparationCase1を作動させ、３本の肢のＧＲＦの軌跡を１本の肢の３つのＧＲＦの軌跡に分解する。これらの軌跡は、L_Limbs変数に書き込まれる。この時点で関数LimbSequence_LEFTRIGHT_Checkを作動させ、この関数がTRUE（１０の値）を返す場合、このループは終了する。そうでない場合、LimbSequence_LEFTRIGHTから返された値は、変数LimbSequenceCheckおよびFHL_Limbに記録される。
【００５９】
検査された時間帯が３本の肢のデータを含み（L_Limb(12,;)==3）、（FHL_Limb==0）を初めて通過し、Ｙの位置の最大の傾きの時間が、Ｙの位置の最小の傾きが生じた時間よりも大きい（L_Limbs(5,;)＞L_Limbs(7,:)）場合、関数ThreeLimbSeparationCase2を作動させ、３本の肢のＧＲＦの軌跡を１本の肢の３つのＧＲＦの軌跡に分解する。これらの軌跡は、L_Limbs変数に書き込まれる。この時点で関数LimbSequence_LEFTRIGHT_Checkを作動させ、この関数がTRUE（１０の値）を返す場合、このループは終了する。そうでない場合、LimbSequence_LEFTRIGHTから返された値は、変数LimbSequenceCheckおよびFHL_Limbに記録される。
【００６０】
そうでない場合、LimbSequence_LEFTRIGHT_Checkを作動させ、LimbSequenceCheckの値が検査されてTRUEであることが分かる（LimbSequenceCheck==10）。ここで、検査した領域は、１本の肢のデータのデータを含み（L_Limbs(12,;)==1）、このプログラムを初めて通過するのではない（FHL_Limb is not 0）が実行される。返されたTRUE値（LimbSequenceCheck=10）はループを終了し、そうでない場合、FHL_Limbが更新されてLimbSequenceCheckの値となる。
【００６１】
或る時間帯のデータが２本の肢を含み（L_Limbs(12,;)==2）、コードを初めて通過するのではない場合（FHL_Limb is not 0）、TwoLimbSeparationを作動させ、２本の肢のＧＲＦの軌跡を１本の肢の２つの軌跡として分解する（L_Limbs=Two_Limb_Separation）。
【００６２】
検査された時間帯が３本の肢のデータを含み（L_Limb(12,;)==3）、Ｙの位置の最大の傾きの時間が、Ｙの位置の最小の傾きが生じた時間よりも小さい（L_Limbs(5,;)＜L_Limb
s(7,;)）場合、ThreeLimbSeparationCase1を作動させ、３本の肢のＧＲＦの軌跡を１本の肢の３つのＧＲＦの軌跡に分解する。これらの軌跡はL_Limbs変数に書き込まれる。
【００６３】
検査された時間帯が３本の肢のデータを含み（L_Limbs(12,;)==3）、Ｙの位置の最大の傾きの時間が、Ｙの位置の最小の傾きが生じた時間よりも大きい（L_Limbs(5,;)＞L_Limbs(7,;)）場合、ThreeLimbSeparationCase2を作動させ、３本の肢のＧＲＦの軌跡を１本の肢の３つのＧＲＦの軌跡に分解する。これらの軌跡はL_Limbs変数に書き込まれる。
【００６４】
関数NewCow_TimeOnLEFTRIGHTを作動させ、左プレート上で新規の牛が識別された時刻がNewCowTimeOnLeftとして記録される。上に列挙したプロセス全体が右のプレートに対して繰返され、新規の牛の記録が右プレート上で識別された時刻が、NewCowTimeOnRightとして記録される。
【００６５】
NewCowTimeOnLeftおよびNewCowTimeOnRightとの間の最大値が識別されて、変数nとして記録される。次に、１頭の牛の左右の側の記録がマージされる。一局面において、最初のn個の記録の、対応するロードセルのデータは、変数名firstcow_rawdataに記憶され、この記録の末尾に２０個のゼロのマージンが任意で追加される。newcow_timeOnLeft＜newcowtimeOnRightである場合、エントリnewcow_timeOnLEFT+1からnewcow_timeOnRIGHTまで、行列firstcow_rawdataの第１〜第４列（左プレートのロードセル）にゼロが挿入される。newcow_timeOnLeft＞newcowtimeOnRightである場合、エントリnewcow_timeOnRIGHT+1からnewcow_timeOnLEFTまで、行列firstcow_rawdataの第５〜第８列（右プレートのロードセル）にゼロが挿入される。この行列newcowloadcellは別個のファイルとして記録され、firstcow_rawdataと名付けられる。記録された変数は、関数XYGRFPlotを用いてモニタにプロットされる。
【００６６】
NewCowTimeOnLeftまたはNewCowTimeOnRightがゼロである場合、変数nextcow_timeonRIGHTおよびnextcow_timeonLEFTがゼロにセットされる。そうでない場合、nextcow_timeonLEFT=NewCowTimeOnLEFT+10である。newcowTimeonLEFTまたはnewcowTimeonRIGHTがゼロである場合、変数nextcow_timeonRIGHTおよびnextcow_timenonLEFTはゼロにセットされる。そうでない場合、nextcow_timeonRIGHT=NewCowTimeOnRight+10である。（nextcow_timeonLEFT＜nextcow_timeonRIGHT）である場合、ロードセルの行列は、エントリnextcow_timeonLEFTからエントリnextcow_timeonRIGHT+10まで、第５〜第８列（右プレート）がゼロで埋められる。
【００６７】
(nextcow_timeonLEFT＞nextcow_timeonRIGHT)である場合、ロードセルの行列は、エントリnextcow_timeonRIGHTからエントリnextcow_timeonLEFTまで、第１〜第４列がゼロのエントリで埋められる。
【００６８】
newcow_timeonLEFTおよびnewcow_timeonRIGHTがいずれもゼロよりも大きい場合、newcowloadcellという名の行列が、残りの動物のロードセル値（すなわち、エントリn-20で始まる行列ロードセルの８列すべての値）を得る。このnewcowloadcellは、lbに変換されてプロットされる。この時点でcowseparation関数を作動させ、newcowloadcellが１頭の牛のデータしか含まなくなるまでこのプロセスが続く。
【００６９】
ＩＶ．  TwoLimbSeparation.m サブルーチン
以下の変数、すなわち、肢の統計値（LR_Limbs）、Ｙの位置（LEFTRIGHT_Y）、ＧＲＦ（GRF_LEFTRIGHT）、Ｙ軸についてのモーメント（ADD_LEFTRIGHT）、検査した領域のうちのどれが２本の肢の領域であるかを示す整数（kr）、および動物の最大重量（max_weight）が、TwoLimbSeparation関数に渡される。肢の統計値の行および列の数は、LR_Limbs上にMatlabのsize関数を呼出すことにより得られ、それぞれｘおよびｙに記憶される。
【００７０】
検査した肢の領域の開始時刻にしきい値１０を加えたもの（(LR_Limbs(10,;)+10）に始まり、この肢の領域の終了時刻からしきい値１０を引いたもの（(LR_Limbs(11,;)-10）に至るyy1ループが開始される。このループでは、５ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差が評価され、この差が３以上である場合にループは崩壊し、ループが最初に生じたときのyy1の値が記録される。
【００７１】
検査した肢の領域の終了時刻からしきい値１０を引いたもの（(LR_Limbs(11,;)-10）に始まり、この肢の領域の開始時刻にしきい値１０を加えたもの（(LR_Limbs(10,;)+10）に戻るyy2ループが開始される。このループでは、５ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差が評価され、この差の絶対値が３以上である場合にループは崩壊し、ループが最初に生じたときのyy2の値が記録される。
【００７２】
力の境界を求めるために、Ym1には、検査した肢の領域の開始時刻にしきい値１０を加えたもの（LR_Limbs(10,;)+10）に始まってyy1に至るＹの位置のベクトルの平均値が割当てられる。Ym2には、検査した肢の領域の終了時刻からしきい値１０を引いたもの（LR_Limbs(11,;)-10）に始まってyy2に至るＹの位置のベクトルの平均値が割当てられる。
【００７３】
検査した肢の領域の開始時刻（LR_Limbs(10,;）から終了時刻（LR_Limbs(1１,;）まで、mmループが開始される。２つの平衡連立方程式を解くためにクラマース（Kramer's）の規則が用いられ、２本の肢のＧＲＦの軌跡（GRF_LEFTRIGHT）から、２本の個別化された肢の２つの別個のＧＲＦの軌跡が評価される（GRF_LRFTRIGHT_yy1およびGRF_LRFTRIGHT_yy2）。このような符号化の一例は以下のものを有する。すなわち、LR_Limbs(10,kr):LR_Limbs(11,kr)に等しいmmの場合、D1(mm)はdet([GRF_LEFTRIGHT(mm)1;ADD_LEFTRIGHT(mm)Ym2])に等しく、D2(mm)はdet([1 GRF_LEFTRIGHT(mm);Ym1 ADD_LEFTRIGHT(mm)])に等しく、ここで、Ym1はmean(LEFTRIGHT_Y((LR_Limbs(10,kr)+10):yy1))に等しく、Ym2はmean(LEFTRIGHT_Y((LR_Limbs(11,kr)-10):-1:yy2))に等しい。行列Ｄはdet([11;Ym1 Ym2])に等しい。これに対応して、分解されたGRF_LEFTRIGHT_yy1はD1./Dに等しく、GRF_LEFTRIGHT_yy2はD2./Dに等しい。
【００７４】
GRF_LEFTRIGHT_yy1が最大であって１００よりも大きいときの時間が、LEFTRIGHT_yy1_t1に記録される。GRF_LEFTRIGHT_yy2が最小であって１００よりも大きいときの時間が、LEFTRIGHT_yy2_t2に記録される。
【００７５】
肢の領域の統計値をシフトする際に、反転したkkループは、肢の領域の統計値の最大値(y)の列の数で始まり、検査した肢の領域の現時点での指数(kr)において終了する。肢の統計値の行列においてkk番目の検査された列（LR_Limbs(;,kk)）は、(kk+1)番目の列にコピーされる。第２の（分離された）肢の開始時刻および終了時刻は、それぞれtime11およびtime22として記録される。分離された第２の肢の領域の肢の統計値が計算されて、LR_Limbs行列における(kr+1)番目の列においてLimbZoneStats変数に記憶される。第１の（分離された）肢の開始時刻および終了時刻は、それぞれtime11およびtime22として記録される。分離された第１の肢の領域の肢の統計値が計算されて、LR_Limbs行列における(kr)番目の列においてLimbZoneStats変数に記憶される。
【００７６】
行列Two_Limb_Separationは更新される。
【００７７】
Ｖ．  ThreeLimbSeparationCase1.m サブルーチン
以下の変数、すなわち、肢の統計値（LR_Limbs）、Ｙの位置（LEFTRIGHT_Y）、ＧＲＦの行のロードセル値（LEFTRIGHT_GRF）、正規化されたＧＲＦ（GRF_LEFTRIGHT）、Ｙ軸についてのモーメント（ADD_LEFTRIGHT）、検査した領域のうちのどれが３本の肢の領域で
あるかを示す整数（kr）、および動物の最大重量（max_weight）が、ThreeLimbSeprationCase1関数に渡される。肢の統計値の行および列の数は、LR_Limbs上にMatlabのsize関数を呼出すことにより得られ、それぞれｘおよびｙに記憶される。
【００７８】
検査した肢の領域の開始時刻に２のしきい値を加えたもの（(LR_Limbs(10,;)+2）において始まり、検査した肢の領域内で最小のｙの位置の傾きが生じた時刻から２のしきい値を引いたもの（LR_Limbs(7,;)-2）に至るyy1ループが開始される。このループでは、２ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差の絶対値が評価され、この差が２未満である場合にループは崩壊し、ループが最初に生じたときのyy1の値が記録される。
【００７９】
検査した肢の領域内で最小のｙの位置の傾きが生じた時刻から２ユニットのしきい値を引いたもの（(LR_Limbs(7,;)-2）において始まり、肢の領域の開始時刻に２のしきい値を加えたもの（(LR_Limbs(10,;)+2）まで戻るyy2ループが開始される。このループでは、２ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差の絶対値が評価され、この絶対値が２未満である場合にループが崩壊し、ループが最初に生じたときのyy2の値が記録される。
【００８０】
力の境界を求めるために、Ym1およびYm2には、時刻yy1およびyy2のそれぞれにおけるＹの位置の値が割当てられる。検査した肢の領域の開始時刻（LR_Limbs(10,;）から終了時刻（LR_Limbs(11,;）までmmループが開始される。２つの平衡連立方程式を解くためにクラマースの規則が用いられ、２本の肢のＧＲＦの軌跡（GRF_LEFTRIGHT）から、個別化された２本の肢の２つの別個のＧＲＦの軌跡が評価される（GRF_LRFTRIGHT_yy1およびGRF_LRFTRIGHT_yy2）。GRF_LEFTRIGHT_yy1が最大であり１００よりも大きいときの時間がLEFTRIGHT_yy1_t1に記録される。GRF_LEFTRIGHT_yy2が最小であり１００よりも大きいときの時間がLEFTRIGHT_yy2_t2に記録される。
【００８１】
肢の領域の統計値をシフトする際に、反転したkkループは、肢の領域の統計値の行列における列の数（y）で始まり、検査した肢の領域の現在の指数（kr）において終了する。肢の統計値の行列においてkk番目の検査された列（LR_Limbs(;,kk)）は二度コピーされ、すなわち、一度目は（kk+1）番目の列に、二度目は（kk+2）番目の列にコピーされる。
【００８２】
３本の肢の位置の第１の部分についての肢の領域の統計値を再計算する際に、第１の肢の開始時刻および終了時刻がそれぞれtime11およびtime22として記録される。分離された第１の肢の領域の肢の統計値が計算されて、LR_Limbs行列の（kr）番目の列においてLimbZoneStats変数に記憶される。第３の肢の開始時刻および終了時刻はそれぞれ、time11およびtime22として記録される。３本の肢の位置の第２の部分についての肢の領域の統計値を再計算する際に、３本の肢のこの記録における第２の肢の開始時刻および終了時刻はそれぞれ、time11およびtime22である。分離された第２の肢の領域の肢の統計値が計算されて、LR_Limbs行列の（kr+1）番目の列においてLimbZoneStats変数に記憶される。３本の肢の位置の第１の部分についての肢の領域の統計値を再計算する際に、分離された第３の肢の領域の肢の統計値が計算されて、LR_Limbs行列の（kr+2）番目の列においてLimbZoneStats変数に記憶される。
【００８３】
行列Three_Limb_Separationは更新される。
【００８４】
ＶＩ．  ThreeLimbSeparationCase2.mサブルーチン
以下の変数、すなわち、肢の統計値（LR_Limbs）、Ｙの位置（LEFTRIGHT_Y）、ＧＲＦの行のロードセル値（LEFTRIGHT_GRF）、正規化されたＧＲＦ（GRF_LEFTRIGHT）、Ｙ軸についてのモーメント（ADD_LEFTRIGHT）、検査した領域のうちのどれが３本の肢の領域で
あるかを示す整数（kr）、および動物の最大重量（max_weight）がThreeLimbSeprationCase2関数に渡される。肢の統計値の行および列の数は、LR_Limbs上にMatlabのsize関数を呼出すことにより得られ、それらの数はそれぞれｘおよびｙに記憶される。
【００８５】
最小のｙの位置の傾きが生じる時刻に２のしきい値を加えたもの（(LR_Limbs(7,;)+2）に始まり、肢の領域の終了時刻から２のしきい値を引いたもの（LR_Limbs(11,;)-2）に至る、検査した肢の領域において開始する、yy1ループが開始される。このループでは、２ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差の絶対値が評価され、この絶対値が２未満である場合にループが崩壊し、ループが最初に生じたときのyy1の値が記録される。
【００８６】
検査した肢の領域の終了時刻から２ユニットのしきい値を引いたもの（(LR_Limbs(11,;)-2）に始まり、最小のｙの位置の傾きが生じた時刻に２のしきい値を加えたもの（(LR_Limbs(7,;)+2）に戻るyy2ループが開始される。このループでは、２ユニット幅の稼動中のウインドウとＹの位置のベクトルとの差の絶対値が評価され、この値が２未満である場合にこのループが崩壊し、このループが最初に生じたときのyy2の値が記録される。
【００８７】
力の境界を求めるために、Ym1およびYm2には、それぞれ時刻yy1およびyy2におけるＹの位置の値が割当てられる。検査した肢の領域の開始時刻（LR_Limbs(10,;）から終了時刻（LR_Limbs(11,;）までmmループが開始される。２つの平衡連立方程式を解くためにクラマースの規則が用いられ、２本の肢のＧＲＦの軌跡（GRF_LEFTRIGHT）から、個別化された２本の肢の２つの別個のＧＲＦの軌跡が評価される（GRF_LRFTRIGHT_yy1およびGRF_LRFTRIGHT_yy2）。GRF_LEFTRIGHT_yy1が最大であり１００よりも大きいときの時間がLEFTRIGHT_yy1_t1に記録される。GRF_LEFTRIGHT_yy2が最小であり１００よりも大きいときの時間がLEFTRIGHT_yy2_t2に記録される。
【００８８】
肢の領域の統計値をシフトする際に、反転したkkループは、肢の領域の統計値の行列の列の数（y）において始まり、検査した肢の領域の現在の指数（kr）において終了する。肢の統計値の行列においてkk番目の検査された列（LR_Limbs(;,kk)）が二度コピーされ、すなわち、一度は（kk+1）番目の列に、二度目は（kk+2）番目の列にコピーされる。３本の肢のこの記録における第２の肢の開始時刻および終了時刻はそれぞれ、time11およびtime22である。
【００８９】
分離された第１の肢の領域の肢の統計値が計算され、LR_Limbs行列の（kr）番目の列においてLimbZoneStats変数に記憶される。第１の肢の開始時刻および終了時刻はそれぞれ、time11およびtime22として記録される。分離された第３の肢の領域の肢の統計値が計算され、LR_Limbs行列の（kr+2）番目の列においてLimbZoneStats変数に記憶される。第３肢の開始時刻および終了時刻はそれぞれ、time11およびtime22として記録される。分離された第２の肢の領域の肢の統計値が計算されて、LR_Limbs行列の（kr+1）番目の列においてLimbZoneStats変数に記憶される。
【００９０】
行列Three_Limb_Separationは更新される。
【００９１】
ＶＩＩ．  LimbZoneStatistics.mサブルーチン
以下の変数、すなわち、Y_positionのベクトル（LIMB_Y1）、検査した肢についてのＧＲＦベクトル（LIMB_GRF1）、検査した肢の領域の開始時刻および終了時刻（それぞれtime1およびtime2）が、関数LimbZoneStatisticsに渡される。
【００９２】
次に、この関数の内部にある変数が初期化される。これらの変数は、max_Rt_slope=-1000000、min_Rt_slope=1000000、pos_delta_slope_counter=0、neg_delta_slope_counter=
0、delta_grfslope_counter=0、time_min_slope=1000000、およびtime_max_slope=-1000000を含む。（time2-time1）＞30である場合、平均のＹの位置の値（Y_mean）、最大のＹの位置の値（Y_max）、および最小のＹの位置の値（Y_min）が計算される。これらの計算では、Ｙの位置のベクトルのマージンしきい値が１０にセットされる。
【００９３】
次に、(time1+10）および(time2-10)との間における地面反力（ＧＲＦ）の最大値またはピークおよび平均値が求められ、それぞれRGRF_maxおよびR_AGRFに記憶される。R_AGRFはまず、RCUMGRF=(cumsum(LIMB_GRF1((time1+10):(time2-10))))を規定することによって求められ、ここでは、R_IMPULSE=maxRCUMGRF)*0.01およびR_stancetime=(abs((time1+10)-(time2-10)))*0.01である。次に、R_AGRFが(R_IMPULSE)/(R_STANCETIME)の比にセットされる。
【００９４】
最大および最小の傾きならびにそれぞれの時刻を計算するために、(time1+10)から稼動して(time2-20)に至るループjを開始し、Ｙの位置の値の、１０の幅を有する稼動中のウインドウの傾き（Rt_slope）を計算する。傾きの最小値および最大値ならびにこれらの最小値および最大値が生じる時刻（それぞれmin_Rt_slope、time_min_slope、max_Rt_slope、およびtime_max_slope）が計算される。
【００９５】
(Rt_slope＞2)である場合、pos_delta_slope_counterは１ユニットだけインクリメントされる。(Rt_slope＜-2)である場合、neg_delta_slope_counterは１ユニットだけインクリメントされる。
【００９６】
time1に始まり(time2-2)に至るjjjjループを開始する。このループでは、２ユニット幅の稼動中のウインドウについてＧＲＦの傾きが計算される。連続する２つのＧＲＦの傾きの値の積が負である場合、delta_grfslope_counterの値は１だけインクリメントされる。
【００９７】
time2およびtime1との差が３０未満である場合、平均のＹの位置の値（Y_mean）、最大のＹの位置の値（Y_max）、および最小のＹの位置の値（Y_min）が、５のマージンしきい値で計算される。たとえば、Y_meanは、abs(mean(LIMB_Y1(((time1+5):(time2-5))))として計算される。
【００９８】
肢の領域についてのＧＲＦの最大値またはピークおよび平均が次に、(time1+5)と(time2-5)との間で計算され、それぞれRGRF_maxおよびR_AGRFに記憶される。R_AGRFの計算は、上述の計算と同様である。
【００９９】
次に、最大および最小の傾きならびにそれぞれの時刻を求める。(time1+5)から(time2-10)に至るjループは、Ｙの位置の値の、５の幅を有する稼動中のウインドウの傾き（Rt_slope）を計算する。傾きの最小値および最大値ならびにこれらの最小値および最大値が生じる時刻（それぞれmin_Rt_slope、time_min_slope、max_Rt_slope、およびtime_max_slope）が計算される。
【０１００】
(Rt_slope＞2)である場合、pos_delta_slope_counterが１ユニットだけインクリメントされる。(Rt_slope＜-2)である場合、neg_delta_slope_counterは１ユニットだけインクリメントされる。
【０１０１】
time1に始まり(time2-2)に至るjjjjループが開始される。このループでは、ＧＲＦの傾きが、２ユニット幅を有する稼動中のウインドウについて計算される。たとえば、Rt_GRFslope(jjjj)=(((LIMB_GRF1(jjjj+2)−LIMB_GRF1(jjjj))))である。連続する２つのＧＲＦの傾きの値の積が負である場合、delta_grfslope_counterの値は１だけインクリメントされる。
【０１０２】
以下の「if-else」ステートメントでは、検査したlimbzoneが１つ、２つ、または３つのlimbzoneのいずれであるかをコードが判定する。
【０１０３】
以下の条件セットのいずれかが満たされた場合、その領域内の肢の数は１である。この条件セットは、(IRt_Limb=1):((Y_max-Y_min)＜6かつ(Y_mean-Y_min)＜6かつmax_Rt_slope＜5かつmin_Rt_slope＞-5))か、((delta_grfslope_counter=1)かつmax_Rt_slope＜5)かつ(min_Rt_slope＞-5))か、((delta_grfslope_counter=1)かつ(max_Rt_slope＞=5)かつ((time_max_slope-time1)＜20)かつ(min_Rt_slope＞-5))か、((delta_grfslope_counter=1)かつ(max_Rt_slope＞=5)かつ((time2-time_max_slope)＜２０)かつ(min_Rt_slope＞-5))か、((delta_grfslope_counter=1)かつ(min_Rt_slope＜=-5)かつ((time2-time_min_slope＜20)かつ(max_Rt_slope＜5))か、((delta_grfslope_counter=1)かつ(min_Rt_slope＜=-5)および((time_min_slope-time1)＜20)かつ(max_Rt_slope＜5)))である。
【０１０４】
((Y_max-Y_mean＜6)かつ(Y_mean-Y_min＜6)かつ(pos_delta_slope_counter＜0.09*(time2-time1))かつ(neg_delta_slope_counter＜0.09*(time2-time1)))の場合、この領域内の肢の数は１である（IRt_Limb=1）。
【０１０５】
((Y_max-Y_mean＞6)かつ(Y_mean-Y_min＞6)かつ(max_Rt_slope＞5)かつ(min_Rt_slope＜-5)かつ(pos_delta_slope_counter＞0.09*(time2-time1))かつ(neg_delta_slope_counter＞0.09*(time2-time1)))の場合、この領域内の肢の数は３である（IRt_Limb=3）。
【０１０６】
それ以外の場合、肢の数は２である（IRt_Limb=2）。
【０１０７】
LimbZoneStatsベクトルは、Y_mean、Y_max、Y_min、abs(max_Rt_slope)、time_max_slope、min_Rt_slope、time_min_slope、RGRF_max、R_AGRF、time1、time2、IRt_Limb、pos_delta_slope_counter、neg_delta_slope_counter、IRt_Limb、およびdelta_grfslope_counterの計算された値により更新される。
【０１０８】
ＶＩＩＩ．  LimbZoneStatisticsfortwolimb1.mサブルーチン
Y_positionのベクトル（Limb_Y1）、検査した肢についてのＧＲＦのベクトル（LIMB_GRF1）、２本の肢の場合に分離された肢についてのY_position（Ym）、検査した肢の領域の開始時刻および終了時刻（それぞれtime1およびtime2）の変数が関数LimbZoneStatisticsfortwolimb1に渡される。この関数の内部の変数は初期化される。
【０１０９】
(time1+10)と(time2-10)との間のＧＲＦのピークおよび平均が計算されて、それぞれRGRF_maxおよびR_AGRFに記憶される。
【０１１０】
(time1+10)から稼動して(time2-20)に至るループjが開始され、Ｙの位置の値の、１０の幅を有する稼動中のウインドウの傾き（Rt_slope）が計算される。傾きの最小値および最大値ならびにこれらの最小値および最大値が生じる時刻（それぞれ、min_Rt_slope、time_min_slope、max_Rt_slope、およびtime_max_slope）が計算される。
【０１１１】
(Rt_slope＞2)である場合、pos_delta_slope_counterは１ユニットだけインクリメントされる。(Rt_slope＜-2)である場合、neg_delta_slope_counterは１ユニットだけインクリメントされる。
【０１１２】
time1に始まり(time2-2)に至るjjjjループが開始される。このループでは、ＧＲＦの傾きが、２ユニット幅を有する稼動中のウインドウについて計算される。連続する２つのＧＲＦの傾きの値の積が負である場合、delta_grfslope_counterの値は１だけインクリメン
トされる。
【０１１３】
time2とtime1との差が３０未満である場合、平均のＹの位置の値（Y_mean）、最大のＹの位置の値（Y_max）、および最小のＹの位置の値（Y_min）が５のマージンしきい値で計算される。
【０１１４】
(time1+5)と(time2-5)との間の地面反力（ＧＲＦ）のピークおよび平均が計算され、それぞれRGRF_maxおよびR_AGRFに記憶される。
【０１１５】
(time1+5)から稼動して(time2-10)に至るループjが開始され、Ｙの位置の値の、５の幅を有する稼動中のウインドウの傾き（Rt_slope）が計算される。傾きの最小値および最大値ならびにこれらの最小値および最大値が生じる時刻（それぞれmin_Rt_slope、time_min_slope、max_Rt_slope、およびtime_max_slope）が計算される。
【０１１６】
(Rt_slope＞2)である場合、pos_delta_slope_counterが１ユニットだけインクリメントされる。(Rt_slope＜-2)である場合、neg_delta_slope_counterは１ユニットだけインクリメントされる。
【０１１７】
time1に始まり(time2-2)に至るjjjjループが開始される。このループでは、２ユニット幅を有する稼動中のウインドウについてのＧＲＦの傾きが計算され、連続する２つのＧＲＦの傾きの値の積が負である場合、delta_grfslope_counterの値は１だけインクリメントされる。
【０１１８】
ルーチンの最後に肢が分離され、検査した肢の領域が１本の肢の領域であることと、変数IRt_Limbに値１が割当てられること（IRt_Limb=1）とが確実となる。
【０１１９】
LimbZoneStatsベクトルは、Y_mean、Y_max、Y_min、abs(max_Rt_slope)、time_max_slope、min_Rt_slope、time_min_slope、RGRF_max、R_AGRF、time1、time2、IRt_Limb、pos_delta_slope_counter、neg_delta_slope_counter、IRt_TwoLlimb、およびdelte_grfslope_counterの計算された値で更新される。
【０１２０】
ＩＸ．  NewCow_LEFTRIGHT_Check.mサブルーチン
以下の変数、すなわち、前／後肢の順序（FHLR_Limb（前肢に対して１、後肢に対して−１、肢がプレートの前端部（前端部から５インチ以内）にある場合は１００、肢がプレートの後端部（端部から５インチ以内）にある場合は−１００）、および肢の領域の統計値の行列（LR_Limbs）が、関数NewCow_LEFTRIGHT_Checkに渡される。このサブルーチンの内部の変数は初期化される。
【０１２１】
１から（行列FHLR_Limbの長さ-1）までループiiが開始される。
【０１２２】
以下の条件セットのいずれか１つが満たされる場合、検査した肢の領域は新規の牛に属する（New_Cow_LEFTRIGHT=1）。すなわち、（１）現在の肢の１つ前の肢が後肢であり（FHLR_Limb(ii)=-1）、現在の肢が前肢であり（FHLR_Limb(ii+1)=1）、現在の肢の前の肢の平均のY_positionが、現在の肢の平均のＹの位置よりも大きい（LR_Limbs(1,ii)＞LR_Limbs(1,(ii+1))）か、（２）現在の肢の前の肢が後肢であり（FHLR_Limb(ii)=-1）、現在の肢が前肢であり（FHLR_Limb(ii+1)=1）、現在の肢の開始時刻と現在の肢の１つ前の肢の終了時刻との差が０．５秒よりも大きい（LR_Limbs(10,(ii+1))-LR_Limbs(11,(ii))＞50）か、（３）検査した領域内の肢の数が１であり（LR_Limbs(12,(ii+1))=1）、現在の肢の前の肢がプレートの開始部分から５インチ以内にあり（FHLR_Limb(ii)=100）、現在の肢の前の肢の平均のY_Positionと現在の肢の平均のＹの位置との差が１５よりも大きい（
LR_Limbs(1,(ii)))-(LR_Limbs(1,(ii+1))))＞15）か、（４）現在の肢の前の肢が後肢であり（FHLR_Limb(ii)=-1）、現在の肢がプレートの前端部から１インチ以内にあり（FHLR_Limb(ii+1)=-100）、現在の肢の前の肢の平均のY_positionが、現在の肢の平均のY_Positionよりも大きい（LR_Limbs(1,ii)＞LR_Limbs(1,(ii+1)）場合である。
【０１２３】
新規の牛の開始時刻がNewCow_TimeOnLEFTRIGHTに記録される。
【０１２４】
Ｘ．  LimbSequence_LEFTRIGHT_Check.mサブルーチン
関数LimbSequence_LEFTRIGHT_Checkに渡される変数は、前／後肢の順序（FHLR_Limb（前肢に対して１、後肢に対して−１、肢がプレートの前端部（前端部から１インチ以内）にある場合は−１００、肢がプレートの後端部（端部から６インチ以内）にある場合は１００）、肢の領域の統計値の行列（LR_Limbs）、および検査した肢の領域の稼動中の指数（kkr）を含む。このサブルーチンの内部の変数は初期化される。
【０１２５】
このサブルーチンは、以下に述べるように、検査したlimbzoneが前肢のものであるか後肢のものであるかを識別し、４つの異なる事例のいずれが適用可能であるかを判定する。
【０１２６】
「Case 0」と記されたサブルーチンでは、以下の条件が評価される。検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、それがこのシーケンス内で検査された最初の肢である（FHLR_Limb=0）場合、この肢は前肢であり、FHLR_Limb(kkr)には１の値が割当てられる。検査した肢の領域が１本の肢のものであり（LR_Limbs(12,kkr)=1）、平均のY_positionがプレートの端部から７２インチを上回る（LR_Limbs(1,kkr)＞72）場合、FHLR_Limb(kkr)には１００の値が割当てられる（FHLR_Limb(kkr)=100）。検査した肢の領域が１本の肢のものであり（(LR_Limbs(12,kkr)=1）、平均のY_positionがプレートの前端部から１インチ未満である（LR_Limbs(1,kkr)＜1）場合、FHLRには−１００の値が割当てられる（FHLR_Limb(kkr)=-100）。
【０１２７】
「Case 1」と記されたサブルーチンでは、以下のさらなる条件が評価される。（１）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が前肢であり（FHLR_Limb(kkr-1)=1）、検査した肢の前の肢がプレートの端部上に存在せず（FHLR_Limb(kkr-1)〜=100）、検査した肢の前の肢がプレートの開始部分に存在せず（FHLR_Limb(kkr-1)〜=(-100)）、前の肢のＡＧＲＦが、検査した肢のAGRF*1.04以上であり（LR_Limbs(9,(kkr-1))＞=(LR_Limbs(9,(kkr))*1.04)）、以前の肢の領域と現在の肢の領域との平均のY_positionの差が５未満である((LR_Limbs(1,kkr)-LR_Limbs(1,(kkr-1)))＜5)）か、（２）検査したlimbzoneが１本の肢の領域であり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が前肢であり（FHLR_Limb(kkr-1)=1）、以前の肢の領域と現在の肢の領域との平均のY_Positionの差が１０未満である（(LR_Limbs(1,kkr)-LR_Limbs(1,(kkr-1)))＜10)）か、（３）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が前肢であり（FHLR_Limb(kkr-1)=1）、以前の肢のＰＧＲＦが現在の肢のPGRF*1.15よりも大きい（LR_Limbs(8,(kkr-1))-LR_Limbs(8,(kkr)))＞0.15*（LR_Limbs(8,(kkr))か、（４）検査したlimbzoneが１本の肢の領域であり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が前肢であり（FHLR_Limb(kkr-1)=1）、現在の領域のＧＲＦの傾きのカウンタが３よりも大きい（LR_Limbs(16,kkr)＞=3）場合、検査した肢は後肢である（FHLR_Limb(kkr)=-1）。
【０１２８】
「Case 2」と記されたサブルーチンでは、以下のさらなる条件が評価される。検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が前肢であり（FHLR_Limb(kkr-1)=1）、検査した肢の前の肢がプレートの端部上に存在せず（FHLR_Limb(kkr-1)〜=100）、検査した肢の前の肢がプレートの開始部分上に存在せず（FHLR_Limb(kkr-1)〜=(-100)）、以前の肢の領域と現在の肢の領域との平均のY_Positionの差が
５以上である（(LR_Limbs(1,kkr)-LR_Limbs(1,(kkr-1)))＞=5)）場合、検査したlimbzoneは前肢である。
【０１２９】
「Case 3」と記されたサブルーチンでは、以下のさらなる条件が評価される。（１）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、検査した肢の前の肢がプレートの端部上に存在せず（FHLR_Limb(kkr-1)〜=100）、検査した肢の前の肢がプレートの開始部分上に存在せず（FHLR_Limb(kkr-1)〜=(-100)）、以前の肢のＡＧＲＦが、検査した肢のAGRF*1.05よりも大きく（LR_Limbs(9,(kkr-1))＞(LR_Limbs(9,(kkr))*1.05)）、以前の肢の領域と現在の肢の領域との平均のY_Positionの差が０以下である（(LR_Limbs(1,kkr)-LR_Limbs(1,(kkr-1)))=＜0)）か、（２）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、以前の肢のＡＧＲＦが、現在の肢のAGRF*1.02よりも大きく（LR_Limbs(9,(kkr-1))＞(LR_Limbs(9,(kkr))*1.02)）、現在の肢と以前の肢との平均のY_positionの差が−１５以下である（LR_Limbs(1,kkr)-LR_Limbs(1,kkr-1)＜=-15）か、（３）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、以前の肢のＡＧＲＦが、現在の肢のAGRF*1.1よりも大きい（LR_Limbs(9,(kkr-1))＞(LR_Limbs(9,(kkr))*1.1)）か、（４）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、以前の肢のＰＧＲＦが、現在の肢のPGRF*1.1よりも大きい（LR_Limbs(8,(kkr-1))＞(LR_Limbs(8,(kkr))*1.1)）場合、検査した肢の領域は前肢である（FHLR_Limb(kkr)=1）。
【０１３０】
「Case 4」と記されたサブルーチンでは、以下のさらなる条件が評価される。（１）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、検査した肢の前の肢がプレートの端部上に存在せず（FHLR_Limb(kkr-1)〜=100）、検査した肢の前の肢がプレートの開始部分上に存在せず（FHLR_Limb(kkr-1)〜=(-100)）、以前の肢のＡＧＲＦが、検査した肢のAGRF*1.05以下であり（LR_Limbs(9,(kkr-1))＜=(LR_Limbs(9,(kkr))*1.05)）、以前の肢の領域と現在の肢の領域との平均のY_Positionの差が０よりも大きい（(LR_Limbs(1,kkr)-LR_Limbs(1,(kkr-1)))＞0)）か、（２）検査したlimbzoneが１本の肢のものであり（LR_Limbs(12,kkr)=1）、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、以前の肢のＡＧＲＦが、現在の肢のAGRF*1.05以上であり（LR_Limbs(9,(kkr-1))＞=(LR_Limbs(9,(kkr))*1.05)）、現在の肢と以前の肢との平均のY_positionの差が４０以上である（LR_Limbs(1,kkr)-LR_Limbs(1,kkr-1)＞=-40）か、（３）検査したlimbzoneが１本の肢の領域であり（LR_Limbs(12,kkr)=1)、検査した肢の前の肢が後肢であり（FHLR_Limb(kkr-1)=0）、現在の肢と以前の肢との平均のY_Positionの差が４０以上である（LR_Limbs(1,kkr)-LR_Limbs(1,kkr-1)＞=40）場合、検査した肢は後肢である(FHLR_Limb(kkr)=-1）。
【０１３１】
この肢の順序は、NewCow_LEFTRIGHT_Check関数に渡される。この関数は、この順序が２頭の牛または１頭の牛のいずれに属するかを確認する。１頭の牛である場合には何も行なわれず、そうでない場合、変数LimbSequenceCheckには１０の値が割当てられ、ループは終了する。
【０１３２】
ＸＩ．  XYGRFPlot.mサブルーチン
任意の作図用サブルーチンでは、以下の変数、すなわち、時刻（time_ms）、lbを単位とするロードセルのデータ（LC1,LC2,…,LC8）、牛の数（cow_num_str）、日付（date_str）、時刻（time_str）が、関数XYGRFPlotに渡される。
【０１３３】
動物の重量は、８個のロードセルを合計し、重量ベクトルの最大値を取ることによって計算される。時間に対する重量がプロットされる。ここで、時間ベクトルの大きさは、le
ngthコマンドを用いて求められる。
【０１３４】
右プレートに関し、Ｙ軸についてのモーメントが計算されてADD_RIGHTとして記憶される。右プレート上の力の合計は、GRF_RIGHTとして記憶される。
【０１３５】
１から時間ベクトルの長さまでのループiが開始される。GRF_RIGHT＞30である場合、Ｘの位置が計算され、X_RIGHT1として記憶される。そうでない場合、X_RIGHT1=0である。
【０１３６】
右プレートに関してＸ軸についてのモーメントが計算され、ADD_RIGHTとして記憶される。右プレート上の力の合計はGRF_RIGHTとして記憶される。
【０１３７】
１から時間ベクトルの長さまでのループiが開始される。GRF_RIGHT＞30である場合、Ｙの位置が計算され、Y_RIGHT1として記憶される。そうでない場合、Y_RIGHT1=0である。
【０１３８】
右プレートに対する力の合計が計算され、重量ベクトルの最大重量により除算される。この変数は、NGRF_RIGHTとして記憶される。
【０１３９】
１から時間ベクトルの長さまでのループiが開始される。NGRF_RIGHT＜0である場合、NGRF_RIGHT=0である。
【０１４０】
右プレート上の肢に関するX_Position、Y_Position、および正規化されたＧＲＦを計算するための上述の手順は、左プレートに対しても繰返される。
【０１４１】
これらの計算された変数は、subplotコマンドを用いて時間の関数としてプロットされ、XYGRF_LEFTRIGHT行列に記憶される。
【０１４２】
上に開示した概念は、たとえば、情報を通信するためのバスまたは他の通信機構、バスに結合されて情報を処理するための１台または複数のプロセッサ、および、バスに結合されてプロセッサにより実行されるべき命令および情報を記憶するためのメインメモリ、たとえばランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置を含む任意の従来のコンピュータシステムと組合せて用いることができる。メインメモリは、１台または複数のプロセッサにより実行されるべき命令が実行されている間に、一時的数値変数または他の中間情報を記憶するために用いられ得る。このようなコンピュータシステムはさらに、バスに結合されて１台または複数のプロセッサに対する命令および静的情報を格納する読出専用メモリ（ＲＯＭ）または他の静的記憶装置を含み得る。磁気ディスクまたは光学ディスク等の記憶装置を設けてバスに結合し、情報および命令を記憶することができる。
【０１４３】
コンピュータシステムは、コンピュータのユーザに情報を表示するための表示装置にバスを介して結合され得る。１つ以上の入力装置（キーボード、タッチスクリーン、カーソル制御、マウス、トラックボール、カーソル方向キー、マイクロフォン等）をバスに結合し、情報およびコマンド選択を１台または複数のプロセッサに通信することができる。
【０１４４】
コンピュータシステムは、さまざまなデータ入力手段により得られたデータを処理する。関連するプログラムおよび実行可能なコードまたは命令セットが好ましくはメインメモリに含まれ、１台または複数のプロセッサに応答して選択的にアクセスおよび実行される。１台または複数のプロセッサは、メインメモリに含まれる１つ以上の命令の１つ以上のシーケンスを実行する。このような命令は、記憶装置等の別のコンピュータ読取可能な媒体からメインメモリに読出され得る。多重処理の構成に置かれた１台以上のプロセッサを用いて、メインメモリ内に含まれる命令のシーケンスを実行することもできる。
【０１４５】
これらの命令は、任意の数の形態で、たとえばソースコード、アセンブリコード、オブジェクトコード、機械言語、上述のコードの圧縮バージョンまたは暗号化バージョン、およびそれらのあらゆる等価物の形で提供され得る。「コンピュータ読取可能な媒体」は、１台または複数のプロセッサに命令を提供して実行することに関与する任意の媒体を指し、「プログラムプロダクト」は、コンピュータ実行可能なプログラムを有するこのようなコンピュータ読取可能な媒体を指す。コンピュータ使用可能な媒体は、命令を「有する」ものと呼ぶことができ、命令は、命令がコンピュータ使用可能な媒体に関連付けられるすべての態様を包含する。
【０１４６】
コンピュータ読取可能な媒体は、以下のものに限定されないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む。不揮発性媒体には、たとえば、光学ディスクまたは磁気ディスク、たとえば記憶装置が含まれる。揮発性媒体には、メインメモリ等の動的メモリが含まれる。伝送媒体には、同軸ケーブル、銅線、および光ファイバが含まれ、バスを含むワイヤが含まれる。伝送媒体は、音波または光波、たとえば電波（ＲＦ）および赤外線（ＩＲ）データ通信中に生成されるものを含み得る。コンピュータ読取可能な媒体の一般的な形態には、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、他の任意の光学媒体、パンチカード、紙テープ、孔のパターンを有する他の任意の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他の任意のメモリチップもしくはカートリッジ、後述する搬送波、またはコンピュータが読出すことのできる他の任意の媒体が含まれる。
【０１４７】
さまざまな形態のコンピュータ読取可能な媒体は、１つ以上の命令の１つ以上のシーケンスをプロセッサに搬送して実行することに関与し得る。たとえば、命令はまず、遠隔のコンピュータの磁気ディスク上で保持され得る。遠隔のコンピュータは、その動的メモリにこれらの命令をロードして、モデムを用いる電話回線経由で送信することができる。コンピュータシステムにローカルなモデムは、電話回線上のデータを受信して、赤外線送信機を用いてそのデータを赤外線信号に変換することができる。バスに結合された赤外線検出器は赤外線信号で運ばれるデータを受信して、そのデータをバス上に出力することができる。バスはこのデータをメインメモリに運び、このメインメモリから、プロセッサが命令を取出して実行する。メインメモリが受信した命令は、プロセッサによる実行の前または後のいずれかに記憶装置に任意に記憶され得る。
【０１４８】
コンピュータシステムはまた、バスに結合されて、ローカルネットワークに接続されたネットワークリンクへの双方向データ通信結合を提供する通信インターフェイスも含み得る。たとえば、通信インターフェイスは、対応する種類の電話回線にデータ通信接続を提供するための統合サービスデジタル網（ＩＳＤＮ）カードまたはモデムであり得る。別の例として、通信インターフェイスは、互換性を有するＬＡＮにデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ）カードであり得る。また、無線リンクも実現することができる。このようなあらゆる実現例において、通信インターフェイスは、さまざまな種類の情報を表わすデジタルデータストリームを運ぶ電気信号、電磁信号、または光学信号を送受信する。
【０１４９】
ネットワークリンクは一般に、１つ以上のネットワーク経由で他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンクは、ローカルネットワークを介した接続を、ホストコンピュータに提供するか、またはインターネットサービスプロバイダ（Internet Service Provider）（ＩＳＰ）が作動させるデータ装置に提供することができる。それにより、ＩＳＰは、ワールドワイドパケットデータ通信ネットワーク、現在では「インターネット（Internet）」と一般に呼ばれるものを介してデータ通信サービスを提供する。ローカルネットワークおよびインターネットはいずれも、デジタルデータストリーム
を運ぶ電気信号、電磁信号、または光学信号を用いる。さまざまなネットワークを経由する信号、ネットワークリンク上の信号、および通信インターフェイスを経由する信号は、コンピュータシステムとの間でデジタルデータをやり取りするものであり、情報を運ぶ搬送波の例示的な形態である。したがって、この明細書において例示として記載される発明の方法が必要とする処理は、記憶装置を用いるローカルコンピュータ上で実施され得、または、たとえばＬＡＮもしくはインターネットを介して実施され得る。
【０１５０】
コンピュータシステムは、１つまたは複数のネットワーク、ネットワークリンク、および通信インターフェイス経由でメッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例において、サーバは、インターネット、ＩＳＰ、ローカルネットワーク、および通信インターフェイス経由でアプリケーションプログラム用に要求されたコードを送信することができる。受信されたコードはそのまま１台または複数のプロセッサにより実行されてよく、および／または後の実行に備えて記憶装置、または他の不揮発性記憶装置に記憶されてよい。この態様で、コンピュータシステムは、搬送波の形のアプリケーションコードを得ることができる。
【０１５１】
この開示は好ましい実際の実施例の説明を明示しているが、この発明が開示された実施例に限定されず、その反対に、前掲の請求項の精神および範囲内に含まれるさまざまな変形例および等価の構成を包含するように意図されることを理解されたい。命令セットは、任意のコンピュータ読取可能な媒体に書込まれ得、該コンピュータ読取可能な媒体を読出すように適合された任意のプロセッサにおいて実行され得る。さらに、上述の命令セットは、例示された牛の例に特に関連するさまざまな物理的変数を考慮する。対象動物（牛等）の物理的な属性および動的な特性は、たとえば前肢と後肢とを区別するためにこの発明に従って用いられ得る一意の情報を提供する。たとえば、前のＧＲＦのピークと後のＧＲＦのピークとの差は約１０〜１５％であり、後肢のピークは前肢のピークよりも低い。また、後肢の力の軌跡は、２個または３個の谷またはピークを有し、曲線内に２個または３個の変曲点を有するが、その一方で、前肢は一般に１つのピークしか有さない。上述の命令に含まれるこれらのおよび他の要素は、未知の変数の数を減らし、かつ、力の軌跡およびその解釈において表わされる事象の識別を可能にする手段を提供する。他の種類の動物には、同様のまたは異なる要素が固有であることが考えられ、これらの要素をこの発明に従って同じ目的で用いることができる。
【０１５２】
したがって、その一例のみがこの明細書に提示されているこの発明は、他の異なる実施例が可能であり、そのいくつかの詳細は、すべてがこの明細書に開示された概念から逸脱することなく種々の明らかな点で変更可能であることを理解されるべきである。添付の図面および説明は本質的に例示と考えられるべきであり、限定と考えられるべきではない。
【図面の簡単な説明】
【０１５３】
【図１ａ】この明細書に開示する概念と組み合わせて用いることのできる反力検出（ＲＦＤ）システムの等角図である。
【図１ｂ】この明細書に開示する概念と組み合わせて用いることのできる反力検出（ＲＦＤ）システムの側面図である。
【図１ｃ】この明細書に開示する概念と組み合わせて用いることのできる反力検出（ＲＦＤ）システムの上面図である。
【図２】ここに開示する概念に従った、有用なサンプルの情報ファイルを示す表である。
【図３】図２に示す情報ファイルの１つに記録された牛199および1027のＹの位置、地面反力（ＧＲＦ）、および重量のプロットを示す図である。
【図４】ここに開示する概念に従った、牛199および1027についての右プレートのＹの位置およびＧＲＦに加え、異なるTimeZonesに対するTSTARTおよびTENDの時刻の識別を示す図である。
【図５】この概念に従った、Ｙの位置およびＧＲＦの値に基づいて各TimeZoneに関して評価される統計学的パラメータの定義を有する表である。
【図６】図４のデータのプロットについてのLimbZoneStatisticsの数値を示す表であり、ここでは、この概念に従い、TimeZone_1が１本の肢を反映し、TimeZone_2が２本の肢を反映し、TimeZone_3が３本の肢を反映する。
【図７】（ａ）はこの概念に従った、図６の２本肢のTimeZone_2の個別化と、Ｙの位置のプロットとを示す図であり、（ｂ）はこの概念に従った、図６の２本肢のTimeZone_2の個別化と、ＧＲＦのプロットとを示す図であり、（ｃ）はこの概念に従ったTwoLimbSeparation関数を用いた個別化の後の、（ｂ）のＧＲＦのプロットを示す図である。
【図８】この概念に従い、TimeZone_2が２本の肢の領域である図６（表３）の例について、TwoLimbSeparation関数を適用してTimeZone_2を２つの別個の時間帯であるTimeZone_21およびTimeZone_22に変換することと、分離した時間帯に関して肢の領域の統計値を計算することと、LimbSequenceを割当てることとを示す図である。
【図９ａ】この概念に従った、上述の牛199についての分離された記録または個別化された記録に対し、Ｙの位置、ＧＲＦ、および体重のプロットを示す図である。
【図９ｂ】この概念に従った、上述の牛1027についての分離された記録または個別化された記録に対し、Ｙの位置、ＧＲＦ、および体重のプロットを示す図である。
【図１０ａ】ThreeLimbSeparation関数による分離前の、図４に示すTimeZone_3のＹの位置を示す図である。
【図１０ｂ】ThreeLimbSeparation関数による分離前の、図４に示すTimeZone_3のＧＲＦのプロットを示す図である。
【図１０ｃ】この概念に従ったThreeLimbSeparation関数による分離後の、３つの一本の肢の領域についてのＧＲＦのプロットを示す図である。
【図１１ａ】３頭の牛（991，213，885）の記録を、各々が１頭の牛を有する３つの記録に分離することを示す図であり、３頭の牛の記録を示す図である。
【図１１ｂ】３頭の牛（991，213，885）の記録を、各々が１頭の牛を有する３つの記録に分離することを示す図であり、牛991のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１１ｃ】３頭の牛（991，213，885）の記録を、各々が１頭の牛を有する３つの記録に分離することを示す図であり、牛213のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１１ｄ】３頭の牛（991，213，885）の記録を、各々が１頭の牛を有する３つの記録に分離することを示す図であり、牛885のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１２ａ】４頭の牛（961，217，980，1026）の記録を、各々が１頭の牛を有する４つの記録に分離することを示す図であり、４頭の牛の記録を示す図である。
【図１２ｂ】４頭の牛（961，217，980，1026）の記録を、各々が１頭の牛を有する４つの記録に分離することを示す図であり、牛961のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１２ｃ】４頭の牛（961，217，980，1026）の記録を、各々が１頭の牛を有する４つの記録に分離することを示す図であり、牛217のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１２ｄ】４頭の牛（961，217，980，1026）の記録を、各々が１頭の牛を有する４つの記録に分離することを示す図であり、牛980のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１２ｅ】４頭の牛（961，217，980，1026）の記録を、各々が１頭の牛を有する４つの記録に分離することを示す図であり、牛1026のＹの位置、ＧＲＦ、および重量のプロットを示す図である。
【図１３】ここに開示する概念に従った論理的な演算の一例についてのフロー図である。
【図１ａ】
0004579828.tif 000002
【図１ｂ】
0004579828.tif 000003
【図１ｃ】
0004579828.tif 000004
【図２】
0004579828.tif 000005
【図３】
0004579828.tif 000006
【図４】
0004579828.tif 000007
【図５】
0004579828.tif 000008
【図６】
0004579828.tif 000009
【図７】
0004579828.tif 000010
【図８】
0004579828.tif 000011
【図９ａ】
0004579828.tif 000012
【図９ｂ】
0004579828.tif 000013
【図１０ａ】
0004579828.tif 000014
【図１０ｂ】
0004579828.tif 000015
【図１０ｃ】
0004579828.tif 000016
【図１１ａ】
0004579828.tif 000017
【図１１ｂ】
0004579828.tif 000018
【図１１ｃ】
0004579828.tif 000019
【図１１ｄ】
0004579828.tif 000020
【図１２ａ】
0004579828.tif 000021
【図１２ｂ】
0004579828.tif 000022
【図１２ｃ】
0004579828.tif 000023
【図１２ｄ】
0004579828.tif 000024
【図１２ｅ】
0004579828.tif 000025
【図１３】
0004579828.tif 000026