QGIS Field Calculatorで使用される方程式を保存しますか?


9

新しく計算されたポイントの特定の値を計算しようとしています。そこで、フィールド計算機を使用して、値を決定する方程式を記述します。

その方程式を保存する方法はありますか?そのため、新しいジョブを開始するときに、再入力する必要はありませんか?

ポイントの配列のスタイルとシンボルを保存する方法に似たもの。


これは優れた機能リクエストであり、簡単に追加できます。
Nathan W

回答:


5

QGISは、フィールド計算機で使用された最後の方程式を「最近」タブの下に保存し、ダブルクリックして再利用できます。

フィールド計算の画像


OPが後で他の方程式を使用しなかった場合も同様です。しかし、OPが新しい方程式を使用すると、時間の経過とともに消えます。Recentコンテナは、単に一時的です。
ahmadhanb

5

方程式を新しい関数で記述でき、その後、関数を呼び出して計算を再適用するだけで済みます。

フィールド計算機を開き、Function Editorタブをクリックしてnew file、関数を編集します。を選択しloadます。okこの時点では利用できないことに注意してください。

Expressionタブに戻り、custom関数グループを選択して関数をダブルクリックします。更新するフィールドを選択し、を押しokます。


フィールド値と定数のみを使用する場合は、デフォルトの関数シグニチャーを編集できますvalue1。これはで始まります。私の例ではそれを削除しましたが、このフィールドを使用して新しい引数を渡すことができます。

その後、feature["fieldName"]... を使用してフィーチャフィールドの値にアクセスできます。この関数を呼び出すのは、上記のフィールドを含むレイヤーでのみに注意してください。

@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
    return feature["fieldA"]+feature["fieldB"];

ここに画像の説明を入力してください ここに画像の説明を入力してください


3

@LaughUによるソリューションに加えて、フィールド計算機の操作をグラフィカルモデルに組み込んでから、モデルを保存して実行できます。ただし、列名は常に同じである必要があります。


2

新しいポイントを既存のレイヤーに追加し、そのポイントに対して他のすべてのポイントと同じ計算を実行する場合は、次の2つの便利な機能があります。

バーチャルフィールド

仮想フィールドは、すべての新しい属性の式を自動的に計算します。また、定期的に更新されます。たとえば、「緯度」と呼ばれる仮想フィールドの場合、式を使用できます$y

仮想フィールドの長所と短所:

  • 新しいポイントを追加すると、このフィールドに追加された式の出力が自動的に追加されます。
  • 式の出力が変更されるたびに自動的に更新されます。したがって、例のポイントを移動すると、「緯度」の値が自動的に変更されます。
  • 仮想フィールドの値は編集できません。
  • 仮想フィールドは、シェープファイル(またはレイヤーの形式)の一部としてではなく、QGISプロジェクトファイルの一部として保存されます。そのため、別のプロジェクトでレイヤーを開いた場合、仮想フィールドはありません。

デフォルトのフィールド値を持つ通常のフィールド

式に基づいてデフォルト値を持つようにフィールドを設定できます。新しいポイントを作成すると、その属性はデフォルト値で自動入力されます。属性値を変更できます。自動的に更新されません。*

デフォルトのフィールド値の長所と短所:

  • 新しいポイントを追加すると、このフィールドに追加された式の出力が自動的に追加されます。
  • 自動的に更新されません。この例では、既存のポイントを移動した場合、その「緯度」の値は更新されません。
  • このフィールドの値を変更できます。
  • シェープファイルの一部として保存されます。したがって、別のプロジェクトでレイヤーを開くと、属性テーブルにこのフィールドが含まれます。

* QGIS 3.2では、デフォルトのフィールド値を(オプションで)「更新時にデフォルト値を適用する」に設定できます。このオプションを使用すると、デフォルト値が$y現在の値であるポイントを移動すると、新しいy座標に置き換えられます。


QGIS 3.2では、デフォルトのフィールド値を自動更新に設定できると思います。
she_weeds 2018

@she_weeds指摘いただきありがとうございます。その情報を含めるために回答を更新します。
csk 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.