タグ付けされた質問 「python-parser」

式のラベル付けとフィールド計算のためのArcGIS Python Parserに関する質問

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)

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

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 フィールド計算機を使用して戻り文字を削除する方法のアイデアはありますか?

2
Field CalculatorでPythonを使用してDMSからDDに変換しますか?
私は、データに度、分、秒のように表現される緯度/経度に変換する必要があるに小数度。たとえば、データでは、Latitude列にN335042.06、Longitude列にW86031.04としてリストされています。DMSをDDに、またはその逆に変換するスクリプトを作成する前にこの問題を実行したことがあるので、そこからビットを使用できると思います。しかし、私が抱えている問題は、データの「N」と「W」を無視する方法です(より良い言葉がないため)?それらをスキップできますか?また、DMSは、記号やスペースなしですべて一緒にリストされます。 私が使用することができlen()、range()、split()値からの読み取りにどの部分を指定するには?たとえば、次のことができますか? N335042.06ここで、33 =度50 =分42.06 =秒...? この ESRIの記事に出会いましたが、それはVBにあります。おそらくリファレンスとして使用しますが、用語/構文の一部はPythonとは異なります。 動作する最終コード! # Pre-logic def latDD(x): D = int(x[1:3]) M = int(x[3:5]) S = float(x[5:]) DD = D + float(M)/60 + float(S)/3600 return DD # Expression latDD(!Latitude!)

3
ArcGIS Desktopを使用して連続番号をソート済みテーブルに計算しますか?
連番でソートされたフィールドを計算する方法はありますか?ArcGIS Field Calculatorを使用してシーケンシャルIDフィールドを計算するソートフィーチャクラスを見ましたか?連番の計算方法の概要を説明しますが、これは常にソート順ではなくFID順で計算されます。 #Pre-logic Script Code: rec=0 def autoIncrement(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec += pInterval return rec #Expression: autoIncrement() 私がやろうとしていることの例。年、月、日でソートするために高度なソートを使用しましたが、Seqフィールドに連番を付けたいと考えています。あなたは私のOBJECTIDフィールドが整頓されていないことがわかりますので、上記のコードは動作しません。 これは、フィールド計算機またはarcpyの更新カーソルを使用して実行できますか?

2
PythonとArcGIS Desktopを使用して、別の属性の変更に基づいて新しい属性を計算しますか?
一連のgps時間エンコードポイントデータを、異なる属性に基づいて動作に分類しようとしています。 自宅に0、自宅に1の属性を作成しましたが、自宅からの旅行に番号を付けたいと思います(自宅01111111111110で開始および終了するため、ポイントのセットは1つの旅行になります)。旅行番号を持つ属性フィールドを追加しましたが、フィールドの計算方法がわからないため、ホーム/アウェイフィールドに基づいています。 GPSデータの例(「*」を使用して無関係な情報を示し、時間を1、2などとして単純にインデックス付けします)、上記の「ホーム/アウェイ」インジケータ、および希望のトリップインジケータ「トリップ」、計算する必要があります: Time Lat Lon Home/Away Trip 1 * * 0 0 2 * * 1 1 3 * * 1 1 .... 12 * * 1 1 13 * * 0 0 14 * * 0 0 15 * * 1 2 16 * * 1 2 .... …

1
フィーチャクラス内のグループに基づいてフィールドを自動インクリメントしますか?
フィーチャクラス内のグループに基づいてフィールドを自動インクリメントする必要があります。特定のポリゴン内に8つのプロットがあり、各ポリゴン内のプロットのセットごとに1〜8のIDを割り当てる必要があります。ポリゴンには、プロットをグループ化するために使用される独自のID番号があります。 私はそれがこれの変更になると思います: rec=0 def autoIncrement(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec

4
同じ単語を2回含む文字列を検索する必要がある
所有者名の属性データがあります。姓を2回含むデータを選択する必要があります。 たとえば、「BENNETT MCCARL&ARNETTE BENNETT」という所有者名があるとします。 上記の例のように、姓が繰り返し出現する属性テーブルの行を選択します。そのデータを選択する方法を誰かが知っていますか?

4
フィールド計算で英数字から数字を削除しますか?
次の形式の英数字の値を含むフィールドがあります。 A-AA00 時には彼らも A-AAA0 ArcMap 10のフィールド計算機に配置できるPythonスクリプトが必要です。これにより、少なくとも数字が削除され、アルファベット文字とハイフンが再トレーニングされます。そのため、たとえば、これ: A-AA0 これになる: A-AA また、数値文字を別のフィールドの数値文字に置き換えたいと思います。このStack Exchangeエントリはこの問題に対処していますが、文字列には数値の前にスペースがあり、これを分割およびインデックス付けに使用できます...文字列はそれほど簡単に作成されていません。

2
ArcGIS属性テーブルで複数の計算を実行しますか?
特定の消火栓データを追跡するために開発された既存のExcelスプレッドシートがあります。これは定期的に更新され、ArcGISの空間消火栓データに結合されます。スプレッドシートには、静圧、残圧、および流量に関連するデータを入力するための多数の列があります。 火の流れを計算するために火の流れのテスト式で20 PSIの定格容量を利用して、スプレッドシートは自動的に計算します。計算は以下のとおりです。 Fire Flow = Flow * ((Static - 20)/(Static - Residual))^0.54 これを攻撃する最善の方法はわかりません。提案を探しています。計算の結果に基づいて、消火栓を塗装する適切な火の流れの色を示すIFステートメントを含む追加の列があります。知らない人のために、消火栓の色は、緊急時に火災の流れの状態で職員を消火するための指標です。私はいくつかの研究を行い、次のpythonスクリプトを開発しました: def Reclass !Bon_Color!: if ( !Fire_Flow! <= 0): return Black elif ( !Fire_Flow! >= 1 and !Fire_Flow! <= 499): return Red elif ([Fire_Flow] > 499 and [Fire_Flow] <= 999): return Orange elif ( !Fire_Flow! > 999 …

3
ArcGIS Desktopを使用してフィーチャクラスのフィールドを自動インクリメントしますか?
そのため、ArcGISとArcCatalogは比較的初めてです。パーソナルジオデータベースのフィーチャクラスにPROJECTIDというフィールド名を作成しました。データ型はTEXTです。これは10桁のIDになります。最初の5文字は頭字語です。6番目の文字は、機能のタイプを表す数字になります。数字になります。最後の4文字は、0001から始まる番号です。 例:WATER-1-0001 フィールドのスクリーンショット: 私の質問は、ArcCatalogでこれをどのように行うことができるかです。次のように自動インクリメントするPythonコードをいくつか見ました。 rec=[OBJECTID] def autoIncrement(a): global rec return "water" + str(a) + "-" + format(rec, '04d') ここでも、ArcGISに関しては初心者です。現在、エラーNameError名 'OBJECTID'が定義されていません。


2
フィーチャクラスを並べ替えて、ArcGIS Field Calculatorを使用してシーケンシャルIDフィールドを計算しますか?
私はArcMapで、フィールドに基づいてレコードを並べ替えてから、自動インクリメント値を使用してフィールドを計算し、並べ替えを行います。何か案は? フィーチャクラスで更新カーソルを取得してから自動インクリメントを行うことができるようですが、ArcMapのフィールド計算機でこれを行う方法があるかどうかを確認したいと思います。

2
エラーのトラブルシューティング000989 ArcGIS Field CalculatorからのPython構文エラー?
ArcGIS 10のフィールド計算機でPython構文を使用しようとしていますが、完全に混乱しています。これまでのところ、最も基本的な計算は失敗しており、その理由はわかりません。私は、列のすべてのセルの値を、渡す引数の倍数になるように設定する関数を作成しようとしています(もっと複雑なものも失敗したため、テストするために簡単なものを試したかったのですが) )。 ただし、エラーメッセージから、構文が正しくないことがわかります。 しかし、何が間違っているのか理解できません。 余談ですが、構文の強調表示や明確なインデントがないため、フィールド計算機ボックスに読みやすいpythonを記述するのがどれほど難しいかについても私は恐怖に思っています。この計算を行うための外部Pythonスクリプトを作成する方が速くて簡単ですが、この新しい関数がプログラム内でどのように機能するかを理解したいと思います。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.