2026年6月22日月曜日

技術メモ pngファイルからヒートマップを作成するPythonスクリプトの改良

 Technical Notes: Improvements to a Python Script for Creating Heatmaps from PNG Files


I've been using a very convenient Python script to create heatmaps from dot distribution images (transparent background PNG files). However, I encountered some issues, so I've improved it. The resulting Python script is now more robust.


ドット分布画像(背景透明pngファイル)からヒートマップを作成するPythonスクリプトをとても便利に使っています。しかし、不都合が生じたので改良しました。より堅牢なPythonスクリプトとなりました。

この記事は2026.06.03記事「技術メモ pngファイルから直接ヒートマップを作成するPythonスクリプト」の続きになります。

1 遭遇した不都合


遭遇した不都合

これまで順調にpngファイルからPythonスクリプトで直接ヒートマップを作成してきました。しかし、上記のような不都合に遭遇しました。

調べたところ、画像の透明部分にRGBの色が残っている部分が存在しているために生じた現象であることがわかりました。Pythonスクリプトは透明か否かではなく、色がある部分=点群データとして扱っているので生じた不都合です。

2 不都合の解決策

この不都合の解決策として、次の2を執りました。

1 画像透明部から色を完全に除去する新たなPythonスクリプト作成。

2 色のある透明部を間違って拾わないヒートマップ作成Pythonスクリプトの作成。

それぞれのPythonスクリプトを作成しましたが、2の新たな改良ヒートマップ作成Pythonスクリプトを使う方が作業の手間がはぶけます。ヒートマップ作成Pythonスクリプトがより堅牢となりました。

3 改良Pythonスクリプト (透明部に色が残っていても正常に作動する改良版)


from pathlib import Path

import cv2
import numpy as np
from PIL import Image
from matplotlib import cm

# =========================
# 設定
# =========================

input_path = r"G:/test/aaa.png"
output_path = r"G:/test/aaa_heatmap.png"

# 使用する単色グラデーション
# 例: "Blues", "Reds", "Greens", "Purples", "Oranges", "Greys"
color_map_name = "Reds"

# グラデーションの区分数
# 例: 5, 8, 10, 16, 32
gradient_steps = 10

# 密度計算のぼかし半径
# 大きいほど広くなめらかな密集度になる
blur_radius = 20

# 背景を透明にするか
transparent_background = False

# 点群抽出に使うアルファ閾値
# alpha > alpha_threshold のピクセルだけを点として扱う
# 0: わずかでも不透明なら点
# 10〜30: ほぼ透明なノイズを除外
alpha_threshold = 20

# ヒートマップの透明出力時、薄い密度部分を透明にする閾値
# 通常は 0.0 のままでOK
heat_alpha_threshold = 0.0

# =========================
# 処理
# =========================

input_file = Path(input_path)
if not input_file.exists():
    raise FileNotFoundError(f"画像が読み込めません: {input_path}")

# RGBAで読み込み、RGB値には依存しない
img = Image.open(input_file).convert("RGBA")
arr = np.array(img)

# アルファチャンネルだけで点群を抽出
alpha = arr[:, :, 3]
dot_mask = alpha > alpha_threshold

point_pixels = int(np.count_nonzero(dot_mask))
if point_pixels == 0:
    raise ValueError(
        "アルファ値から点を検出できませんでした。"
        f" alpha_threshold={alpha_threshold} を下げてください。"
    )

print(f"画像サイズ: {img.size[0]} x {img.size[1]}")
print(f"alpha min/max: {int(alpha.min())} / {int(alpha.max())}")
print(f"点として使うピクセル数: {point_pixels}")

# 密度画像を作成
density = dot_mask.astype(np.float32)

# ガウシアンぼかしで密集度を計算
density = cv2.GaussianBlur(
    density,
    ksize=(0, 0),
    sigmaX=blur_radius,
    sigmaY=blur_radius,
)

# 0〜1に正規化
max_density = float(density.max())
if max_density > 0:
    density = density / max_density

# グラデーションを段階化
density_step = np.floor(density * gradient_steps) / gradient_steps
density_step = np.clip(density_step, 0, 1)

# カラーマップ適用
cmap = cm.get_cmap(color_map_name)
heat_rgba = cmap(density_step)

# 0〜255へ変換
heat_img = (heat_rgba[:, :, :3] * 255).astype(np.uint8)

# 密度ゼロ部分の処理
if transparent_background:
    out_alpha = (density > heat_alpha_threshold).astype(np.uint8) * 255
    output = np.dstack([heat_img, out_alpha])
    Image.fromarray(output, mode="RGBA").save(output_path)
else:
    # 背景は白
    heat_img[density <= heat_alpha_threshold] = [255, 255, 255]
    Image.fromarray(heat_img, mode="RGB").save(output_path)

print(f"ヒートマップを書き出しました: {output_path}")

2026年6月20日土曜日

考古学切手 兵馬俑 その1

 Archaeological Stamps: Terracotta Army, Part 1


I enjoy collecting archaeological stamps featuring the Terracotta Army from my personal collection. These are four older stamps issued in 1983. They were out of stock at stamp dealers, so I acquired them through Mercari.


兵馬俑をテーマとした考古学切手をマイコレクションの中から集めて楽しんでいます。最初に1983年発行の古い切手4種です。切手商には在庫がなく、メルカリで入手しました。

1 兵馬俑 T.88.(4-1) 中国発行


兵馬俑 T.88.(4-1) 中国発行

1983年

特種切手「秦始皇帝兵馬俑(カタログ番号:T88)」の4種セットのうちの1枚

2 兵馬俑 T.88.(4-2) 中国発行


兵馬俑 T.88.(4-2) 中国発行

1983年

特種切手「秦始皇帝兵馬俑(カタログ番号:T88)」の4種セットのうちの1枚

3 兵馬俑 T.88.(4-3) 中国発行


兵馬俑 T.88.(4-3) 中国発行

1983年

特種切手「秦始皇帝兵馬俑(カタログ番号:T88)」の4種セットのうちの1枚

4 兵馬俑 T.88.(4-4) 中国発行


兵馬俑 T.88.(4-4) 中国発行

1983年

特種切手「秦始皇帝兵馬俑(カタログ番号:T88)」の4種セットのうちの1枚

5 メモ

よく見かける兵馬俑の切手であり、直ぐにでも入手できると楽観していました。しかし、どの切手商にも在庫がなく、入手をあきらめかけていました。あるとき、フト、メルカリの存在に気が付き検索したところ、格安で即入手できました。それ以来切手入手方法としてメルカリを多用するようになりました。

メルカリ販売者(過去のお土産品などの不要物処分)←→私(考古学切手として入手したい価値ある小品)という対照が面白いです。

話しは脱線しますが、古い考古学図書の入手にヤフオクを利用したことあります。縄文土器大観全4巻を、うまく立ち回り、格安で入手できた体験があります。しかし、ヤフオクを使ってみて、無意味に他の人と競うという心を磨り減らす側面があり、それ以来止めました。それに対して、メルカリは心の負担なしに価値交換できるので、よりよい仕組みです。


2026年6月18日木曜日

第1断面谷頭部の混貝土層母材の供給源

 Source of the Mixed Shell Soil Layer at the Head of the Valley in Section 1


At the head of the valley in Section 1, there are no landslides or collapsed layers. Nevertheless, the steep cliff is completely filled with a mixed shell soil layer. I have long wondered where this parent material came from. However, by examining the cross-section in a 3D topographic model, I was able to estimate the topography of the parent material's source.


第1断面谷頭部では崖崩れがなく、崩落層がありません。にもかかわらず急崖は混貝土層で埋めつくされています。その母材がどこからきたものか以前から疑問でした。しかし地形3Dモデルのなかで断面を見ると母材供給源の地形を推定できました。

1 第1断面谷頭部貝層区分


第1断面谷頭部貝層区分

この貝層区分図は発掘調査報告書区分をセクション図にトレースしたものです。

第1断面谷頭部はガリー侵食による急崖となっています。この急崖には崖崩れがありません。従って急崖下には崩落層がありません。

急崖頂部から投棄された貝殻が急崖直下と混貝土層の途中に混土貝層として分布しています。

この貝層発達を見て、混貝土層と土層の母材の起源がどこであるのか、以前から疑問として残っていました。

下流の斜面貝層が発達する断面では崩落層の存在から急崖の頂部に崖崩れを想定できて、崖崩れが崩落層や混貝土層母材の供給源として推定できました。


参考 第30断面(剥取断面)崩落層の母層(崩落母層)の推定

2 第1断面谷頭部 母材供給源の推定


第1断面谷頭部 母材供給源の推定

地形モデルの中で第1断面をみると、第1断面と台地平面部との間に小崖と言えるような急斜面部が存在しています。この小崖から第1断面急崖を埋める混貝土層、土層の母材が供給されていたと推定します。

この小崖はその分布からガリー侵食とは無関係な地形と判断できます。


2026年6月16日火曜日

第1断面谷頭部における出土土器の型式

 Pottery Types from the Valley Head of Section 1


I have extracted pottery with a determined type from the valley head of Section 1. Within the ±0.5m box, there is only one piece, which is a Kasori EII type, mid-to-late stage pottery. The excavation site is directly below a gully erosion cliff. This indicates that gully erosion in this section was active during the Kasori EII type, mid-to-late stage. This is very valuable information for considering the development history of shell beds.


第1断面谷頭部における型式判明土器を抽出しました。±0.5mボックス内では1件だけで、加曽利EⅡ式中~新段階土器です。出土位置はガリー侵食崖直下です。この状況からこの断面のガリー侵食は加曽利EⅡ式中~新段階期にアクティブであったことが判ります。貝層発達史を考える上でとても貴重な情報です。

1 第1断面谷頭部 ±0.5m幅ボックス内土器片の投影図


第1断面谷頭部 ±0.5m幅ボックス内土器片の投影図

±0.5mボックス内では1件だけで、加曽利EⅡ式中~新段階土器です。出土位置はガリー侵食崖直下です。

ボックス幅を±1mにひろげると崖頂部近くに阿玉台式土器1件が出現します。


参考 第1断面谷頭部 発掘調査報告書貝層区分

2 考察

2-1 加曽利EⅡ式中~新段階期前後の状況

加曽利EⅡ式中~新段階土器がガリー侵食急崖直下から出土しているので、この急崖がアクティブであった状況下で、急崖上の台地縁から貝殻や土器片投棄があったと考えられます。この情報からこの付近は加曽利EⅡ式中~新段階期にもガリー侵食が進行していたことを確認できます。同時に加曽利EⅡ式中~新段階期から加曽利EⅡ式新段階期までに崖がほぼ完全に埋め立てられたことも確認できます。土器北斜面貝層の貝層発達史を考える上でとても貴重な情報です。

2-2 阿玉台式土器出土の意義

断面から±1mまでボックスの幅を広げると急崖の上の方に阿玉台式土器が出土します。この情報から次の状況を推察します。

阿玉台土器が加曽利EⅡ式中~新段階期に台地縁から投棄された可能性もゼロではないと考えます。しかし、各土器型式はその型式が使われていた時期に投棄されたと想定して検討し、つぎのように考えます。

阿玉台式期にこの当たりは既にガリー侵食が進み急崖ができていた。阿玉台期には阿玉台式土器が投棄され、その一部は崖の途中に引っかかるようにして堆積した。ガリー侵食はその後も続き、加曽利EⅡ式中~新段階期の崖は阿玉台式期の崖から50㎝ほど離れた場所に発達していた。加曽利EⅡ式中~新段階期以降急崖は急激に投棄貝殻で埋め立てられた。

2-3 第30断面との比較


参考 第30断面(剥取断面)±0.5m幅ボックス内土器片の投影図

ガリー侵食谷の下流に位置する第30断面では斜面貝層の年代は中峠式期に遡ります。従って、第30断面では遅くとも中峠式期にはガリー侵食活動は終了しています。それと較べると第1断面谷頭部は大変新しい時期(加曽利EⅡ式中~新段階期)までガリー侵食活動が継続していたことになります。ガリー侵食活動のアクティブな状況が下流から上流に向かって移動してい様子を推察することができます。


2026年6月14日日曜日

比較資料 断面の全石器分布ヒートマップ

 Comparative Data: Heatmap of All Stone Tool Distribution in a Cross Section


I created a heatmap of stone tool distribution in the 30th section of the shell layer on the north slope of the Ariyoshi Kita Shell Mound and compared it with heatmaps of pottery and bone/tooth distribution. It is very interesting that the heatmap characteristics differ for each type of artifact.


有吉北貝塚北斜面貝層の第30断面における石器分布ヒートマップを作成し、土器と骨歯分布ヒートマップと比較しました。遺物種毎にヒートマップ特性が異なることはとても興味深いことです。

1 第30断面(剥取断面) ±0.5m幅ボックス内全石器投影図のヒートマップ


第30断面(剥取断面) ±0.5m幅ボックス内全石器投影図のヒートマップ

石器出土数は91です。

ヒートマップは点分布pngファイル画像からPythonスクリプトで生成しました。


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ


第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ

2 第30断面(剥取断面) ±0.5m幅ボックス内全石器投影図のヒートマップ(背景セクション図)


第30断面(剥取断面) ±0.5m幅ボックス内全石器投影図のヒートマップ(背景セクション図)


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図)


第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ(背景セクション図)

3 メモ

全石器分布ヒートマップを見ると、斜面貝層では斜面上部に分布は少ないですが、斜面中部と下部に分散的に分布していることが特徴となっています。土器や骨歯のように分布集中域が見られないことが特徴です。なぜそうなのか、その理由は現段階で不明です。

斜面中部から下部にかけて斜面勾配が緩くなること、石器と言っても大小や形状が様々あることなどが高濃度流における石器挙動の選択的要因になっているのかもしれません。今後検討を深めることにします。

いずれにしても、土器、骨歯、石器という遺物種毎に断面分布特性が異なることはとても興味深いことです。


2026年6月12日金曜日

比較資料 断面の全骨歯分布ヒートマップ

 Comparative Data: Heatmap of Whole Bone and Tooth Distribution in a Cross-Section


I observed from the heatmap of whole pottery fragment distribution in the 30th cross-section of the shell layer on the north slope of the Ariyoshi Kita Shell Mound that pottery fragments were concentrated and unevenly distributed on the lower part of the slope. To compare and contrast this pottery distribution, I created a heatmap of whole bone and tooth distribution. The uneven distribution of bones and teeth, which are smaller than pottery fragments, is small, and the center of distribution is in the middle of the slope.


有吉北貝塚北斜面貝層の第30断面における全土器片分布ヒートマップから、土器片は斜面下部に集中偏在している様子を観察しました。この土器分布と比較対照するために、全骨歯分布ヒートマップを作成しました。土器より小さい骨歯の偏在性は小さく、分布の中心は斜面中部です。

1 第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ


第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ

骨歯出土数は1533です。

ヒートマップは点分布pngファイル画像からPythonスクリプトで生成しました。


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ

2 第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ(背景セクション図)


第30断面(剥取断面) ±0.5m幅ボックス内全骨歯投影図のヒートマップ(背景セクション図)


第30断面(剥取断面) ±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図)

3 メモ

ヒートマップを比較すると全土器片分布特性と全骨歯分布特性が明白に異なることが判明します。骨歯、土器、貝殻は全て台地縁から投棄されたと考えることできますから、投棄後の投棄物移動運動(高濃度流)でソートされたと想定します。土石流先端に巨石が集中する現象と類似の現象を想定します。



2026年6月11日木曜日

断面の土器分布ヒートマップ

 Heatmap of Pottery Distribution in a Cross-Section


I created a heatmap of the total pottery fragment distribution in the 30th cross-section (exfoliated cross-section) of the shell layer on the north slope of the Ariyoshi Kita Shell Mound. Similar to observations of the exfoliated cross-section itself, the data revealed a concentration and uneven distribution of pottery at the lower part of the slope.


有吉北貝塚北斜面貝層の第30断面(剥取断面)における全土器片分布のヒートマップを作成しました。剥取断面そのものの観察と同じように、斜面下部に土器が集中して偏在している事実をデータで把握しました。

1 第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ

土器片総数は883です。

ヒートマップは点分布pngファイル画像からPythonスクリプトで生成しました。

2 第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図)


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図)

3 第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図 検討)


第30断面(剥取断面)±0.5m幅ボックス内全土器片投影図のヒートマップ(背景セクション図 検討)

剥取断面そのものの観察と同じように、斜面下部に土器が集中して偏在している事実をデータで把握しました。斜面貝層生成モデル(貝殻遺物投棄→高濃度流流下モデル)の基礎となる重要データです。


2026年6月10日水曜日

考古学切手 ネフェルティティ胸像

 Archaeological Stamp: Bust of Nefertiti


I enjoyed collecting stamps depicting the bust of Nefertiti from my archaeological stamp collection.


考古学切手マイコレクションの中からネフェルティティ胸像が描かれた切手を集めて楽しみました。

1 ネフェルティティ胸像 アラブ連合共和国発行


ネフェルティティ胸像 アラブ連合共和国発行

1960年

普通切手

2 ネフェルティティ胸像 アラブ連合共和国発行


ネフェルティティ胸像 アラブ連合共和国発行

1959年

パレスチナ(ガザ地区)向け普通切手

未使用

3 ネフェルティティ胸像 エジプト発行


ネフェルティティ胸像 エジプト発行

1950年代

普通切手

4 ネフェルティティ胸像 アラブ連合共和国発行


ネフェルティティ胸像 アラブ連合共和国発行

1950年代~1960年代

普通切手

5 ネフェルティティ胸像 エジプト発行


ネフェルティティ胸像 エジプト発行

1950年代

普通切手

6 ネフェルティティ胸像 エジプト発行


ネフェルティティ胸像 エジプト発行

1950年代

普通切手

7 ネフェルティティ胸像 エジプト発行


ネフェルティティ胸像 エジプト発行

1956年

国際博物館週間(Semaine Internationale des Musées)記念切手

未使用

8 ネフェルティティ胸像 モザンビーク発行


ネフェルティティ胸像 モザンビーク発行

2002年

記念切手

9 ネフェルティティ胸像 モザンビーク発行


ネフェルティティ胸像 モザンビーク発行

2002年

記念切手

10 ネフェルティティ胸像 モザンビーク発行


ネフェルティティ胸像 モザンビーク発行

2002年

記念切手

11 ネフェルティティ胸像 グレナダ発行


ネフェルティティ胸像 グレナダ発行

12 ネフェルティティ胸像小型切手シート トーゴ共和国発行


ネフェルティティ胸像小型切手シート トーゴ共和国発行

2013年

ネフェルティティ胸像発見100周年記念切手

13 ネフェルティティ胸像 フジャイラ発行


ネフェルティティ胸像 フジャイラ発行

1966年

カイロ国際切手展(エジプト切手発行100周年記念)記念切手

14 ネフェルティティ胸像 エジプト発行、アラブレング共和国発行


ネフェルティティ胸像 エジプト発行、アラブ連合共和国発行

1950年代~1960年代

普通切手




2026年6月9日火曜日

円環状雨雲はエコー

 Annular Rain Clouds are Echoes


On June 3, 2026, I reported that an annular rain cloud had appeared on the Japan Meteorological Agency's rain cloud movement map. The Japan Meteorological Agency responded that it was an echo caused by differences in the sensitivity of nearby and distant radar sites.


2026.06.03に気象庁雨雲の動きマップに円環状雨雲が表現されたことを情報発信しましたが、気象庁より近傍と遠方のレーダーサイトの感度の違いによるエコーであるとの回答をいただきました。

2026.06.04記事「マップに表現された円環状雨雲」に関連して、気象庁に問い合わせたたところ、大気海洋部ご意見メール担当様から次の回答をいただきました。(2026.06.09)

丁寧な回答に感謝申し上げます。

【回答】

-----------------------

気象庁 | 雨雲の動き・雷活動度・竜巻発生確度(ナウキャスト) をご覧いただきありがとうございます。

レーダサイト近傍と遠方で異なる電波を使っているため、その境界付近で感度の違い等により円弧状のエコーが生じることがあります。

今回の事象はそれによるものと思われます。

雨雲の動きでは国土交通省設置のレーダーも利用しており、今回は国土交通省が千葉県に設置したレーダーで発生したものと推定されます。

以下の国土交通省のHPでも解説がありますので、ご参照ください。

川の防災情報 - 国土交通省:レーダ雨量 ご利用上の注意


QGISを使った3種の疑似座標GIS解析を比較してみました

 I compared three types of pseudo-coordinate GIS analysis using QGIS.


I define pseudo-coordinate GIS analysis as a method of analyzing geographic information independently of the actual geographic space by using QGIS coordinates as dummy data. I compared and examined the usability of three pseudo-coordinate GIS analysis methods, each differing in their use of coordinate reference systems (CRS).


QGISの座標をダミーとして使って、現実地理空間とは無関係に地理情報を解析する方法を疑似座標GIS解析と呼ぶことにします。座標参照系(CRS)利用法の違いによる3つの疑似座標GIS解析法について、その使い勝手を比較して確かめてみました。

1 疑似座標GIS解析について


有吉北貝塚北斜面貝層の発掘平面図(発掘調査報告書から引用)

上図は地図上で任意位置に設定したグリッドに基づいて発掘が行われた事例です。遺物などの位置情報もグリッドを基準に収集されています。このような事例で解析にGISを使う場合、方位をGISに合わせるとそれに合わせてグリッド単位の遺物情報も全て変換する必要があり、とても複雑になります。方位を北上で表現しているGIS画面からグリッド線が水平垂直になるように表現し直すことも複雑な操作となります。またこの図だけからこの図をGISにジオリファレンスすることはできないので、別の正確な位置図が必要になり、手間がかかります。

このような各種不都合を避けて、上図と関連情報を現実地理空間とは無関係に直接GISにプロットしてGIS解析する方法を疑似座標GIS解析と呼ぶことにします。

疑似座標GIS解析を使えば、座標位置が不明確な地理情報、局地的分布資料や略図などもGISで気軽に解析できるようになります。

2 3種の疑似座標GIS解析法

座標参照系(CRS)利用法の違いにより、疑似座標GIS解析を次の3つに区分して、その使い勝手をQGISで比較して確かめてみました。

・座標参照系なし利用法(CRSなし)

・カスタム座標参照系利用法(カスタムCRS)

・既存座標参照系のダミー利用法(ダミーCRS)

3 疑似座標GIS解析法のテスト

まずQGISに、発掘平面図をジオリファレンスでインポートし、さらに標高点群csvファイルをレイヤー追加でインポートしました。


発掘平面図(ジオリファレンス用)


参考 ジオリファレンス資料

次に標高点群資料からTIN補間で地形3Dモデルを作成し、標高点群資料と地形3DモデルをQgis2threejsで立体表示しました。

4 座標参照系なし利用法(CRSなし)

4-1 プロジェクトCRSの設定

プロジェクトCRSをCRSなしに設定します。


CRSなしの設定

4-2 発掘平面図のジオリファレンス

発掘平面図をジオリファレンスします。ジオリファレンスの項目でCRS入力欄があり、この中にCRSなしがありません。そこで今回はダミーでEPSG6677を入れました。

4-3 標高点群csvファイルのレイヤ追加

標高点群csvファイルをレイヤー追加します。追加の際、CRS入力欄があり、この中にCRSなしがありません。そこでダミーとしてEPSG6677を入れました。

4-4 標高点群から地形3Dモデルの作成

標高点群からTIN補間で地形3Dモデルを作成しました。

4-5 Qgis2threejsによる立体表示


Qgis2threejsによる立体表示結果

標高点群は立体表示できます。しかし地形3Dモデルは立体表示できません。プロジェクトCRSをEPSG6677にすると地形モデルも立体表示されます。

4-6 感想

情報をプロットする際にダミーCRSの入力が必要なことと、Qgis2threejsがCRSのない地形3Dモデルを受け付けないことから、この方法は実用性が低いといえます。

ちなみにこのQGISにGoogleMapを投影すると、(0,0)は大西洋上の赤道と子午線交点になります。

5 カスタム座標参照系利用法(カスタムCRS)

5-1 プロジェクトCRSの設定

設定→カスタム投影法で開く画面で新しいユーザー定義CRSを追加して、形式欄に次のスクリプトを記入して、CRSの名前も設定してカスタムCRSを定義しました。

入力した定義スクリプト(Proj文字列)

+proj=tmerc +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs

入力した名前

Local_XY_meter


ユーザー定義CRS画面

プロジェクトCRSをクリックして開く画面に座標参照系として次の新しい座標参照系が設定されているので、適用します。

USER:100026-Local_XY_meter


ユーザーCRSを適用している様子

5-2 発掘平面図のジオリファレンス

発掘平面図をジオリファレンスします。ジオリファレンスの項目のCRS入力欄にはUSER:100026を入れます。

5-3 標高点群csvファイルのレイヤ追加

標高点群csvファイルをレイヤー追加します。追加の際のCRS入力欄にはUSER:100026を入れます。

5-4 標高点群から地形3Dモデルの作成

標高点群からTIN補間で地形3Dモデルを作成しました。

5-5 Qgis2threejsによる立体表示

標高点群と地形3Dモデルは正常に立体表示できました。


Qgis2threejsによる立体表示

5-6 感想

最初にカスタムCRSを設定することが手間になります。

ちなみにこのQGISにGoogleMapを投影すると、(0,0)は大西洋上の赤道と子午線交点になります。

6 既存座標参照系のダミー利用法(ダミーCRS)

6-1 プロジェクトCRSの設定

今回はEPSG6677を使いました。

6-2 発掘平面図のジオリファレンス

発掘平面図をジオリファレンスします。CRSはEPSG6677です。

6-3 標高点群csvファイルのレイヤ追加

標高点群csvファイルのレイヤを追加します。CRSはEPSG6677です。

6-4 標高点群から地形3Dモデルの作成

標高点群からTIN補間で地形3Dモデルを作成しました。

6-5 Qgis2threejsによる立体表示

標高点群と地形3Dモデルは正常に立体表示できました。


Qgis2threejsによる立体表示

6-6 感想

通常のQGIS利用と全く同じ方法で利用できました。

ちなみにこのQGISにGoogleMapを投影すると、(0,0)は野田市中里付近になります。

7 まとめ

次の順番で使い勝手が良くなることを理解しました。

・座標参照系なし利用法(CRSなし) 難あり

・カスタム座標参照系利用法(カスタムCRS) 余分な手間がかかる

・既存座標参照系のダミー利用法(ダミーCRS) 通常利用と同じ(難無し)

CRSなしやカスタムCRSに利用利点があるかもしれないと考えて(期待して)実施したテストですが、その期待ははずれ、ダミーCRS利用がもっとも良いことが判りました。