PostGISインストール手順

QGIS3でPostGISを使うことを目標に設定をしてみましたので紹介します。


PostgreSQLをダウンロードする

インストーラーをダウンロードする

f:id:Chiakikun:20190723232529p:plain

https://www.postgresql.org/download/windows/』にアクセスして、お使いの環境に合ったPostgreSQLのバージョンを確認して、上の赤丸のダウンロードサイトに移動します。私はWindows 10を使っているので、下の赤丸で囲ったVersion 10をダウンロードします。

 

f:id:Chiakikun:20190723233145p:plain

移動先のページで、version 10のインストーラーをダウンロードします。

 


PostgreSQLをインストールする

インストーラーを実行する

f:id:Chiakikun:20190723233551p:plain

f:id:Chiakikun:20190723233513p:plain

ダウンロードしたインストーラーを実行します。インストール先はデフォルトのままにしました。

 

コンポーネントを選択する

f:id:Chiakikun:20190723233740p:plain

インストールするコンポーネントを選択します。今回は全部インストールします。

 

データディレクトリを指定する

f:id:Chiakikun:20190723234441p:plain

データディレクトリを指定します。このフォルダにデータベースが作成されるので、ディスクの空き容量に注意してください。後で変更することもできます。

 

パスワードを設定する

f:id:Chiakikun:20190723235717p:plain

データベース管理者用のパスワードを設定します。

 

ポート番号を設定する

f:id:Chiakikun:20190723235812p:plain

接続を待ち受けるポート番号を設定します。

 

ロケールを設定する

f:id:Chiakikun:20190723235957p:plain

ロケールを設定します。私は「C」を指定しましたが、こちらのサイト『

ロケール(国際化と地域化) | Let's Postgres』を参考に、自分の使い方に合うロケールを設定してください。

ロケール設定後、いくつかダイアログ操作がありますが、Nextボタンを押下するだけなので、省略します。


PostGISをインストールする

f:id:Chiakikun:20190727224652p:plain

PostgreSQLのインストールに続いてStackBuilderでPostGISをインストールします。

 

StackBuilderを実行する

f:id:Chiakikun:20190727232839p:plain

インストールしたPostgreSQLを選択して、『次へ』ボタンを押下します。

 

インストールするPostGISのバージョンを選択する

f:id:Chiakikun:20190727233009p:plain

『Spatial Extensions』からPostGISを選択します。私は一番下を選択しました。

 

PostGISインストーラーをダウンロードする

f:id:Chiakikun:20190727233148p:plain

PostGISのパッケージのダウンロード先を指定して、『次へ』ボタンを押下します。

 

インストーラーを実行する

f:id:Chiakikun:20190727233251p:plain

ダウンロードが完了したらインストーラーを実行します。

 

f:id:Chiakikun:20190727233403p:plain

今回はPostGISのデータベースを作成するオプションにチェックを入れます。

 

インストール先を指定する

f:id:Chiakikun:20190727233554p:plain

インストール先を指定します。

 

サーバーに接続する

f:id:Chiakikun:20190727233648p:plain

PostGISデータベースの作成先のサーバーの管理者の名前とパスワードを入力します。

こちらで入力した文字列です。

 

PostGISのデータベース名を設定する

f:id:Chiakikun:20190727234028p:plain

作成するPostGISのデータベース名を入力します。この後、環境設定のダイアログがいくつか表示されます。

 

f:id:Chiakikun:20190728141819p:plain

これでインストールは終了です。


環境変数の設定

f:id:Chiakikun:20190728142230p:plain

コマンドラインツールを使えるように、環境変数のPathを設定します。PowerShellで下記のコードを実行します。

    $oldSystemPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
    $oldSystemPath += ";C:\Program Files\PostgreSQL\10\bin"
    [System.Environment]::SetEnvironmentVariable("Path", $oldSystemPath, "User")

f:id:Chiakikun:20190728225404p:plain

PowerShellを再起動して「psql -v」と入力して実行してみてください。上の画像のようになりましたか?

シェープファイルを取り込んでみる

Shapefile and DBF Loaderを起動する

f:id:Chiakikun:20190729234418p:plain

「PostGis 2.0 Shapefile and DBF Loader Exporter」を起動します。スタートボタンを押してshpと入力して検索すると、すぐ出てくると思います。

 

サーバーに接続する

f:id:Chiakikun:20190730231600p:plain

赤丸部分のボタンを押して、サーバーに接続します。

 

f:id:Chiakikun:20190730231731p:plain

ダイアログが表示されます。Usernameには「postgres」、

Databaseには、こちらで設定したデータベース名(postgis_25_sample)を入力します。Passwordにはこちらで入力した文字列を入力します。

 

f:id:Chiakikun:20190730232614p:plain

接続に成功すると、上のようなメッセージが表示されます。

 

シェープファイルを選択する

f:id:Chiakikun:20190730232658p:plain

接続したデータベースにインポートするシェープファイルを選択します。赤丸部分のボタンを押下すると、ファイル選択のダイアログが表示されるので、シェープファイルを選択します。

 

SRIDを設定する

f:id:Chiakikun:20190730232825p:plain

選択したファイルがリストに追加されます。SRIDには、選択したシェープの空間参照系のコードを入力します。

 

インポートできた?

f:id:Chiakikun:20190730233842p:plain

インポートに成功すると、上のようなメッセージが表示されます。

 

QGISで開いてみる

f:id:Chiakikun:20190730233934p:plain

QGISで表示してみます。ブラウザの「PostGIS」のメニューから、「新しい接続」を選択します。

f:id:Chiakikun:20190730234150p:plain

名前は適当でいいです。ホストにはPostGISをインストールしたPCのアドレス(他のPCにインストールしたのでなければlocalhostと入力してください)、データベースには先ほどシェープファイルをインポートしたデータベース名を入力します。下の赤で囲った部分は必要に応じてチェックしますが、今回はQGISで表示するだけなので、何もチェックしないでいいです。

 

f:id:Chiakikun:20190730234129p:plain

設定ができたら接続してみます。

 

f:id:Chiakikun:20190730234956p:plain

ダイアログが表示されるので、シェープファイルをインポートするときに入力したユーザー名とパスワードを入力します。

 

f:id:Chiakikun:20190730235207p:plain

接続に成功すると、先ほどインポートしたファイル名がpublicの下に表示されていると思います。ダブルクリックしてみると...

 

f:id:Chiakikun:20190730235353p:plain

インポートしたシェープファイルがマップに表示されます。お疲れさまでした。

numpy-quaternionを使ってみる

Python四元数を使う方法について調べていたところ、numpy-quaternion · PyPIに辿り着きました。このページでは、numpy-quaternionのインストール方法について紹介していきます。


インストール

pipを実行する

f:id:Chiakikun:20181006181543p:plain

powershellを管理者権限で起動して、次のコマンドを実行します。

pip install numpy-quaternion

使ってみる

インストールできたら、以下のコードを保存してPythonで実行してみます。

import numpy as np
import quaternion

q1 = np.quaternion(1,2,3,4)
q2 = np.quaternion(5,6,7,8)
print("q1 * q2 ", q1 * q2)

「Coult not import from numba」と警告が出たら...

f:id:Chiakikun:20181006181855p:plain

使ってみると、こんな警告が表示されました。どうやらnumbaというものをインストールしたほうがいいよってことだそうなので...

numbaをインストールする

f:id:Chiakikun:20181006182134p:plain

管理者権限でpowershellを起動して、次のコマンドを実行します。

pip install numba

 

f:id:Chiakikun:20181006182216p:plain

先ほどのソースコードの3行目に次のコードを追加して実行してみます。すると、今度は警告が出なくなりました。

import numba

numpy-quaternionの使い方

下記のページのUsageには、numpy-quaternionの使い方が幾つかのサンプルで紹介されていますので、ご覧になってみてください。

github.com

ありがとうございました

QGIS3 GeoPackageの使い方

 

QGIS3で「GeoPackage」というファイル形式を使ってみたので、このページで紹介します。GeoPackageはシェープファイルほど出回っていないので、他の人に渡したことはないのですが、スタイル保存と、複数ファイルを一つにまとめられる形式は気に入っているので、最近密かに使っています。


新規作成

f:id:Chiakikun:20191030175302p:plain

ブラウザの『GeoPackage』を右クリックして『データベースの作成』を選択します。
既存のgpkgファイルを使う場合は『新しい接続』からファイルを選択して下さい。

 

f:id:Chiakikun:20191030175840p:plain

ダイアログが表示されるので、『データベース』には保存するgpkgファイルを選択します。『テーブル名』は自動で付与されますが、変更したい場合は編集して下さい。『ジオメトリタイプ』には『テーブル名』で指定したテーブルのジオメトリタイプを指定します。『新フィールド』には『テーブル名』で指定したテーブルのフィールドを設定します。

 

f:id:Chiakikun:20191030180536p:plain

作成に成功すると、『GeoPackage』の下に項目が追加されます。

 


削除

f:id:Chiakikun:20191030181336p:plain

データベース内のレイヤを削除する場合は、データベースの下のレイヤ(上の画像ではnewfile)を右クリックして、『レイヤの削除』を選択します。データベースを削除する場合は、データベース(上の画像ではnewfile.gpkg)を右クリックして、『接続の削除』を選択します。


追加

f:id:Chiakikun:20191030181755p:plain

f:id:Chiakikun:20191030181948p:plain

既にQGISで読み込んでいるレイヤをGeoPackageに追加したい場合は、レイヤをGeoPackageのデータベースにドラッグドロップします。新規にテーブルを追加する場合は、データベースで右クリックして『新しいレイヤまたはテーブルを追加』を選択します。


スタイル保存

f:id:Chiakikun:20191030182612p:plain

GeoPackageではベクターのスタイル設定を保存することができます。赤丸の『スタイル』→『スタイルを保存』を選択します。

 

f:id:Chiakikun:20191030182649p:plain

ダイアログが表示されるので、『スタイルを保存』で「データベース(GeoPackage)」を選択します。これでレイヤをマップに表示する時、スタイル保存した状態で表示されるようになります。残念ながら、ラスタのスタイル設定の保存方法はわかりませんでした。

ありがとうございました。