2025年2月4日火曜日

技術メモ Blenderにおける非破壊ブーリアン適用方法

 Technical note: How to apply non-destructive booleans in Blender


I found out how to apply Blender's boolean functions "non-destructively" using the geometry node editor, so I'll make a note of it.


Blenderのブーリアン機能をジオメトリノードエディターを使って、「非破壊的」に適用できる方法を知りましたので、メモします。

1 ブーリアン機能の非破壊適用


ブーリアン機能の非破壊適用結果(Blender画面)

画面では円柱と球が重なった部分をブーリアンモディファイア(交差)で抽出しています。ジオメトリノードエディターでオブジェクト情報、ジオメトリトランスフォーム、メッシュブーリアン、グループ出力の各ノードを繋いで実現しています。円柱と球は非破壊です。手作業でブーリアンモディファイアを適用すると円柱と球は破壊されます。

2 感想

非破壊的にブーリアン機能を適用できる技術があることを知り、今後大いに役立ちそうです。

またシェーダーエディターとは別にジオメトリノードエディターの存在を強く意識させられました。とても便利なツールです。Blender世界の奥深さを実感します。

現在有吉北貝塚北斜面貝層の貝層3Dモデル作成に向けてどのような技術を適用できるか、検討中です。


2025年2月2日日曜日

有吉北貝塚北斜面貝層の地山地形断面線3Dモデル

 3D model of rock formation cross section of shell layer on north slope of Ariyoshi Kita Shell Mound


87 section diagrams of shell layer on north slope of Ariyoshi Kita Shell Mound were compiled into 32 shell layer cross sections. A rock formation cross section was extracted from the data and plotted in Blender3D space to create a 3D model. It is a typical gully erosion valley with wall-like valley walls and prominent steps. Gully erosion valleys occur in places with little vegetation.


有吉北貝塚北斜面貝層のセクション図87枚を32枚の貝層断面図に集成しました。その資料から地山地形横断図を抽出してBlender3D空間にプロットして3Dモデルにしました。壁状谷壁や顕著な段差など典型的なガリー侵食谷です。ガリー侵食谷は植生の乏しい場所で発生します。

1 有吉北貝塚北斜面貝層の地山地形断面線3Dモデル

有吉北貝塚北斜面貝層の地山地形断面線3Dモデル

作成方法:貝層断面図(セクション図集成図)から抽出した地山地形(貝投棄前地形)断面線をBlender3D空間にプロットして作成

参考:断面線は多くの場所で2m間隔で配置されている

3DF Zephyr v7.531でアップロード


3Dモデルの画像


3Dモデルの動画

2 メモ

今回作成地山地形断面線3Dモデルで、貝層が収まる谷地形が典型的なガリー侵食谷であるとことを確かめることができました。壁状に連続する谷壁や段差の存在などがガリー侵食谷の特徴です。自分の知識不足だけの問題かもしれませんが、下総地域でガリー侵食谷を見かけたことがありません。ガリー侵食谷は植生の乏しい場所で発達します。

谷頭部で急斜面の途中に平場があることが確認できました。自分にとって重要な発見です。今後詳しく検討しますが、この平場付近で散乱人骨出土が集中していて、人の活動の場となっていた可能性が浮かび上がります。


2025年1月ブログ活動のふりかえり

 Looking back on blog activities in January 2025


I looked back on the activities of the blog "Walking the Hanami River Basin" in January 2025.

It was a month in which I was particularly focused on examining the shell layer on the north slope of the Ariyoshi Kita Shell Mound. I focused on creating materials on the natural terrain (topography before the shell layer was dumped) and solidified the foundations for examining section maps (examining shell layer divisions). I enjoyed mastering the operation techniques of Illustrator, QGIS, and Blender.


ブログ「花見川流域を歩く」の2025年1月活動をふりかえりました。

有吉北貝塚北斜面貝層検討に特段に集中した1ヵ月となりました。地山地形(貝層投棄前の地形)資料作成に集中し、セクション図検討(貝層区分検討)の基礎を固めました。Illustrator、QGIS、Blenderの操作技術習熟を楽しみました。

1 ブログ「花見川流域を歩く」

・2025年1月の記事数は14です。

・ブログ開設14周年記念記事で今年の活動抱負をまとめました。

・有吉北貝塚北斜面貝層検討記事と関連技術習得記事(Illustrator、QGIS、Blender)を書きました。

2 ブログ「花見川流域を歩く 自然・風景編」

・早朝散歩記事を1編書きました。

3 2025年1月活動の特徴

・有吉北貝塚北斜面貝層の地山平面図から標高点を読み取り、地山地形3Dモデル作成を楽しみました。

・地山地形平面図情報には肝心の斜面情報が含まれていないので、セクション図(貝層断面図)の整理を行いました。87枚のセクション図を32断面にIllustratorを使ってまとめました。


セクション図集成断面のインデックスマップ


セクション図を断面にまとめた様子(第11断面例)

セクション図は貝層と遺物との相関を調べるための資料ですが、まずその資料から、地山地形情報を読みとり、分析しています。


セクション図から読みとった地山地形断面線をBlenderにプロットした様子

・QGISの仮想地形生成機能利用、QGISのPythonコンソール、JavaScriptによるIllustrator操作、IllustratorオブジェクトのQGIS移植などの技術課題取組みを楽しみました。

4 2025年2月活動の展望

有吉北貝塚北斜面貝層検討活動をさらに進めます。セクション図集成32断面から貝層区分を読み取り、貝層3Dモデル作成のための検討を行います。

参考

ブログ「花見川流域を歩く」2025年1月記事 〇は閲覧の多いもの

ブログ「花見川流域を歩く 自然・風景片」2025年1月記事


2025年1月 Sketchfabに投稿した3Dモデル


2025年1月 YouTubeに投稿した動画


2025年1月 ブログ「花見川流域を歩く」投稿記事に掲載した画像


2025年1月30日木曜日

Illustrator作成断面線のBlender移植

 Porting Illustrator-created section lines to Blender


I confirmed how to port section line objects created in Illustrator to Blender 3D space, so I made a note of it. This involves moving the origin in Blender to the center of the bounding box instead of the center of gravity.


Illustratorで作成した断面線オブジェクトをBlender3D空間に移植する方法を確認しましたので、メモしました。Blenderで原点を重心ではなくバウンディングボックス中心へ移動する操作を伴います。

1 Illustratorで作成した断面線オブジェクト


Illustratorで作成した断面線オブジェクト

Illustratorの設定はpixelではなく㎜で行い、50㎜を地物1mに対応した縮尺で断面図を作成しています。

画面横軸がBlenderX軸、画面縦軸がBlenderZ軸に対応しています。

断面線(この例は地山地形断面線)を描画して、そのバウンディングボックスの断面図上の座標を読みとります。読み取りはゲージ(50㎜×50㎜のグリッドを10×10グリッドに細分したゲージ)を利用して行います。(Illustratorの固有座標は使いません。)

この例ではX,Y,Zが9.1,24,24.4という座標値になります。

2 IllustratorからSVGファイル書き出し

Illustratorから断面線だけをSVGファイルで書き出します。


断面線書き出し画面(Illustrator画面)

3 Blender読み込みと設定

BlenderにSVGファイルを読み込みます。Blenderにはカーブとして読み込まれます。

次の設定を行います。

回転:X軸を90度回転

スケール:X軸を25倍、Y軸を25倍

原点をバウンディングボックス中心に移動(特製BlenderPythonスクリプトによる移動)

原点の座標値をアイテム位置欄に記入(この例ではX,Y,Zが9.1,24,24.4)(Z座標はローカル設定上4.4で記入)

以上でカーブが所定の三次元空間に配置されました。


カーブが所定の三次元空間に配置された様子(Blender画面)

4 感想

断面図作成や断面図に関わる図面上の解析的検討はIllustratorで行うことが効率的です。その結果をBlenderに移植する方法を確認できたので、自分にとってはかなり画期的です。Blenderで断面図トレースをしなくてすみますから、作業精度や作業効率性が格段に向上します。Blenderを3Dモデル作成専用ツールとして使うことができます。

Illustratorのオブジェクト中心がバウンディングボックスの中心であり、Blenderの重心と異なることを今回意識的に理解することができました。

Blenderにおいて、カーブの原点をバウンディングボックス中心に移動するBlenderPythonスクリプトはChatGPT支援で作成しました。

5 参考 アクティブになっているカーブのバウンディングボックスの中心に原点を移動するBlenderPythonスクリプト

import bpy
import mathutils

# アクティブオブジェクトを取得(カーブ)
obj = bpy.context.object
if obj is None or obj.type != 'CURVE':
    raise ValueError("アクティブなオブジェクトがカーブであることを確認してください。")

# カーブをメッシュに変換(元に戻せるように複製する)
bpy.ops.object.duplicate()
bpy.ops.object.convert(target='MESH')
mesh_obj = bpy.context.object
mesh = mesh_obj.data

# バウンディングボックスの計算(ワールド座標で計算)
min_x, max_x = float('inf'), float('-inf')
min_z, max_z = float('inf'), float('-inf')

for v in mesh.vertices:
    world_co = mesh_obj.matrix_world @ v.co  # ローカル座標をワールド座標に変換
    min_x = min(min_x, world_co.x)
    max_x = max(max_x, world_co.x)
    min_z = min(min_z, world_co.z)
    max_z = max(max_z, world_co.z)

# バウンディングボックスの中心を求める(ワールド座標)
center_x = (min_x + max_x) / 2
center_y = obj.location.y  # Y座標は一定なのでオブジェクトのY座標
center_z = (min_z + max_z) / 2
center = mathutils.Vector((center_x, center_y, center_z))

# 一時的に作成したメッシュオブジェクトを削除
bpy.data.objects.remove(mesh_obj)

# 3Dカーソルを四角形の中心に移動
bpy.context.scene.cursor.location = center

# オブジェクトの原点を3Dカーソルの位置に設定
bpy.ops.object.select_all(action='DESELECT')  # 他のオブジェクトの選択を解除
obj.select_set(True)  # カーブを選択
bpy.context.view_layer.objects.active = obj  # アクティブオブジェクトをカーブに設定
bpy.ops.object.origin_set(type='ORIGIN_CURSOR')

print(f"原点を移動しました: {center}")
以下のようにスクリプトを変更することで、カーブの X座標値を一定 にし、Y座標値とZ座標値が変化する 場合のバウンディングボックスの中心に原点を移動するようにできます。

変更点:
min_x, max_x を min_y, max_y に変更
center_x の計算を obj.location.x に変更(X座標は一定)
center_y を (min_y + max_y) / 2 に変更(Y座標が変化)

2025年1月27日月曜日

メモ 崩落層最下部層から貝殻・土器片出土

 Note: Shells and pottery fragments excavated from the lowest layer of the collapsed layer


Shells and pottery fragments were excavated from the lowest layer of the earliest collapsed layer of the gully erosion topography that contains the shell layer on the north slope of the Ariyoshi Kita Shell Mound. It was found that shell and pottery fragment dumping activities were already taking place at the time when the gully erosion phenomenon first occurred.


有吉北貝塚北斜面貝層が収まるガリー侵食地形の最初期崩落層の最下部層から、貝殻・土器片出土を確認しました。ガリー侵食現象が発生した最初時期に、既に貝殻・土器片投棄活動が行われていたことが判明しました。

1 第11断面の崩落層最下部X層から貝殻・土器片出土の確認

1-1 第11断面の322グリッド付近崩落層最下部の様子


第11断面の322グリッド付近崩落層最下部の様子 セクション図は千葉県教育委員会所蔵

X層は「最下層 細砂の地山遷移層 若干の貝あり」と記述されています。周辺の層区分は崩落層の特徴を示し、いずれも貝殻を含むことが記述されています。

(グリッド番号は発掘調査報告書ではⅢ-22ですが、このブログでは322で表記します。)

参考 発掘調査報告書資料


第11断面 発掘調査報告書から引用


第11断面の位置と322グリッドの位置

1-2 遺物台帳322グリッドの標高順検索


遺物台帳322グリッドの標高順検索画面(pgAdmin4画面(データベースpostgreSQL画面))

322グリッドの最低標高から2番目の出土遺物(遺物コード322855)は土器片でX層から出土していることが確認できます。

参考 遺物台帳画面での確認


遺物台帳撮影画面(書画カメラ撮影) 遺物台帳は千葉県教育委員会所蔵

322グリッド遺物台帳で標高記載のある遺物の最後が土器片(遺物番号855)で、X層出土であることが確認できます。

1-3 崩落層最下部X層から貝殻・土器片出土の確認

1-1と1-2の結果から、崩落層最下部X層から貝殻・土器片が出土したことを確認しました。X層のみならず多くの崩落層から貝殻と土器片が出土しています。

2 崩落層最下部X層から貝殻・土器片出土を確認した意義

有吉北貝塚北斜面貝層が収まるガリー侵食地形の最初期崩落層の最下部X層から、貝殻・土器片出土を確認したことは、ガリー侵食現象が発生した当初時期に、既に貝殻・土器片投棄活動が行われていたことを確認したことになります。ガリー侵食が激しく発生して標高22.7m付近に谷底があり、谷壁最上部(台地面端)が28.3mにある深さ5.6mのガリー侵食谷(溝のようなミニ谷地形)が存在していたとき、その上部で縄文人が貝殻や土器片を投棄していたことが判明しました。あるいは貝殻や土器片を投棄した斜面にガリー侵食が発生したことが判明したことになります。

もし遺物コード322855の土器片が現存していて、その土器片から土器型式を読み取ることができればガリー侵食発生時期を特定できる可能性があります。

この付近から中峠式土器の出土が多く、また早期土器出土もあるので、ガリー侵食が発生した時期は中峠式土器の時期かそれ以前であると考えられます。


2025年1月26日日曜日

技術メモ JavaScriptでIllustratorを操作する

 Technical memo: Controlling Illustrator with JavaScript


I created a JavaScript that generates a B2-sized document in Illustrator and draws a grid. This is my first time using JavaScript, and it's very useful. I also learned that templates are even more useful as a next step.


立ち上げたIllustratorにB2判ドキュメントを生成し、グリッドを描画するJavaScriptを作成しました。JavaScriptの利用ははじめてで、とても便利です。また、次のステップとしてテンプレートがさらに便利であることを知りました。

1 B2判ドキュメントを生成しグリッドを描画するJavaScript

次の仕様のJavaScriptをChatGPT支援により作成しました。

1 ドキュメントを生成して、B2判アートボードを設定してアクティブにする。

2 横650mm、縦450mmの四角をアートボード中心に描く。

3 線幅は0.25pxとする。

4 四角を行9、列13のグリッドに分割する。

5 全てのグリッドをグループにまとめる。

6 カラーモードをRGBモードに設定する。

7 線の色は#0a009dとする。塗りはしない。

// ptをmmに変換する係数
var ptToMm = 2.83464567;

// 新規ドキュメントの作成と設定
if (app.documents.length === 0) {
    var doc = app.documents.add(DocumentColorSpace.RGB);
} else {
    var doc = app.activeDocument;
}

// B2アートボードの設定(B2: 728mm x 515mm)
var artboardWidthMm = 728; // mm
var artboardHeightMm = 515; // mm
var artboardWidthPt = artboardWidthMm * ptToMm; // ptに変換
var artboardHeightPt = artboardHeightMm * ptToMm; // ptに変換

doc.artboards[0].artboardRect = [
    0,                  // 左
    artboardHeightPt,   // 上
    artboardWidthPt,    // 右
    0                   // 下
];

// アートボードの中心座標
var centerX = artboardWidthPt / 2;
var centerY = artboardHeightPt / 2;

// 四角形を描画
var rectWidthMm = 650; // mm
var rectHeightMm = 450; // mm
var rectWidthPt = rectWidthMm * ptToMm; // ptに変換
var rectHeightPt = rectHeightMm * ptToMm; // ptに変換

var rect = doc.pathItems.rectangle(
    centerY + rectHeightPt / 2, // 四角の上
    centerX - rectWidthPt / 2,  // 四角の左
    rectWidthPt,                // 四角の幅
    rectHeightPt                // 四角の高さ
);
rect.stroked = true;
rect.strokeWidth = 0.25; // 線幅を0.25px
rect.strokeColor = new RGBColor();
rect.strokeColor.red = 10;
rect.strokeColor.green = 0;
rect.strokeColor.blue = 157;
rect.filled = false; // 塗りなし

// 四角形をグリッドに分割
var rows = 9; // 行
var columns = 13; // 列
var gridGroup = doc.groupItems.add();
for (var i = 0; i < rows; i++) {
    for (var j = 0; j < columns; j++) {
        var cellWidthPt = rectWidthPt / columns;
        var cellHeightPt = rectHeightPt / rows;
        var cell = gridGroup.pathItems.rectangle(
            rect.top - (cellHeightPt * i),       // セルの上
            rect.left + (cellWidthPt * j),       // セルの左
            cellWidthPt,                         // セルの幅
            cellHeightPt                         // セルの高さ
        );
        cell.stroked = true;
        cell.strokeWidth = 0.25;
        cell.strokeColor = rect.strokeColor;
        cell.filled = false;
    }
}

// グリッド全体をグループ化
gridGroup.move(doc.activeLayer, ElementPlacement.PLACEATEND);

// RGBカラーモードを設定
doc.documentColorSpace = DocumentColorSpace.RGB;

alert("スクリプトの実行が完了しました!(単位はmm対応)");
2 JavaScriptにより生成したドキュメント


JavaScriptにより生成したドキュメント(Illustrator画面)


JavaScriptにより生成したドキュメントの利用(Illustrator画面)

このドキュメントは有吉北貝塚北斜面貝層のセクション図を集成して1枚の貝層断面図にまとめるための「台紙」として使う目的で作成したものです。JavaScriptの変数を調整すれば、アートボードサイズやグリッド設定や線色を変更できますから、便利です。JavaScriptは規定の場所に置いて使っています。

3 テンプレート

セクション図集成作業ではグリッド番号や標高を記入する必要があるので、それらの数値例や時々必要となるゲージ(目盛)をアートボード内外に置いてあるファイルをテンプレートファイルとして作成し、活用しています。


テンプレート画面(Illustrator画面)

4 感想

JavaScriptの利用がとても便利であることをはじめて知りました。さらにそれ以上にテンプレート利用が便利であること知りました。テンプレートファイルは規定の場所に置くことは手間がかかるようなので、作業フォルダーに置いて使っています。


2025年1月24日金曜日

有吉北貝塚北斜面貝層セクション図の整理

 Organizing the section diagrams of the shell layer on the northern slope of the Ariyoshi Kita shell mound


I have organized 87 original section diagrams (hand-drawn shell layer cross sections, B3 size) of the shell layer on the northern slope of the Ariyoshi Kita shell mound. I plan to create a series of shell layer cross sections by connecting the section diagrams together, and then create a 3D model of the shell layer.


有吉北貝塚北斜面貝層のセクション図原簿(手書き貝層断面図、B3判)87枚を整理しました。セクション図をつなぎ合わせることによって一連の貝層断面を作成し、さらに貝層3Dモデルを作成する予定です。

1 セクション図原簿


セクション図原簿例(手書き貝層断面図、B3判、部分、千葉県教育委員会所蔵)

B3判資料をその大きさで複写する装置(書画カメラ)では、今回のように経年劣化が激しい鉛筆手書き資料について、必要な解像度を得られませんでした。そのため、解析用複写は仕方なくA3判スキャナーで複数枚重複して行いました。

2 セクション図整理


セクション図の分布

青色は発掘調査報告書掲載断面、赤色と緑色は非掲載断面。

セクション図原簿87枚を整理しました。貝層分布域については、満遍なくセクション図が作成されていることを確認できました。この資料から貝層3Dモデルを作成する予定です。

3 セクション図と地形との関係


発掘調査報告書の貝層断面6付近の地形の様子


発掘調査報告書の貝層断面6付近の地形の様子

セクション図と発掘調査報告書掲載地形図から周辺地形とセクション図の関係を把握できることを確認しました。

セクション図の地山地形断面線から標高データを拾って、地山地形3Dモデルを完成させることの資料精度的メドが経ちました。

4 貝層区分の把握

セクション図の貝層区分は詳細に行われていますが、その記載がどの図面で行われているのか、これから詳細に調査する予定です。また、隣接する断面の貝層区分連続性がどのようになっているのか、詳しく検討します。最終的には北斜面貝層全体で、統一した貝層区分表現作成をめざし、貝層区分とその関係の整合的理解を目指します。

5 剥ぎ取り断面対応セクション図の存在

剥ぎ取り断面(千葉県立中央博物館展示)対応セクション図の存在を確認しました。

貝層区分線の引き方と現場の様子を、今現在において直接確認できますから、とても有益な資料です。今後詳しく「現場」確認調査します。


有吉北貝塚北斜面貝層剥ぎ取り断面(千葉県立中央博物館展示)


有吉北貝塚北斜面貝層剥ぎ取り断面対応セクション図(千葉県教育委員会所蔵)


2025年1月21日火曜日

有吉北貝塚北斜面貝層の地山地形(谷底部)標高点3D分布モデル

 3D distribution model of elevation points of the natural terrain (valley bottom) of the shell layer on the northern slope of the Ariyoshi Kita shell mound


A 3D distribution model of 3,393 elevation points of the natural terrain (valley bottom) measured during the excavation of the shell layer on the northern slope of the Ariyoshi Kita shell mound was created using the QGIS plugin Qgis2threejs.


有吉北貝塚北斜面貝層の発掘調査で測量された地山地形(谷底部)標高点3393点の3D分布モデルをQGISプラグインQgis2threejsで作成しました。

1 有吉北貝塚北斜面貝層の地山地形(谷底部)標高点3D分布モデルの作成


標高点分布(QGIS画面)

標高点はZ座標(標高値)を所持しています。


標高点の立体表示(QGISプラグインQgis2threejs画面)

Qgis2threejsから3Dモデルをgltfファイルでエクスポートし、BlenderでWabefront(.obj)ファイルに変換して利用しています。

2 有吉北貝塚北斜面貝層の地山地形(谷底部)標高点3D分布モデル

有吉北貝塚北斜面貝層の地山地形(谷底部)標高点3D分布モデル

3DF Zephyr v7.531でアップロード


3Dモデルの画像


3Dモデルの動画

3 異常値の検出

3Dモデルの中に異常値を検出しました。Ⅲ-55グリッドの1標高点が周囲より約2.3m低くなっています。


異常値の検出

発掘調査原票(地山平面図3155)を確認したところ、値は原票記載で間違いありませんが、「地山掘りすぎ下げてしまっている。」との注記がありました。この部分だけ、地山地形3Dモデルが異常になっているので、分析に使う資料として作成する時にはこの異常値は除去することにします。


注記

なお、この異常値検出とその理由判明により、自分の作業精度が損なわれていないことが確認でき、心理的に自信のようなものが生まれました。


2025年1月18日土曜日

有吉北貝塚北斜面貝層の谷地形を切る埋没谷

 A buried valley cutting the valley topography of the shell layer on the northern slope of the Ariyoshi Kita shell mound


A buried valley has been discovered cutting the valley topography filled with shell layers on the northern slope of the Ariyoshi Kita shell mound, so it is worth paying attention to. It may be an erosional topography that is the product of the so-called "Yayoi small regression."


有吉北貝塚北斜面貝層が充填されている谷地形を切る埋没谷が検出されているので、注目しておきます。いわゆる「弥生の小海退」の産物の侵食地形かもしれません。

1 有吉北貝塚北斜面貝層が充填されている谷地形を切る埋没谷の検出


発掘調査報告書掲載図面における埋没谷の記号


発掘原票(地山平面図3150、部分、千葉県教育委員会所蔵)における埋没谷の記述

2 埋没谷の位置


埋没谷の位置

北斜面貝層の谷地形が流れ込む谷津に、この埋没谷も流れ込んでいるとても小さな谷津です。

3 埋没谷の性格

北斜面貝層が充填される谷地形は加曽利EⅡ式期には完全に侵食地形としてのアクティブ性を喪失していていたと考えられます。縄文中期以降現在までの期間で、侵食地形が発達する時期としていわゆる「弥生の小海退」をあげることができます。現状で特段の根拠はありませんが、北斜面貝層の谷地形を切る埋没谷の性格を「弥生の小海退」に起因する侵食地形と仮説しておきます。

以前西根遺跡(印西市)の学習をした時に、「弥生の小海退」により流路の深さが特段に深くなったと考えられる事例を扱いました。

2017.09.04記事「西根遺跡 古墳時代のみ戸神川に可動堰が作られた理由


時代別戸神川流路の深さ

4 埋没谷が北斜面貝層の谷地形を切る事象をキッカケにして北斜面貝層について考える

4-1 谷を埋めつくすという特別な活動が浮彫になる

埋没谷が北斜面貝層の谷地形を切って発達していることから、北斜面貝層の谷地形は地域の侵食営力が活性化した時期(例えば「弥生の小海退」期)に完全に侵食地形としての意義を失っていたことを確認できます。谷地形としての意義を少しでも保持していたならば、地域の侵食営力が活性化すれば、北斜面貝層が新たに侵食され、谷地形が復活すると考えられます。

北斜面貝層が充填される谷地形は加曽利EⅡ式期に完全に埋まり、地形としての意義を失いました。

一つの谷地形を完全に貝殻投棄で埋めつくし、侵食地形としての意義を完全に終焉させるという活動は特別の意義がある活動であると考えることができます。

4-2 谷を埋めつくした時期と集落終焉の時期が重なる

谷を埋めつくした時期と集落終焉の時期が重なります。その2つの事象は単なる偶然か、それとも関連しているのか、興味が深まります。



有吉北貝塚学習 作業日誌(2025.01.18) 地山地形(谷底部)3Dモデル完成

 Ariyoshi Kita Shell Mound Study Work Journal (2025.01.18)

3D model of natural terrain (valley bottom) completed


All elevation points (3933) were extracted from 14 ground plan views of the shell layer on the northern slope of the Ariyoshi Kita Shell Mound, and a 3D model of the terrain was created using QGIS. The previously unclear valley bottom topography has become clearly visible. The shell layer fills the varied valley bottom topography.


有吉北貝塚北斜面貝層の地山平面図14枚から、全ての標高点(3933)を抽出し、QGISにより地形3Dモデルを作成しました。これまで不明瞭だった谷底地形が明瞭に浮かび上がりました。貝層は変化に富んだ谷底地形を充填しています。

1 地山平面図からの標高点抽出


地山平面図から標高点を抽出した様子

地山平面図14枚から全ての標高点(3933)を抽出しました。最上流部及び斜面部及び一部区域には標高点がありません。また標高点粗密のばらつきがあります。

2 地山地形(谷底部)3Dモデル

標高点(3933)だけをデータとして、QGIS(GRASSプラグイン、v.surf.rstツール)により地形3Dモデルを作成しました。


地山地形(谷底部)標高分級平面図


地山地形(谷底部)3Dモデル 画像1


地山地形(谷底部)3Dモデル 画像2


地山地形(谷底部)3Dモデル 画像3


地山地形(谷底部)3Dモデル 画像4

標高点分布域部分(谷底部分)の3Dモデルです。それ以外の3D形状は処理上結像していますが、参考にならない3Dモデルです。

3 メモ

3-1 地形に関するメモ

・下流部右岸に河岸段丘上の地形がみられることにはじめて気が付きました。

・中流左岸は上流部と比べると谷底が平坦であることが特徴となっています。

・上流部はバッドランドのように激しい凹凸がみられます。激しいガリー侵食の跡であると考えることができます。

3-2 作業に関するメモ

・セクション図の断面線から地山地形の標高点を生成し、今回読みとった標高点(3933)に加え、標高点分布の不備を補正して、北斜面貝層が収まる谷地形全体の3Dモデルを作成します。

・同時にセクション図の分析により貝層分類別分布3Dモデル作成に着手することにします。


2025年1月15日水曜日

ブログ開設14周年通過にあたって

 On the 14th anniversary of the blog's launch


The blog "Walking the Hanamigawa River Basin" has now reached its 14th anniversary.

The fact that we have been able to reach our 14th anniversary is entirely due to your support and cooperation.

I would like to express my sincere gratitude to you all.

Following the example of others, I have compiled my steps over the past 14 years and written down my modest dreams for 2025.


本日(2025.01.15)はブログ「花見川流域を歩く」開設14周年通過日となります。

14周年を通過できたことは、ひとえに多くの内外皆様にさまざまなご支援、ご協力をいただいたおかげです。

皆様方に心からの感謝を申し上げます。

多くの皆様方に、このブログ及びTwitter、Facebook、YouTube、Sketchfab等を閲覧していただき、コメント・いいねなどをいただき、アドバイスしていただきました。それにより自分は大いに励まされ、学習意欲を増進させることができました。

web及び対面でお会いした全ての皆様方にあらためて心からお礼申し上げます。

先例にならい、この記事では14年間のブログ足取りをまとめるとともに、2025年のささやかな夢をメモすることにします

1 ブログ「花見川流域を歩く」14年間の足どり

1-1 14年間4159記事の分類


14年間4159記事の分類

2011年当初は花見川流域の自然や地形をテーマとした記事から出発しました。その後下総台地の地形や歴史に興味が移行しました。さらに2015年~2016年には千葉県地名(小字)に熱中しました。2017年頃から考古事象に興味が限定傾向となりました。最初は古代遺跡、その後縄文遺跡を対象に発掘調査報告書収録データ分析を行い、興味を深めています。

2023年には有吉北貝塚北斜面貝層学習対象を発掘調査報告書から発掘原票に切り替えて、より精細な情報3D分析に挑み始めました。このころから自分のAI革命(具体的にはChatGPT利用)が始まっています。2024年は有吉北貝塚北斜面貝層発掘原票の入力作業(電子化、データベース化)に明け暮れましたが、その活動意義をより深く捉えるようになり、学習充実感が濃厚になっています。なお、短期限定集中学習として人形塚古墳学習を行い、大いに楽しました。

1-2 14年間ブログ滑動の到達点

●記事数(Blogger 2011.01.15~2025.01.14)

4165記事

●閲覧数(Blogger 2011.01.15~2025.01.15)(人×ページ)

1098948ビュー

●訪問者数(flagcounter 2013.04.14~2025.01.15)(人×日)

401886人

●訪問者国数(flagcounter 2013.04.14~2025.01.15)

97国


訪問者の国

●訪問者人数の多い県・州 トップ20(flagcounter 2013.04.14~2025.01.15)(日本とアメリカ対象)


訪問者人数の多い県・州 トップ20


県・州別訪問者分布

2 2025年のささやかな夢リスト

2025年にその実現や端緒をつかみたいと考える夢リストをメモします。

2-1 有吉北貝塚北斜面貝層3Dデータベース化作業の進捗を図る

2024年に引き続き、2025年の最大の夢は有吉北貝塚北斜面貝層3Dデータベース化作業の進捗を図り、その概成に向かって進むことです。可能ならば、山を越えたいと願っています。幸いChatGPT利用により検討作業の効率化が急速に進んでいます。しかし、新たな課題・問題点も生まれ、ダイナミックな学習プロセスとなっています。検討作業を大いに楽しみ、意義ある成果を目指したいと思います。


北斜面貝層学習イメージ

2-2 縄文土器学習の技術的取組み

これまでの総合的な縄文土器学習の夢を一旦棚にあげて、学習間口を極端に狭めて、有吉北貝塚北斜面貝層学習に役立つ範囲で縄文土器学習を行うことにします。具体的には中峠式から加曽利EⅡ式頃の千葉地域付近の土器に限定して、その鑑識眼を持てるようになることが今年の夢です。


加曽利EⅡ式土器

2-3 磨貝学習

有吉北貝塚北斜面貝層出土磨貝(アリソガイ製ヘラ状貝製品、ハマグリ製ヘラ状貝製品)の用途学習の端緒を切り開くことが夢です。磨貝は皮なめしと関連すると考えられてきていますが、全く別の用途である可能性を含めて学習します。


磨貝

2-4 遺物や貝層の3D空間分布の表示技術及び関連技術の習得

遺物や貝層の3D空間分布の表示技術及び関連技術の習得をChatGPTを活用してすすめます。Blender、QGIS、postgreSQLなどを縦横無尽に活用できる技術を習得します。


Blenderイメージ

2-5 世界の風景・考古学習

次の素材を統合して、自分なりに新たな趣味ジャンルを創造して楽しむことにします。

・興味を深めて記事にした世界の風景・地形(ブログ「世界の風景を楽しむ」など)

・過去に旅行で巡って体験した世界40数か国の様子(写真や持ち帰った資料など)

・世界考古学切手収集(切手という現物)


考古学切手

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

●過去のブログ開設記念記事

2012.01.15記事「ブログ開設1周年

2015.01.15記事「2015年ささやかな夢リスト 趣味生活における埋土種子群落

2016.01.15記事「ブログ開設5周年通過

2017.01.15記事「ブログ開設6周年通過

2018.01.15記事「ブログ開設7周年通過にあたって

2019.01.15記事「ブログ開設8周年通過にあたって

2020.01.15記事「ブログ開設9周年通過にあたって

2021.01.15記事「ブログ開設10周年通過にあたって

2022.01.15記事「ブログ開設11周年通過にあたって

2023.01.15記事「ブログ開設12周年通過にあたって

2024.01.15記事「ブログ開設13周年通過にあたって




2025年1月14日火曜日

QGIS Pythonコンソールの使用

 Using the QGIS Python Console


Although a little late, I found out that QGIS has a Python console and can use Python scripts, so I tried using it. It seems that tasks that are difficult to do manually on the screen can be efficiently performed with Python scripts.


遅ればせながら、QGISにPythonコンソールがあり、Pythonスクリプトが使えることを知り、使ってみました。画面における手作業では難儀な作業を、Pythonスクリプトで効率的に実施できるようです。

1 Pythonスクリプト例(四角ポリゴン描画)

ChatGPT支援により作成した、プロジェクトCRSがEPSG6677で設定されているQGISで(-2000,0) (4000,0) (4000,-2000) (-2000,-2000)を頂点とする四角ポリゴンを描くPythonスクリプト。

from qgis.core import (
    QgsVectorLayer, QgsFeature, QgsGeometry, QgsPointXY, QgsProject, QgsField
)
from PyQt5.QtCore import QVariant

# プロジェクトCRSをEPSG:6677に設定(任意。既に設定されている場合は不要)
project = QgsProject.instance()
project.setCrs(QgsCoordinateReferenceSystem("EPSG:6677"))

# 空のポリゴンレイヤーを作成
layer_name = "Polygon Layer"
layer = QgsVectorLayer("Polygon?crs=EPSG:6677", layer_name, "memory")
layer_provider = layer.dataProvider()
layer_provider.addAttributes([QgsField("id", QVariant.Int)])
layer.updateFields()

# 四角形の座標を定義
coordinates = [
    (-2000, 0),
    (4000, 0),
    (4000, -2000),
    (-2000, -2000),
    (-2000, 0)  # ポリゴンを閉じるために始点を再度追加
]

# ポリゴンジオメトリを作成
points = [QgsPointXY(x, y) for x, y in coordinates]
polygon = QgsGeometry.fromPolygonXY([points])

# フィーチャを作成してポリゴンを設定
feature = QgsFeature()
feature.setGeometry(polygon)
feature.setAttributes([1])  # IDフィールドの値を1に設定
layer_provider.addFeature(feature)
layer.updateExtents()

# レイヤーをプロジェクトに追加
QgsProject.instance().addMapLayer(layer)

print(f"'{layer_name}' レイヤーが作成され、四角形ポリゴンが追加されました。")

2 QGISのPythonコンソール


QGISのPythonコンソール

Pythonコンソールはプラグイン→Pythonコンソールで開くことができます。

3 四角ポリゴン描画結果


四角ポリゴン描画結果

水色部分が四角ポリゴン描画結果です。描画後、確認のために半透明にしてあります。

4 感想

Pythonスクリプトを利用することにより、QGIS画面における手作業で単調な連続作業など難儀な作業を、Pythonスクリプトで効率的に実施できる可能性があることを確認しました。BlenderにおけるPythonコンソールとほぼ同じ感覚で使えそうです。

Pythonスクリプトの活用はこれまでBlender、Excel、Windows(explorer)、text、自作ツールでしたが、これにQGISが加わりました。