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

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

3
名前でフィーチャクラスまたはテーブルのジオデータベースを検索していますか?
名前を使用して、フィーチャクラスまたはテーブルのジオデータベースを検索する方法を探しています。 このような機能はありますか? 明らかに、ウィンドウ検索はジオデータベース内のテーブルのランダムIDのみを返します。実際にデータセットを検索したいのですが。 ジオデータベースに空間データを保存しているのは私だけではなく、他の数千のデータセットと一緒にアーカイブして、それをふるいにかけたくないので、これは多くの人に役立つと思います。 これらのジオデータベースをArcCatalog内で検索したいのですが。

2
Arcpyで注釈レイヤーを処理する
arcpyを使用して注釈レイヤーにアクセスしたい(目的は、テキスト注釈内のいくつかのテキスト文字列を確認することです)。注釈とは、動的なラベルではなく、描画ツールの注釈を意味します。これらの注釈レイヤーは、「デフォルト」という名前のグループレイヤーの下にあります。 Esriのドキュメント層そのものであるとしてドロー注釈の会談: マップドキュメントには、本質的に3つのカテゴリのレイヤーがあります。フィーチャレイヤー、グループレイヤー、およびラスターレイヤーです。isFeatureLayer、isGroupLayer、isRasterLayerプロパティを使用すると、すべてのレイヤータイプではなく、大半のレイヤータイプを識別または分離できます。アノテーションサブクラス、ディメンションフィーチャ、ネットワークデータセット、テレインデータセット、トポロジデータセットなど、これら3つのカテゴリのいずれにも該当しないいくつかの特殊なレイヤーとデータセットがあります。これらの場合、何かを行う前に、他のプロパティをテストして対象のレイヤーを分離する必要がある場合があります。 注意すべきことの1つは、ArcGISが描画アノテーションを処理する方法です。2つの平均構成が可能です。 ArcGISは、ジオデータベースとマップドキュメントの2種類のアノテーションを完全にサポートしています。 私の場合、それはマップドキュメントです。 このすべてのドキュメントを考慮すると、ドローアノテーションは単なるレイヤーのように見えるため、次のような単純なコードが機能しているはずです。 mxd = arcpy.mapping.MapDocument("some\mxdpath\here") df = arcpy.mapping.ListDataFrames(mxd,"Layers") lyr = arcpy.mapping.ListLayers(mxd,"current_annotation_layer",df) しかし問題は、アノテーションがデータフレーム経由で取得できないように見えることです(これは、各アノテーションレイヤーがフィーチャレイヤーに関連付けられていることを考えると奇妙です)。 アノテーションにアクセスするための特定のarcpyクラス(ArcObject SDKのIAnnotationFeature2に相当するもの)?回避策はありますか? よろしくお願いします!

5
大きなテーブルを持つPythonでArcGISカーソルを使用するときにパフォーマンスを向上させる方法は?
ファイルジオデータベースにかなり大きなポイントフィーチャクラスがあります(最大4 000 000レコード)。これは、100mの解像度を持つ通常の点のグリッドです。 このレイヤーで一種の一般化を行う必要があります。このために、各ポイントが4つの「古い」ポイントの中央にある新しいグリッドを作成します。 * * * * o o o * * * * o o o * * * * [*] =元のグリッドのポイント-[o] =新しいグリッドのポイント 新しい各ポイントの属性値は、古いグリッドの4つの近傍の重み付けされた値に基づいて計算されます。したがって、新しいグリッドのすべてのポイントでループし、それらのそれぞれについて、(属性テーブルのXとYの値を比較することによって)隣人を見つけるために、古いグリッドのすべてのポイントでループします。4つのネイバーが見つかったら、ループから抜け出します。 ここには方法論的な複雑さはありませんが、私の問題は、私の最初のテストに基づいて、このスクリプトが完了するまで数週間続くことです... それをより効率的にする可能性はありますか?私の頭の上のいくつかのアイデア: フィールドXとYにインデックスを付ける=>私はそうしましたが、大きなパフォーマンスの変化に気づきませんでした 属性ベースのクエリではなく、空間クエリを実行して近傍を検索します。それは実際に役立ちますか?ArcGISのどの空間関数がその仕事をするべきですか?たとえば、新しい各ポイントをバッファリングすることがより効率的であるとは思えない フィーチャクラスをNumPy配列に変換します。それは役に立ちますか?私はこれまでNumPyをあまり使用していないので、誰かが処理時間を短縮するのに本当に役立つと私に言わない限り、それについて詳しく知りたくありません。 他に何か?

2
ArcMapのPythonウィンドウでスクリプトを実行しますか?
私はテキストエディタでPythonを作成しているので、Pythonスクリプトscript.pyを用意しています。私はまだそれを開発しているので、まだツールボックスに入れたくないので、現時点では、テキストエディターからArcGIS DesktopのPythonウィンドウにコピーして貼り付けます。 ArcGIS Pythonウィンドウからそれを呼び出すためのコマンドはありますか? 以下の線に沿った何か: run script.py それが存在するべきであるのは当然のようですが、おそらく存在しないでしょう。

2
Geometry()オブジェクトの「長さ」属性にアクセスするときに測定単位を指定するにはどうすればよいですか?
CalculateField_managementツールを使用すると、形状の長さを計算するときに測定単位を指定できます。 #Calculate polyline lengths in miles polylines = "C:\sampleShape.shp" arcpy.CalculateField_management(polylines, "shapeLen", "!Shape.length@MILES!", "PYTHON_9.3") 各機能の 'SHAPE @ LENGTH'を使用してカーソル内で同じことを行い、長さを選択した単位で返します。 #hypothetical example 1 with arcpy.da.UpdateCursor(polylines, field_names=["SHAPE@LENGTH.FEET", "shapeLen"]) as upCurs: for row in upCurs: row[1] = row[0] upCurs.updateRow(row) あるいは、(効率的ではない)@SHAPEジオメトリオブジェクトを使用することによって? #hypothetical example 2 with arcpy.da.UpdateCursor(polylines, field_names=["@SHAPE", "shapeLen"]) as upCurs: for row in upCurs: row[1] = …

6
ArcPyまたはModelBuilderを使用してポイントの位置を移動/オフセットしますか?
テキスト注釈機能を持つ、地理参照されていないCADレイヤー(この質問を参照)がいくつかあります。テキストをポイントに変換するモデルを作成しましたが、アノテーションをポイントフィーチャクラスに変換した後、CADテキストのアンカーポイントがCADテキストの中心(ポイントが属する場所)と一致しないことがわかります。 したがって、プログラムで(ArcPyまたはModelBuilderを使用して)提供するX、Yの測定値を使用して、現在の位置(デルタx、y)を基準にフィーチャを移動します。 これにより、オフセットCADアンカーポイントの代わりに、GISポイントをそれらが属する場所に戻すことができます。 このタスクを実行するにはどうすればよいですか? @PolyGeoはSHAPE @ XY IN 10.1 を使用して優れた答えを出しましたが、現在10.0を実行しています。10.0のアイデアは?

1
ArcPyを使用して選択したフィーチャを新しいシェープファイルにエクスポートしますか?
現在、ArcGIS 10.1のシェープファイルを反復処理して、フィーチャを選択し、そのフィーチャ(およびそのフィーチャのみ)に対して可視領域分析を実行する検索カーソルがあります。同じ機能をPythonで同じ名前のシェープファイルにエクスポートする最も簡単な方法は何ですか? fieldFID = 'FID' arcpy.CheckOutExtension("Spatial") arcpy.MakeFeatureLayer_management (inPoints, "pts") with arcpy.da.SearchCursor('pts',[fieldFID]) as cursor: for row in cursor: fid = str(row[0]) print fid arcpy.SelectLayerByAttribute_management ("pts", "NEW_SELECTION", '"FID" = {}'.format(fid)) outViewshed = Viewshed(inDEM,"pts",1,"CURVED_EARTH",0.15) outViewshed.save("C:/temp/output/viewsheds/"+fid)

1
同じPythonスクリプトでArcPyツールとPyGRASSツールを使用していますか?
さまざまなArcPy / ArcGISコマンドを含むPythonスクリプトを記述しようとしていて、それをGRASSジオプロセシングツールと組み合わせたいと考えています。 残念ながら、GRASSライブラリのインポートは機能しません。 import grass.script as grass エラーで終了します: Traceback (most recent call last): File "<interactive input>", line 1, in <module> ImportError: No module named script GRASS GISが独自のPythonバージョンをインストールすることは知っています。ArcGISとPythonのGRASS GISインストールを組み合わせる方法はありませんか?pygrassモジュール(または私が考えているもの)をC:\ Python26 \ ArcGIS10.0 \ Lib \ site-packages \フォルダーにコピーしてみました。別のエラーメッセージが表示されますが、まだ機能しません。 Traceback (most recent call last): File "<interactive input>", line 1, in <module> File …

2
ArcMapの内部で実行されるPythonスクリプトと外部で実行されるPythonスクリプト
私は仕事のためにPythonスクリプトを使い始めたばかりです。 現在、プロセスを自動化するスクリプトを作成しています。 基本的に、ユーザーにクライアント名を尋ね、可能な場合はプロジェクションを取得し、C:ドライブにクライアント用のディレクトリを作成し、クライアント固有のファイルジオデータベースを作成し、必要なデータセットを作成し、クライアントデータ固有のフィーチャクラスを作成します。最終的には、各フィーチャクラスに必要なフィールドを追加し、おそらく他の項目も追加します。 私は、ArcMapのPythonスクリプトの適切なエチケットを本当に知らずにこれを始めました。しかし、これまでに作成したものは、ArcMapの外でしか実行されません。 これは受け入れられますか? たった今見つけたarcpy.getparamaterastext()を介してユーザー入力を取得する代わりに、raw_input()を使用しています。 よろしいですか? これは機能しますが、これがスクリプトを作成する適切な方法であるかどうかはわかりません。 ここに私がこれまでに持っているコードがあります。 import sys import arcpy import os #Records name of the client client = raw_input("Enter the name of the client: (letters and underscores only) \n") #Records filepath of client to be created clientpath = "C:/" + client #Inquires if projection file exists …
10 arcpy 

2
arcpy for / whileループでエラーをバイパスする方法は?
ワークスペースをループしてシェイプファイルの名前を変更し、フィーチャデータセットにコピーする便利なスクリプトツールがあります。ただし、ワークスペースのどこかに破損したシェープファイルがある場合、スクリプトは失敗し、処理が停止します。 このようなエラーをどのように処理しますか?エラーファイルを印刷し、forループの次のシェイプファイルの処理を続行して完了する方法はありますか? import arcpy from arcpy import env # Allow overwriting of output env.overwriteOutput = True # Parameters env.workspace = arcpy.GetParameterAsText(0) state = arcpy.GetParameterAsText(1) gdb = arcpy.GetParameterAsText(2) # Get a list of shapefiles in folder fcs = arcpy.ListFeatureClasses() # Find the total count of shapefiles in list fcCount = len(fcs) …
10 python  arcpy 

2
arcpyを使用してファイルジオデータベースの有効性を確認する
タイトルが示すように、arcpyを使用してGDBファイルが有効かどうかを確認するにはどうすればよいですか?1つの方法は、名前がで終わるかどうかを確認するだけですが、.gdbこれは堅牢な方法ではありません。通常のファイルはで終了できるため、.gdbGDBは基本的にOSのフォルダーです。それで、どうすればよいですか?

4
ポリラインのすべてのポイントを取得する
Pythonにいくつかのポリラインフィーチャオブジェクトがあります。次に、ポリラインのすべてのポイントを取得します。 たとえば、ポリラインがある場合はポイント開始[0,0]エンドポイントを[5,5]。結果:[1,1];[2,2];[3,3];[4,4];[5,5]。 端点を含むその線上のすべての整数点を見つけたいのですが。直線の場合、これは非常に単純ですが、ポリラインにBeizer Curve、Circular Arc、Elliptic Arcジオメトリタイプがある場合、どのようにすればよいですか? 編集: ArcGISのすべてのライセンスレベルで利用できるツールのみを使用できます。たとえば、ArcGIS Basic。

6
ポリラインに沿った距離を指定して、エンドポイントからポリライン上のポイントを取得します
ポリラインの始点と終点があります。特定の距離で指定された端点からそのポリライン上の点を取得するにはどうすればよいですか。 このスクリプトがモジュールをインポートせずにArcViewで機能するという条件で、arcpyを使用してこれを取得するにはどうすればよいですか(この回答のように)。値をハードコードしないようにしています。 関連質問: 距離を指定して線に沿ってポイントを作成する方法 Python for ArcGIS Desktopのラインに沿ってポイントを補間しますか?

2
ArcPyを使用してArcGIS for Desktopでフィーチャを回転しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、地理情報システムスタック交換のトピックになるようにします。 3年前休業。 回転させたい一連のポリゴンがあります。 各ポリゴンには、フィールド値として保存された回転角度とアンカーポイント(xy座標)があります。 たまたま、すべてのアンカーポイントはポリゴンの頂点にあります。 ArcGIS for DesktopとArcPyを使用してこれを行う最良の方法は何ですか? 編集モードのときに回転できることはわかっていますが、すべてが異なるため、すべて手動で実行する必要はありません。 私はそれを自動化して私のワークフローに組み込むことができるように、Pythonの回答を好みます。

2
ArcGIS 10でのPythonスクリプトによるエラー処理
Projectsフォルダーにすべてのmxdファイル(完全パス付き)のリストを作成するために使用しているpythonスクリプトがあります。スクリプトはそれを使用してリストを反復処理し、ESRIの方法ごとに各mxdでfindandreplaceworkspacepathsを実行します。破損したmxdファイルにアクセスすると、問題が発生します。試してみましたが、動作しませんでした。破損したファイル名をファイルに書き込んで次に進むことが理想的な状況です。そうすれば、最後にそれらに戻ることができます。私はpythonスクリプトを使用するのが初めてなので、どんな助けでもいただければ幸いです。 import arcpy, os, sys, traceback, time oldpath = 'W:' newpath = 'W:\\GIS' def find(path,pattern): matches = [] for r,d,f in os.walk(path): for files in f: if files.endswith(pattern): fpath = os.path.join(r,files) matches.append(fpath) print (fpath) return matches print ("Go: ") mxdlist = (find('C:\\gis','.mxd')) print (mxdlist) print ("Starting Path Conversion") try: for …

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