TIFFのNODATA部分に値を与えたい

1,246 views
Skip to first unread message

吉田

unread,
Mar 1, 2019, 3:07:49 AM3/1/19
to QGIS初心者質問グループ
はじめて質問させていただきます。
よろしくお願いいたします。

オーバーラップがある複数の地図がPDFになっています。
それら複数枚のPDFの地図を結合して1枚の地図にしたいです。

①それぞれ、少しづつ北がずれているため、PDFをTIFFに変換後幾何補正をして重なるようにしました。
②凡例や枠などが各ページにあり、1枚の地図にすると見にくいため、
 必要な範囲のポリゴンを作成して、ラスタデータのクリップで切り取りました。

③周辺が黒くなり、重なり部分が隠れてしまうため、プロパティの透過性からデータなし値を0に設定しました。
 必要な範囲まで白抜きになってしまいました。  


透過前.JPG 0入力前

透過後.JPG 0入力後


クリップで使ったshapeの範囲内のnodata?部分に黒になるように属性を与えたいです。

わかりにくい説明で申し訳ありませんが、方法があれば教えてください。


福岡

unread,
Mar 2, 2019, 1:59:16 AM3/2/19
to QGIS初心者質問グループ
吉田 様

こんにちは

同じような経験をして、ジオレファレンサーの「リサンプリング方法」では「最近傍」を使わないことで黒抜けを回避するようにしていました。
投稿をみて、再度ジオリファレンスしないで対応できる方法を探していたところ、次のような情報がありました。

How to remove black box around georeferenced grayscale image in QGIS?

内容をみてみると、「ラスタ - 変換 - 変換(形式変換)」を使ってnodata値を「0」以外の数値を設定するという解決方法が述べられています。
手持ちにちょうど良いファイルが無いので検証していませんが、同じGeoTiff形式でnodata値を設定することもできるように思います。

今回は私も手順を見直すことができそうです。ありがとうございました。

福岡

unread,
Mar 4, 2019, 2:43:10 AM3/4/19
to QGIS初心者質問グループ
吉田 様

手持ちのファイルで検証しましたが、なかなかうまく行きませんでした。
そこでクリップ前のラスタから0値を無くすようにしてから、クリップするという方法を考えました。
こちらは思ったように動作することは検証してありますので、よろしければお試しください。

クリップ前のラスタから0値を無くすのには、ラスタ計算機を使います。
入力する式は次のようにしました。

( レイヤ名@1 = 0 ) + レイヤ名@1

( レイヤ名@1 = 0 ) は真であれば「1」、偽であれば「0」を返します。
この式を使うと「0」の値を持つピクセルは「1」、それ以外のピクセルは現状の数値を持ったラスタを得ることができます。

これで切り取った画像内に値「0」が無くなるので、クリップ後にはnodataを「0」としても黒色が抜け落ちることは無いはずです。

吉田

unread,
Mar 5, 2019, 12:18:29 AM3/5/19
to QGIS初心者質問グループ
福岡様

お返事が遅くなりました。

ご紹介いただいた方法を試してみたいと思います。
取り急ぎ、お礼まで。

Reply all
Reply to author
Forward
0 new messages