点群OBJのアップロードで面番号エラーが出る背景
土工事や造成工事では、現場を計測して得た点群から地表面のモデルを作り、掘削量、盛土量、仮置土量、搬出量などを確認する機会が増えています。点群を三角形の面に変換し、OBJ形式で運搬土量管理ツールへアップロードすれば、現況を立体的に確認しながら数量を整理できます。
ところが、OBJファイルを登録しようとした際に、面番号、頂点参照、面インデックスなどに関するエラーが表示され、アップロードできないことがあります。エラー表示の文言はツールによって異なりますが、主な原因は、OBJファイル内に記録された頂点情報と面情報の対応が崩れていることです。
OBJ形式では、立体形状を構成する座標点が「頂点」として並びます。そして、どの頂点を結んで三角形や多角形の面を作るかが、番号によって記録されます。たとえば、ファイル内の1番目、2番目、3番目の頂点を結ぶ面であれば、その三つの番号を使って面が定義されます。
このとき、面が存在しない頂点番号を参照していたり、番号の書式がアップロード先の仕様に合っていなかったりすると、読み込み処理を完了できません。頂点数が10万点しかないのに、面が10万1番目の頂点を参照していれば、その面を構成できないためです。
面番号エラーは、単なるファイル形式の不具合に見えるかもしれません。しかし、運搬土量の管理に使うデータでは、アップロードできるかどうかだけでなく、面が正しい位置に構成されているかが重要です。番号を無理に書き換えてエラー表示だけを消すと、離れた地点の頂点同士が結ばれ、不自然な面が作られる可能性があります。
不自然な面が数量計算の対象に含まれると、実際には存在しない盛り上がりやくぼみがモデル内に発生します。その結果、現況地表面と基準面との差分が変わり、運搬土量の集計にも影響するおそれがあります。
そのため、面番号エラーが出たときは、エラー行だけを修正するのではなく、元の点群、メッシュ生成条件、OBJの書き出し設定、編集履歴、アップロード先の対応条件まで順番に確認することが大切です。
OBJファイルにおける頂点と面番号の仕組み
OBJは、三次元形状をテキストで記録できるファイル形式です。一般的なOBJには、頂点座標、面、法線、テクスチャ座標、グループ、材質に関する情報などが行ごとに保存されます。用途によって含まれる情報は異なり、すべてのOBJが同じ内部構造になっているわけではありません。
頂点座標を表す行には、行頭の識別文字に続いてX座標、Y座標、Z座標が記録されます。頂点はファイル内に登場した順に番号が割り当てられ、通常は1番から始まります。
面を表す行には、その面を構成する頂点の番号が記録されます。三角形であれば三つの頂点番号、四角形であれば四つの頂点番号が並びます。土工現場の地表面モデルでは、三角形の集合によって地形を表現する方法がよく使われます。
ここで重要なのは、面に書かれた番号が座標値そのものではないという点です。面番号は、ファイル内の何番目の頂点を使うかを示す参照情報です。頂点の並び順が変わった場合は、それに合わせて面の参照番号も変更しなければなりません。
OBJには、頂点番号だけを記録する単純な面定義のほか、頂点番号とテクスチャ座標番号、法線番号を組み合わせる書式があります。これらの番号は斜線で区切って記録されます。書き出し側では正常なOBJとして扱えても、アップロード先が一部の記述方式に対応していなければ、面情報を解釈できない場合があります。
また、OBJでは負の番号を使い、直前に記録された頂点を相対的に参照する方法もあります。しかし、運搬土量管理ツールが負の参照番号に対応しているとは限りません。正の連番だけを想定しているツールへ負の番号を含むOBJを登録すると、面番号エラーになる可能性があります。
面番号の確認では、頂点数だけでなく、面行の記述形式、テクスチャ座標数、法線数、面を構成する頂点数も見る必要があります。ファイル容量が小さければ内容を直接確認できますが、現場全体の高密度点群から作ったOBJでは、頂点と面が数十万から数百万に達する場合があります。
大容量データを目視だけで検査するのは現実的ではありません。頂点行の総数、面行の総数、参照番号の最小値と最大値、不正な行の数などを機械的に確認できる方法を用意すると、原因を切り分けやすくなります。
確認1 面が存在する頂点番号を参照しているか
最初に確認したいのは、面に記録されているすべての頂点番号が、実際に存在する頂点の範囲内に収まっているかどうかです。
たとえば、OBJ内に頂点が50万個ある場合、正の頂点番号として参照できる範囲は通常1から50万までです。面行に50万1以上の番号が含まれていれば、その面は存在しない頂点を参照しています。
範囲外の番号が発生しやすいのは、OBJの書き出し後に頂点行だけを削除した場合です。不要な点を取り除く目的で頂点を削除しても、対応する面情報が更新されなければ、削除済みの頂点を参照する面が残ります。
頂点を途中から削除した場合は、削除した番号より後ろにある頂点の順番も変わります。面番号を一部だけ直せばよいとは限りません。削除前の頂点番号と削除後の頂点番号の対応をすべて再構築する必要があります。
0番の頂点を参照していないかも確認します。多くの内部データでは配列の番号を0から数えますが、一般的なOBJの頂点番号は1から始まります。変換処理で番号へ1を加える工程が抜けると、0を含む面が作られる可能性があります。
負の頂点番号については、直ちに不正とは判断できません。OBJの記述として成立する場合があるためです。ただし、アップロード先が対応していなければ読み込めません。負の番号が含まれている場合は、正の絶対番号へ変換してから登録する方法を検討します。
最大値だけでなく、最小値も確認することが重要です。最大参照番号が頂点数以内であっても、0や対応外の負数が含まれていればエラーになります。
また、頂点番号が範囲内でも、途中に欠番が生じている場合があります。たとえば、1番から100番までの頂点があるように見えても、50番の頂点行だけが削除されていれば、50番以降の対応関係がずれます。
OBJでは、頂点の識別番号が行内に明示的に書かれているわけではなく、登場順によって決まることが一般的です。そのため、途中の頂点行を削除すると、その後ろにあるすべての頂点番号が前へずれます。
面番号の不整合を修正するときは、範囲外の番号を適当な既存番号に置換してはいけません。エラーは消えても、本来とは異なる地点の頂点へ接続されるためです。元のメッシュ構造を復元できない場合は、元点群から面を生成し直す方が安全です。
頂点番号に問題が見つからない場合は、面内に含まれるテクスチャ座標番号や法線番号も確認します。エラー表示が面番号となっていても、実際には面が参照する法線番号が範囲外になっていることがあります。
確認2 面定義の記述形式が統一されているか
頂点番号が存在する範囲内であっても、面行の書式が不正であればアップロードできません。OBJには複数の面記述方式があるため、アップロード先が対応する形式へ統一する必要があります。
最も単純な面定義では、行頭の識別文字に続き、三つ以上の頂点番号を空白で区切って記録します。三角形であれば、異なる三つの番号が必要です。
一つの面に同じ頂点番号が複数回使われている場合、その面は正常な三角形になりません。三つの番号のうち二つが同じであれば、面積を持つ面ではなく線に近い形状になります。三つとも同じであれば、点として退化します。
このような面は退化面などと呼ばれ、読み込み時に除外される場合もあれば、面番号エラーや形状エラーとして処理が停止する場合もあります。面内で頂点番号が重複していないかを確認することが必要です。
面を構成する頂点数も確認します。三角形を表すつもりの行に二つの番号しかない場合、面を作ることはできません。ファイルの分割や転送時に行が途中で切れ、最後の番号だけが欠けている可能性もあります。
反対に、一つの面へ非常に多くの頂点番号が記録されている場合も注意が必要です。OBJでは四角形以上の多角形を記録できる場合がありますが、アップロード先が三角形だけを想定していると、正しく分割できないことがあります。
土量計算に使う地表面モデルでは、書き出し時に面を三角形へ統一すると、読み込み環境による解釈の違いを減らしやすくなります。ただし、多角形を単純に三角形へ分けると、形状がねじれている場所や自己交差している場所で不自然な面が生成される場合があります。変換後は外観も確認します。
斜線を含む面記述では、頂点番号、テクスチャ座標番号、法線番号の並びが統一されているかを確認します。同じ面の中で、一つ目の頂点には法線番号があり、二つ目にはないといった混在があると、解析に失敗することがあります。
行末に不要な記号が付いていないかも見ます。表計算データや独自形式を経由してOBJを生成した場合、番号の後ろにカンマ、引用符、説明文字などが残ることがあります。人が見れば番号として理解できても、読み込み処理では整数と認識されません。
空白とタブの混在も原因になる可能性があります。一般的な解析では複数の空白を処理できますが、入力条件が厳しいツールでは、想定外の区切りによってエラーになることがあります。書き出し直す際は、一般的な空白区切りへ統一すると原因を減らせます。
確認3 点群とメッシュを混同していないか
点群とメッシュは、いずれも三次元の現況を表すデータですが、内部構造は異なります。点群は座標点の集合であり、点同士がどのようにつながっているかという情報を必ずしも持ちません。メッシュは、頂点同士を結んだ面によって表面形状を表します。
現場では、点群から作成したOBJをまとめて「点群OBJ」と呼ぶことがあります。しかし、実際のOBJに面が含まれているとは限りません。頂点情報だけを保存したOBJもあれば、三角形の面まで生成したOBJもあります。
アップロード先が地表面メッシュを必要としている場合、頂点しか含まれていないOBJは数量計算に利用できません。点として表示できる場合でも、面積や体積を計算するための連続した面が存在しないためです。
反対に、点群として登録する機能へメッシュOBJを登録し、面情報の解析で問題が起きることも考えられます。アップロード画面で点群とメッシュを選択できる場合は、作成したデータの内容に合う種類を選ぶ必要があります。
点群からメッシュを作成する工程では、点の密度、地表面抽出、最大接続距離、穴の補間範囲などの設定が形状へ影響します。離れた点同士を接続する設定になっていると、実際には空いている範囲へ大きな三角形が作られることがあります。
現場に重機、車両、作業員、仮設物、植生などがある状態で計測すると、地表面以外の点も取得されます。それらを除去せずに面を生成すると、地面から重機へ向かう面や、土山と近くの構造物を結ぶ面が作られる可能性があります。
このような異常面は、頂点番号の形式としては正しくても、数量計算には適しません。アップロード時に形状検査が行われ、不正な面としてエラーになる場合もあります。
また、土工現場で必要な地表面モデルと、製品や構造物の外周を表す閉じた立体モデルでは、求められる面構造が異なります。施工前後の差分から土量を計算する場合は、対象範囲を覆う地表面が必要です。仮置土を単独の立体として計算する場合は、底面や側面の扱いも関係します。
OBJを書き出す前には、点だけを表示した状態ではなく、面を表示した状態でモデルを確認します。点群では問題なく見えても、面表示に切り替えると、穴、交差、飛び出し、裏返りなどが見つかることがあります。
特に法肩、法尻、土山の裾、構造物の周辺、計測範囲の外周は異常面が発生しやすい場所です。運搬土量の計算範囲へ含める前に、複数方向から形状を確認することが重要です。
確認4 編集や結合で番号の対応が崩れていないか
面番号エラーは、元のOBJを編集、分割、結合した後に発生しやすくなります。OBJの面は頂点の登場順を番号として参照しているため、頂点の並びを変更した場合は面番号も更新しなければならないからです。
大規模な現場では、データ容量を抑えるため、工区や範囲ごとにOBJを分割することがあります。このとき、単純にファイルを行数で切り分けると、頂点と面が別々のファイルへ分離される可能性があります。
たとえば、前半ファイルに頂点行、後半ファイルにその頂点を参照する面行が入ると、後半ファイルを単独では読み込めません。OBJを分割するときは、各範囲に必要な頂点と面をセットで抽出し、ファイルごとに頂点番号を再構成する必要があります。
複数のOBJを結合するときにも番号調整が必要です。一つ目のOBJに20万個の頂点があり、二つ目のOBJにも20万個の頂点があるとします。単純にファイル内容を連結すると、二つ目の面は再び1番からの頂点を参照するため、一つ目の頂点へ誤接続します。
正しく結合するには、二つ目の面番号へ一つ目の頂点数を加え、ファイル全体で一意の番号にします。三つ目以降のファイルでは、それ以前のファイルに含まれる頂点数の合計を加算します。
グループや工区ごとに頂点番号を1から振り直したデータも注意が必要です。OBJ内に複数のグループが記録されていても、頂点番号はファイル全体で通し番号として扱われる場合があります。グループが切り替わったところで面番号だけを1へ戻すと、前のグループの頂点を参照してしまいます。
不要範囲を削除した場合は、未使用頂点と参照切れの面が残っていないか確認します。面だけを削除して頂点が残る状態は、直ちに読み込みエラーにならない場合があります。一方、頂点だけを削除して面が残る状態は、参照先がなくなるため問題になります。
座標変換や原点移動を行った場合も、途中で別の形式へ変換している場合は注意します。座標値だけを一括変更する処理であれば、面番号は通常変わりません。しかし、別形式へ変換してからOBJへ戻す過程で頂点が並べ替えられると、面番号の再生成が必要です。
異なる担当者が点群、メッシュ、OBJを別々に編集している場合は、版の取り違えも起こります。古い頂点データと新しい面データを組み合わせれば、頂点数が同じように見えても形状の対応は一致しません。
ファイル名には計測日、対象工区、処理段階、版番号などを含め、元点群、編集済み点群、メッシュ、アップロード用OBJを分けて保存します。どのデータから書き出したOBJなのかを追跡できる状態にすることが重要です。
確認5 ファイル容量や面数が過大になっていないか
OBJの内容に明確な不整合がなくても、頂点数、面数、ファイル容量がアップロード先の処理範囲を超えると、登録に失敗することがあります。読み込みが途中で中断され、後半の面が存在しない頂点を参照したように扱われる場合もあります。
高密度の点群をそのままメッシュへ変換すると、非常に多くの三角形が生成されます。地表面の点が数百万点あれば、面数も同程度か、それ以上になる可能性があります。
さらに、頂点座標だけでなく、法線、色、テクスチャ座標、材質情報などを含めると、ファイル容量と解析負荷が増えます。土量計算には不要な情報が含まれている場合は、アップロード用として単純化したOBJを書き出す方法が考えられます。
運搬土量の管理では、点や面が多いほど必ず精度が高くなるわけではありません。地表面の微細な凹凸、草の葉、砕石の一粒ごとの形状、粉じんによる誤点まで面にすると、処理は重くなりますが、現場全体の土量把握に有効とは限りません。
一方で、面数を減らしすぎると、法肩、法尻、段差、土山の裾など、体積に影響する部分が平滑化されます。そのため、平坦部ではデータを適度に間引き、地形変化が大きい場所では必要な密度を残すことが重要です。
面数を削減した後は、形状が維持されているか確認します。自動削減では、近接する頂点が統合され、境界線の位置が変わることがあります。土山の外周が内側へ寄れば体積が小さくなり、外側へ広がれば体積が大きくなる可能性があります。
欠測部分を自動補間したモデルも注意が必要です。面数を抑える処理と穴埋め処理を組み合わせると、離れた地点が一枚の大きな三角形で結ばれることがあります。その面が数量計算へ含まれると、実測していない範囲まで地表面として扱われます。
容量が原因かを確認するには、同じ書き出し設定で現場の一部だけを切り出し、小さなOBJを作成します。小さなファイルは登録でき、現場全体では失敗する場合、容量、面数、または全体の一部に含まれる異常形状が原因として考えられます。
範囲を半分ずつに分けて試すと、異常が含まれる工区を絞り込めます。ただし、最終的に複数ファイルで数量を管理する場合は、工区境界の重複や欠落を防がなければなりません。
分割境界は共通座標で管理し、同じ範囲を二重に集計しないようにします。また、分割後の各OBJで頂点番号を1から正しく振り直し、面が同一ファイル内の頂点だけを参照していることを確認します。
確認6 文字コードや改行に異常がないか
頂点数、面番号、形状、容量に問題が見つからない場合は、OBJの文字コード、改行、制御文字、数値表記などを確認します。OBJはテキスト形式であるため、文字の保存方法によって読み込み結果が変わる可能性があります。
形状名、グループ名、材質名、コメントなどに日本語や特殊記号が含まれている場合、アップロード先が同じ文字コードとして解釈できないことがあります。数値行には問題がなくても、名称を記録した行で解析が停止し、後ろにある面を読み込めない場合があります。
原因を切り分けるため、アップロード用OBJでは、土量計算に不要なコメント、名称、材質、テクスチャ関連の記述を除き、頂点と面を中心とした単純な構成で書き出す方法があります。
改行形式の混在にも注意します。異なる環境で編集や保存を繰り返すと、一部の行だけ改行形式が変わる場合があります。通常は読み込めても、行の境界を正しく判定できない環境では、二つの行が一つにつながったり、一つの面行が途中で分割されたりします。
OBJを電子メールや共有領域で移動した際に、ファイルが途中までしか保存されない場合もあります。末尾の面行が途中で切れていれば、最後の面を正常に解析できません。元ファイルと移動後ファイルの容量が一致しているかを確認します。
圧縮して受け渡した場合は、展開時に警告やエラーが出ていないかも見ます。ファイル名が同じでも、内容が欠損している可能性があります。
座標値の小数点表記にも注意が必要です。OBJの数値には一般的にピリオドを使用します。地域設定や表計算処理を経由したことで、別の区切り記号が使われていると、座標を正しい数値として読み込めません。
極端に大きな座標値、非常に長い小数、特殊な指数表記などが、アップロード先で対応できない場合もあります。現場座標や公共座標を扱うと座標値が大きくなることがありますが、独自に桁を削ると位置や縮尺が変わります。原点移動を行う場合は、移動量を記録し、基準面や他の計測データにも同じ条件を適用します。
行頭や行末に見えない制御文字が入っている場合もあります。テキスト編集環境で保存し直した際に、ファイル先頭へ識別情報が付加されることがあります。読み込み側がそれを処理できないと、最初の行から解析に失敗します。
空白行やコメント行は一般的に使用できますが、アップロード先の条件が不明な場合は、必要最小限の記述へ整理したOBJで試すと原因を切り分けやすくなります。
エラー箇所を効率よく特定する手順
面番号エラーが出たときは、設定を無作為に変えるのではなく、段階的に原因を切り分けることが大切です。
最初に、OBJを書き出した環境でファイルを開き直し、形状が正常に表示されるか確認します。開き直せない場合は、OBJ生成時点で不整合が発生している可能性があります。
開くことはできても、面の一部が消える、形状が大きく飛び出す、原点付近へ細い面が伸びる場合は、頂点参照や座標値の異常が疑われます。
次に、元の点群とメッシュを比較します。点群では正常なのにメッシュで異常が出ている場合は、面生成条件に問題があります。重機や植生の点を接続していないか、欠測範囲を過度に補間していないかを確認します。
その後、OBJ内の頂点行数と面行数を集計します。面が参照する頂点番号の最小値と最大値を求め、頂点行数と比較します。最大値が頂点数を超えていれば、参照範囲の不整合です。
0番が含まれていないか、アップロード先が対応しない負の番号がないかも確認します。頂点番号に問題がなければ、法線番号やテクスチャ座標番号の範囲を調べます。
面行については、必要な数の頂点番号があるか、同じ番号が重複していないか、斜線の形式が面内で統一されているかを確認します。
エラー画面に行番号が表示される場合は、該当行だけでなく、その直前の行も確認します。直前の行で改行が抜けていると、該当行が前の記述の続きとして読み込まれる可能性があります。
大容量ファイルでは、対象範囲を分割して試験します。現場全体を半分に分け、どちらでエラーが出るかを確認します。エラーが出る側をさらに分割すれば、問題のある範囲を絞れます。
小さい範囲でも同じエラーが出る場合は、書き出し形式や面番号そのものに問題がある可能性が高くなります。小さい範囲では成功し、全体だけが失敗する場合は、容量、面数、処理時間、または一部範囲の異常形状を疑います。
修正作業は必ず複製ファイルで行います。元の点群やOBJを上書きすると、修正前後を比較できなくなります。また、番号を直接修正した結果、見た目は開けても数量が変わる可能性があります。
エラーを解消した後は、既知の基準点、距離、標高などと照合します。アップロードできたことだけを成功条件にせず、正しい位置、尺度、形状で登録されたことを確認します。
OBJを書き出し直すときの注意点
不整合が広範囲にある場合や、編集履歴が分からない場合は、OBJ内の面番号を個別に直すより、元点群や元メッシュから書き出し直す方が安全です。
書き出し前に、使用する座標系、標高基準、距離単位を確認します。OBJには座標値を保存できますが、その数値がどの座標系や単位なのかを読み込み側が自動判断できるとは限りません。
メートル単位のモデルを別の単位として解釈すると、距離だけでなく体積が大きく変わります。体積は長さの三乗で変化するため、単位の取り違えは運搬土量管理に重大な影響を与えます。
原点移動を行う場合は、X、Y、Zの各方向へどれだけ移動したかを記録します。施工前後のモデル、設計面、境界データのうち、一つだけ異なる原点を使うと、正しく重なりません。
面は可能な範囲で三角形へ統一し、土量計算に不要な材質やテクスチャ情報を外した書き出しを検討します。情報を減らすことで、面定義が単純になり、読み込み時の互換性を確保しやすくなります。
ただし、情報を削除する前に、アップロード先が表示や判定へ必要としていないか確認します。必要な属性まで削除すると、分類や色分けが使えなくなる場合があります。
点群からメッシュを生成し直す場合は、先に地表面以外の点を整理します。車両、重機、作業員、仮設材、植生、飛散物などが残っていると、地表面ではない面が作られます。
施工中の現場では、計測中に土砂や重機が移動していることがあります。複数時刻の状態が一つの点群へ混ざると、同じ場所に異なる高さの点が存在し、二重面や交差面の原因になります。
対象範囲の外周も確認します。自動メッシュ生成では、外周にある離れた点同士を結び、実測範囲外を覆う面が作られることがあります。土量を計算する境界を明確にし、境界外の面を除外します。
書き出した後は、頂点数、面数、ファイル容量、座標の最小値と最大値を記録します。正常に登録できた過去データと比較すれば、桁違いの面数や異常な座標範囲を見つけやすくなります。
運搬土量管理ツールへ登録する前の確認
運搬土量管理ツールへOBJを登録する目的は、単に三次元モデルを表示することではありません。施工前後の差分、仮置土の在庫、搬出実績との照合、工区別の進捗確認などへ活用することが目的です。
そのため、面番号エラーを解消した後も、計測日時、対象範囲、座標系、標高、単位、基準面、境界を確認しなければなりません。
まず、モデルがどの時点の現況を表しているかを明確にします。午前中に計測した範囲と午後に計測した範囲を結合すると、その間に運搬が行われた場合、同一時点の地形ではなくなります。
仮置場や搬出元の土量を継続管理する場合は、計測時刻を運搬記録と対応させます。OBJの計測時刻より後に行われた搬出を、そのOBJの減少量と比較してはいけません。
次に、体積計算に使用する基準面を確認します。施工前地形、計画面、任意の水平面など、どの面を基準にするかで体積は変わります。
前回結果と比較する場合は、同じ基準面、同じ計算境界、同じ座標系、同じ処理条件を使用することが重要です。OBJだけを最新にしても、基準面や境界が変わっていれば、数量差が施工によるものなのか設定変更によるものなのか判断できません。
工区ごとに土量を分ける場合は、OBJの分割境界と現場の管理境界を合わせます。隣接工区のデータが重複していると二重計上になり、隙間があると未計上になります。
仮置土が複数接している場合は、土質、搬出先、管理番号などの区分に合わせて境界を設定します。三次元形状だけでは、接触した土山を自動的に正しい管理単位へ分けられない場合があります。
欠測部の扱いも確認します。重機の陰、急斜面、土山の裏側、構造物付近などは点が取得できず、面に穴が開くことがあります。運搬土量管理ツールが穴を自動補間するのか、計算対象外にするのかによって結果が変わります。
運搬記録と三次元計測結果が一致しない場合は、直ちにどちらかを誤りと判断せず、計測対象時刻、土の状態、単位換算、締固め、含水状態、計算境界などを確認します。
車両の運搬記録から求めた量と、現場地形の変化から求めた量は、測定対象や土の状態が異なる場合があります。積込み時の緩んだ土と、仮置き後に沈下した土では、同じ土でも見かけの体積が変わることがあります。
アップロード後には、モデルの大きさ、向き、標高、位置を画面上で確認します。既知の基準点や現場内の距離と照合し、極端な縮尺違いや位置ずれがないことを確かめます。
面番号エラーが表示されなくなったことは、正しい数量を計算できることを意味しません。形状の妥当性と計算条件まで確認して、初めて運搬土量の管理に使用できるデータになります。
面番号エラーを再発させない運用
面番号エラーの再発を防ぐには、OBJ作成を担当者個人の経験だけに任せず、現場共通の処理手順を決めることが有効です。
点群の取り込み、不要点の除去、地表面抽出、メッシュ生成、境界確認、座標確認、OBJ書き出し、アップロード前検査という流れを統一します。
書き出し条件も記録します。面を三角形へ統一するか、法線を含めるか、材質情報を含めるか、原点移動を行うか、どの程度まで面数を減らすかを決めます。
一度正常に登録できた設定を標準として残しておけば、担当者が変わっても同じ条件で処理しやすくなります。ただし、現場規模や地形が変われば適切な密度も変わるため、設定を固定するだけでなく、変更理由を記録します。
元点群は上書きせず、取得時の状態で保存します。編集済み点群、メッシュ、アップロード用OBJ、数量計算用データは別ファイルとして管理します。
ファイル名には、現場名、工区、計測日、計測回、処理段階、版番号などを含めます。「最新版」や「修正版」だけでは、どのデータが正式な計算に使われたかを後から判断しにくくなります。
OBJの検査記録には、頂点数、面数、最小参照番号、最大参照番号、座標範囲、ファイル容量、計測日時、対象工区などを残します。
過去の正常データと比較し、頂点数や面数が急激に増えていないか、座標範囲が現場外まで広がっていないかを見ることで、アップロード前に異常を発見できる可能性があります。
数量計算結果には、使用したOBJだけでなく、基準面、境界、計算日、処理条件も関連付けます。同じOBJでも基準面や境界が異なれば体積は変わるためです。
修正履歴も残します。どのエラーが出て、どの処理を変更し、どの版で正常に登録できたかを記録しておけば、同じ問題が発生したときに早く対応できます。
アップロード先の対応条件も確認します。OBJに対応しているとされていても、負の番号、多角形、法線、材質、大容量ファイルなど、すべての記述に対応しているとは限りません。
運搬土量管理ツールを選ぶ際は、対応拡張子だけでなく、推奨される頂点数や面数、座標の扱い、登録後の形状確認、エラー箇所の表示方法なども確認することが重要です。
点群と運搬記録を一体で管理する考え方
運搬土量を正確に管理するには、OBJの形状情報だけでなく、現場でいつ、どこを、どの条件で計測したかという情報を一緒に管理する必要があります。
同じ仮置場を定期的に計測しても、計測日時や対象範囲が不明確では、在庫量の増減を正しく比較できません。降雨直後、整形前、締固め後など、現場の状態によって地表面は変化します。
運搬記録には、搬出元、搬出先、車両、運搬回数、計量値、時刻、土質区分などがあります。これらを三次元計測結果と対応させれば、帳票上の搬出量と現場の地形変化を照合できます。
両者に差がある場合は、運搬記録の入力漏れだけを疑うのではなく、OBJの計測時刻、計算境界、基準面、面の欠測、単位換算などを確認します。
計測段階から後工程を意識することも重要です。法肩や法尻が十分に取得できていないと、メッシュ生成時に形状を正しく再現できません。土山の裏側が欠測していれば、体積計算のために大きな補間が必要になります。
重機や車両が頻繁に移動する場所では、計測時間を調整し、地表面を取得しやすい状態を作ります。移動体が点群へ多く混入すると、不要点除去とメッシュ修正の負担が増えます。
計測範囲を複数回に分ける場合は、重複部分を確保し、同じ座標基準で統合できるようにします。重複が少なすぎると結合位置が不安定になり、重複範囲に移動体が多いと誤った位置で結合される可能性があります。
LRTK Phoneを活用する場合も、取得した点群や座標だけを保存するのではなく、計測日時、工区、対象物、計測担当者などの情報と関連付けて整理することが大切です。
現地計測から点群処理、OBJ作成、アップロード、運搬記録との照合までを一つの流れとして管理すれば、古いデータの取り違えや処理条件のばらつきを減らしやすくなります。
まとめ
点群OBJを運搬土量管理ツールへアップロードした際に面番号エラーが出る主な原因は、面が存在しない頂点を参照していること、面定義の書式が統一されていないこと、点群とメッシュのデータ種別が合っていないこと、編集や結合によって番号の対応が崩れていること、ファイル容量や面数が過大であること、文字コードや改行に異常があることです。
最初に、OBJ内の頂点数と面が参照する番号の範囲を比較します。最大番号が頂点数を超えていないか、0や対応外の負数が含まれていないかを確認します。
次に、各面に必要な数の頂点番号があるか、同じ番号が重複していないか、斜線を含む記述が統一されているかを確認します。多角形が含まれている場合は、アップロード先が対応しているかを見たうえで、必要に応じて三角形へ変換します。
頂点しか含まれないOBJを、面を必要とする機能へ登録していないかも確認が必要です。点群からメッシュを作成した場合は、地表面以外の点、欠測部、異常に長い面、交差面などがないかを確認します。
OBJを分割、結合、編集した場合は、頂点の並びと面番号の対応を再構築します。単純な行の削除やファイル連結は、参照番号の不整合を起こしやすいため注意が必要です。
小さい範囲では登録でき、現場全体では失敗する場合は、容量や面数が原因として考えられます。ただし、データを減らしすぎると、法肩、法尻、土山の裾などが変形し、土量計算へ影響します。重要な地形を残しながら処理負荷を調整することが大切です。
形状と番号に問題がなければ、文字コード、改行、不要な属性、ファイルの途中欠損を確認します。修正は必ず複製ファイルで行い、元点群と元OBJを保存します。
面番号を無理に既存番号へ置き換える方法は避けるべきです。アップロードできても、誤った頂点同士が接続され、数量計算に使えない形状になる可能性があります。不整合が広範囲にある場合は、元点群から地表面を抽出し、メッシュとOBJを書き出し直す方が安全です。
アップロード後は、モデルの座標、標高、尺度、向き、境界、欠測部を確認します。さらに、計測日時、基準面、計算範囲、単位などを運搬記録とそろえる必要があります。
OBJを正常に登録できることは、運搬土量管理の出発点です。現場で取得した点群と運搬実績を同じ基準で整理し、処理条件と計算条件を追跡できる運用を整えることで、土量差の原因を説明しやすくなります。現地での高精度な位置情報取得から点群の整理まで一貫した流れを構築する際は、LRTK Phoneの活用も有効な選択肢になります。