27.1.2. データベース

27.1.2.1. PostgreSQLへエクスポート

ベクタレイヤを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コード

Algorithm ID: qgis:importintopostgis

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

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

27.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コード

Algorithm ID: qgis:importintospatialite

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

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

27.1.2.3. レイヤをGeoPackage化

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

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

パラメータ

ラベル

名前

データ型

説明

入力レイヤ

LAYERS

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

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

既存のGeoPackageを上書きする

OVERWRITE

[ブール値]

デフォルト: False

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

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

SAVE_STYLES

[ブール値]

デフォルト: True

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

選択地物のみ保存

SELECTED_FEATURES_ONLY

[ブール値]

デフォルト: False

レイヤに選択範囲がある場合、このオプションに True を設定すると、選択されている地物のみが保存されます。選択範囲のないレイヤは、全ての地物が保存されます。

プロジェクトで定義されているリレーションのあるレイヤをエクスポート

NEW in 3.28

EXPORT_RELATED_LAYERS

[ブール値]

デフォルト: False

入力レイヤにプロジェクトで設定された relations がある場合、このオプションを True に設定すると、関連したレイヤもエクスポートされます。レイヤで地物が選択されている場合、関連したレイヤも入力レイヤでない限り、関連した地物のみがエクスポートされます。

GeoPackageのファイル名

OUTPUT

[ファイル]

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

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

  • 一時ファイルに保存

  • ファイルに保存...

出力

ラベル

名前

データ型

説明

新しいGeoPackageのレイヤ

OUTPUT_LAYERS

[文字列] [リスト]

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

Pythonコード

Algorithm ID: native:package

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

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

27.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 カラムを作成し、ST_AREA PostGIS関数を使用して各地物の面積を計算します。

    -- 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

[文字列]

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

一意のIDのフィールド名

ID_FIELD

[文字列]

デフォルト: id

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

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

オプション

GEOMETRY_FIELD

[文字列]

デフォルト: 'geom'

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

出力

ラベル

名前

データ型

説明

SQLレイヤ

OUTPUT

[ベクタ:任意]

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

Pythonコード

Algorithm ID: qgis:postgisexecuteandloadsql

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

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

27.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 カラムを作成し、ST_AREA PostGIS関数を使用して各地物の面積を計算します。

    -- 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

[文字列]

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

出力

出力は作成されません。SQLクエリが実行されます。

Pythonコード

Algorithm ID: native:postgisexecutesql

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

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

27.1.2.6. SpatiaLiteを実行

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

参考

PostgreSQLでSQLを実行, SQLの実行

SQLクエリの例については、:ref:`PostGIS SQLクエリの例 <qgis_postgis_execute_sql_example>`を参照してください。

パラメータ

ラベル

名前

データ型

説明

データベース

DATABASE

[ベクタ]

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

SQLクエリ

SQL

[文字列]

デフォルト: ''

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

出力

出力は作成されません。SQLクエリが実行されます。

Pythonコード

Algorithm ID: native:spatialiteexecutesql

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

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

27.1.2.7. SpatiaLiteで実行(登録済みDB)

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

参考

PostgreSQLでSQLを実行, SQLの実行

SQLクエリの例については、:ref:`PostGIS SQLクエリの例 <qgis_postgis_execute_sql_example>`を参照してください。

パラメータ

ラベル

名前

データ型

説明

データベース

DATABASE

[列挙型]

デフォルト:未設定

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

SQLクエリ

SQL

[文字列]

デフォルト: ''

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

出力

出力は作成されません。SQLクエリが実行されます。

Pythonコード

Algorithm ID: native:spatialiteexecutesqlregistered

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

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