問題タブ [arcpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
656 参照

arcgis - SQL Server テーブルの変数を使用して ESRI ラスターを再分類 (pyodbc に接続)

SQL Server Express テーブルに格納されている値を使用して、ラスター ファイル (植生と土地被覆のタイプを表す) を再分類しようとしています。テーブルには約 400 種のレコードのセットがあり、各行は異なる種を表し、列は各植生タイプを表しています。各植生タイプは、その種の生息地に適している場合は「1」、適していない場合は「0」としてコード化されます。次に、植生ラスターは、種の記録に関連付けられた値に基づいて、「1」または「0」の 2 つの値に再分類されます (これは種ごとにわずかに異なります)。

PythonWin では、pyodbc を使用して SQL Server Express データベース テーブルに接続し、select クエリ ステートメントを実行して、種レコード (行) の値を pyodbc カーソルに収集しています。次に、各列の値を remap ステートメントで出力ラスター値に割り当てたいと思います (添付のコードを参照)。残念ながら、次のエラーが発生し続けます。

カーソルには、選択クエリに基づく SQL Server Express テーブルのすべての値が含まれており、カーソル オブジェクトのrowパラメーターを介してデータにアクセスできます。したがって、row.BIOME_X 変数は確実に 1 または 0 の値を格納しています。それとも、Python 構文を使ってばかげたことをしているだけなのでしょうか。何か案は?

ありがとう!

0 投票する
2 に答える
1294 参照

python - Python の並べ替え後に一意の ID フィールドにデータを入力する

アクセス テーブルに新しい一意の ID フィールドを作成しようとしています。という名前のフィールドが既に 1 つありますSITE_ID_FDが、これは履歴です。そのフィールドの一意の値の形式は、現在の形式とは異なるため、新しい形式で新しいフィールドを作成しています。

次のスクリプトを書きました。

これは正常に機能しますが、objectID のデフォルトの並べ替えに基づいて新しい id フィールドを設定します。最初に 2 つのフィールドを並べ替えてから、その並べ替えに基づいて新しい id フィールドを入力する必要があります (呼び出されたフィールドで並べ替えてからSITE、古い id フィールドで並べ替えたいSITE_ID_FD)

Pythonがソートを尊重することを期待して、2つのフィールドを手動でソートしようとしましたが、そうではありません。Pythonでこれを行う方法がわかりません。誰でも方法を提案できますか?

0 投票する
1 に答える
1227 参照

python - SDE による ListFeatureClasses() の不具合

arcpy を使用して、SDE のすべてのフィーチャ データセットで ListFeatureClasses() を実行しています。行は次のようになります。

しかし、私が知っている (そしてデータを読み込むことができる) フィーチャ データセットの一部では、何も返されません。誰かがこの問題を抱えたことがありますか?

0 投票する
2 に答える
1225 参照

python - ArcGIS 10のPythonスクリプトは、モジュールreを使用しており、「グローバル名're'は定義されていません」を返します。

私はPythonスクリプトを初めて使用し、主にArcGIS 10で使用しています。スクリプトは、フィールドCINTP1内の文字列を再フォーマットすることになっています。例は「000000100」で、「1.00」を返します。テーブル「MAPCHAR」内の選択したレコードで実行するために、ツールボックスにインポートしました。私が受け取り続けるエラーは次のとおりです。

:エラー000539:式の実行中にエラーが発生しました:removeLeadingZeros( "000000100"):グローバル名're'が定義されていません実行に失敗しました(CalculateField)。

実行に失敗しました(スクリプト)。

これが私のスクリプトです:

どんな助けもいただければ幸いです。ありがとう、

0 投票する
1 に答える
3452 参照

python - Python-csvから特定の行を読み取るのに固執

csvに基づいて「一致した」シェープファイルに列を追加する必要があります。完了する最後のステップが1つあります。それは、csvからshpに入力する値を取得することです。

私は得る

readCSV [rowID]トレースバック(最後の最後の呼び出し):ファイル ""、1行目、TypeError:'_csv.reader'オブジェクトは添え字化できません

削除されたCSVは

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

ファイルは次のようになります ここに画像の説明を入力してください

コードは、OVL_CAT+OVL2_DESCをファイル名に一致させます。

次に、LGA_CODEという列を追加するコードを取得し、行2、列1である「583094」を入力する必要があります... FileList 2を呼び出してcsvから行2を取得できない場合、これを取得するにはどうすればよいですか? (以下の例では3つですが、Pythonでは2つです)?

===コメントに基づいて更新されたコード-誰かがそれを必要とする場合、それはすべて機能しています。

0 投票する
0 に答える
846 参照

python - arcpy ベースの Python スクリプトを OGR に変換して半自動化されたメタデータを作成する

arcpy ベースのコーディングを使用して、ベースの ANZLIC 標準メタデータを自動的に生成するスクリプトを作成しました。OGR/GDAL pythonに変換するのを手伝ってくれる人はいますか? これは、QGIS で実行し、すべてのタイプのベクターおよびラスター データを操作できるようにするためです。

ここに画像の説明を入力

重要なセクションにコメントを付けた作業コードを以下に示します。

以下を追加/置換

...

ここで、ogr のアクセス可能なデータセットを一覧表示するための同様の呼び出しが必要になります (ogrinfo はファイルのプロパティのみを一覧表示するようです。arcpy.List に似たものはありますか...)。

上記のコードは osgeo.ogr.Open(File) を呼び出す必要がありますよね?

以下はosgeo用に書き直す必要があります...

私が使用できる次のものがあることがわかります

0 投票する
4 に答える
5194 参照

python - Python arcpy スクリプトに必要なエラー処理のアドバイス

Python スクリプトでエラーを処理する方法について、いくつかのアドバイスを使用できます。このサイトのすべての Python エラー処理の投稿を読んで収集できたのは、for ループ内のエラーを単に try except continue ステートメントでバイパスすることはできないということです。代わりに、各エラーを直接処理する必要があります。これは、すべてをまとめるのに問題があるところです。for ループの途中で発生したエラー メッセージを添付しました。さらに、次のワークフローを実行するスクリプトを添付しました。

  1. ラスターの周りにポリゴンを配置する
  2. 多角形の平均中心に点を置く
  3. ポイントを使用して、対応するラスターに関連付けられた特定の郡を識別します
  4. 選択した郡のポリゴンに基づいてラスターをクリップします

スクリプトが処理の途中で停止するのではなく、リスト内の次のラスターに移動できるように、エラー メッセージの情報を try except continue ステートメントに組み込むにはどうすればよいですか?

ここに画像の説明を入力

0 投票する
1 に答える
7779 参照

python - カーソルの更新を使用して、フィーチャクラス名とOIDの2つのフィールドに入力します

現在、2つのフィールドに入力しようとしています。これらは両方とも、既存のフィーチャクラスからのデータを入力するテーブル内にすでに作成されています。アイデアは、特定のプロジェクト番号に一致する目的のフィーチャクラスからすべてのデータをコピーすることです。プロジェクト番号に一致する行は、一致するフィールドを持つ空白のテンプレートにコピーされます。これまでのところ、オブジェクトIDフィールドとフィーチャクラスの名前のデータをテーブル内の2つのフィールドにプッシュする必要があることを除いて、すべて問題ありません。

上記のコードは私の試みであり、多くの場合、フィールドにFeatureクラスの名前を入力します。私はOIDで同じことをしようとしました。

このコードは、データセット内のフィーチャクラスのメインループであり、データをテーブルにコピーするために使用する新しいレイヤー/テーブルを作成します。フィーチャクラス名とOIDのデータにはプッシュするデータがないため、行き詰まります。

みんなありがとう

0 投票する
1 に答える
616 参照

python - シェープ ファイル編集ライブラリ

受け取ったばかりの ESRI シェープファイルで重複するポリゴン ノードを削除して、エラーの修正を自動化する必要があります。ただし、これを実現するために ArcPy を使用する方法については困惑しています。

これを行うためのライブラリを検索しても、ほとんど結果が得られませんでした。最良のもの ( Python Shape File Library ) はシェープファイルを編集できますが、エラーは引き続き発生します。

このタスクに使用できる自由に利用できるライブラリはありますか?
そうでない場合、ArcPy を使用してプロセスを自動化するにはどうすればよいですか?

.NET (C# または VB.NET) または Python のライブラリを好みます。

0 投票する
1 に答える
302 参照

python-2.7 - 辞書のペアの値を反復処理します

grid1とgrid2を配列に変換し、テーブルを反復処理する次の関数を使用して、grid1とgrid2の値が一致したときに対応する値をテーブルから返す必要があります。しかし、どういうわけか、最終出力には正しくない4つの整数値しか含まれていません。ここで何が間違っている可能性があるかについての提案はありますか?