1つのメッシュに複数の異なるデータを結合したい

768 views
Skip to first unread message

おとは

unread,
Jan 15, 2023, 11:51:20 PM1/15/23
to QGIS初心者質問グループ
10mメッシュのデータ(A)と5mメッシュのデータ(B)があり、AにBの属性を結合したいと考えています。
なお、メッシュはピッタリ重なっています。
つまりBはAが4分割されている感じですので、結合する際はAに4つのデータが結合されていて欲しいのです。
空間結合は試しましたが、何故か属性テーブルには一つのデータしか入っていませんでした。
よろしくお願いします。

kida...@lilac.plala.or.jp

unread,
Jan 16, 2023, 1:56:11 AM1/16/23
to QGIS初心者質問グループ
確認ですが、操作した内容としては、「属性の空間結合」で

ベースレイヤ:A
結合レイヤ:B
結合のタイプ:マッチした地物ごとに地物を作成

の条件で作成でしょうか?

この場合、仮に
Aレイヤの右上のインデックスを1
Bレイヤの右上のインデックスを1-1,1-2-1-3,1-4
とした場合、
A:1+B:1-1
A:1+B:1-2
A:1+B:1-3
A:1+B:1-4
という組み合わせのデータが作成されていないでしょうか?

ご質問の内容に沿ったデータを作成するのであれば、
メッシュデータAにユニークなインデックスを振って、
上記の作業をしたのち、
レイヤプロパティのほうの「テーブル結合」から、
Aに振ったユニークなインデックスをキーにして結合するのが良いような気がします。
(必要に応じてBにもインデックスを振っておけば、組み合わせを変えてフィールド演算でデータ追加可能と思います)

おとは

unread,
Jan 16, 2023, 2:21:38 AM1/16/23
to QGIS初心者質問グループ
すみませんでした!
修正前の文章を送っておりました!

属性の空間結合で実行しており、
地物を結合するエリア:A
比較対象:B
空間的関係:含む
結合型:1対多結合
をオプションに設定していました。
想定としては、
Aレイヤの1メッシュ内に4つのメッシュデータ(5mメッシュで2*2の4メッシュ)が独立して格納されると思っていました。
しかし、実際は4つのうちどれかは分かりませんが1メッシュ分のデータしか格納されていませんでした。

これが今の現状となります。

インデックスを振るということを検討したのですが、途中でズレる可能性があるため厳しいかもしれません。
というのも、解析結果をshapeファイルで書き出したのがA、Bなのですが、5mメッシュのほうが細かい(高精度)ためメッシュ数が多くなっているからです。
10mでは弾かれた分のデータが5mでは弾かれず書き出されている箇所があります。
2023年1月16日月曜日 15:56:11 UTC+9 kida...@lilac.plala.or.jp:

木谷

unread,
Jan 16, 2023, 8:24:51 AM1/16/23
to QGIS初心者質問グループ
空間結合で作成されたレイヤのデータ数を属性テーブルを開いて確認してみて下さい。
元のAのデータ数の4倍ほどになっていないでしょうか?

つまり見た目Aのサイズの1ポリゴンの上に、結合されたBの個々のデータを持ったポリゴンが4つ重なっている状態になっていませんか?

なので、Aレイヤにインデックスを振ってやって、再度同じ処理をしたのち、同じインデックスを持つデータ同士は同じ位置に存在する同じポリゴンであるので、
インデックスを元にBの情報を整理してやれば可能ではあります。
この辺某ArcGISでは空間結合された値をファーストかラストか全部結合かを選べたのですが、QGISでは無さそうなので、Excel等に持っていって処理する方が早いかもです。

----
ちなみに自分なら、Bポリゴンに縦横の行・列番号をジオメトリから引っ張ってきてインデックスを振り
(等間隔だと思うので距離を間隔で割って奇数偶数で分ければAポリゴンに対するBポリゴン1,2,3,4それぞれインデックスは作成できる、
縦横とも1は1、縦1横2は2、縦2横1は3、縦横とも2は4、距離で算出しているので1行の折り返しのグリッド数が違っていてもインデックスに狂いは出ない)、
該当するAポリゴンのインデックスをBポリゴンに付与して、Excelでピボットテーブルなどでゴニョります…(レイヤプロパティのテーブル結合でどうにかできないこともないとは思うが…)


2023年1月16日月曜日 16:21:38 UTC+9 おとは:

おとは

unread,
Jan 16, 2023, 9:44:10 PM1/16/23
to QGIS初心者質問グループ
おぉ!なるほど!
確かに行列番号での割り振れば狂いなくできます!
その方法でやってみようと思います!

属性テーブルの方ですが、データ数は4倍ではありませんでした。
本当に不思議なのですが、1対多結合で実行しているのに属性テーブルには1つしかデータがないのです。


2023年1月16日月曜日 22:24:51 UTC+9 木谷:

おとは

unread,
Jan 16, 2023, 9:53:20 PM1/16/23
to QGIS初心者質問グループ
回答ありがとうございました!!!

2023年1月16日月曜日 22:24:51 UTC+9 木谷:
空間結合で作成されたレイヤのデータ数を属性テーブルを開いて確認してみて下さい。

木谷

unread,
Jan 17, 2023, 5:11:05 AM1/17/23
to QGIS初心者質問グループ
解決したようですが、一応…

増えたデータは、「列」ではなく「行」です。
カラムが増えて、結合された4つのメッシュのデータが統合して書き込まれるのではなく、
ポリゴン数が増えて、最初の回答のようなAポリゴン+Bポリゴンの4つのパターンのデータが作成されていないでしょうか?
ここを理解してないとドツボにハマりそうなので、書き加えておきます。

2023年1月17日火曜日 11:53:20 UTC+9 おとは:

おとは

unread,
Jan 19, 2023, 4:42:47 AM1/19/23
to QGIS初心者質問グループ
ありがとうございます。

少々勘違いしておりました!
XX_1、XX_2、XX_3、XX_4というように何かしらの番号付きで4列追加されるものかと想像していました。
列ではなく行が増えるのですね。
やり直してしまったのでデータはないのですが、よく気を付けようと思います。
ありがとうございました。
2023年1月17日火曜日 19:11:05 UTC+9 木谷:
Reply all
Reply to author
Forward
0 new messages