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

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

3
ArcPyを使用してX、Y座標からポリゴンフィーチャクラスを作成しますか?
次の座標を持つ単一(正方形)のポリゴンを含む新しいポリゴンフィーチャクラスを作成するスクリプトを記述しようとしています:(0、0)、(0、1,000)、(1,000、0)、および(1,000、1,000) 。 import arcpy import fileinput import string import os from arcpy import env env.workspace = "D:/UW/Winter_2016/501/w5_more_arcpy8_9_10/ex8" env.overwriteOutput = True infile = "D:/UW/Winter_2016/501/w5_more_arcpy8_9_10/ex8/coordinatesEx8.txt" for line in fileinput.FileInput(infile): ID, X, Y = string.split(line, " ") array.add(arcpy.Point(X, Y)) cursor.insertRow([arcpy.Polygon(array)]) fileinput.close() outpath = "D:/UW/Winter_2016/501/w5_more_arcpy8_9_10/ex8" newfc = "newFeatureClassEx8.shp" arcpy.CreateFeatureclass_management(outpath, newfc, "Polygon") cursor = arcpy.da.InsertCursor(newfc, …

1
ArcPyを使用してレイヤーIDを取得しますか?
私はArcMapセッションで作業しています。ドキュメント内の各レイヤーのIDを取得するオプションをオンにしたので、誰でも持っています。 今、私が必要としているのは、Pythonスクリプト内でこれらの値を取得する方法です(それをテーブルに自動的にコピーするため)。describeや.mappingモジュールから到達したレイヤーのプロパティには、そのような情報はありません。

1
プログラムでMXDをArcGIS Proにインポートしますか?
プログラムでMXDファイルをArcGIS Proにインポートするときに問題が発生します。次のarcpy.mpコードを使用してこれを実行しようとします。 import arcpy aprx = arcpy.mp.ArcGISProject(r"C:\test\blank.aprx") aprx.importDocument(r"C:\test.mxd) aprx.saveACopy(r"C:\test\filled.aprx") ArcGIS Proを起動して結果のプロジェクトファイルを開くと、[コンテンツ]のアイテムが表示されません。開いたArcGIS ProインスタンスにPythonフレームを使用してMXDファイルをプログラムでロードしようとしました-ロード後にコンテンツにアイテムが表示されません。最後のテストとして、GUIを使用してこのMXDをロードしようとしましたが、これは完全に機能し、ロードするとすべてのレイヤーが[コンテンツ]ペインに表示されます。 何が悪いのですか?

3
2つの平行線の間にある点を見つける
ArcGISで1つの問題に直面しています。私はナビゲーションデータベースに取り組んでいます。私たちのデータベースでは、単一車線の道路は1本の線で表され、複数車線の道路(中央に仕切りのある道路)は2本の平行線(図では赤い色の線)で表されます。 私はいくつかのポイントがマルチレーンストリートの内側と外側にあるポイントシェープファイルを持っています。 マルチレーンストリート内にあるポイントを見つけるArcPyスクリプトを作成したいと思います。つまり、これらの平行線の間(写真でマーク)。 これを達成する方法がわかりません。誰かが私を助けてくれますか? 私はそれにいくつかの練習をしました、そして私はラインの片側にバッファを作成することはマルチレーンポリゴン(写真で示される)の中に作成することができることを発見しました。 しかし今問題は、ポリゴンが実際にラインと交差している(つまり、マルチレーン境界に重なっている)ことです。不要なポイントをキャッチします。このポリゴンをストリートラインに合わせる方法はありますか? 注:ストリートラインも移動するため、ここでは統合は機能しません。ストリートラインに沿ってポリゴンを揃えるだけです。

2
WindowsコマンドプロンプトでのPyQGIS、ArcPy、NumPy、SciPyの併用
ArcGIS、QGIS、Anaconda(SciPyとNumPyが付属しているため引用)、およびバージョン2.7と3からpythonインストールにアクセスしようとしていたときに、このわずかな問題に遭遇Command Promptしました。インタラクティブプロンプトにアクセスするために、GISプログラムやPython IDEを開く代わりに、少し手間をかけずに作業します。 各フォルダーに移動したり、ショートカットを設定したり、PATH環境変数を切り替えたりする代わりに、を介して各pythonインストールにアクセスする別の方法が必要Command Promptでした。 編集する 作業にpythonを使用するGIS専門家は、内部に保持されている機能にアクセスするために、各インストールに手動でアクセスする必要があります。ArcMapなどの読み込みを待つ代わりに、通常、winkey -r + cmdを押しpythonてコマンドプロンプトに入力し、Pythonコンソールを起動する方がはるかに高速です。を使用ArcPyしてシェープファイルを再投影する場合は、にリンクされているPythonコンソールを開く必要がありますArcPy。PyQGIS適切なESRIライセンスがないためにからツールを使用する場合python.exeは、それらのモジュールにリンクされているツールを見つける必要があります。 これは、痛みをすることができ、あなたがで仕事をしようとしているArcPy、PyQGIS、NumPy、またはSciPy すべてのライブラリを1つのPythonインストールとしてまとめてインストールする必要はありません。 通常、PathPythonのインストールがでのデフォルトである変数にバインドされますCommand Prompt。この質問とそれに続く回答は、GIS専門家が単一の環境で複数のpythonインストールを一緒に利用する方法を取り上げています。Python IDEは単一のpythonインストールを対象としており、異なる設定を利用するには設定の変更が必要です。たとえば、私のPyScripterインストールはPythonのArcGISインストールを対象としています。したがって、自分のPyQGISモジュールを利用したい場合は、QGISを開くか、で設定を変更する必要がありますPyScripter。 モジュール/フルスクリプトを作成する場合、1つを個別に対象とすることは理にかなっています。そうすることで、ある種のコード補完が発生する可能性があります。 しかし、あなただけのデータセットを操作するために、インストールごとにいくつかのツールを利用しているときに、単一の画面内で素早くフリップのpythonコンソール/インストールすることができた場合、それは非常に良くなり別名Command Prompt。 トピックを閉じる/オフトピックに投票する人へ... これは明らかにpython言語が付属しているすべてのものに当てはまりますが、データ分析ツール用のESRI拡張機能を購入する余裕のない貧しいGISユーザーにとって、それは彼らの生活を簡素化する方法として役立ちます。いくつかの回答が示しているように、たとえば.cmdファイルに引数を追加するなど、このプロセスをさらにカスタマイズできることは、誰かがカスタムプロセスを実行している場合に非常に役立ちます。より知識のあるGIS /コンピューターユーザー.cmdは、さまざまなIDE / GISソフトウェアのインストールなどに煩わされることなく、プロセスをすばやく実行するためのカスタムファイルをセットアップできる可能性があります。 内でPythonコンソールを実行することの唯一の欠点Command Promptは、コード補完が失われることです。ただし、などの十分なものを実行するarcpy.AddField_management()と、コード補完が邪魔になります。

1
AttributeErrorのデバッグ: 'module'オブジェクトにArcPyのPython Toolboxの属性 'Parameter'がありませんか?
大きな.pytスクリプト(pythonツールボックス)があり、それを多くのファイル(1ファイル-1ツール)に分割しようとしています。 単一の.pytファイルではすべてが完璧に機能しますが、ファイルが分割されると、次のメッセージが表示されます。AttributeError: 'module' object has no attribute 'Parameter'。 ファイルの構造: My Catalog: -- toolbox.pyt -- toolpackage: ---- configurator.py ---- __init__.py toolbox.pyt: # This Python file uses the following encoding: utf-8 import arcpy from toolpackage.configurator import ToolboxConfigurator class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name …

2
属性をクリーンアップする
フィールドのすべてのエントリの道路シェープファイルの属性テーブルをクリーンアップしたいと思います。 例:以下に示すように、属性リストに「名前」、「名前の始点」、「名前の終点」のある道路フィーチャがあります。選択された行では、セグメントの名前はLouis Bothaです。 NameFromにもこのセグメント名が含まれています(Louis Botha&Unknown)。 データをクリーンアップした後、関連するフィールドに次の項目のみを表示します。 名前= Louis Botha名前From =不明な名前To = Janeke すべての属性の「name from」フィールドと「name to」フィールドの両方でこれを削除する方法はありますか?

4
GDBから.csvテーブルをエクスポートするPythonスクリプト
私はPythonプログラミングに非常に慣れていないため、csvファイルをファイルジオデータベースフィーチャクラスからエクスポートするプログラムの作成を任されています。csvには特定のフィールドのみを含める必要があり、エクスポートされるレコードは最終編集日に基づく必要があります。つまり、csvファイルは、「最終編集日フィールド」に基づいて追加された最後の機能のみを含む毎日のベースで作成されます。 私はこれをこれまでに持っています: import arcpy import os import csv import domainvalues def export_to_csv(dataset, output, dialect): """Output the data to a CSV file""" # create the output writer out_writer = csv.writer(open(output, 'wb'), dialect=dialect) # return the list of field names and field values header, rows = domainvalues.header_and_iterator(dataset) # write the field names …

4
単一の住所フィールドを4つのフィールドに分割する方法(ハウス番号、方向、名前、サフィックス)
保安官のヘリコプターのプログラムで使用できるようにするために、小包データを少しマッサージする必要があります。プログラムでは、フィールド内に次のいずれかの住所形式が必要です。 現在、住所は1つのフィールドにあります。例:1234 W Main St. フィールドをこれらの望ましい形式のいずれかに分割することを自動化する方法はありますか? 2つのフィールド形式は、数値の後に分割を呼び出すだけで簡単になると想像できますが、1st Aveなどの道路でも問題が発生する可能性があります。

1
ArcGISでmatplotlibがインストールされるのはなぜですか?
今日、ArcGIS Desktop 10.2.2と64ビットのバックグラウンド処理ツールにアップグレードしたところ、numpyとmatplotlibの両方がPythonと共にインストールされていることに気付きました。実際、10.2.1の「新機能」セクションでは、次のように述べています。 ArcGIS 10.2.1は、Python 2.7.5を含むようにアップグレードされました。サードパーティのPythonライブラリもアップグレードされました。NumPyが1.7.1に、matplotlibが1.3.0にアップグレードされました。 ArcGISには、以下のようなnumpyを使用する多くのツールがあることを理解しています。 NumpyArrayToRaster RasterToNumpyArray データアクセスモジュールの多数のツール。 ArcGISのツールのいずれかがmatplotlibモジュールを直接利用していますか?それとも、ArcMapで可能なものよりも見栄えのよいチャートやグラフなどを作成したい場合に備えてインストールされますか?

1
ArcPyはアドインインターフェイスでフォームに入力できますか?
私はユーザーにいくつかの情報(ID、名前、住所、郵便番号など)を最初に入力するように要求するArcPyツールを構築しようとしています。私のアドインインターフェイスを以下に示します。ユーザーがIDを入力すると、他のすべての関連情報(名前、住所など)が別の既知のテーブルに存在する場合、それらは次の空白に表示されます。同時に、ユーザーにすべてを入力させる代わりに。 つまり、ArcPyは、結果ウィンドウではなく、アドインインターフェイスでフォームに入力できますか? 検証は機能しますが、160,000レコードを超える.dbfで検索カーソルを実行すると、非常に遅くなります。以下のコードをどのように改善できますか、またはPythonスクリプトツールを使用する以外のより良い解決策はありますか?他の無関係な空白を入力した後でも、フォームが再びカーソルを通過するようです。 import arcpy, datetime import os import sys class ToolValidator(object): """Class for validating a tool's parameter values and controlling the behavior of the tool's dialog.""" def __init__(self): """Setup arcpy and the list of tool parameters.""" self.params = arcpy.GetParameterInfo() fc = "C:\\test\\vectorDBO.dbf" field = "PARCEL" cursor = arcpy.SearchCursor(fc) row …

5
カーソルで隣接する行にアクセスする方法は?
添付のスクリーンショットでは、属性に2つの対象フィールド「a」と「b」が含まれています。いくつかの計算を行うために、隣接する行にアクセスするスクリプトを記述したいと思います。単一の行にアクセスするには、次のUpdateCursorを使用します。 fc = r'C:\path\to\fc' with arcpy.da.UpdateCursor(fc, ["a", "b"]) as cursor: for row in cursor: # Do something たとえば、OBJECTID 4の場合、OBJECTID 4行に隣接するフィールド「a」の行の値の合計(つまり、1 + 3)を計算し、その値を「b」フィールドのOBJECTID 4行に追加します。カーソルで隣接する行にアクセスして、このような計算をするにはどうすればよいですか?

1
どのフィーチャクラスがサービスで使用されていますか?
いくつかの機能クラスと多くのサービスがあります。フィーチャクラスをバージョン対応にしようとすると、フィーチャクラスがロックされているというメッセージが表示されますが、これは明らかです。しかし、どのサービスでロックされているかはわかりません。 ArcPyですべてのフィーチャクラスを処理し、それがどのサービスで参照されているかを調べる可能性はありますか?

2
ArcGIS 10:方向性に基づいてポイントレイヤーからイベントリニアレイヤーを作成する
速度制限を反映するポイントレイヤーと道路のラインレイヤーがあります。速度標識の位置は、速度制限が適用される方向を示します。 速度を反映する道路レイヤーの上に線形イベントテーブルを作成するにはどうすればよいですか?したがって、各セグメントについて、各方向に1つずつ、2つの速度属性を返します。

3
ModelBuilderの反復機能選択に相当するPythonとは何ですか?
私のデータは2つのフィーチャクラスで構成されています。 ポイント=木を表すポイント ポリゴン=キャノピーの面積による面積を表すポリゴン。FCの各ポリゴンには、属性にキャノピー測定値があります。 私は以下を達成しようとしています: ポリゴンフィーチャの下のポイントを選択します 各ポリゴンの下のポイントについて、ポリゴン属性に基づいてポイントのX%を削除します スクリーンショット(図1)は、反復機能選択と呼ばれるModelBuilder専用ツールを示しています。 機能をSelectLayerByLocation_managementコマンドに渡すために、機能クラスの機能を反復処理する正しいPythonスクリプトメソッドは何ですか? 図2は、select by locationの出力を示しています。4つのレイヤーはすべて同じです。これは、キャノピーの%測定でポイントを削除しようとすると問題になります。 これは私がこれまでに試したことです: import arcpy from arcpy import env env.overwriteOutput = True env.workspace = r'C:\temp_model_data\OutputData' outWorkspace = env.workspace # The polygons have canopy % data in attributes polygons = r'C:\temp_model_data\CanopyPercentages.shp' points = r'C:\temp_model_data\points_20_2012.shp' if arcpy.Exists("pointsLayer"): print "pointsLayer exists already" else: arcpy.MakeFeatureLayer_management …

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