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

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

2
ArcPyを使用して* .lyrファイルのフィーチャデータセットを含むデータソースパスを変更しますか?
arcpyを使用してフォルダーXのすべてのレイヤーファイルのソースデータパスを変更するにはどうすればよいですか? 私が続いてきた更新とarcpy.mappingでデータソースを固定私ができる最善のように、まだすべての私の取得は役に立たないですRuntime error <type 'exceptions.ValueError'>: Layer: Unexpected error間違っているか、何が不足しているかトラブルシューティングするために十分な私に教えてくれありません。 コードは次のとおりです(単一レイヤーファイルをテストするために簡略化されています)。 import arcpy, os fname = r'K:\Layers\xxx.lyr' lyr = arcpy.mapping.Layer(fname) oldpath = lyr.workspacePath print 'oldpath: ', oldpath lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb') print 'newpath: ', lyr.workspacePath そして結果: oldpath: K:\Canvec_Utility\Temp.gdb Traceback (most recent call last): File "x10x.py", line 12, in <module> lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb') File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line …

2
ArcGIS DesktopでPythonを使用して、原点からさまざまな距離のラインを作成しますか?
ArcGISとPython(ArcPy)を使用して、設定された距離と角度を使用して、単一のポイントからラインフィーチャを作成しようとしています。 これらの座標にポイントがあります:X = 400460.99、Y = 135836.76 このポイントから、そのポイントから15度の角度で800メートルの長いラインを作成します。 結果のエンドポイントがどうなるかわかりません。 私のデータは、メリーランド州平面南-メートルに投影されています。

5
IDLEを使用する場合、インポートarcpyエラー(RuntimeError:NotInitialized)を回避しますか?
ArcGISバージョン:ArcGIS 10、Python 2.6.5マシン:Windows 7 64ビット(Intel) IDLE(guiおよびcmdプロンプト)を使用してarcpyをインポートし、pythonwinを使用すると、次のエラーが表示されます。 python26とpython25をシステムから削除し、ArcGIS 10とpythonを新規インストールしました。したがって、ここからIDLEを呼び出しています: "C:\ Python26 \ ArcGIS10.0 \ pythonw.exe" エラー: **アイドル2.6.5 インポートarcpyトレースバック(最後の最後の呼び出し):ファイル ""、1行目、インポートarcpyファイル "C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy__init __。py"、17行目からジオプロセシングインポートgpファイル「C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing__init __。py」、14行目から_base import *ファイル「C:\ Program Files(x86)\ ArcGIS \ Desktop10 .0 \ …
11 arcpy  idle 

1
ArcGISツールとスタンドアロンのPythonスクリプトのパフォーマンス
ArcToolboxでPythonスクリプトを実行することとスタンドアロンスクリプトとして実行することの違いを研究した人はいますか?バンド1を抽出して、RGBイメージのセットをシングルバンドに変換するための簡単なスクリプトを作成する必要がありました。スタンドアロンのスクリプトとしてPCに対して読み取りと書き込みを行うと、約350秒で1000の同じサイズのイメージを処理します。ArcToolboxから同じスクリプトを実行するには、約1250秒かかります。 import arcpy import csv from os import path arcpy.env.workspace = in_folder image_list = arcpy.ListRasters() #Create a CSV file for timing output with open(outfile, 'wb') as c: cw = csv.writer(c) cw.writerow(['tile_name', 'finish_time']) #Start the timer at 0 start_time = time.clock() for image in image_list: #Extract band 1 to create a …

5
ArcPyを介して、ArcMapが編集セッションにあるかどうかを確認していますか?
あるフィーチャクラス属性を別の属性クラスにコピーすることで、同僚のワークフローをスピードアップするのに役立つPythonアドインボタンを作成しました。これは、arcpy.UpdateCursor関数を使用して、ターゲットフィーチャクラスの行を更新します。現在存在するため、このボタンスクリプトは編集モードに関係なく実行できます。明らかに編集セッションで実行する場合、ユーザーは編集を停止して変更を保存しないことを選択できますが、スクリプトが編集セッション外で実行される場合はそうではありません。 ArcMapが現在編集セッションにない場合にスクリプトの実行を停止するチェックをスクリプトに追加するにはどうすればよいですか? これは、ArcMap 10および10.1に関係します。 また、他のArcMapユーザーに確認して、編集セッションに参加しない限り、テーブルの更新が通常許可されないことを確認したいと思います。 では、このスクリプトは編集セッションの外でどのように実行されるのでしょうか。 このスクリプトは、リストから2番目のフィーチャクラステーブルを更新したときに、たまたま機能するArcMapが実行する一見偶然のような選択順序に関する別の質問も表示しますが、それは別の日です。 これが現在動作するスクリプトです(10.1エディター実装なし)。 ユーザーが編集セッションにいることを確認するチェックを追加するにはどうすればよいですか? def onClick(self): #Reference mxd mxd = arcpy.mapping.MapDocument("CURRENT") #Reference the main Data frame mm = arcpy.mapping.ListDataFrames(mxd, "MainMap")[0] #Reference the Water System Valve feature class waterValves = arcpy.mapping.ListLayers(mxd, "Water System Valve", mm)[0] #Reference the fire hydrant feature class fireHydrants = arcpy.mapping.ListLayers(mxd, "Water Hydrant", …
11 arcpy  arcmap  editing 

4
Pythonを使用してフィールドから一意の値のリストを抽出しようとしています
各列の一意の値を抽出する必要があるFGDB内のいくつかのテーブルにいくつかの列があります。 例:値は[1,2,2,2,3,4]で、[1,2,3,4]を返そうとしています 私はARCGISで他の多くの方法でこの仕事をすることができましたが、自分自身を拡張しようとしています。 私は仕事をすると思うPythonの断片をウェブ上で見つけましたが、それを実行させるのに苦労しています(3行目に構文エラーが出続けるので、無効な構文エラーが出続けます)これは間違いないでしょう本当にシンプルなユーザーエラー。 以下のコードスニペット import arcpy def unique_values(r'N:\GISProjects\Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'): with arcpy.da.SearchCursor(table, [field]) as cursor: return sorted({row[0] for row in cursor}) これは私が崇高なテキストから受け取るエラーメッセージです: File "C:\Users\hawkinle\Desktop\STDTAS\Unique_Data.py", line 3 def unique_values(r'N:\GISProjects\Steve_Eastwood_Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'): ^ SyntaxError: invalid syntax [Finished in 0.1s with exit code 1] 元の質問からの更新 これで、以下の回答でコードを更新しましたが、二次的なエラーが発生しています。 新しいコードスニペット: import arcpy def unique_values(table , …

1
ポリゴンの形状を特定する:伸び、丸みなど
地質図を一般化しています。最初のステップでは、削除、拡大、集約などの小さなポリゴンを扱います。 上記の操作を適用する前に、細長いポリゴンやより多くの丸いポリゴンなどの形状分析から始めたいと思います。これは対処する重要な要素になる可能性があるためです。 地質図は非常に複雑な形状をしており、可能な限り考慮および維持する必要があります。 ジオメトリに基づいてポリゴンの形状を識別する方法はありますか? 基本的にはArcGIS、Pythonを使用しています。

6
Pythonでフィールドの最小数を見つけるより速い方法はありますか?
arcgisデスクトップの使用10.3.1私は、検索カーソルを使用してリストに値を追加し、min()を使用して最小の整数を検索するスクリプトがあります。その後、変数はスクリプトで使用されます。Featureクラスには200,000行があり、スクリプトの完了には非常に長い時間がかかります。これをもっと速くする方法はありますか?現時点では、時間がかかるため、スクリプトを書くのではなく、手作業で行うと思います。 import arcpy fc = arcpy.env.workspace = arcpy.GetParameterAsText(0) Xfield = "XKoordInt" cursor = arcpy.SearchCursor(fc) ListVal = [] for row in cursor: ListVal.append(row.getValue(Xfield)) value = min(ListVal)-20 print value expression = "(!XKoordInt!-{0})/20".format(value) arcpy.CalculateField_management (fc, "Matrix_Z" ,expression, "PYTHON")
10 arcpy  list 


1
ArcGIS Proタスクは、マップフレームで動作するPython Toolboxツールをサポートしていますか?
ArcGIS Proタスクは、マップフレームで動作するPython Toolboxツールをサポートしていますか? 私が尋ねる理由は、私が次のことをしようとするときに立ち往生していることです: ArcGIS Pro 1.1.1を起動します 新しいプロジェクトを作成します-私は自分のTestProjectを呼び出し、C:\ Tempに配置しました プロジェクトペインを使用して、Natural Earthから世界の国々のシェープファイルがある場所にフォルダー接続を追加します() ne_10m_admin_0_countries.shpをマップにドラッグアンドドロップして、ne_10m_admin_0_countriesというレイヤーを作成します 新しいレイアウトを挿入する-A3ランドスケープを使用しました レイアウトに新しいマップフレームを挿入する プロジェクトペインで、TestProjectフォルダーに新しいPythonツールボックスを作成します-私はTestPYTと呼んでいます プロジェクトペインでTestPYTを右クリックして編集します 以下のコードでコードを置き換えて、Python Toolboxにチリとスイスと呼ばれる2つのツールを提供します。 スクリプトを保存してPythonツールボックスを更新し、2つの新しいツールを確認します チリツールを実行して、レイアウトにマップフレームを表示してチリにズーム スイスツールを実行して、レイアウト上のマップフレームを表示しますスイスにズームします 新しいタスクアイテムを挿入する タスクアイテム1に新しいタスクを挿入し、チリと呼びます チリタスクで新しいステップを挿入し、それをZoom to Chileと呼びます ステップ動作の場合、それを自動で非表示にします [アクション]タブで、コマンド/ジオプロセシングをジオプロセシングツールとして設定して、チリツールを選択しようとします OKを選ぶとくっついてしまうようです 完了をクリックするとツールが「失われる」ようです 具体的には、作成しようとしているのは、チリにズームまたはスイスにズームするためにクリックできる2つのタスクを含むワークフローですが、上記のステップ19で立ち往生しています。 私が全体的にやろうとしているのは、ArcPy(ArcGIS 10.xアーキテクチャ用)のPythonアドインツールバーに相当するArcPy(ArcGIS Pro用)を見つけて、それらの国にズームするための2つのボタン(チリとスイス)を備えていることです。 私はこの手順を数回実行しましたが、ある場合にはチリとスイスのツールをタスクとして固定することができましたが、それでもそれらはマップフレームと相互作用していなかったようです(エラーなし、変更なし) Pythonツールボックスから実行したときにツールが問題なく機能し続けたとしても、実行時にマップフレームに表示されていたものと同じです)。 これは、Pythonツールボックス(TestPYT)にコピーして貼り付けるコードです。 import arcpy class Toolbox(object): def __init__(self): """Define the toolbox (the name of the …

2
ArcGIS Desktopを使用して散在するポイントをマップするために動的ページの数を最小化しますか?
時々、興味のあるポイントを表示するためにマップブックを作成する必要があります。通常のメッシュを使用してページを作成する最初のステップ: a)単一のポイント(25ページなど)が端にあるページがいくつかあり、b)ページが多すぎるため、このソリューションは好きではありません。 最初の問題はコードを使用して簡単に修正できます。ページ範囲の長方形を関連するポイント範囲の中心に移動します。 私はまだそれが好きではありません、ページ数は同じままなので非常に込み合っています。それらはすべて、レポートの複数のコピーで実際のA3用紙ページになることに注意してください。 そこで、ページ数を減らすコードを作成しました。この例では、45から34です。 これが達成できる最良の結果かどうかはわかりませんが、 すべてのポイントをキャプチャするために指定されたサイズの長方形の数を最小限に抑えるためにポイントをシャッフルするための最良の戦略(疑似コード、パブリケーション、Pythonライブラリ)は何ですか?確かに、誰かがゲーム理論、軍事芸術、漁業でそれを発見しました これは元の質問の更新です: これは、必要な実際の範囲とページサイズを示しています。 164ページのうち10ページを表示する拡大ズーム: サンプルポイントフィーチャクラス 長方形のサイズは、制限内に収まるとすぐに変更できます。

7
ArcPyを使用して、ポリゴンを* n *個の等しい数のグループに分割しますか?
私の仕事の仕事の1つは、小包をグループに分割することです。これらのグループは、不動産所有者と話すためにエージェントによって使用されます。目標は、お互いに近い区画をグループ化することでエージェントの仕事を簡単にすることと、仕事を均等に分配するように区画を等しい数に分割することです。エージェントの数は、カップルから10以上に変動する可能性があります。 現在、私はこのタスクを手動で実行していますが、可能であればプロセスを自動化したいと考えています。私はさまざまなArcGISツールを調査しましたが、私のニーズに合うものはないようです。near_analysisポリゴンを使用および選択するスクリプト(Pythonで)を試しましたが、かなりランダムであり、準正しい結果を得るまでに時間がかかり、最初からすべてを手動で行った場合よりも修正に時間がかかります。 このタスクを自動化する信頼できる方法はありますか? 結果の例(うまくいけば、黄色で表示される除算なし):

1
Python Toolboxツールで値テーブルのデフォルト値を設定する
フィールドを並べ替え、並べ替えられたフィールドを使用して新しいフィーチャクラスを作成するPython Toolboxツールを作成しました。ツールは適切に機能し、値テーブルを使用して、ユーザーが選択した順序でフィールドを配置したり、各フィールドのランク値を入力したりできます。ただし、このツールの厄介な点は、すべてのフィールドを並べ替える前に、一度に1つずつ値テーブルに追加する必要があることです。 私はこれを設定して、デフォルトですべてのフィールドを値テーブルに取り込むようにしています。不要なフィールドは、並べ替える前に削除できます。誰かが以前にこのようなことをすることに成功したことがありますか?UpdateParametersメソッドでこれを実現しようとしています。これが私が試しているコードです: import arcpy import os class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name of the .pyt file).""" self.label = "Reorder Fields" self.alias = "Reorder Fields" # List of tool classes associated with this toolbox self.tools = [ReorderFields] class ReorderFields(object): def __init__(self): …

2
datetime.date.today()から今日の日付で日付フィールドを計算していますか?
arcpy.CalculateField_managementを使用して現在の日付を属性テーブルに追加するツールの一部に取り組んでいます。私はインターウェブをずっとさまよいましたが、この問題の解決策を見つけることができません。 このコードを使用すると、「12:00:00 AM」という値が返されます input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = today.strftime('%m/%d/%Y') arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") このコードを使用すると、今日の日付「10/07/2014」から値「06/19/1905」を取得します input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = str(today) arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") 私が間違っていることについて何か考えはありますか?更新カーソルの使用を避けたいのですが、それが最後のオプションであればそうします。

1
Pythonスクリプトツールのパラメーターでドロップダウンリストを設定しますか?
私が作成したpythonスクリプトからツールを作成しようとしています。これは、作成したリストを取得し、入力の1つとして完成したツールのドロップダウンメニューとして使用します(たとえば、添付の画像を参照)。 私が使用しているリストは、バーモント州のすべての町を含む大きなリストであり、スクリプトからテーブルから生成します(以下のコードを参照)。私の現在の問題は、ツールのプロパティを設定してこのリストを取得し、それを使用してユーザーのドロップダウンリストを作成することにあると思います。パラメータで使用するためのリストを作成するコードのブロックは次のとおりです。ツールのこのコードの終わりに問題が発生している人はいますか? import arcpy arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb" towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex" arcpy.MakeFeatureLayer_management(towns,"towns_lyr") NameList = [] NameListArray = set() rows = arcpy.SearchCursor("towns_lyr") for row in rows: value = row.getValue("TOWNNAME") if value not in NameListArray: NameList.append(value) town = NameList town = arcpy.GetParameterAsText(0) 以下は、デフォルトの検証コードを使用したツールプロパティの画像です。この検証コードを変更する必要がありますか? この検証コードの変更に関する情報を探しましたが、ドロップダウンリストのフォーマットに使用するための情報が見つかりませんでした。

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