24.1.2. データベース
24.1.2.1. PostGISへエクスポート
ベクタレイヤをPostgreSQLデータベースにインポートし、テーブルを作成します。同じ名前のテーブルがある場合には、新たなテーブルを作成する前に、このテーブルは削除されます。これを使用する前に、QGISとPostgreSQLデータベース間の接続を作成( 保存された接続の作成 参照)しておく必要があります。
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
インポートするレイヤ |
|
[ベクタ:任意] |
データベースに追加したいベクタレイヤ |
データベース(接続名) |
|
[文字列] |
データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。 |
スキーマ(スキーマ名) オプション |
|
[文字列] デフォルト: 'public' |
データを保存するスキーマの名前。新しいスキーマ、既存のスキーマのいずれも可能です。 |
インポートするテーブル(空白の場合、レイヤ名が使われます) オプション |
|
[文字列] デフォルト: '' |
インポートするベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。 |
主キーの属性(フィールド) オプション |
|
[テーブルのフィールド:任意] |
ベクタレイヤの既存のフィールドから、主キーのフィールドを設定します。 一意な 値を持つカラムが、データベースの主キーとして使用することができます。 |
ジオメトリのカラム |
|
[文字列] デフォルト: 'geom' |
新しいPostGISのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。 |
文字コード オプション |
|
[文字列] デフォルト: 'UTF-8' |
出力レイヤの文字コードを定義します |
上書き |
|
[ブール値] デフォルト: True |
指定されたテーブルが存在する場合、このオプションを |
空間インデックスを作成 |
|
[ブール値] デフォルト: True |
空間インデックスを作成するかどうかを指定します |
フィールド名を小文字に変換 |
|
[ブール値] デフォルト: True |
入力ベクタレイヤのフィールド名を小文字に変換します |
文字フィールドの長さ制約を解く |
|
[ブール値] デフォルト: False |
文字フィールドの長さ制限をなくすべきかどうか |
マルチパートの代わりにシングルパートのジオメトリを作る |
|
[ブール値] デフォルト: False |
出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。 |
出力
このアルゴリズムには出力はありません。
Python コード
アルゴリズムID: qgis:importintopostgis
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.2. SpatiaLiteへエクスポート
ベクタレイヤをSpatiaLiteデータベースにインポートします。これを使用する前に、QGISとSpatiaLiteデータベース間の接続を作成( SpatiaLiteレイヤ 参照)しておく必要があります。
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
インポートするレイヤ |
|
[ベクタ:任意] |
データベースに追加したいベクタレイヤ |
データベースのファイル |
|
[ベクタ:任意] |
接続するSQLiteまたはSpatiaLiteデータベースファイル |
インポートするテーブル(空白の場合、レイヤ名が使われます) オプション |
|
[文字列] デフォルト: '' |
インポートするベクタファイルのテーブル名を定義します。何も指定しない場合は、レイヤ名が使用されます。 |
主キーの属性(フィールド) オプション |
|
[テーブルのフィールド:任意] |
入力ベクタレイヤのフィールドを主キーとして使用します |
ジオメトリのカラム |
|
[文字列] デフォルト: 'geom' |
新しいSpatiaLiteのテーブルのジオメトリカラムの名前を定義します。地物のジオメトリ情報は、このカラムに格納されます。 |
文字コード オプション |
|
[文字列] デフォルト: 'UTF-8' |
出力レイヤの文字コードを定義します |
上書き |
|
[ブール値] デフォルト: True |
指定されたテーブルが存在する場合、このオプションを |
空間インデックスを作成 |
|
[ブール値] デフォルト: True |
空間インデックスを作成するかどうかを指定します |
フィールド名を小文字に変換 |
|
[ブール値] デフォルト: True |
入力ベクタレイヤのフィールド名を小文字に変換します |
文字フィールドの長さ制約を解く |
|
[ブール値] デフォルト: False |
文字フィールドの長さ制限をなくすべきかどうか |
マルチパートの代わりにシングルパートのジオメトリを作る |
|
[ブール値] デフォルト: False |
出力レイヤの地物をマルチパートではなくシングルパートとするかどうか。デフォルトでは、既存のジオメトリ情報が保持されます。 |
出力
このアルゴリズムには出力はありません。
Python コード
アルゴリズムID: qgis:importintospatialite
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.3. レイヤをGeoPackage化
レイヤをGeoPackageに追加します。
GeoPackageが既に存在し、 既存のGeoPackageを上書きする
にチェックを入れている場合には、これを上書き(削除してから再度作成)します。GeoPackageが既に存在し、 既存のGeoPackageを上書きする
にチェックを入れていない場合には、レイヤが追加されます。
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
入力レイヤ |
|
[ベクタ:任意] [リスト] |
GeoPackageにインポートする(ベクタ)レイヤ。ラスタレイヤはサポートしていません。ラスタレイヤを追加した場合には、 |
既存のGeoPackageを上書きする |
|
[ブール値] デフォルト: False |
指定されたGeoPackageが存在する場合、このオプションを |
レイヤスタイルをGeoPackageに保存 |
|
[ブール値] デフォルト: True |
レイヤのスタイルを保存します |
GeoPackageのファイル名 |
|
[ファイル] デフォルト: |
GeoPackageファイルの保存場所を指定します。次のいずれかです:
|
出力
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
新しいGeoPackageのレイヤ |
|
[文字列] [リスト] |
GeoPackageに追加されたレイヤのリスト |
Python コード
アルゴリズムID: native:package
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.4. PostGISから読み込み
QGISに接続するPostgreSQLデータベース上でSQLデータベースクエリを実行し、結果をロードします。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。
例
ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:
UPDATE your_table SET field_to_update=20;
上の例では、
your_table
テーブルのfield_to_update
フィールドの値が全て20
に設定されます。新しい
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);
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
データベース(接続名) |
|
[文字列] |
データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。 |
SQLクエリ |
|
[文字列] |
例えば、 |
一意のIDのフィールド名 |
|
[文字列] デフォルト: id |
主キーのフィールド(結果のテーブルのカラム)を設定します |
ジオメトリのフィールド名 オプション |
|
[文字列] デフォルト: 'geom' |
ジオメトリカラムの名前(結果テーブルのカラム) |
出力
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
SQLレイヤ |
|
[ベクタ:任意] |
QGISに読み込まれるベクタレイヤの結果 |
Python コード
アルゴリズムID: qgis:postgisexecuteandloadsql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.5. PostgreSQLでSQLを実行
QGISに接続するPostgreSQLデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。
例
ある既存のフィールドのすべての値を固定値に設定します。SQLクエリ文字列は次のようになります:
UPDATE your_table SET field_to_update=20;
上の例では、
your_table
テーブルのfield_to_update
フィールドの値が全て20
に設定されます。新しい
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);
参考
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
データベース(接続名) |
|
[文字列] |
データベース接続の名前(データベース名ではありません)。既存の接続がコンボボックスに表示されます。 |
SQLクエリ |
|
[文字列] |
例えば、 |
出力
出力は作成されません。SQLクエリがテーブルに対して実行されます。
Python コード
アルゴリズムID: native:postgisexecutesql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.6. SpatiaLiteでSQLを実行
SpatiaLiteデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
データベースのファイル |
|
[ベクタ] |
接続するSQLiteまたはSpatiaLiteデータベースファイル |
SQLクエリ |
|
[文字列] デフォルト: '' |
例えば、 |
出力
出力は作成されません。SQLクエリがテーブルに対して実行されます。
Python コード
アルゴリズムID: native:spatialiteexecutesql
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。
24.1.2.7. SpatiaLiteでSQLを実行
QGISに接続するSpatiaLiteデータベース上でSQLデータベースクエリを実行します。このアルゴリズムは、新しいレイヤを作成 しません 。レイヤ自体に対してクエリを実行するように設計されています。
パラメータ
ラベル |
名前 |
データ型 |
説明 |
---|---|---|---|
データベース(接続名) |
|
[列挙型] デフォルト:未設定 |
現在のセッションで接続している SQLite/SpatiaLite データベースを選択します |
SQLクエリ |
|
[文字列] デフォルト: '' |
例えば、 |
出力
出力は作成されません。SQLクエリがテーブルに対して実行されます。
Python コード
アルゴリズムID: native:spatialiteexecutesqlregistered
import processing
processing.run("algorithm_id", {parameter_dictionary})
algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。