25.1.2. データベース

25.1.2.1. PostGISへエクスポート

ベクタレイヤをPostgreSQLデータベースにインポートし、テーブルを作成します。同じ名前のテーブルがある場合には、新たなテーブルを作成する前に、このテーブルは削除されます。これを使用する前に、QGISとPostgreSQLデータベース間の接続を作成( 保存された接続の作成 参照)しておく必要があります。

パラメータ

ラベル

名前

データ型

説明

インポートするレイヤ

INPUT

[ベクタ:任意]

データベースに追加したいベクタレイヤ

データベース(接続名)

DATABASE

[文字列]

データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。

スキーマ(スキーマ名)

オプション

SCHEMA

[文字列]

デフォルト: 'public'

データを保存するスキーマの名前。新しいスキーマ、既存のスキーマのいずれも可能です。

インポートするテーブル(空白の場合、レイヤ名が使われます)

オプション

TABLENAME

[文字列]

デフォルト: ''

インポートするベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。

主キーの属性(フィールド)

オプション

PRIMARY_KEY

[テーブルのフィールド:任意]

ベクタレイヤの既存のフィールドから、主キーのフィールドを設定します。 一意な 値を持つカラムが、データベースの主キーとして使用することができます。

ジオメトリのカラム

GEOMETRY_COLUMN

[文字列]

デフォルト: 'geom'

新しいPostGISのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。

文字コード

オプション

ENCODING

[文字列]

デフォルト: 'UTF-8'

出力レイヤの文字コードを定義します

上書き

OVERWRITE

[ブール値]

デフォルト: True

指定されたテーブルが存在する場合、このオプションを True とすると、そのテーブルは削除され、地物を追加する前に新しいテーブルが作成されます。このオプションが False でテーブルが既に存在する場合、このアルゴリズムは例外("relation already exists")を投げます。

空間インデックスを作成

CREATEINDEX

[ブール値]

デフォルト: True

空間インデックスを作成するかどうかを指定します

フィールド名を小文字に変換

LOWERCASE_NAMES

[ブール値]

デフォルト: True

入力ベクタレイヤのフィールド名を小文字に変換します

文字フィールドの長さ制約を解く

DROP_STRING_LENGTH

[ブール値]

デフォルト: False

文字フィールドの長さ制限をなくすべきかどうか

マルチパートの代わりにシングルパートのジオメトリを作る

FORCE_SINGLEPART

[ブール値]

デフォルト: False

出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。

出力

このアルゴリズムには出力はありません。

Python コード

アルゴリズムID: qgis:importintopostgis

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.2. SpatiaLiteへエクスポート

ベクタレイヤをSpatiaLiteデータベースにインポートします。これを使用する前に、QGISとSpatiaLiteデータベース間の接続を作成( SpatiaLiteレイヤ 参照)しておく必要があります。

パラメータ

ラベル

名前

データ型

説明

インポートするレイヤ

INPUT

[ベクタ:任意]

データベースに追加したいベクタレイヤ

データベースのファイル

DATABASE

[ベクタ:任意]

接続するSQLiteまたはSpatiaLiteデータベースファイル

インポートするテーブル(空白の場合、レイヤ名が使われます)

オプション

TABLENAME

[文字列]

デフォルト: ''

インポートするベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。

主キーの属性(フィールド)

オプション

PRIMARY_KEY

[テーブルのフィールド:任意]

入力ベクタレイヤのフィールドを主キーとして使用します

ジオメトリのカラム

GEOMETRY_COLUMN

[文字列]

デフォルト: 'geom'

新しいSpatiaLiteのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。

文字コード

オプション

ENCODING

[文字列]

デフォルト: 'UTF-8'

出力レイヤの文字コードを定義します

上書き

OVERWRITE

[ブール値]

デフォルト: True

指定されたテーブルが存在する場合、このオプションを True とすると、そのテーブルは削除され、地物のレイヤを追加する前に新しいテーブルが作成されます。このオプションが False でテーブルが既に存在する場合、このアルゴリズムは例外("table already exists")を投げます。

空間インデックスを作成

CREATEINDEX

[ブール値]

デフォルト: True

空間インデックスを作成するかどうかを指定します

フィールド名を小文字に変換

LOWERCASE_NAMES

[ブール値]

デフォルト: True

入力ベクタレイヤのフィールド名を小文字に変換します

文字フィールドの長さ制約を解く

DROP_STRING_LENGTH

[ブール値]

デフォルト: False

文字フィールドの長さ制限をなくすべきかどうか

マルチパートの代わりにシングルパートのジオメトリを作る

FORCE_SINGLEPART

[ブール値]

デフォルト: False

出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。

出力

このアルゴリズムには出力はありません。

Python コード

アルゴリズムID: qgis:importintospatialite

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.3. レイヤをGeoPackage化

レイヤをGeoPackageに追加します。

GeoPackageが既に存在し、 既存のGeoPackageを上書きする にチェックを入れている場合には、これを上書き(削除してから再度作成)します。GeoPackageが既に存在し、 既存のGeoPackageを上書きする にチェックを入れていない場合には、レイヤが追加されます。

パラメータ

ラベル

名前

データ型

説明

入力レイヤ

LAYERS

[ベクタ:任意] [リスト]

GeoPackageにインポートする(ベクタ)レイヤ。ラスタレイヤはサポートしていません。ラスタレイヤを追加した場合には、 QgsProcessingException 例外が発生します。

既存のGeoPackageを上書きする

OVERWRITE

[ブール値]

デフォルト: False

指定されたGeoPackageが存在する場合、このオプションを True とすると、そのGeoPackageは削除され、レイヤを追加する前に新しいGeoPackageが作成されます。オプションを False に設定した場合、レイヤは追加されます。

レイヤスタイルをGeoPackageに保存

SAVE_STYLES

[ブール値]

デフォルト: True

レイヤのスタイルを保存します

Save only selected features

SELECTED_FEATURES_ONLY

[ブール値]

デフォルト: False

If a layer has a selection, setting this option to True will result in only selected features being saved. For layers without a selection all features will be saved.

GeoPackageのファイル名

OUTPUT

[ファイル]

デフォルト: [一時ファイルに保存]

GeoPackageファイルの保存場所を指定します。次のいずれかです:

  • 一時ファイルに保存

  • Save to File…

出力

ラベル

名前

データ型

説明

新しいGeoPackageのレイヤ

OUTPUT_LAYERS

[文字列] [リスト]

GeoPackageに追加されたレイヤのリスト

Python コード

アルゴリズムID: native:package

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.4. PostGISから読み込み

QGISに接続するPostgreSQLデータベース上でSQLデータベースクエリを実行し、結果をロードします。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。

  1. ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:

    UPDATE your_table SET field_to_update=20;
    

    上の例では、 your_table テーブルの field_to_update フィールドの値が全て 20 に設定されます。

  2. 新しい area カラムを作成し、PostGIS関数の ST_AREA を使用して各地物の面積を計算します。

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

パラメータ

ラベル

名前

データ型

説明

データベース(接続名)

DATABASE

[文字列]

データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。

SQLクエリ

SQL

[文字列]

例えば、 'UPDATE my_table SET field=10' のようにSQLクエリを定義します。

一意のIDのフィールド名

ID_FIELD

[文字列]

デフォルト: id

主キーのフィールド(結果のテーブルのカラム)を設定します

ジオメトリのフィールド名

オプション

GEOMETRY_FIELD

[文字列]

デフォルト: 'geom'

ジオメトリカラムの名前(結果テーブルのカラム)

出力

ラベル

名前

データ型

説明

SQLレイヤ

OUTPUT

[ベクタ:任意]

QGISに読み込まれるベクタレイヤの結果

Python コード

アルゴリズムID: qgis:postgisexecuteandloadsql

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.5. PostgreSQLでSQLを実行

QGISに接続するPostgreSQLデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。

  1. ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:

    UPDATE your_table SET field_to_update=20;
    

    上の例では、 your_table テーブルの field_to_update フィールドの値が全て 20 に設定されます。

  2. 新しい area カラムを作成し、PostGIS関数の ST_AREA を使用して各地物の面積を計算します。

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

パラメータ

ラベル

名前

データ型

説明

データベース(接続名)

DATABASE

[文字列]

データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。

SQLクエリ

SQL

[文字列]

例えば、 'UPDATE my_table SET field=10' のようにSQLクエリを定義します。

出力

出力は作成されません。SQLクエリがテーブルに対して実行されます。

Python コード

アルゴリズムID: native:postgisexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.6. SpatiaLiteでSQLを実行

SpatiaLiteデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。

参考

PostgreSQLでSQLを実行SQLの実行

SQLクエリの例については、 PostGISにおけるSQLクエリの例 を参照してください。

パラメータ

ラベル

名前

データ型

説明

データベースのファイル

DATABASE

[ベクタ]

接続するSQLiteまたはSpatiaLiteデータベースファイル

SQLクエリ

SQL

[文字列]

デフォルト: ''

例えば、 'UPDATE my_table SET field=10' のようにSQLクエリを定義します。

出力

出力は作成されません。SQLクエリがテーブルに対して実行されます。

Python コード

アルゴリズムID: native:spatialiteexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

25.1.2.7. SpatiaLiteでSQLを実行

QGISに接続するSpatiaLiteデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。

参考

PostgreSQLでSQLを実行SQLの実行

SQLクエリの例については、 PostGISにおけるSQLクエリの例 を参照してください。

パラメータ

ラベル

名前

データ型

説明

データベース(接続名)

DATABASE

[列挙型]

デフォルト:未設定

現在のセッションで接続している SQLite/SpatiaLite データベースを選択します

SQLクエリ

SQL

[文字列]

デフォルト: ''

例えば、 'UPDATE my_table SET field=10' のようにSQLクエリを定義します。

出力

出力は作成されません。SQLクエリがテーブルに対して実行されます。

Python コード

アルゴリズムID: native:spatialiteexecutesqlregistered

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。