問題タブ [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 に答える
1594 参照

c# - .NETWebサービスからPythonスクリプトを呼び出す

.NETWebサービスからのPythonスクリプトの実行に問題があります。

WebサービスはSystem.Diagnostics.Processforpython.exeを作成し、Pythonスクリプトパスを引数として渡します。

Webサービスはカスタムローカルアカウントとして実行されています。カスタムローカルアカウントを管理者グループに追加すると、Pythonスクリプトは成功しますが、解決策としてこれを行うことはできません。

Pythonスクリプトは、ArcPyと呼ばれるESRIからのライブラリのインポートに失敗しています。このモジュールは、Java JARを使用して(ESRIのAPI)からArcObjectsを呼び出すようです。

Webサービスのコンテキストで実行した場合にのみ失敗します。runasを使用してcmdシェルを開き、それをWebアプリプールカスタムアカウントとして実行し、Pythonスクリプトを呼び出すと、正常に機能します(アプリプールアカウントが管理者グループにない場合でも)。Webサービスとして実行する場合は、管理者グループに含まれている必要があります。

procmonでw3wp.exeとpython.exeのエントリを調べましたが、アクセス許可を変更する必要があるものが見つかりませんでした。

なぜそれがアプリプールアカウントとして実行されているシェルからは機能するが、Webサービスからは機能しないのか疑問に思っています。

すべてのローカルユーザー権限の割り当てポリシーをアプリプールアカウントに付与しましたが、機能しなかったため、除外しました。

また、ユーザープロファイルをロードするようにWebサービスアプリプールを変更しましたが、それも役に立ちませんでした。

system.diagnostics.processがIISアプリプールのコンテキストで実行される場合と、同じアカウントとして実行されるシェルの場合の実行環境の違いは何ですか?

0 投票する
3 に答える
4114 参照

c# - Pythonスクリプトを呼び出すc#を使用してarcobjectsに入力パラメータと出力パラメータを設定する方法は?

ArcGISデータをジオプロセシングし、Pythonコード内のワークスペース、入力および出力パラメーターを次のように設定するPythonスクリプトを作成しました。

Visual Studio 2010でc#を使用するArcObjectsを初めて使用するため、ArcMapアドインを使用してArcMapデスクトップにボタンを追加しようとしています。しかし、c#からこのPythonスクリプトを呼び出して、テキストボックスのポップアップのようなものを取得し、入力パラメーターと出力パラメーターのパスに関する情報を尋ねる方法がわかりませんでした。GetParameterAsText私はPythonを直接呼び出すため、Pythonコード内のコマンドでは機能しませんでした。

誰かがこの事件を手伝ってくれるなら、私は非常に感謝しています。前もって感謝します。

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

python - rpy + matplotlib + arcpy

arcpy スクリプトで ryp を使用しようとしていますが、次のエラーが発生します。

このエラーは、私のバージョンの python に pywin32 をインストールした後でも発生します。これは、pywin32 をインストールすることで解決される一般的なエラーのようです。

matplotlib のインストールにも問題があります。使用しようとするたびに ( import matplotlib.pyplot as plt )、python がクラッシュします...

バージョン:

パイソン 2.6.6

matplotlib のインストール: matplotlib-1.1.0.win32-py2.6.exe

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

python - マスタースクリプトからPythonワーカースクリプトを複数のインスタンスとして呼び出す

Webサービスリクエストワークスペースを監視しているPythonスクリプトがあります。クライアントが私のWebサービスにジョブを送信するたびに、よく知られた場所に一意のジョブフォルダーが作成されます。「フラグ」(このジョブの処理が完了したことを示す特定の名前の空白のテキストファイル)のないフォルダーのこのよく知られた場所をポーリングするスクリプトがあります。

現在、私のスクリプトはワーカースクリプトを呼び出して新しいフォルダーの内容を処理できますが、ワーカースクリプトが終了するまで待ってから、フォルダーの配布を続行する必要があります。

私の質問は、ワーカースクリプトの新しいインスタンスをインスタンス化して、制御をマネージャーに戻すためのオプションは何ですか。ワーカースクリプトのパラメーターを受け取り、マネージャースクリプトでコマンドラインから呼び出すPython実行可能ファイルを作成しますか?または、多数のインステーション処理作業を行うことができるクラスにワーカースクリプトを作成しますか?

ワーカースクリプトが完了すると、マネージャースクリプトジョブの完了にメッセージを返す必要はありません。これは、テキストファイルをディレクトリにドロップすることで実行されます。今考えてみると、ワーカースクリプトの処理に1.5分かかるため、各ジョブディレクトリが配布されていることをどこかで保持する必要があります。

アドバイス/リンクをいただければ幸いです。

0 投票する
3 に答える
500 参照

python - Pythonでファイル名を条件としてファイルを見つける

a.shp または b.shp と、その他のその他のファイルを含むフォルダーがいくつかあります。または、1 つのフォルダーに a.shp と b.shp の両方を含めることができます。その場合、a.shp を選択したいと思います。フォルダーに 2 つのファイルがない場合は、そのフォルダーを分析から除外します。

次のようなpythonコードを書く必要があります。

誰かがPythonでそれを行う方法についてアドバイスを提供できれば、本当に感謝しています.

ありがとうございました。

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

python - ArcGIS 10 python - ラスター値がセット内にあるかどうかを確認する条件文チェック

別のラスターからの入力に基づいてラスターを作成しようとしています。ラスター値が set() に含まれる数値と等しい場合は 1、それ以外の場合は 0

私は次のことを試みました:

これらはどちらも機能しません。where 句はマップ代数式のみを受け入れるため、機能しないと思います: ArcGIS ヘルプ

これを行うには、他に2つの方法が考えられます。1 つはそれを NumPyArray に変換し、それを操作することです。もう 1 つは、セットをループして、セット内の各値のラスター オブジェクトを作成することです。ループが終了したら、それらをマージします。

これについての提案やコメントはありますか?

ありがとうございました

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

python - 以前の値を上書きするタプルへの追加

シェープ ファイルのすべてのポリラインを取得するために arcpy を使用しています。SearchCursorカーソルを返すので、シェープ ファイルのすべての機能を反復処理できます。問題は、後で使用するために、カーソルによって返されたすべてのオブジェクトを保存したいことです。

カーソルによって返されるすべてのオブジェクトを含むはずのタプル。sizeただし、タプル回数の最後の要素のみが繰り返されます。

3610930 2135882 3611593 2134453

3611806 2134981 3611593 2134453

3614160 2136164 3617432 2131734

3611593 2134453 3617432 2131734

3617432 2131734 3620568 2127591

3620568 2127591 3620785 2127423

3617980 2126657 3620568 2127591

3616768 2129454 3617948 2126649

3617948 2126649 3617980 2126657

3615102 2128889 3617587 2126510

3617587 2126510 3617948 2126649

3617624 2126416 3617980 2126657

3613129 2128176 3615155 2125617

3615155 2125617 3617587 2126510

3615086 2125515 3615155 2125617


3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

3615086 2125515 3615155 2125617

最初に、リストを使用してこれを試しました。「append()」メソッドを使用した場合、リストにも同じ出力が見つかりました。タプルは不変のデータ構造であるため+、タプルの以前のすべての要素をどのように上書きできますか。このコードはarcpy用に書かれていますが、問題はarcgis固有ではないと思います.

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

python - Python arcpy.mapping とドキュメントの更新

ドキュメントを保存せずに、Python で新しく追加されたレイヤーを使用して ArcMap (.mxd) ドキュメントを更新する方法はありますか?

私はPythonを使用して一連のタスクを完全に自動化しました。最後のステップは、出力をarcmapドキュメントにダンプし、ドキュメントをポップして、スクリプトのユーザーが出力データを見て、出力データを確認するかどうか/どこで行うかを決定できるようにすることです.mxd を保存したい。

スクリプトで参照する Default.mxd ドキュメントを作成しましたが、ユーザーが独自のドキュメントを手動で保存するよう強制されるように、「読み取り専用」のままにしたいと考えています。ただし、arcpy.mapping モジュールを使用すると、保存しない限り mxd 内のデータを「見る」ことができません。これを回避する方法はありますか?

以下は、私が達成しようとしているスクリプトの例です。

0 投票する
3 に答える
4182 参照

python - Pythonのグロブへの制限?

私はglob次のようにファイル名をループにフィードするために使用しています:

このスクリプトのプロトタイプを作成するために使用したおもちゃの例は、2、10、または100個の入力csvファイルで正常に機能しますが、実際には、10,959個のファイルをループする必要があります。その数のファイルを使用すると、スクリプトは最初の反復後に機能を停止し、2番目の入力ファイルを見つけることができません。

スクリプトは「妥当な」数のエントリ(2〜100)で完全に正常に機能しますが、必要な数(10,959)では機能しないことを考えると、この状況を処理するためのより良い方法、または設定できるある種のパラメータがあります。多数の反復を許可しますか?

PS-最初は使用してglob.globいましたが、glob.iglobフェアはそれ以上のものではありません。

編集:

より多くのコンテキストのための上記の拡張...

スクリプトは、「csvfile」変数がコマンドに渡されるArcPy行で失敗します。報告されたエラーは、実際にはcsvが確実にディレクトリにあるのに、指定されたcsvファイル(「NCCSM20110101.csv」など)が見つからないことです。上記のように、宣言された変数(x)を複数回再利用できない可能性がありますか?繰り返しになりますが、これは、グロブされているディレクトリに100程度のファイルしかない場合は正常に機能しますが、大量のファイル(たとえば、10,959)がある場合は、リストのどこかで任意に失敗します。

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

python - arcpy を使用してリストにフィーチャクラスをロードする: SearchCursor の奇妙な動作

を使用してarcpy、私の目的は、さらに処理するためにフィーチャクラスをリストにストックすることです。各行は{'field name': value}、ジオメトリを含む の辞書になります。

このタスクを達成するための最も Pythonic な方法は、リスト内包表記を使用することです。

この方法はデータに対して機能しますが、リスト内のジオメトリはすべて同じです (fc で最後に取得されたジオメトリ)。SearchCursor のこの動作は、既に StackOverflow でコメントされています

別のアプローチを試しました:

それは私のデータセットで動作しますが:

  • 遅いです。
  • データと偉業が同じ順序であると断言するのが安全かどうかはわかりません。

それについて何か意見はありますか?