タグ付けされた質問 「arcpy」

Esriによって作成されたサイトパッケージで、ArcGIS Desktop(ArcMapおよびArcGIS Pro)のジオプロセシング、マッピングなどをPythonに公開します。

2
Arcpyをインポートすると、ArcMapがスクリプトを実行する速度が遅くなる
Arcpyをインポートするスクリプトを記述している場合、ArcMapの実行速度が遅くなることがわかりました。 ArcMapで、Pythonウィンドウを介して、またはスタンドアロンのPythonスクリプトとして操作できるスクリプトを記述したい場合があります。その場合は、arcpyをインポートする必要があります。ただし、これを実行してpythonウィンドウで実行すると、実行速度が遅くなります。

2
ディレクトリツリーをクロールしてMxd relativePathsをtrueに変更するにはどうすればよいですか?
各プロジェクトフォルダーに多数のサブフォルダーを含めることができる多数のプロジェクトフォルダーがあります。これらのサブフォルダーには、mxds、シェープファイル、個人のgdb、fgdbを含めることができます。多くの場合、ユーザーはmxdsを保存する前に「相対パスを使用」をチェックするのを忘れていたため、フォルダーがコピーされると、データソースリンクが壊れます。 ディレクトリをクロールし、各mxdを開き、relativePathsをtrueに設定して、mxdを保存するスタンドアロンのarcpyスクリプトを記述したいと思います。これをどこかで行うスクリプトはありますか? MapDocumentオブジェクトのrelativePathsプロパティは読み取り専用です。これを変更する他の方法はありますか?

3
ArcGIS DesktopでPython計算タイムスタンプフィールドを高速化しますか?
Pythonは初めてで、ArcGISワークフロー用のスクリプトの作成を開始しました。タイムスタンプフィールドから "Hours"ダブル数値フィールドを生成するためにコードをどのように高速化できるのかと思っています。まず、DNR Garminによって生成されたトラックポイントログ(パンくずトレイル)シェープファイルに、各トラックポイントレコードが取得されたときのLTIMEタイムスタンプフィールド(テキストフィールド、長さ20)を指定します。スクリプトは、連続する各タイムスタンプ( "LTIME")の間の時間差を計算し、それを新しいフィールド( "時間")に入力します。 そうすれば、戻って特定の領域/ポリゴンに費やした時間を合計できます。主な部分は、print "Executing getnextLTIME.py script..." 以下のコードです。 # --------------------------------------------------------------------------- # # Created on: Sept 9, 2010 # Created by: The Nature Conservancy # Calculates delta time (hours) between successive rows based on timestamp field # # Credit should go to Richard Crissup, ESRI DTC, Washington DC for …
9 arcpy  time 

2
ArcpyまたはArcObjectsを使用してプログラムでラスターレイヤーの表示とシンボルプロパティを変更する
ArcMap内からプログラムでレイヤーの表示とシンボルを変更できるようにする必要がある1500以上のNITFファイルがあります。以下に赤で示したプロパティを設定する必要があります。 私はarcpyドキュメントを調べましたが、これらのプロパティが公開されているようには見えません-正直なところ、そうであるとは期待していませんでした。ArcObjectsを介してアクセスできると感じています。誰かがこれらのプロパティをプログラムで変更した経験/運がありましたか?

1
フィーチャクラスのコピーを作成し、ArcPyを使用して特定の距離だけオフセットするスクリプトツールを作成していますか?
ポリゴンフィーチャクラスを複製し、すべてのポリゴンをx方向とy方向の両方に約10フィートオフセットします。先週、これを行う方法はあるかと尋ねたところ、arcpyを使用して独自のpythonスクリプトを作成する必要がある可能性が最も高いという通知を受けました。arcpyを使用して独自のスクリプトを作成しましたが、機能しません。 import arcpy from arcpy import env import os env.overwriteOutput = True # Get arguments: # Input polygon feature class # Output polygon feature class # inputFeatureClass = arcpy.GetParameterAsText(0) outputFeatureClass = arcpy.GetParameterAsText(1) xShift = arcpy.GetParameterAsText(2) yShift = arcpy.GetParameterAsText(3) shapeName = arcpy.Describe(inputFeatureClass).shapeFieldName # Create the output feature class with the same …

6
ArcPyを使用してポリゴンの各辺の方向を計算していますか?
太陽の露出を計算できるように、ポリゴンの各線の向きを調べたいと思います。各ポリゴンは建物を表し、高さが関連付けられています。とりあえず、方向を検討したいと思います。後でシェーディングの問題を検討します。 多角形を線に分割し、各線の方向を計算するのが1つの方法でしたが、難しいのは、その線の外面を特定する必要があることです。ほとんどのポリゴンは直線の単純な4辺の図形ですが、そうでない場合もあります(検討したい問題ですが、まだ解決する必要はありません)。 私はpythonに精通しており、これをすべてスクリプトから実行する予定です。


2
ArcPyを使用して2つのフィーチャクラスが同じ空間参照を持っているかどうかを確認していますか?
arcpyを使用して、2つのフィーチャクラスが同じ空間参照を持っているかどうかをどのように確認しますか? 2つが等しいかどうかを確認するだけでは機能しません。 >>> import arcpy >>> fc1 = r"C:\Users\e1b8\Desktop\E1B8\GIS_Stackexchange\data.gdb\test" >>> sr1 = arcpy.Describe (fc1).spatialReference >>> sr2 = arcpy.Describe (fc1).spatialReference >>> sr1 == sr2 False factoryCode カスタムプロジェクションにはないため、機能しません。 >>> fc2 = r"C:\Users\e1b8\Desktop\E1B8\GIS_Stackexchange\data.gdb\customproj" >>> sr2 = arcpy.Describe (fc2).spatialReference >>> sr2.factoryCode 0 はありますnameが、名前は同じでも、単位が異なっていてもかまいません。 >>> sr1 = arcpy.Describe (fc1).spatialReference >>> sr2 = arcpy.Describe (fc2).spatialReference >>> …

2
ディゾルブ機能はジオプロセシングの効率を向上させますか?
大量のラインデータセット(> 140,000フィーチャ)があります。必要な時間または(より重要なことに)使用されているメモリのいずれかに、処理上の利点があります。 実行中に溶解させ、実行する前に、データをバッファに? 2つのIdentity操作への入力でDissolveを実行する方法 通常、すべてのジオプロセシングが完了するまで待ってから、最後に1つのディゾルブを実行します。しかし、私は誰かの非常に古いスクリプトをデバッグしており、彼が理由で繰り返しすべてを溶解していたのか(Arc 9.3に戻っている)、それとも代替案について考えていなかったのかは不明です。(同じスクリプトがジオプロセシングツール間でデータを繰り返し投影するため、ロジックにはすでに疑問があります。)

1
arcpyを使用してフィールドから別のフィールドに値をコピーする方法は?
ArcPyで "A"から "B"にコピーするなどの簡単なフィールド計算を実行する方法を教えてもらえますか? 私はWebで多くのosの例を見つけましたが、それらはすべて余分な式を使用し、それらは複雑でした。必要なのは、ArcMap GUIで実行できることを単に B = !A! 更新: ここに私がこれまでに持っているコードがありますが、これを実行するとエラーが発生します NameError:名前「A」が定義されていません point_shp = "G:\\Temp\\All_Provinces.shp" arcpy.AddField_management(point_shp, "B", "TEXT", "", "", "25", "", "NON_NULLABLE", "NON_REQUIRED", "") arcpy.CalculateField_management(point_shp, "B", "A", "PYTHON_9.3")

3
テスト中に後続のステップが失敗した場合でも、arcpy.MakeFeatureLayerインメモリレイヤーが存在する
Arcgisscriptingを使用してgp.makefeaturelayerでメモリ内出力レイヤーを作成したとき、それをtry / exceptブロックに入れ、makefeaturelayerが失敗したときに、exceptピースのgpオブジェクトを削除しました。これで、arcpyを使用しているときに、メモリ内の出力レイヤーを削除するために、アイドルウィンドウを閉じて再度開く必要があるようです。 makefeaturelayerツールの出力レイヤーをtry / exceptブロックで削除するにはどうすればよいですか?ありがとう。

1
ArcMapジオメトリックネットワークで反転した線を見つけますか?
ジオメトリックネットワークのプロジェクトトレーシングラインで作業しています。トレースを機能させるために、多くのラインでライン(フロー)方向を逆にする必要がありました。これで、マスターデータセットを更新する必要があるので、データベースで同じ行反転を行います。 私の考えは、小さなarcpyスクリプトを実行して、マスターデータセットの一致する行のto / fromに対してすべての行のto / from XYをチェックすることです-to XYがXYからマスターに一致する(およびその逆) -versa)フリッピングのために記録されます。 このスクリプトはそれほど難しくないはずですが、反転した行を識別するためのツールがすでに利用できるかどうか疑問に思っています。ArcToolboxでまだ見つけることができませんが、間違ったものを探している可能性があります。 データセットに他のジオメトリの変更はありませんが、検出したくないことに注意してください。唯一の違いは方向である、一致する同一のライン(IDで一致)だけです。XYが異なる行は無視したい。 たとえば、行の方向を示す次の行 注意したい青い領域の線、唯一の違いは線の方向です。線が実際に移動したため、記録したくない赤い領域の線。 ArcGIS Desktop(10.5)には、フリップされたラインを識別できるが、他のジオメトリの変更は無視できるツールはありますか?もしそうなら、どれですか? 「機能の変更の検出」ツールを見つけました。これは現在テスト中です(非常に時間がかかります)。これが反転した行だけを見つけるのか、それともすべてを見つけるのかわかりません。もちろん、パラメーターを誤って設定した可能性があります。 フィーチャ変更の検出ツールの処理が終了しました-実行に約20分かかりましたが、ラインの方向が変更された9つのフィーチャのみが見つかりました。少なくとも10000のフリップ機能を期待しています。

1
ArcPyのカーソル/行オブジェクトを削除する理由
誰かがこのコードの最後の2行が何をするかを理解するのを手伝ってくれませんか? import arcpy arcpy.env.workspace = "c:/esripress/python/data/exercise07" arcpy.env.overwriteOutput = True copy = arcpy.CopyFeatures_management("airports.shp","Results/airports.shp") fc = "Results/airports.shp" cursor = arcpy.da.UpdateCursor(fc, ["STATE"], ' "STATE" <> \'AK\'') for row in cursor: row[0] = "AK" cursor.updateRow(row) del row del cursor ループ関数が「AK」の値を持たない各レコードを通過し、そのレコードに「AK」の値を与えることを理解しています。しかし、私は理解していないことは何であるdel rowとdel cursor行うことを意味しています。
8 arcpy  cursor 

1
ArcGIS Pythonスクリプトツールに終了コマンドを追加しますか?
mxdのコピーを作成し、定義クエリを設定し、定義クエリに基づいてデータドリブンページのセットをエクスポートするGISスクリプトツールがあります。エクスポートが完了すると、mxdコピー、いくつかの変数、および一連のデータベース接続が削除されます。 どこにいてもデータドリブンページのエクスポートをキャンセルするエスケープコードをコーディングする方法はありますか?スクリプト全体をキャンセルするのではなく、最後にジャンプしてmxdコピーなどを削除します。コードのブロックは次のようになります。この: mxd = arcpy.mapping.MapDocument(mxd_master) mxd_folder = os.path.dirname(mxd_master) mxd_copy = mxd_folder + "\\WORKING.mxd" mxd.saveACopy(mxd_copy) mxd = arcpy.mapping.MapDocument(mxd_copy) ddp = mxd.dataDrivenPages for page_num in range (1, ddp.pageCount + 1): ddp.currentPageID = page_num row = ddp.pageRow mapsheet = row.getValue(ddp.pageNameField.name) arcpy.mapping.ExportToPDF(pdf export parameters....) del mxd, mxd_master arcpy.Delete_management(mxd_copy) 基本的に、「Q」キー(または任意のキー)を押すことができるようにしたいのですが、pdfエクスポートループが壊れ、del / Delete_managementブロックが実行されます。ツールを介してスクリプトを実行しているので、それは可能ではないと思いますが、エクスポートを早期に停止することを決定した場合、手動で削除する必要がなくなるため、そうであるかどうかを確認しました。 ArcGIS Desktop 10.4を使用しています。

3
凡例がArcPyを使用してデータフレーム内のフィーチャと重複する場合は、凡例を移動します
凡例がデータフレーム内の機能をインターセプトする場合、プログラムで(アークピー)凡例を移動する方法を見つけようとします。以下のシナリオで、凡例がAOIのビューを覆い隠している場合、別のコーナーに移動して、問題。これは、データフレームを小さくして横に置くのではなく、データフレームの上に配置する必要があります。

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