LoginSignup
11
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

QGISで雲がかかった「天国から視点」っぽい画像を作る

Last updated at Posted at 2023-07-20

QGISで「天国から視点」っぽい雲がかった画像を作る - 作例

Anita Graser & Gretchen N. Peterson "QGIS Map Design (2nd Ed.)" という本にあった作法を参考に、ちょっと違うやり方で作りました(p.65 “8. Genearating Cloudy Masks”):

この書籍は、以下の過去事例(by Dylan Moriarty)を参考にしたそうです。Coolです:

手順

QGISで「衛星画像」を表示

こちらが参考になります↓

今回は「地理院写真」を利用しました。

たくさんの「点」をランダムにつくる

これが「雲」になります。

  • メニュー → 「プロセシング」 → 「ベクタ作成」→「ランダム点群」
    • 作成範囲: キャンバス領域を使用
    • 点の数: 10000 (適宜調整)
    • 点距離感の最小距離: 0

image.png

  • いい感じのスタイルにする
    • グレーで透過
    • #ededed, 透過率20%

「雲のないところ」をつくる

  • エリアのポリゴンを持ってくる
  • 雲がない場所を指定する
    • Layer: N03-21_01_210101
    • Polygons: ("N03_004" = '中央区') OR ("N03_004" = '厚別区')
scale_exp(
	distance(
		$geometry,
		union(
			geometry(get_feature('N03-21_01_210101_geo', 'N03_004', '中央区')),
			geometry(get_feature('N03-21_01_210101_geo', 'N03_004', '厚別区'))
		)
	),
	16616000, 16666847,
	0, 500,
	0.5
)

参考: scale_exp 関数↓

指数曲線を用いて、与えられた値を入力範囲から出力範囲に変換します。この関数は、指定された出力範囲へ値をイージングするために使用します。

構文 scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

↑の想定: 対象エリアから離れるにつれ円の半径を大きくする

... うまくいかない

  • geometry() → ジオメトリツールでポリゴンに「ジオメトリ属性を追加」しておく必要あった
    • distance() が、思ったような数字ではない
    • 「ポリゴンとポイントの距離」とは?

→ 別案

  • 「そのエリアなしのレイヤー」で「ランダムな点のレイヤー」を切り抜く(クリップ)
  • 円のサイズを、 rand(100, 500) みたいにしてそれっぽくする
  • ⇒ それなりにできたが、雲が切れるところで、「円」という感じに見える
  • (書籍での方法だと、切れるところ=縁に近づくにつれ、半径が小さくなるので、より自然では)

QGISで「天国から視点」っぽい雲がかった画像を作る - 作例

参考: 書籍 ""QGIS Map Design" でのオリジナル

本のダウンロード可能なリソース:

「memory layer」なるものを使っているので、プラグインが必要:

image.png

11
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
0