コードを文字列に

334 views
Skip to first unread message

藤本一善

unread,
Mar 9, 2022, 11:54:28 PM3/9/22
to QGIS初心者質問グループ
森林簿の大字がコード表記されているため文字に変換したいのですが、いちいちコピペしていたのでは大変なのでなにかいい方法がないでしょうか。
フィールド計算機を使えばいいのかなとは思いますが式がよくわかりません。
皆さんどうぞよろしくお願い申し上げます。

ありた

unread,
Mar 10, 2022, 7:36:52 AM3/10/22
to QGIS初心者質問グループ
こんにちは

大字コードが格納されている属性を code として進めます。

フィールド計算機で CASE WHEN 式を使って次のように書くと、結果の値
(ここでは「一宮」など)を対象の属性に代入することができます。
CASE
WHEN "code" = 1 THEN
    '一宮'
WHEN "code" = 2 THEN
    '二宮'
ELSE
    'その他'
END


上記は code 属性が数値型を想定した例ですが、文字列型の場合は "code" = 'A'
ような条件式とします。
属性値には二重引用符、文字列リテラルには一重引用符を使います。
イコールの他にも含むなどの条件や、複合条件なども利用することができます。
個々の演算子についてはフィールド計算機の中央の関数リスト内の「演算子」の
ツリーを確認し、右側の解説文をみてください。



また、フィールド計算機を使わない方法として、属性テーブルを開き、 行番号をクリック
( Ctrl +クリックで複数選択、 Shift +クリックで連続選択)を利用した選択や、
「式による選択」で条件式(たとえば "code" = 1 など)による選択を行います。
属性テーブルの上部のフォームで、代入したい属性を選択し、入力枠に値を入力、
「選択の更新」を実行することにより値の代入を行うことができます。

種別が多い場合は大変ですが、目で確認しながらひとつひとつ処理できるため、
場合によってはこちらのほうがよいかもしれません。

藤本一善

unread,
Mar 11, 2022, 12:36:56 AM3/11/22
to QGIS初心者質問グループ
スクリーンショット 2022-03-11 03.31.43.pngありたさんありがとうございます。
フィールド計算機を使うのは初めてのためえらーばかり出てしまいます。
図のようになってしまいます。
図の大字のコード例えば1000を具体的な地名に変えたいのですが、
なかなかうまくいきません。
もう一度ご教示いただけないでしょうか。
どうぞよろしくお願い申し上げます。
2022年3月10日木曜日 21:36:52 UTC+9 ありた:

福岡

unread,
Mar 11, 2022, 2:56:24 AM3/11/22
to QGIS初心者質問グループ
こんにちは

横入りで申し訳ありません。m(__)m

画像の「大字」というフィールドをみると、コード表示が左寄せになっています。
これは「大字」というフィールドの「データ型」が「文字列型」の特徴です。

ありたさんの投稿をご確認ください。
「文字列リテラルには一重引用符を使います」と説明なさっています。

そういうことなので、今回の場合は
「WHEN ""大字"" = 1000」となっているところを
「WHEN ""大字"" = '1000'」と記述する必要があると思います。

それと蛇足ですが、計算の元となっているフィールドへ重ね書きすることは一般的では無いように思います。
例えば「2000」も誤って「赤崎」と重ね書きしてしまうと、戻って訂正作業するのが難しくなるからです。
今回の作業ではドラブルが発生する確率が低いように思いますが、気にとめてくださるとうれしいです。

またこの機会に「データ型」について意識することをお勧めします。
Shapeファイルですと「文字列」、「整数」、「小数点付き数値」、「日付」という「データ型」があります。
これらはレイヤプロパティの「属性」タブで確認できます。
直感的におわかり頂けると思いますが、「整数」へ文字列を入力することはできません。
今回の例をとると、「大字」フィールドが「整数」であった場合、漢字を重ね書きすることはできません。

QGISを使いこなすのは大変だと思いますが、頑張ってください。

2022年3月11日金曜日 14:36:56 UTC+9 infoacc...@gmail.com:

藤本一善

unread,
Mar 19, 2022, 2:46:28 AM3/19/22
to QGIS初心者質問グループ
ありたさん福岡さんありがとうございます。
何とか理解できましたが福岡さんがおっしゃるように、あえてコードを書き換えないことにしました。
お二人に感謝申し上げます。

2022年3月11日金曜日 16:56:24 UTC+9 福岡:
Reply all
Reply to author
Forward
0 new messages