QGIS3 – 都道府県区域への融合

概要

国土数値情報で読み込み市区町村単位でマルチパート化したポリゴンを、都道府県単位にまとめる。

複数のポリゴンの接する境界をなくしてひとつながりのポリゴンとするため、Dissolveという処理を行う。

令和4年度の行政区域データでは「無効なジオメトリ」のために処理ができなかったため、これを無視する手順も記録した。

Dissolve処理~無効なGeometryで停止

Dissolve(融合)はメニューの「ベクタ」→「融合(dissolve)」を選択する。

すると以下のようなダイアログが表示される。

ここでポリゴンを融合するキーを選択するため、「基準となる属性」を選んでいく。右にある”…”をクリックするとパラメーター選択の表示になるので、都道府県の属性N03_001にチェックを入れてOKをクリック。

もとのダイアログに戻るので「実行」ボタンをクリック。ところが、この時点で以下のようなエラーが出て処理が停止した。

無効なジオメトリがあるので処理が停止したとのこと。これを確認してみたが、無効な部分を最大に拡大しても特に交差しているなどの形は見られなかった。

無効なジオメトリーの無視設定

ここではプロセッシングツールで無効なジオメトリーを無視するよう設定した。この設定では無効なジオメトリーを修正はせず、無視して実行が続けられる。

都道府県単位の融合結果

上記の設定後にDissolve処理を実行すると、警告は表示されるものの処理は続行されて完了。以下のように都道府県単位にポリゴンがまとめられた。

なお、新たにまとめられた都道府県のポリゴンが入っているレイヤーが作成されるが、一時レイヤーの場合はこれを保存しておく。

属性テーブルを確認すると、以下のように都道府県に対応する47個のオブジェクトにまとめられている。

ただしまとめられたオブジェクトの属性は、たまたま先頭にあったレコードのものが用いられる。このため自治体コードは市区町村のものだったり、NULLであったりする。

 

QGIS3 – 無効なジオメトリ―の無視

Dissolveで停止

QGISで国土数値情報の行政区域を市区町村単位でマルチパート化し、都道府県単位に融合しようとしたところ、以下のような警告が出て処理が停止した。

メニューから「ベクタ」→「ジオメトリツール」→「有効性チェック」で無効な部分を表示させたが、最大限拡大しても交差等の異常は見つけられなかった。

そこで、次の方法で無効なジオメトリ―を無視して処理を続行させるように設定したところ、Dissolveが完了した。

無効なジオメトリーの無視

まず、メニューから「プロセッシング」→「ツールボックス」を選択。

すると画面右側にプロセッシングツールが表示されるので、オプションアイコンをクリック。

オプションの「無効な地物のフィルタリング」が、デフォルトでは「・・・アルゴリズムの実行を停止する」になっているので、これをダブルクリックして「不正なジオメトリの地物を無視」を選択する。

そして再度Dissolveを実行すると、以下のように警告がずらりと表示されるが、処理は進んでいく。

そして都道府県単位での融合が完了した。

無効なジオメトリーの確認

ただし無効なジオメトリーは修正していないので、都道府県境界上にそのような個所があれば、無効な状態のまま残っている可能性がある。

ベクタ→ジオメトリツール→有効性チェックで確認したところ、無効なジオメトリーや「不正なジオメトリの出力レイヤ」と「エラー部分の出力レイヤ」には何も存在しなかった。

 

 

QGIS3 – 行政区域データ – 読み込み

概要

QGISに行政区域データを読み込む。データソースは国土地理院による国土数値情報(Digital National Land Information)を用いる。

データのダウンロード

  1. 地理院の国土数値情報ダウンロードサービスに行く
    • デフォルトのデータ形式はShape

スクロールして「2.政策区域」→「行政地域」をたどり、「行政区域(ポリゴン)」をクリック。

ダウンロードしたい地域を選択。今回は「全国」をクリック。

各都道府県・全国のデータごとに各年度のデータが登録されている。3~4年ごとにデータ容量が1.5~2倍に増えていて、最新のR4年度版では700MBを超えている。

ダウンロードしたZIPファイルを展開したところ。容量が2.4GBになっている。

データの読み込み

QGISのメニューで、「レイヤ」→「レイヤを追加」→「ベクタレイヤを追加」を選択。

ダイアログが開くので読み込みの設定。

  • ソースタイプは「ファイル」のまま
  • 文字コードはShift_JIS
  • ファイルの場所を入力
  • 「追加」ボタンをクリック

すぐにレイヤーが追加されて、市区町村単位の行政界が表示される。

内容の確認

地理院サイトの子のデータの説明に以下のクラス図が掲載されている。

レイヤーを右クリックして「属性テーブルを開く」を選択し、属性テーブルを表示させる。

冒頭には各都道府県単位のデータが、都道府県名以外の内容がNULLとして登録されている。

下の方にスクロールすると、振興局名・郡政令都市名・市区町村名と行政区域コードが表れてくる。以下のような対応になっていることがわかる。

  • N03_001:振興局名
  • N03_002:郡政令都市名
  • N03_003:市区町村名
  • N03_004:行政区域コード

一般的な県内の郡・市町村は以下の通り。

項目名の変更

属性テーブルの項目名がそのままではN03_001のような記号表現になっているが、これを変更したいときには、別名(Alias)使うのが簡単。項目名変更の手順はこちらにまとめている。

 

QGIS3 – インストール

ダウンロードとインストール

OSGeo版ではなく、長期リリースのパッケージ版のインストール。

  1. QGISのダウンロードサイトに入り、長期リリース(最も安定)をダウンロード
  2. 約1GBのmsiファイルがダウンロードされるので、これを実行してインストール

動作確認

地理院タイルを表示させて動作確認。

 

QGIS3 – 地理院タイルの表示

概要

国土地理院のベースマップのタイルに接続して表示させる方法。

新規接続

QGISの”XYZ Tiles”で「新規接続」を選択。

XYZ接続のダイアログが表示される。ここで接続先のURLや名前を指定する。

接続先の確認

国土地理院の「地理院タイル」のページに入り、ベースマップの標準地図のリンクをクリック。上部にURLが表示されるのでこれをコピー。

接続先の指定

XYZ接続のダイアログに、コピーしたURLをペーストし、接続名やズームレベルも指定してOKボタンをクリック。

接続が登録されるので、これをレイヤーに追加する。

地理院タイルのベースマップ、標準地図が表示された。

Atom – 覚え書き

エディター

スタイルの編集

  • File→Settings→Themes
  • 冒頭”your stylesheet”をクリック
  • styles.lessの内容を編集

コメントの色

styles.lessの以下の部分を編集(colorの値はテーマによる)。

その他

VagrantにSFTP接続

 

CwntOS7 – Djangoのインストール

概要

Vagrant上のCentOS7にDjangoをインストール。

virtualenvの仮想環境でインストールした場合、元のシステムには影響を与えない。

手順

Python3インストール済みの環境でDjangoをインストール。特に問題なくインストール完了。

バージョンチェック。

Python3からもチェック。

 

Vagrant – CentOS7 – Python3 – virtualenv

概要

Vagrant上のCentOS7で、virtualenvをインストールしてPython3の仮想環境をつくった手順の記録。

  • pipvirtualenvwrapperをインストールする
  • sudoでインストールすると警告が出てグローバルにインストールされる

許可がなくインストールできない

pip3virtualenvwrapperをインストールしようとしたところ、許可がないとエラーになった。

ディレクトリーに書き込み権限がない。

sudoで警告が出るがインストール

以下のような警告が出るが、インストールは実行される。

WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install –user` instead.

グローバルインストールするのに対して、--userオプションでユーザーディレクトリーへのインストールを促している。

確認

virtualenvのバージョン確認。

仮想環境構築の確認。

ディレクトリー確認。

仮想環境の有効化。

仮想環境の無効化と削除。

操作

基本操作

ディレクトリーを作成して仮想環境を作成。絶対パスでなければ現在のディレクトリー下に作成される。

$ virtualenv directory

仮想環境の有効化。

$ source directory/bin/activate
または
$ . directory/bin/activate

仮想環境の無効化。

(directory) $ deactivate

仮想環境の削除

$ rm -rf directory

応用

Pythonのバージョン指定

$ virtualenv -p python3.6 directory

システムのPythonパッケージ群を仮想環境からも参照

$ virtualenv --system-site-packages directory

virtualenvwrapperの利用

.bashrcの編集と再読み込み

virtualenvだけでも基本的な操作はできるが、virtualenvwrapperを利用すると便利なコマンドが使えるようになる。そのために~/.bashrcに以下の3行を加える。

.bashrcを実行して反映させる。

1行目のWORKON_HOMEで指定したディレクトリーが作成され、ここに仮想環境ごとのディレクトリーが作成される。

2行目を設定しないと以下のエラーが出る。エラーが出てもvirtualenvwrapperは利用できたが入れておく。

3行目はvirtualenvwrapper.shを実行させる。

.bashrcの実行後、~/.virtualenvsディレクトリーと必要なファイルが作成される。

確認

仮想環境を作ってみる。

python3の場所が仮想環境内になっていて、元のシステムの場所とは違う。

もう一つ仮想環境を作って、workonコマンドで見てみる。lsvirtualenvコマンドもあるが、workonコマンドとの違いがよくわからない。

仮想環境にモジュールをインストールしてもシステムに影響がないことを確認する。まずシステムにはNumpyモジュールがインストールされていないことを確認。

仮想環境でもNumpyはインストールされていない。

Python3をexit()で抜けて、仮想環境のコマンドラインでNumpyをインストール。

Python3でNumpyが使えるようになった。

Python3をexit()で抜けて、仮想環境からも抜ける。元の環境ではNumpyはインストールされていないことがわかる。

virtualenvwrapperのコマンド

仮想環境の作成・有効化。WORKON_HOMEで設定したディレクトリーに作成される。

$ mkvirtualenv envname

仮想環境の無効化。

(envname) $ deactivate

仮想環境の一覧。

$ workon
または
$ lsvirtyalenv -b/-l

仮想環境の有効化。

$ workon envname

仮想環境ディレクトリーへの移動。

$ cdvirtualenv envname

仮想環境の削除。

$ rmvirtualenvname envname

 

Vagrant – CentOS7 – Python3インストール

概要

Vagrant上のCentOS7にPython3をインストールした記録。

要点は以下の通り。

  • IUSのリポジトリーでインストール
  • --enablerepo=iusが必要

バージョン確認

まずPythonのバージョンを確認する。

一応Python2の動作確認。

Python3はインストールされていない。

IUSのリポジトリー追加

リポジトリー追加ができない。

リポジトリーは作成できている。

GitをインストールしたときにIUSのリポジトリーをインストールしていたのを忘れていた。

Python3がインストールできない

Python3.6をインストールしようとするができない。

/etc/yum.repos.d/ius.repoの設定でenabled = 0になっているため。Gitのインストールの時に書き換えているが、毎回元に戻るのか?

オプション設定でインストール成功

設定ファイルを書き換えてもよいが、yum実行時のオプションで--enablerepo=iusを追加して成功。

確認

バージョン確認。

動作確認。

Python2ではない。

python3の場所。

pipのバージョン確認。

 

MySQL – データベースの複製

mysqldumpによる方法

元のデータベースのダンプファイルを作成。

MySQLで新データベースを作成。またはOSのコマンドラインからmysqladminで新データベースを作成。

ダンプファイルの内容を新データベースに再現