私の散歩論

ページ

2024年2月1日木曜日

標高別遺物出土頻度分布グラフの3D化

 3D graph of frequency distribution of artifacts excavated by altitude


I took on the challenge of creating a 3D graph of the frequency distribution of relics excavated by elevation in 10cm increments using a mesh (2m x 2m) in the shell layer. It is a 3D space with cross-sectional maps of shell layers, and is likely to be used as an overview of the frequency of excavation of artifacts by altitude.

貝層におけるメッシュ(2m×2m)の10㎝刻み標高別遺物出土頻度分布グラフの3D化にチャレンジしました。貝層断面図が配置された3D空間で、標高別遺物出土頻度の概観資料になりそうです。

1 Ⅱ-24メッシュ 10㎝刻み標高別遺物出土頻度分布グラフとその3D化


Ⅱ-24メッシュ 10㎝刻み標高別遺物出土頻度分布グラフとその3D化

2 3D空間における配置

Ⅱ-24メッシュの10㎝刻み標高別遺物出土頻度分布3Dグラフと遺物標高分布棒グラフおよび近隣の貝層断面図(第4断面図)の3項目を3D空間に配置しました。


3項目の3D空間配置

3 Ⅱ-24メッシュの10㎝刻み標高別遺物出土頻度分布3Dグラフと貝層断面図の3Dモデル

Ⅱ-24メッシュの10㎝刻み標高別遺物出土頻度分布3Dグラフと貝層断面図の3Dモデル

有吉北貝塚北斜面貝層


3Dモデルの画像


3Dモデルの動画

4 メモ

Ⅱ-24メッシュの10㎝刻み標高別遺物出土頻度分布3Dグラフと貝層断面図の3Dモデルを動かしてみると、遺物出土頻度分布と貝層断面の関係についてイキイキとした感想を持つことができます。近隣メッシュの3Dモデルも並べることによって、標高別遺物出土頻度の概観資料になりそうです。

遺物の3D分布分析の基本は、各個別遺物の3D座標による分析を予定しますが、メッシュ(2m×2m)別標高別出土頻度情報も副産物としてえられるので、このような概観的分析も検討して実用化することにします。

5 参考 10㎝刻み標高別遺物出土頻度分布グラフの3D化方法

5-1 Excelによる10㎝刻み標高別遺物出土頻度表の作成

ExcelのFREQUENCY関数を使って標高別遺物出土頻度表を作成します。

5-2 BlenderPythonスクリプトによる3Dグラフの作成

次のBlenderPythonスクリプトによりBlender3D空間で3Dグラフを作成しました。このスクリプトはChatGPT支援で作成したものです。

……………………………………………………………………

import bpy


def create_cylinder(name, location, scale):

    bpy.ops.mesh.primitive_cylinder_add(radius=1, depth=1, location=location, rotation=(0, 0, 0))

    cylinder = bpy.context.active_object

    cylinder.name = name

    cylinder.scale = scale


def main(file_path):

    with open(file_path, 'r') as file:

        text_data = file.read()


    lines = text_data.split('\n')


    for line in lines:

        if line:

            data = line.split(',')

            name = data[0]

            location = (float(data[1]), float(data[2]), float(data[3]))

            scale = (float(data[4]), float(data[5]), float(data[6]))


            create_cylinder(name, location, scale)


if __name__ == "__main__":

    # ここにテキストファイルのパスを指定する

    file_path = "C:\\tmp\\memo2.txt"


    main(file_path)


……………………………………………………………………

テキストファイルには次情報を記載します。

円柱名称,円柱位置x座標,円柱位置y座標,円柱位置z座標,円柱x軸スケール,円柱y軸スケール,円柱z軸スケール

頻度の数値と比例させて円柱x軸スケール,円柱y軸スケールを設定しました。

テキスト例

27.299,5,9,7.249,0.07,0.07,0.05

27.399,5,9,7.349,0.115,0.115,0.05

27.499,5,9,7.449,0.175,0.175,0.05

27.599,5,9,7.549,0.26,0.26,0.05



0 件のコメント:

コメントを投稿