タグ付けされた質問 「field-calculator」

QGIS、ArcGIS Desktopなどのフィールド計算機とそれらのフィールド計算ツールに関する質問に使用します


4
QGISで列に連続番号を入力しますか?
属性テーブルに新しい列を作成し、デフォルト値(たとえば0)を設定します。(おそらくフィールド計算機を使用して)番号付きインデックスのように、行1の値が1、行2 = 2などになるという結果を得たいと思います。 フィールド計算機のコード例に感謝します(($rownum回線に切り替えるためにこれが必要だと思います)の使用を含む)。


3
ArcGIS Field CalculatorのPython Parserの基本的なIf / Then?
ArcGIS 10.2 for Desktopを使用していますが、このサイトに目を通しましたが、まだ答えがわからないようです。VBAとPythonには非常に新しいですが、ArcGISで長年使用しました。[属性による選択]を使用すると、これを遅い方法で実行できますが、時間がかかります。 私は病気の症例(ポイントレイヤー)と米国国勢調査(ポリゴンレイヤー)の空間結合を試みています。これにはカウントデータが必要です。ポイント/ケースごとに、ケースが発生した年に応じて2001〜2012の日付範囲を持つYEARというフィールドがあります。毎年、カウント列が必要です。たとえば、COUNT01を呼び出す最初のもの。YEARのケース日付が2001の場合、COUNT01には1が含まれます。それ以外の年(2002-2012)の場合、0にする必要があります。COUNT02、COUNT03 ... COUNT12列があります。「Null」値を持つことはできません。 ここに私が今まで試したものがあります そして、これがArcでのデータの表示です。

3
ArcGIS Field Calculatorを使用して属性テーブルの列を丸めますか?
ArcMapのフィールド計算機を使用して、既存の列を小数点以下2桁に丸めたい。現在、小数点以下6桁の列があり、小数点以下2桁に切り捨てたいと考えています。 私はこれを行うためにフィールド計算機(おそらくPythonを使用)を使用することを計画していましたが、おそらくもっと簡単な方法がありますか? 受け入れられた答えはおそらく単一のフィールドを変更する最も簡単な方法ですが、ここではpythonとVBの両方のフィールド計算機でそれを行う方法を示します。 VB: round([column], 2) Python: round(!column!, 2)

3
QGIS Field Calculatorを使用して別の列に基づいて列の部分の合計を計算しますか?
別の列の値に基づいて、1つの列の値の合計を計算したいと思います。私の質問を説明するために、下の写真をアップロードしました。2番目の列は郵便番号で構成され、3番目の合計売上高です。郵便番号ごとの総売上はいくらですか?したがって、この場合: 列2の値の列3の合計は1023?出力はになるはずです4 (0+1+1+2+0)。その場合の合計は1024、同じロジックに従って11,5になります。 これは非常に大きなデータセットであるため、ZGISコードで合計売上を示す新しいフィールドをQGISフィールド計算機(またはその他のツール)で計算したいと思います。これまでのところ、私はそれを機能させることができないようで、ここの誰かが私を助けてくれることを望んでいました。 ご覧のとおり、いくつかの欠損値がありますが、これは計算上の問題ですか?おそらく言及しておくと良いのは、テーブルであることです。

7
ArcGIS Field CalculatorのPython Parserを使用して二重引用符を検索/置換しますか?
フィールド計算機(ArcMap 10.0)を使用して、アドレスフィールド内の二重引用符を削除しようとしています(そこに入れませんでした、信じています)。私は多くの呪文を試してみましたが、計算で地面から降りることさえできません。はい、両方のフィールドは文字列であり、両方とも許容可能な長さです。 この計算: この結果: [結果]ダイアログに次のエラーメッセージが表示されます。 繰り返しますが、そこには入れませんでした。

3
QGIS Field Calculatorでの条件ステートメントの作成
このトピックに関する他のQ&Aをいくつか調べましたが、私がやろうとしていることを扱っているものはありません。 大きなデータセットがあり、特定の量(この場合は20)を超える値を1つのフィールドで検索し、値が20より大きい場合は、別のフィールドで値1を返します。値0を返します。 私は運のないものを書いてみました。 QGIS 2.8を使用しています。

8
Pythonとフィールド計算機を使用して、フィールドからリターン/改行(\ n)文字を削除しますか?
リターン文字(改行)を削除しようとしているフィールドを持つジオデータベーステーブルがあります。その投稿方法(Pythonで改行を削除(削除)する方法はありますか?)を見つけましたが、フィールド計算機では機能しません。私が試したコードスニペットを以下に 示します。文字列の末尾にリターン文字がないことに注意してください。 !myField!.rstrip() または !myField!.rstrip('\n') または !myField!.rstrip('\r\n') または !myField!.replace('\n', '') このオプションに指定された000539エラー: 説明フィールドの計算ツールまたは値の計算ツールで使用される計算が無効です。提供されるこのエラーメッセージには、特定のPythonエラーがリストされます。 ソリューションこのエラーコードは、多くのPythonエラーをカバーしています。 エラー例1:exceptions.TypeError: 'str'および 'int'オブジェクトを連結できません。上記はPython固有のエラーです。計算は、文字列と数値を追加または連結しようとしています。 エラー例2:無効なフィールドshape @ distance上記は、geometryオブジェクトを使用したエラーです。距離メソッドは、ジオメトリオブジェクトの有効なメソッドではありません。 特定のPythonの問題については、外部のPythonヘルプで詳細を参照するか、フィールドの計算または値の計算ヘルプでこれらのツールの詳細を参照してください。 または import os def removeReturn(myField): s = myField.rstrip(os.linesep) return s フィールド計算機を使用して戻り文字を削除する方法のアイデアはありますか?

1
QGIS Field CalculatorでElseif条件付きステートメントを使用していますか?
QGIS Field Calculator(バージョン1.8.0)でELSEIF条件ステートメントを記述しようとしています。オンラインで見つけた例を使用しました。 CASE WHEN val < 0 THEN 'negative' WHEN val = 0 THEN "neutral' ELSE 'positive' END ステートメントを次のように変更しました。 CASE WHEN "GRID_ID" = 1 THEN 'complete' ELSEIF "GRID_ID" = 2 THEN "in progress' ELSE 'not started' END このステートメントは実行されず、出力プレビューに式が無効であると記載されました。詳細情報:パーサーエラー:構文エラー、予期しないCOLUMN_REF、WHENまたはELSEまたはENDが必要です このエラーが発生した場合、それを修正するために何をしましたか?


4
各ポリゴンの頂点の数を抽出していますか?
私はArcGIS Desktop 10.2を持っていますが、私の挑戦は、このようなすべての機能の各ポリゴンの頂点数を抽出する方法です。 フィーチャクラスに多数のパーセルがあり、すべてのフィーチャの頂点の数を個別に抽出し、すべての頂点のXY座標を表示したい。 詳細については、各ポリゴンの頂点を変換し、1つの数字から始まる各頂点の数を表示するだけなので、ポリゴンがあり、4つの頂点がある場合、ポリゴンを頂点に変換するには、このような頂点の数を表示します(1、2、3、4、5)、各頂点のxyを表示し、実際のチャレンジIDに、すべてのポリゴンを頂点に変換し、頂点の数を1から開始する方法を考えます。

1
ArcMapのPythonスクリプト内の面積を計算する
Pythonスクリプト内でポリゴンの面積を計算しようとしています。2つのポリゴンをマージして新しいポリゴンを作成し、結果のポリゴンの領域を出力ファイルのフィールドに追加します。ポリゴンは通常のシェープファイルに保存され、投影されます。できればマップ単位の面積。 これは非常に一般的で簡単な作業だと思っていましたが、Googleの多くにもかかわらず、今のところ有効なソリューションを見つけることができませんでした。 arcpy.updateCursor値を計算したら挿入することを計画していました(この段階ではFCに機能は1つしかありません)ので、変数として返すことができるのが最も簡単です。同じタスクを実行する(面積値を正しいフィールドに取得する)代替ソリューションも機能します。 Pythonのフィールド計算機も試しました。ヘルプページから変更したものは、次のように動作すると思いましたが、これまでのところ運はありません。 arcpy.AddField_management(tempPgs, "Shape_area", 'DOUBLE') exp = "float(!SHAPE.AREA!.split())" arcpy.CalculateField_management(tempPgs, "Shape_area", exp) Windows 7でPython 2.7を使用してArcGIS Basic 10.1 SP1を実行する。 現在のコードの関連部分は次のようになります。 #/.../ arcpy.Copy_management(inpgs, outpgs) arcpy.AddField_management(outpgs, 'Shape_area', 'LONG') fields = AM.FieldLst(outpgs) #/.../ # Identify and search for shapes smaller than minimum area where1 = '"' + 'Shape_Area' + '" < ' + …

2
QGISの列ごとにソートされたテーブルの行番号を割り当てる方法はありますか?
フィールド計算機には、「$ rownum」と呼ばれる「レコード」の下に、現在の行の番号を返す(割り当てる)優れた機能があります。 並べ替えと一緒に動作させる方法はありますか?テーブルを列の「長さ」でソートし、行の順序(シーケンス)を最短から最長までの長さで取得したいとします。 このために、いくつかのオフィススプレッドシートソフトウェアを簡単に使用して、列ごとに並べ替え、新しい列に順序(シーケンス)を設定できることを知っています。しかし、私はQGISですべての仕事をしたいと思います。 更新:回避策として、シェープファイルの機能の順序を変更する方法もありますか?-mmqgisプラグインと関数modify / sortを使用し、その後、新しい保存ファイルで「$ rownum」を使用します。

1
QGIS、自己更新式(スプレッドシートなど)を使用してフィールドに入力する
fieldの値として数式を入力する方法(プラグインなど)はありますか?基づいている他のフィールドが調整されると、自己更新しますか?フィールド計算機がフィールドの値を更新する方法とまったく同じですが、毎回フィールド計算機に戻る必要はなく、依存するレイヤーが更新されるとスプレッドシートのように機能します。 たとえば、ポリゴン内の住宅ユニットの数を調べたい場合、フィールド計算機でのようなことができますround("Density"*"Area")が、ポリゴンを調整するたびにそれをやり直す必要があります。計算がより複雑になると、手動で実行して手動で再調整するのが非常に面倒になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.