2023年10月8日日曜日

発掘原票から土器破片3D分布モデルを作成する方法

 How to create a 3D distribution model of pottery fragments from excavation records


I wrote down a practical and technical method for creating a 3D distribution model of pottery fragments from the excavation records of the shell layer on the north slope of Ariyoshi Kita Shell Mound. Now that I've just started working on it, the practicalities and techniques are all self-explanatory. However, there is a strong possibility that I won't be able to remember most of the practical work and techniques immediately after six months, so I just take notes.

有吉北貝塚北斜面貝層の発掘原票から土器破片3D分布モデルを作成する実務的技術的方法をメモしました。作業したばかりの今は、実務と技術は全て自明です。しかし、半年後には実務や技術の大半は即座に思い出せない可能性濃厚ですからメモする次第です。

以下294番土器の例です。

1 現物から土器破片のメッシュ番号と遺物番号を取得する

復元された294番土器の破片にはすべて出土メッシュ番号と遺物番号が白ペイントで記載されています。この情報を全て読み取ります。

294番土器のような巨大土器の場合、破片数も多く、また内面下部は暗く、個別破片同定と微細文字としてのメッシュ番号・遺物番号読み取りは難渋を極めます。今回は内面を含めた3Dモデルを作成して、内面をGigaMesh Software Frameworkで展開して、その平面破片分布図をたよりに情報を読み取りました。将来全土器についてメッシュ番号と遺物番号を読み取る際には、条件に耐えるだけの高性能カメラを用意するなど、事前の工夫が必要となると考えます。


294番土器観察記録3Dモデル画像

2 メッシュ別遺物台帳画像をフォルダーに整理する

メッシュ別フォルダーに遺物台帳画像を収納し、遺物番号の標高を読み取れるようにします。

3 遺物番号から標高値を読み取る

メッシュ別遺物台帳画像から当該遺物番号を探し、その標高を読み取ります。

メッシュ別遺物台帳画像は多数にのぼりますが、遺物台帳は遺物番号順になっていますから、当該遺物番号を探すのは楽です。

4 メッシュ別遺物分布図画像をフォルダーに整理する

メッシュ別フォルダーに遺物分布図画像を収納し、遺物番号のメッシュ内平面座標を読み取れるようにします。

メッシュ別遺物分布図画像は数枚になり、その数は不定です。全図面のなかから、メッシュ別に遺物分布図を整理すること自体がかなり煩雑な作業となります。図面名称が必ずしも遺物分布図となっていないことや全図面配列の中で遺物分布図が必ずしもかたまっていないためです。

5 遺物分布図画像から当該遺物番号を探す

数枚ある遺物分布図の中から当該遺物番号を探し出します。

メッシュによっては数枚ある遺物分布図に掲載される遺物番号数は2000を越えます。このなかから当該遺物番号を探すのは苦行に近い活動です。現状では、1枚1枚の画像をパソコンで大伸ばしして、端から悉皆的に探します。これ以上の原始的方法はないといえるほどの非効率的方法になります。

数枚ある遺物分布図はそれぞれが発掘現場活動のあるまとまりに対応しているようです。同じ遺物番号が別の遺物分布図に重複掲載されることはありません。

「土器一括」などとして遺物台帳に記載されている遺物番号は遺物分布図に掲載されていません。

なお、過去の体験(早期土器・前期土器の座標取得活動)では半日かけて数回しらべても1つの遺物番号を遺物分布図から見つけられないことがありました。(おそらく現場における記入もれだと推測します。)

6 遺物分布図画像から遺物番号のメッシュ内平面座標を読み取る

遺物分布図画像の中に見つけた遺物番号位置のメッシュ内平面座標(x、y)をPythonで計測します。(メッシュの大きさは2m×2m、原点は左上隅)

7 当該遺物番号のBlender空間における3D座標を取得する

3と6の情報からBlender空間における3D座標を取得します。次のような実務ステップを踏みます。

7-1 当該遺物番号のBlender3D空間におけるz座標取得

設定してあるBlender3D空間におけるz座標を次式から取得します。

Blender3D空間z座標=標高-20m

7-2 当該遺物番号のBlender3D空間におけるx、y座標取得

設定してあるBlender3D空間におけるx、y座標を次式から取得します。

Blender3D空間x座標=Blender空間における当該メッシュ左上隅x座標+メッシュ内y座標

Blender3D空間y座標=Blender空間における当該メッシュ左上隅y座標+メッシュ内x座標

(6におけるPython計測のx軸y軸とBlender3D空間におけるx軸y軸は逆転します。)

なおBlender空間における当該メッシュ左上隅x、y座標は次の2つのデータファイル(Excelファイル)aとbをFileMakerに読み込み、メッシュ番号でリレーションしてbファイルのx、y座標をaファイルにコピーして取得します。

aファイル(294土器破片出土メッシュ) メッシュ番号 Blender空間におけるメッシュ番号の左上隅x座標(空欄)、y座標(空欄)

bファイル(全メッシュ) メッシュ番号 Blender空間におけるメッシュ番号の左上隅x座標、y座標

8 3D座標のBlender空間へのプロット

294番土器破片情報をテキストファイルに「名称(メッシュ番号 遺物番号),x座標,y座標,z座標」の型式でまとめます。このテキストファイルを元にBlenderPythonスクリプトで土器破片をCUBEでBlender3D空間にプロットします。


294番土器破片3D分布モデル画像

9 感想

9-1 土器閲覧の必要性

土器以外の全遺物は発掘調査報告書に個別のメッシュ番号と遺物番号が掲載されています。従って、土器以外遺物は現物を閲覧しなくても、発掘調査報告書情報だけから、遺物台帳と遺物分布図から3D座標を取得することができます。

土器は全土器の閲覧を行い、破片のメッシュ番号と遺物番号を取得する必要があります。この作業は土器数が398ありますから膨大なエネルギーを必要とします。しかし、土器情報から時間の前後関係を計ることができますから、作業がいくら膨大なものでも、必須な作業となります。

9-2 遺物分布図内容のデータベース化

遺物分布図画像の中で当該遺物番号を探す行為があまりにも原始的で非効率です。これを改善するために、遺物分布図内の遺物番号のメッシュ内平面座標取得を最初に悉皆的におこなうことを予定します。それが出来れば遺物番号とメッシュ内平面座標のデータベースができます。従って遺物分布図から当該遺物番号を原始的に探す行為は必要なくなり、Excel検索で一発で検索できます。

9-3 Pythonによる作業の効率化とさらなる改善

遺物台帳画像と遺物分布図画像をメッシュ別にフォルダーに整理する作業にPythonを使い、作業の効率化を図ることができました。

遺物分布図からメッシュ内座標を取得する自作Pythonプログラムをより使い勝手が良いものに改善します。

9-4 FileMakerの活用

294番土器破片出土メッシュリスト(a)と全メッシュBlender座標リスト(b)をFileMakerに読み込みメッシュ番号でリレーションしてbファイルからaファイルへ座標値を移植できました。このFileMakerのリレーション機能に習熟して、ファイル間のデータの受け渡しを円滑に行えるようにします。

ゆくゆくは北斜面貝層遺物に関する情報をFileMakerでデータベース化することを検討します。


0 件のコメント:

コメントを投稿