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

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

1
arcpy.geometry __geo_interface__およびAsShape()関数:精度と穴の喪失
arcpyジオメトリをgeojsonとしてシリアル化しているため、後でジオメトリとして「ハイドレート」して元に戻すことができ、サイクルで2つの問題が発生しています。 問題1:精度 R0 = arcpy.SearchCursor(self.shpTest, "FID=0").next().getValue("Shape") geojson = R0.__geo_interface__ R1 = arcpy.AsShape(geojson) self.assertTrue(R0.equals(R1)) <<< THIS FAILS 文字列表現を確認すると、座標がわずかに変更されています。 geojson2 = R1.__geo_interface__ print geojson print geojson2 {'type': 'Polygon', 'coordinates': [[(442343.5516410945, 4814166.6184399202), (442772.17749834526, 4811610.7383281607), (441565.67508534156, 4811499.6131059099), (440772.50052100699, 4814184.7808806188), (442343.5516410945, 4814166.6184399202)]]} {'type': 'Polygon', 'coordinates': [[(442343.55169677734, 4814166.6185302734), (442772.17749023438, 4811610.73828125), (441565.67510986328, 4811499.6130981445), (440772.50048828125, 4814184.7808837891), (442343.55169677734, 4814166.6185302734)]]} …

7
ArcGIS Desktopを使用してPythonでラスターイメージを配列として取得しますか?
PythonとArcGIS 9.3を使い始めたとき、ラスターイメージをPython配列に取り込む簡単な方法があり、それを別のラスターイメージとして保存する前に操作できると想定しました。しかし、私はこれを行う方法を見つけることができないようです。 可能であれば、どうやって?



2
PythonスクリプトツールのパラメーターでMultiValueを使用していますか?
私のスクリプトは、に対して選択された単一のフィーチャクラスで正常に動作しclip_fc = arcpy.GetParameter(0)ます。 しかし、スクリプトのプロパティでclip_fcをMultiValueに設定してから、いくつかのフィーチャクラスを選択すると、「パラメーターが無効です。」というエラーが表示されます。 誰かが私が間違っているところを教えてもらえますか? import arcpy import os.path from arcpy import env arcpy.env.workspace = r"C:\GIS Home\project_1\clipshps\Combined_mf.gdb" arcpy.env.overwriteOutput = True clip_fc = arcpy.GetParameter(0) clip_name = str(clip_fc) output_dir = r"C:\GIS Home\project_1\clipshps\outputs_clip" for fds in arcpy.ListDatasets(): for fc in arcpy.ListFeatureClasses('','',fds): out = os.path.join(output_dir, fc + "_" + clip_name[40:] + "_clip.shp") arcpy.Clip_analysis(fc, clip_fc, …

4
オーバーラップしていない新しいポリゴンにオーバーラップを爆発させますか?
複数の方法で重複する複数のポリゴンがある場合、これらの機能から、他のポリゴンと重複しないすべてのポリゴンを繰り返しエクスポートします。 製品は、重なり合わないでオリジナルを構成するいくつかの機能になります。 次に、積をゾーン統計への入力として使用できます。これは、各ポリゴンでゾーン統計を繰り返すよりもはるかに高速です。 私はこれをArcPyでコーディングしようとしましたが、成功しませんでした。 これを行うコードはすでに存在しますか?

3
多角形の「グリーディ」なクリッピングライン
一連のポリライン(下の画像の黒い線)をポリゴンの外側の境界にクリップしたいと思います。ポリゴン内のボイドはすべて無視する必要があります。私の理想的な出力は黄色の破線です。最初の線はまっすぐな場合とそうでない場合があります。画像は単純化された例ですが、実際にはポリゴンははるかに複雑で、数百の線があります。凸包は機能しないと思います(ただし、私は間違っているかもしれません)。私はarcgis、qgis、arcpy、shapelyなどのソリューションを利用できます。必要に応じて、他のオプションを利用できるようにすることで、コーディングをPythonで行うことができます。Arcgisは、同僚がツールを共有しやすくするためにも望ましいですが、必須ではありません。 私が今考えることができる最良のことは、個々の線を多角形と交差させ、すべての境界交差で一連の点を作成することです。線の始点までの距離でポイントを並べ替えます。最も遠くて最も近い(FAC)ポイントは、ポリゴンの外側の境界になります。次に、FACポイントを使用して元の線から適切な頂点を選択し、適切な点から黄色の破線を作成します。動作するはずですが、必要以上に複雑に見えます。 いくつかの追加の考え: ラインは線形であり、ポイント間の単純な距離計算が機能するため、線形参照は必要ありません。 これは、あるポイントでラインを分割するツールがあったとしても、それを見つけることができなければ、arcpyで簡単です。 誰でも考えましたか?

1
データアクセスの「SHAPE @ XY」トークンと「SHAPE @ TRUECENTROID」トークンの違いは何ですか?
データアクセス検索カーソル。 トークン"SHAPE@XY"との違いは何"SHAPE@TRUECENTROID"ですか? テストポリゴンで同じ座標を返しました。 >>> cursor = arcpy.da.SearchCursor("test", "SHAPE@XY") >>> for row in cursor: ... print row[0] ... (559389.3838043335, 4239093.201390337) >>> cursor = arcpy.da.SearchCursor("test", "SHAPE@TRUECENTROID") >>> for row in cursor: ... print row[0] ... (559389.3838043335, 4239093.201390337) マルチパートポリゴンフィーチャの場合と同じように動作しました。異なる結果を返すことはありますか?

8
CPUの使用を最大化する
私のスクリプトは、ラインとポリゴンを交差させています。ライン数が3000を超え、ポリゴン数が500000を超えるため、長いプロセスです。私はPyScripterから実行しました: # Import import arcpy import time # Set envvironment arcpy.env.workspace = r"E:\DensityMaps\DensityMapsTest1.gdb" arcpy.env.overwriteOutput = True # Set timer from datetime import datetime startTime = datetime.now() # Set local variables inFeatures = [r"E:\DensityMaps\DensityMapsTest.gdb\Grid1km_Clip", "JanuaryLines2"] outFeatures = "JanuaryLinesIntersect" outType = "LINE" # Make lines arcpy.Intersect_analysis(inFeatures, outFeatures, "", "", outType) #Print end …

3
ArcGIS ProおよびArcGIS 10.x for DesktopアーキテクチャでIDLEを使用する場合のPythonバージョンの区別は?
ArcGIS Pro 1.0.0に付属するPython 3.4.1を、ArcGIS 10.3 for Desktopに付属するPython 2.7.8がインストールされているラップトップで使用し始めたところ、実行の可能性を最小限にしたい私が意図し、もう一方を使用する必要があったときのPythonの1つのバージョン。 Windowsエクスプローラーには、C:\ Python27とC:\ Python34の2つのPythonフォルダーがあります。 Windowsの[スタート]メニューの[すべてのプログラム]> [ArcGIS]には、IDLE(Python GUI)を含むPython 2.7フォルダーがあり、IDLEの起動によく使用するので、ここから起動しても問題ありません。テストしたところ、2.7.8が起動します。 Python 2.7の横、または[すべてのプログラム]> [ArcGIS]> [ArcGIS Pro]の下に[Python 3.4]フォルダーが表示されると思っていましたが、[すべてのプログラム]のすぐ下の独自のフォルダーにあります。期待どおりに3.4.1から始まる別のIDLE(Python GUI)が含まれています。 ただし、[スタート]メニューのプログラムのリストを見ると、2つのIDLE(Python GUI)エントリから選択できるため、状況が少し混乱します。 それぞれを右クリックし、[プロパティ]の[全般]タブを使用して、それぞれIDLE(Python GUI)2.7およびIDLE(Python GUI)3.4という名前に変更したので、混乱はありません。 私が通常IDLEを起動するもう1つの方法は、*。pyファイルを右クリックして[IDLEで編集]を選択することですが、取得するPythonバージョンのIDLEはあいまいです。テストの結果、3.4.1であることがわかりました。 IDLEで編集の1つの選択肢をこれらの2つの選択肢に変える方法はありますか? IDLE 2.7で編集。そして IDLE 3.4で編集 私はPythonWinで編集したことがないので、編集のために* .pyファイルに関連付けることができる2つのプログラムに制限されている場合、Python 3.4での編集のためにPythonWinでの編集を犠牲にして喜んでいます。

3
ArcPyを使用してテンプレートフィーチャクラスからフィッシュネットを作成しますか?
パラメーター「templateExtent」をシェープファイルで定義すると、ツール「pypy.CreateFishnet_management」を使用できません。パラメーター「originCoordinate」と「yAxisCoordinate」は自動的に入力されません。 import arcpy from arcpy import env env.overwriteOutput = True env.workspace = r"D:\Users\julia\erste_aufg" #Process: Create Fishnet outFeatureClass = r"D:\Users\julia\erste_aufg\at001l_wien\at001l_wien\wien.shp" cellSizeWidth = '200' cellSizeHeight = '200' templateExtent = r"D:\Users\julia\erste_aufg\at001l_wien\at001l_wien\at001l_wien.shp" arcpy.CreateFishnet_management(outFeatureClass, "", "", cellSizeWidth, cellSizeHeight, '0', '0', "", "NO_LABELS", templateExtent, "POLYGON") これはModelBuliderで機能しているため、ModelBuliderのバックグラウンドで何かが実行されており、「templateExtent」があるときに「originCoordinate」と「yAxisCoordinate」のパラメータを作成できます。パラメータ「templateExtent」のみを指定して、ArcPyでこのツールを実行するにはどうすればよいですか? 誰かが解決策を持っていると本当に嬉しいです。スクリプトツールでフィッシュネットが必要ですが、最終的にループがあり、範囲の値が常に異なるため、解決策がないと解決できません。 スクリプト全体の最初の部分

2
ArcPyを使用してラベルスタイル(フォント、色、サイズなど)を変更しますか?
さまざまなタイプのアパートメントに基づいて、レイヤー内のポイントにラベルを付けるプロセスを自動化するArcGIS 10.2用のPythonマクロを記述しようとしています。たとえば、1つのスタイルのアパートメントには、1つのラベルとして白い太字のテキストが付いた青い正方形があります。もう1つは、太字の黒いテキストが付いたピンク色の四角形です。もう1つは、白い太字のテキストが付いた赤い正方形などです。 これらのラベルのスタイルを変更するには、arcpyでどの式または関数を使用しますか? 現在、スクリプトはマップコードでアパートメントにラベルを付け、必要に応じてTOC内の名前をアパートメントに変更しています。 次に、ラベルのフォント、グラフィック、サイズを変更して、それぞれに固有のラベルを作成し、ボタンを作成して、これらのレイヤーのいずれかを実行する必要があるときにいつでもプロセスを自動化したいと思います。 フォント、ラベル、グラフィックをPythonスクリプト(ArcPy、IDLEなど)を使用して変更できる方法はありますか? 私はこの投稿を編集して、ここで何をしようとしているのかを最終的に説明することにしましたので、混乱はありません。基本的に、マップ上のポイントは、上の図のように見えるから、次のようになります。 lblClass.expression関数を使用してみましたが、使用しようとしているコードが機能しません。それはおそらく正しい方向への一歩だと思います。以下は、labelClass.expressionを取得してラベルのフォントを変更するためだけに使用したコードの一部です。 for lblClass in aptLayer.labelClasses: lblClass.showClassLabels = True def getLabel (Code, Type): if Type == "MRR": return "<FNT name = 'Arial' size = '12'>" & Code & "</FNT>" elif Type == "TAX": return "<FNT name = 'Arial' size = '12'>" & Code & …

1
ArcMap / ArcPyでのバッチ地理参照?
約50のpdfマップがあり、ジオリファレンスやジオコレクションをバッチ処理したいと考えています。1つをjpgとして保存し、手動で地理参照し、同じ場所にあり、同じ範囲の残りを自動化したいと思います。 密度勾配はケースごとに変わりますが、マップ(現在はjpgとして保存)は、50ケースすべてで同じ範囲になります。 誰もが、Arcmap 10.2のみでのバッチ処理を扱うステップバイステップのチュートリアルへのリンクを知っていますか?[ファイルからワープ ] コードまたはおそらく自動登録オプションを使用することを考えていますが、どこから始めればよいかわかりませんか? サンプルコードは次のとおりです。 import arcpy arcpy.WarpFromFile_management( "\\cpu\data\raster.img", "\\cpu\data\warp_out.tif", "\\cpu\data\gcpfile.txt", "POLYORDER2", "BILINEAR")

1
ArcPyを使用して履歴バージョンに変更しますか?
Pythonとarcpy.ChangeVersion_managementを使用してSDEフィーチャクラスの履歴バージョンに変更しようとすると問題が発生します。 ArcMapを使用して、手動でバージョンを特定の日時に変更できます。ModelBuilderを使用してプロセスを完全に自動化することもできます。 ModelBuilderモデルをPythonスクリプトにエクスポートすると、スクリプトはエラーなしで実行されますが、選択されたバージョンは、日付パラメーターとして選択された日付ではなく、今日の日付の履歴バージョンです。 ArcmapとPythonウィンドウを使用して(ジオプロセシング-> Python)、Pythonコードをエラーなしで実行することもでき、結果は同じです。履歴レイヤーは、日付パラメーターとして選択された日付ではなく、現在の日付で選択されます。 これが私が実行しているPython構文です: arcpy.ChangeVersion_management("Parcels", "HISTORICAL", "", "7/1/2013 4:30:00 PM") 私も同じ結果が得られます: historyDate = datetime.datetime(2011, 7, 1) arcpy.ChangeVersion_management("Parcels", "HISTORICAL", "", historyDate) 一方、以下はRuntimeErrorをスローします。 historyDate = datetime.date(2011, 7, 1) arcpy.ChangeVersion_management("Parcel", "HISTORICAL", "", historyDate) これは既知のバグですか、それとも間違った方法で進んでいますか?

1
シェイプエリアフィールド名の決定
私はさまざまな空間ポリゴンファイル(シェープファイル、ファイル/パーソナルgdbフィーチャクラス、sdeフィーチャクラス(一部は空間ビュー))を扱っており、ファイルタイプによっては、シェイプエリアフィーチャクラスフィールド名(作成されたフィールドではなく、必須フィールド) たとえば、フィールド名は「Shape_Area」、「SHAPE_Area」、「SHAPE.AREA」、「GEOMETRY_Area」、「GEOMETRY.AREA」とは異なります これらすべてのタイプのフィーチャクラスの領域を引き出すPythonスクリプトを書いていて、次のように何かを行います。 for field in arcpy.ListFields(fc): if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]: do something 名前を付けることができるすべての方法を一覧表示するだけでなく、シェイプエリアフィールドを引き出すより賢い方法があるかどうか疑問に思っていますか?Areaなどのフィールドプロパティはないようです。これを行う他の方法はありますか?

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