2024年3月11日月曜日

貝塚の3Dグリッド別遺物数分布のイメージ表現例

 Image representation example of the distribution of the number of artifacts by 3D grid in a shell mound


I created an image representation example of the distribution of the number of artifacts by 3D grid, targeting a narrow test area of the shell layer on the north slope of Ariyoshi Kita Shell Mound. The purpose of this work is to confirm the method for counting the number of artifacts by 3D grid, and to create the first example of the distribution of the number of artifacts by 3D grid.


有吉北貝塚北斜面貝層の狭いテスト範囲を対象に、3Dグリッド別遺物数分布のイメージ表現例を作成しました。この作業の目的は、3Dグリッド別遺物数のカウント方法を確認するとともに、3Dグリッド別遺物数分布表現の最初の一例を作成することです。

1 3Dグリッド別遺物数のカウント

発掘調査報告書で設定された調査グリッド※(平面グリッド、2m×2m)のうち、遺物出土平面グリッドは141あります。この遺物出土平面グリッドに係る遺物出土3Dグリッドは346あります。

※発掘調査報告書での「メッシュ」をこの作業では「グリッド」に置き換えています。3Dモデルにおける別の意味のメッシュと区別するためです。

遺物出土数は全部で約63000あります。

遺物台帳電子化作業では、次のように平面グリッド別に遺物名称や出土標高をExcelで整理しています。


遺物台帳電子化(Excel画面)

平面グリッド別に標高2m区切りで遺物数をカウントすることは、少ないデータならば、Excelでデータを標高順に並べてカウントすればすぐできます。しかし、今回のプロジェクトではデータが膨大であり、到底Excel手作業ではできません。そこで、Pythonスクリプトによるカウント方法構築を試みました。その結果、今は不十分ですが、今後、Pythonスクリプトで作業効率化が図れる見込みを得ることができました。その様子をメモします。

1 平面グリッド別標高データのExcelsheet格納

今回は手作業となりました。

遺物台帳データを分析するためには平面グリッド別にExcelsheetに格納することが大切であることが判りました。これからの電子化作業は平面グリッド別にExcelsheetに行います。

既に電子化したExcelファイルについては、データを平面グリッド別にExcelsheetに分けるPythonスクリプトを作成して対応することにします。

2 Excelsheet別(平面グリッド別)遺物標高データのcsvファイル出力

新たに作成したPythonスクリプトにより、Excelファイルに存在する多数のsheet別データを一括で多数のcsvファイルに出力しました。

3 平面グリッド別遺物標高データを2m区切りで集計する

新たに作成したPythonスクリプト(度数分析スクリプト)により、2で作成したcsvファイルについて、標高2m区切りで遺物数を集計し、ファイルに出力しました。(平面グリッド別標高2m区切別遺物数)

4 3で作成したデータに位置座標を付与する

3で作成したデータ(平面グリッド別標高2m区切別遺物数)に別に作成してある3Dグリッド位置座標を対応させ、付与しました。

この作業は今回手作業になりました。今後Pythonスクリプトにより自動化する予定です。


3Dグリッド別遺物数

2 3Dグリッド別遺物数分布の表現例

有吉北貝塚北斜面貝層の狭いテスト範囲を対象に、3Dグリッド別遺物数分布の表現例(3Dモデル)を作成しました。球体と3Dグリッド枠のプロットはBlenderPythonスクリプトで行いました。

貝塚の3Dグリッド別遺物数分布のイメージ表現例(3Dモデル)

3Dグリッド(2m×2m×2m)出土遺物数の多寡を4段階に分級して、球体大きさで表現している。


3Dモデル画像


3Dモデル動画


テスト範囲の場所

なお、今回は遺物数を4段階に分級して段階毎に球体の大きさを変えて表現したものです。分級方法と球体の大きさの対応は任意に行いました。


遺物数の分級と球体の大きさ

3 感想

3-1 Pythonスクリプト作成について

遺物台帳63000遺物の分析にはPythonスクリプトが必須です。Excel手作業では埒がまったくあきませんが、Pythonスクリプト利用により驚くほど作業が効率化します。Pythonスクリプト無しの活動は考えられません。

しかし、Pythonに関する基礎知識が虚弱なため、見よう見まねでPythonスクリプトを作成しています。Pythonスクリプト作成には長時間を要しています。

現状では次のようなプロセスでPythonスクリプトを作成しています。

実現したい機能について最初はweb検索や図書から情報収集し、試行錯誤を重ねてPythonスクリプトができればラッキーです。

web検索や図書で機能実現ができない場合はChatGPTに支援を求めます。実現したい機能を簡潔に言葉で表現できればChatGPTが問題の多くを解決してくれます。ChatGPTを最後の切り札として利用しています。

3-2 貝塚の3Dグリッド別遺物数分布のイメージ表現例(3Dモデル)について

今回は3Dグリッド出土遺物数を分級して球体の大きさでイメージ表現しました。この方法の場合、今後、分級の仕方、球体(あるいは別のオブジェクト)の大きさの対応について検討が必要です。遺物数分布をより直観的に認識できる表現とする必要があります。また球体を大きさだけでなく色分けすればより判りやすい3D分布モデルになるかもしれません。

別の表現方法として、遺物数と同じ数の小オブジェクトを3Dグリッド内に均等に配置する(あるいはランダムに配置する)方法も今後テストしてみることにします。小オブジェクトの多寡が密度をイメージできれば面白いモデルになります。


0 件のコメント:

コメントを投稿