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

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

2
Python(ArcPy)スクリプトツール使用時の出力ワークスペースからのエラー000725メッセージ?
Arc 10.1で作成したスクリプトツールを実行できません。スクリプトはPythonWinで正常に実行されますが、それを使用してスクリプトツールを作成すると、ツールはフォルダーまたはジオデータベースを出力ワークスペースとして受け入れたくないようです。スクリプトツールで出力パラメーター(引数)を出力とワークスペースの両方として設定しましたが、それでも、 "Dataset ..... already exists"というエラーが表示され続けます 私は新しいユーザーなので、写真を投稿できませんが、エラーは000725です それが助けになるなら、これが私のスクリプトです。 import arcpy #allow for overwrites arcpy.env.overwriteOutput = True #set the workspace inWorkspace = arcpy.GetParameterAsText (0) #set the erase feature eraseFeature = arcpy.GetParameterAsText (1) #set the output workspace outWorkspace = arcpy.GetParameterAsText (2) #get a list of all the features in the workspace arcpy.env.workspace …

3
マスク出力でラスターを抽出すると、マスクが完全にオーバーラップしませんか?
流域集積グリッドと集水域を含むシェープファイルがあります。次に、それらに対していくつかの計算を行いたいので、特定の集水域に隣接するラスター内のセルからデータを抽出する必要があります。 そのプロセスでは、集水域ポリゴンの1つをマスクとして使用して、ラスターで[マスクによる抽出]を使用しようとします(後でループしますが、今は1回だけ作業する必要があります)。 問題は、元のラスターとマスキングポリゴンの両方と比較して、抽出されたラスターがセルの半分だけ左にシフトすることです。ラスターをポイントに変換し、後で他のポリゴンと交差させようとするので、これは私のプロセスの残りを台無しにしています。そして、抽出されたラスターが元のラスターと重なっていない限り、正しいポリゴンが得られません。 ポリゴンはラスターから作成されるため、元のラスターとポリゴンは完全に整列しています。どういうわけか投影図になんらかの変化があったかどうかを確認しようとしましたが、見つけることができません。また、新しいArcMapドキュメントを試し、すべてを数回再起動し(これにより、驚くほど頻繁に問題が解決します)、スクリプトを呼び出すのではなく、Pythonプロンプトからツールを実行しました。ツールボックスからマスクによる抽出ツールを実行しようとしても、同じ結果になりました。 これは、ArcMapのpythonプロンプトで使用する(非常に単純な)コードです。 inpgs = r'C:\GIS\Catchm_ex.shp' flowacc = r'C:\GIS\flowacc' arcpy.MakeFeatureLayer_management(inpgs, 'currentMask', '"HydroID" = 269634') outRaster = arcpy.sa.ExtractByMask(flowacc, 'currentMask') ここにサンプルファイルがあります Windows 7、ArcInfo 10.0、Python 2.6を使用しています。 私は今、Extract by Polygonを試しましたが、それはうまくいくようです。ExtractByMaskでマシンが誤動作しているだけですか?唯一の欠点は、マスキングポリゴンの座標を取得する方法がわからないため、スクリプトでその関数を使用するときに問題が発生することです(9つのセルのみをカバーし、中心にポイントがある場合)。 次のコードを使用して、ポリゴンによる抽出で動作するようになりました(Esriのサポートページから変更)。残念ながら、これは私の問題を解決しません。出力(このツールとマスクによる抽出)がセルの半分だけ左にシフトする場合とシフトしない場合があります。ほとんどの場合はそうですが、実際には本来あるべき場所にあることもあります。 だから今、私は本当に混乱しています。これは私のコンピューターで起こっているのですか?他の誰かが同じことを経験している場合は、コメントを書き込んでください。私だけではないことを私に知らせてください:)私にとって、この問題はバグとしては大きすぎる問題であり、これが問題となっています途中で自分自身を作成し​​たこと。 それを避ける方法に関するアイデアはありますか? def ReadPoints(infc): try: import arcpy, numpy except ImportError: sys.exit('Unable to import arcpy') # Identify the geometry field desc = …

4
半島の中心線が見つかりましたか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 南北に伸びる半島と南につながる2つの海岸線を考えると、どちらの場所、つまり半島の両方の海岸線から最も離れた場所にある線を見つけたいですか?私が探しているのは、下の画像の赤い線です。黒とピンクの線は東と西の海岸線です。 1つの方法は、ポリゴンを生成してネガティブバッファーを実行することです。もう1つは、縦方向の値を加算し、2で除算することです。後者の方が合理的であるように見えますが、それでもプログラミングと調整の処理が必要です。 しかし、おそらく3番目の方法がありますか?助言がありますか?ここでは、ArcGISとQGISの両方が関連するツールです。

1
ArcPyを使用してcon()スクリプトを使用して新しいラスターを作成しますか?
私はPythonが初めてで、ラスター計算機スタイルのスクリプトをコーディングしようとしています。基本的に、値が0〜10,000のラスターを、特定の値の間に1が設定されたラスターに変換します。 私がPythonでそれをしたい理由は、最終的にこのプロセスを自動化して、さまざまな値(つまり、0から-10、-5から-25など)を選択し、最終的にはそれぞれ1のラスターになるようにするためです。 。私の目的は、これらをポリゴンに変換して、約800のシェープファイルで多数のベクタークリップ操作を実行できるようにすることです。 最後に新しいラスターを生成するスクリプトを記述しましたが、このグリッドが1でいっぱいではなく、値が0〜256であるため、コードのどこかにバグがあります。どなたでも見つけて頂ければありがたいです!誰かがコードを高速化する方法、または私がこれをすべて行う方法についてのより良いアイデアを持っているなら、それもまた興味深いことです。 これが私のコードです: import arcpy from arcpy import env from arcpy.sa import * arcpy.env.overwriteOutput = 1 #this also doesn't work by the way, I have also tried #TRUE, no errors come up but it still doesn't let me overwrite the output file #Set environment settings env.workspace = "C:/folderlocation …


3
複数のデータセットまたはポリゴンによるラスターのクリッピング?
ポリゴンのグリッドを使用してDEMをクリップしたいと思います。おそらく1つのシェープファイルで複数のポリゴンを使用する方が簡単ですが、これを管理していないため、forループを使用してgdbの各データセットをループできるようにしています(それぞれに1つのポリゴンしか含まれていません)。 これが私のコードです(Pythonウィンドウで実行してください)。 #creating a workspace and a list of feature classes arcpy.env.workspace = "C:/data/lidar/lidar.gdb" fcs = arcpy.ListFeatureClasses() #looping through each feature class and creating a raster based on the extent of #feature class for fc in fcs: arcpy.Clip_management("perth", "#", "C:/data/lidar", fc, "", "ClippingGeometry") 私のコードは実行されませんが、そこに座って、何かを待っています...しかし、何ですか?1つのクリップで機能させることはできますが、ループでは機能しません。 新しいラスターにフィーチャクラスなどで名前を付けるには、出力に対して別のことをする必要があると思いますが、繰り返しになりますが、方法はわかりません。さらに情報を追加する必要があるかどうかをお知らせください。

1
arcpyでのin_memoryワークスペースの同時使用
フィーチャクラスから小さなポリゴンを削除するPythonスクリプトを使用しています。このスクリプトは、「in_memory」ワークスペースに固定(ハードコード)名を持つ一時的なフィーチャクラスを作成します。例: arcpy.CopyFeatures_management("in_fc","in_memory/item_a") これはかなり再利用可能なスクリプトなので、ジオプロセシングチェーンの多くのポイントで使用します。 異なるプロセスから(同時に)2回呼び出された同じスクリプトが、たとえば "in_memory / item_a"で競合することは危険ですか?または、「in_memory」ワークスペースはプロセスごとに分かれていますか? ArcInfo 10.0を使用しています。
8 python  arcpy  memory 

1
ArcPyまたはArcGIS Desktopでのラスター処理の範囲を削減しますか?
Pythonで何らかの自動手順を実行して、ラスターの処理範囲を減らす必要があります。現在、私が使用しているデータセットの境界に異常があります(ランドサット走査線の分類のため)。 上記の情報をSetNull関数で取得したときに境界線が処理されないように、ラスター処理の範囲を縮小したいと思います。何かのようなもの これは、マスク領域の手動での選択を必要としますが、マスク関数による抽出(つまり、figure2)で簡単に実行できます。エクステント領域(nodata値を無視)から各行/列のx方向とy方向の境界幅を引いたものを計算arcpy.env.extentしてPythonで利用する方法はありますか?

3
MXDの各ArcSDEレイヤーのサーバー/サービスを完全に置換/更新しますか?
mxd.findAndReplaceWorkspacePathsメソッドを使用すると、MXDが更新され、.sde接続ファイルが再び移動するパスが、すべてのデータソースが再び機能しなくなります。 MXDの目次の各SDEレイヤーを永続的に更新して、SDEサーバーとサービスを永続的に保存する方法はありますか?つまり。PyhtonでpythonまたはArcObjectsを使用して、MXDの各SDEレイヤーのサーバーとインスタンスを置き換えるだけですか?

5
ArcGIS Desktopを使用してポリゴンでポイントを分割する方法を教えてください。
郡のポリゴンフィーチャクラスによってポイントを分割する方法を探しています。添付の画像は、2つのフィーチャクラスを示しています。1つはポイントで構成され、もう1つは郡のポリゴンフィーチャクラスです。スプリットそれはポイントを許可されている場合ツールが理想的です。ポイント属性に追加フィールドを追加せずに、きれいな出力を望みます。さらに、新しいポイントフィーチャクラスを定義するポリゴンフィーチャクラス(Kiowa、Clark、Comancheなど)から郡名を取得したいと思います。解決策やアドバイスはありがたいです。 この例では、最終的な製品は、「Kiowa」、「Clark」、および「Comanche」という名前の3つのポイントフィーチャクラスであり、1つの大きなポイントフィーチャクラスから生成されます。自動化されたソリューションが理想的です。私が数十の郡にまたがって(多くの場合、KSの状態にまたがって)結合する多数のFCがあるからです。

3
arcpy.da.UpdateCursor()をソートすることは可能ですか?
ArcPy Data Accessの更新カーソルを持っていますが、更新する前に並べ替えたいと思います。 ソートしない場合、カーソルは更新を行いますが、カーソルにソートを追加すると、「反復が開始されていません」というエラーが発生します。 並べ替えは正しく機能していますが、なんらかの理由でカーソルを破壊している必要があります。 検索カーソルのように更新カーソルを並べ替えることはできませんか?タイプや何かを変えますか? idList = ['100100', '100200', '100300', '200100'] count = 0 with arcpy.da.UpdateCursor(newFC, ("SHAPE@X", "SHAPE@Y", "Label")) as addLabelCursor: for row in sorted(addLabelCursor, key=itemgetter(0), reverse = True): print idList[count] row[2] = str(idList[count]) addLabelCursor.updateRow(row) count += 1

2
モデルまたはスクリプトの投影データセットから10進度でXY座標を計算しますか?
フィーチャクラスが投影座標系にあるときに、モデルまたはスクリプトでポイントXY座標を10進度で計算することはできますか? FCが地理座標系にある場合は簡単です。 XY座標の追加ツールを使用するか、 Python式を使用します。 !shape.extent.XMax! ジオメトリフィールドの面積と長さのプロパティは、ジオメトリ単位変換キーワードで変更できることがわかりました。測定の線形単位の場合、@ DECIMALDEGREESを使用できます。XMaxが長さではないため、 残念ながら!shape.extent.XMax@decimaldegrees!機能しません。 (右クリックからアクセスできる)ジオメトリの計算機能では、投影されたフィーチャクラスに対しても、出力の10進度タイプを選択する可能性があります。 ArcPyを使用してこれを実行できますか? iRfAnのソリューションに基づくコードスニペットを次に示します。 import arcpy, os projectedFC = r"C:\tmp\test.gdb\points01_Projected" prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"], r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj") spatialRef = arcpy.SpatialReference(prjFile) updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef) for row in updCursor: pnt = row.Shape.getPart(0) row.X = pnt.X row.Y = pnt.Y updCursor.updateRow(row) del updCursor, row

2
arcpy.Delete_managementがジオデータベースフォルダーを削除しない
このスクリプトは最初は正常に実行されますが、2回目に実行すると失敗します。問題は、KMLToLayer_conversionステートメントがファイルジオデータベースを作成すること(驚きではありません)であり、フィーチャクラスがマップから削除され、レイヤーファイルが削除され、ジオデータベースのコンテンツが削除されても削除できません。MasterGDB内の新しい機能クラス以外のすべてのトレースを使用してこのスクリプトが実行されたら、自分でクリーンアップしたいと思います。問題は、ArcMapを終了し、Windowsでフォルダーを手動で削除して、ArcMapを再起動しない限り、このスクリプトは1回しか実行できないことです。Pythonウィンドウ内で個々のコマンドを実行すると、必然的に「」が表示されますが、ジオデータベースのディレクトリは残ります。では、この初心者はここで何を失っていますか?(このテスト/デバッグスクリプトでは、単一のKMLファイル "C: import arcpy, os # Name: BatchKML_to_GDB.py # Source: AS16818.ZIP from acripts.esri.com import arcpy, os # Set local variables and location for the consolidated file geodatabase KMLDir = "C:\TEMP\KML3" outLocation = "C:\\Temp\\MuleDeer" MasterGDB = 'AllKLM5.gdb' MasterGDBLocation = os.path.join(outLocation, MasterGDB) # Create the master FileGeodatabase as needed if not (arcpy.Exists(MasterGDBLocation)): …

4
サブセットフォルダーの内容ArcPy
3410001ne => 3809962swという名前のフォルダ内に約1500個の.txtファイルがあります。Pythonスクリプトで処理するには、これらのファイルの約470をサブセット化する必要があります。以下は、フォルダー内のすべてのファイルをリストする、私のforループの前のコードのセクションです。 # Get the list of the text files to process txt_list = arcpy.ListFiles("*.txt") フォルダーの内容をサブセット化して、3609902sw => 3610032swの範囲にある1500個のファイルのうち470個を含めるにはどうすればよいですか?
8 arcpy 

3
ArcPyを使用してフィーチャクラスフィーチャをより速く削除しますか?
特定のフィーチャデータセットのセットに含まれるすべてのフィーチャクラスを再帰し、それらのすべてのフィーチャを削除するこのスクリプトを作成しました。それは仕事をするように見えますが、それはかなりゆっくり実行されます。ここで私が間違っていることはありますか、それともスピードアップする明白な方法はありますか? DeleteFeatures_managementを使用して証書を作成しています。DeleteRows_managementも機能しているようです。 import sys import os import arcpy from arcpy import env import datetime import getpass try: passwd = getpass.getpass("Enter the sde user password: ") sdeConnectionFileDir = os.environ.get("TEMP") databaseName = "" fileName = "temp.sde" # Delete any pre-existing SDE connection file. fullPath = sdeConnectionFileDir + '\\' + fileName if os.path.exists(fullPath): …

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