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

パフォーマンスは、コンピューティングシステムがリソースをいかに効率的に使用するかに関係します。

3
ArcPyを使用してArcGIS DesktopでポイントごとにArcSDEポリゴンを選択しますか?
私は何かが足りないに違いないと考え続けていますが、ArcPyを介してポイント(X、Y)の位置にあるレイヤーからフィーチャ(特にポリゴン)を選択するツールはArcGIS 10にはないようです。このようなツールのパラメーターは、レイヤー名とXYロケーションのみです。 現時点では、ポイントを含むポイントフィーチャクラスを作成し、その上でSelectLayerByLocationを実行することでこれを回避します。ただし、ポリゴンフィーチャクラスがOracleにあり(ArcSDE 9.x経由でアクセス)、350万個のポリゴンが含まれている場合、選択を行うのにかかる時間は、2、3秒(より少ないコードで)より適切な。フィーチャクラスには空間インデックスがあり、arcpy.env.extent(SelectLayerByLocationが無視するように見える)を使用してアクセスする地理的領域を制限しようとしましたが、パフォーマンスは非常に低いままです。 ArcGIS Desktop 10とArcPyを使用してこれを行う簡単な方法はありますか?

4
非常に大きな画像や画像モザイクを扱う場合、大量のGPUメモリが役立ちますか?
パンやズームなどのためにできるだけ多くの画像をGPUに保存すると大いに役立つようです。 非常に大きな画像を多数取り扱っています。多くの場合、8 GBから数百GBのサイズです。自宅には、40インチの4kモニターと12 GBのビデオメモリを備えたGTX Titanがあり、投げたものすべてに対して驚くほど優れたパフォーマンスを発揮します。作業? うQGIS、ArcMapのとPCI Geomaticaは数百ギガバイトの範囲内でマルチギガバイトのイメージとイメージモザイクを扱うときに豊富なグラフィックスメモリの利点を取ることができますか? 大きな画像を処理するときに、豊富なGPUメモリから最も恩恵を受けるのはどのGISアプリケーションですか?

1
SQLサーバーの空間インデックスのパフォーマンス
約200万レコードのテーブルがあります。境界ボックス以外のデフォルトを使用して、空間インデックスを作成します。一部のクエリは非常に高速で、一部のクエリは非常に低速であることに気付きました。決定要因は、クエリで使用されるポリゴンのサイズに現れます。 より大きな検索エリアでは、を使用WITH(INDEX(SIX_FT5))するとクエリが大幅に遅くなります(0秒から15秒以上)。小さい検索エリアでは、正反対が当てはまります。 以下は、私がテストしているクエリの一部です。 高速: SELECT TOP(1000) * FROM [FT5] WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1) スロー: SELECT TOP(1000) * FROM [FT5] WITH(INDEX(SIX_FT5)) WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1) 誰がここで何が起こっているのか知っていますか?

3
ArcMapでBingのようなArcGIS Onlineベースマップの表示パフォーマンスを向上させますか?
ArcMap内のベースマップの表示パフォーマンスを向上させる方法(ArcGIS自体)があるかどうかを知りたいです。インターネット接続が最近アップグレードされたため、以前よりもはるかに高速になりました。つまり、Bing Imageryベースマップの描画に1分かかる代わりに、約30秒かかります。 私は通常、ベースマップをオフにしてパンとズームを行い、目的の場所に来たら、ベースマップをオンにしてマウスから手を離します(他のことをしようとすると、回転する円が保証されます。おそらくクラッシュ)。ArcGISフォーラムのこの投稿から、表示キャッシュの場所をMy DocumentsからCドライブに変更しました。改善が見られました。 その後、場所をサーバーに変更しました。パンとズームを行うと、描画に約5秒かかります。私はこれに非常に満足していますが、10.1を使用しているという事実は違いをもたらしますか?10.0を使用している同僚のキャッシュの場所を変更しましたが、パフォーマンスはまったく向上しませんでした。ウイルス対策/ファイアウォールの部分(ITの管理下にある)については何もできないので、他に何をすべきかわかりません。 特に、ESRI Maps For OfficeおよびArcGIS for AutoCADのベースマップがほぼ瞬時に描画される場合、少しイライラします。コンピューターが破裂することを心配せずにズームインできます。現在のArcMapオプションの設定は、ハードウェアアクセラレーションが有効になっており、キャッシュの場所が変更されています。 ローカルディスプレイキャッシュの管理に関するヘルプを見てきましたが、何かが足りない場合を除き、私の設定は既に最適化されているようです。

4
RまたはPythonを使用して大きなラスターをポリラインに変換する最も速い方法は?
グローバルな水域(1ビット値0および1)の大きなラスターファイル(129600 x 64800ピクセル)があり、海と内陸の海岸線を抽出しようとしています。 ArcGISとQGISでラスターからポリラインに変換しようとしましたが、時間がかかります。 誰かがこのタスクのためのより良い/より速い方法(PythonまたはR)またはより良いツールを知っていますか? 更新 R:rasterToContourは高速で正確かもしれませんが、私のような非常に大きなデータセット(8,398,080,000ピクセル)がある場合、非常に大きなRAM(16GB以上)が必要か、Rにハードドライブとそれ以上の処理を強制します年齢もかかります。 Python / GDAL:gdal_poligonizeはポリラインの代わりにポリゴンを作成します 更新2 R rasterToContour:rasterToContourは、必要な結果を提供しません。下の例に示すように、ArcGIS(ラスターからポリゴン、フィーチャからライン)と比較すると、正確なピクセルアウトラインは抽出されません。 rasterToContourの結果 ArcGISの結果 更新3 Python / GDAL:テストデータセットでコマンドラインからgdal_polygonizeをArcGISに対して実行しましたが、結果は非常に明確でした。 gdal:49秒 ArcGIS:1.84秒
14 python  r  performance 

5
ArcPyを使用して1600万件のレコードをループしますか?
8つの列と1670万件のレコードを持つテーブルがあります。列に対してif-else方程式のセットを実行する必要があります。UpdateCursorモジュールを使用してスクリプトを記述しましたが、数百万件のレコードを記録した後、メモリが不足します。これらの1670万レコードを処理するより良い方法があるかどうか疑問に思っていました。 import arcpy arcpy.TableToTable_conversion("combine_2013", "D:/mosaic.gdb", "combo_table") c_table = "D:/mosaic.gdb/combo_table" fields = ['dev_agg', 'herb_agg','forest_agg','wat_agg', 'cate_2'] start_time = time.time() print "Script Started" with arcpy.da.UpdateCursor(c_table, fields) as cursor: for row in cursor: # row's 0,1,2,3,4 = dev, herb, forest, water, category #classficiation water = 1; herb = 2; dev = 3; forest = …

2
1つまたは複数のサービスに多数のレイヤーがありますか?(なぜ)
どうすればいいか迷っている。したがって、idは、正当な回答を得るためにGIS-SEに配置するのが好きです。 シナリオ: クライアントにはWebマッピングアプリケーションがあります。複数の小さなアプリケーションに分割する必要はありません。 これは、現代のアプローチがWeb上のマップ(つまり、1つのメインWebマップ上に焦点を絞った多くのWebマップアプリ)に反するものの、一部のユーザーにとって、GISアプリケーションをWeb上で複製しようとすることは、わかりました(時々)。 クライアントは、ベースマップレイヤーの多くを個別のサービスにキャッシュしました。 クライアントは、ダイナミックマップサービスにさらに600〜700のレイヤーを追加する必要があります... サービスは、これらのすべてのレイヤーをオフにして公開されます。 ユーザーが一度に10〜40を超えるレイヤーをオンにすることは想定されていません。 これに対するあなたの最初の反応は私のものと似ていると思います(600+ ?! WTF ?!) ただし、要件は明確に設定されていますが、それはなぜですか?以前のArcIMSアプリケーションには同様の機能がありましたが、この新しいArcGIS Server製品で同じことができないのはなぜですか?ユーザーは、レイヤーが他の部門に属している場合でも、レイヤーの範囲全体で相互比較および分析を実行できる必要があります。 結論に進む前に、クライアントはArcGIS Serverの管理者です。 彼らは、すべてのベストプラクティスルールによって600層を管理しています。たとえば、定義クエリと組み合わせた縮尺範囲; ラベル上の注釈。小規模で複雑なレイヤーを一般化する。MSDとして公開します。等 問題点: ここでより良いアプローチは何ですか? 600のレイヤーすべてを1つのダイナミックマップサービスに公開します レイヤーを論理グループ(水文学、計画、生態学、ユーティリティなど)に分割します。 #1を使用し、いくつかの複雑なレイヤーがオンになっている場合。単純なポイントレイヤーをオンにしたい場合、ArcGIS Serverは表示されているレイヤー全体を再度レンダリングする必要があります。 #2を使用する場合、リクエストを行うたびに、Webアプリケーションは個々のマップサービスからExportMapsに対して複数のGETリクエストを行う必要がある可能性があります(これは悪いか、#1経由でArcGIS Serverに追加の負荷を作成します) ?) そして、これにより、すべてが可能な限り高速になるように構成とチューニングが行われます。ArcGIS Serverのバックエンドを複数のホストに拡張し、適切なハードウェアを配置できます。 #1を使用すると、AGSが処理できるインスタンスの最大数をスローできます。 #2に進むと、マップサービスのパフォーマンスを評価し(負荷テストと待機時間を確認)、それに応じてmin / maxインスタンスに対処し、「弱いリンク」であるサービスが1つもないことを確認します。 私は現在、#2のアプローチに傾いています。私のサービスでは、1つのサービスに600のレイヤーがあることは狂気だとまだ言っていますが、デフォルトですべてオフにされている場合、問題はありません。 あなたの考えを聞いてみたいです。コメントを使用して詳細情報が必要な場合はお知らせください。ただし、「デスクトップアプリケーションを使用する」や「別の方法でそれらを教育する」などの回答は求めません。 コメントでの議論から、私は別の考慮事項について言及しなかった。サービスが使用されるアプリケーションには、レイヤーレベルのセキュリティ(アプリケーションレベル)の機能があります。したがって、ユーザーのグループ(かなり大きい)は特定のロールに割り当てられ、そのロールは600のレイヤー全体にアクセスできます。他の役割は制限されます。

3
MySQLで空間インデックスを使用するとパフォーマンスが低下する
これがより良いフォーラムであると示唆されたとき、Stack Overflowで尋ねられた質問の再投稿。 私は、地理空間ではないが非常によく適合するデータセットをプッシュするために少し実験を試みていますが、結果はやや不安定です。データセットはゲノムデータです。たとえば、遺伝子などの要素が特定の開始座標と停止座標(X軸)を占めるDNA領域があるHuman Genomeです。Y軸を占めるDNAの複数の領域(染色体)があります。目標は、単一のY座標に沿って2つのX座標と交差するすべてのアイテム、たとえばLineString(START 1、END 2)を戻すことです。 理論は健全に思えたので、既存のMySQLベースのゲノムプロジェクトにそれをプッシュし、次のようなテーブル構造を思い付きました。 CREATE TABLE `spatial_feature` ( `spatial_feature_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `external_id` int(10) unsigned NOT NULL, `external_type` int(3) unsigned NOT NULL, `location` geometry NOT NULL, PRIMARY KEY (`spatial_feature_id`), SPATIAL KEY `sf_location_idx` (`location`) ) ENGINE=MyISAM; external_idこのテーブルにエンコードしたエンティティの識別子を表し、このexternal_typeソースをエンコードします。すべてが順調に見えたので、いくつかの予備データ(30,000行)を入力しましたが、これはうまくいくようです。これが300万行のマークを超えて増加すると、MySQLは空間インデックスの使用を拒否し、使用を強制されたときに遅くなりました(40秒対全テーブルスキャンを使用した5秒)。さらにデータが追加されると、インデックスの使用が開始されましたが、パフォーマンスの低下が続きました。インデックスを強制的にオフにすると、クエリは8秒になりました。私が使用しているクエリは次のようになります。 select count(*) from spatial_feature where MBRIntersects(GeomFromText('LineString(7420023 1, 7420023 1)'), …

1
小さなデータセットで単純な結合を行うと、ArcMapの速度が大幅に低下するのはなぜですか?
ArcGIS 9.3.1、ArcInfo。属性結合を実行しているいくつかの小さなファイルジオデータベースとSDEフィーチャクラス(それぞれ数千のレコード、50列)があります。結合後、マップの描画は毎秒1秒未満から数秒に、場合によってはさらに遅くなります。結合からフィールドを参照する定義クエリを追加し、再描画中にコーヒーを飲みましょう。これが起こる理由についてのアイデアはありますか?これを経験した人はいますか?

4
ArcMapのレイヤーは何層ですか?
私は職場でCitrix仮想ソフトウェア接続を使用してArcGISで作業しています。時々非常に遅く、作業中のMXDに変更を加えることなく、ArcMapが1分で妥当な速度で動作し、次の1分でクロールが遅くなる場合があります。IT部門は、問題の原因がマップ内のレイヤーが多すぎると考えています。問題は、ハードウェアまたはソフトウェアの構成、または最初にCitrixを使用しているという事実だけかもしれません。 とにかく、編集に使用する標準MXDには、57個のSDEレイヤーと2個のファイルジオデータベースレイヤーがあります。大部分は、編集のためにチェックする必要があるレイヤーです。パイプライン建設プロジェクトごとにデータを編集およびQCする必要があるため、各レイヤーにデータが存在するかどうかを確認する必要があります。いくつかのレイヤーだけがベースマップレイヤーであり、定期的に参照する必要があります。 IT部門は、使用しているレイヤーの数を10に減らすことを望んでいます。理想的な世界では、これで問題ありません。しかし、現実の世界では、実際的ではありません。このような提案では、特定のプロジェクトの編集タスクを実行するために、5つの異なるMXDを使用する必要があります。私は10層のみを使用して実験しましたが、それは厳しく制限されています。他のデータとの関係でデータのコンテキストが不足しており、すべてのデータが更新されたことを確認するために、同じ領域を何度も再確認する必要があります。これはすべて、パフォーマンスのわずかな向上と、編集中のクラッシュの数のわずかな減少にすぎません。 だから私は尋ねなければなりません、理想的な数の層がありますか?多すぎますか?

3
ArcGIS DesktopでMergeとAppendのパフォーマンスの違いを測定しますか?
多くの場合、自分のツールが新しいフィーチャクラスを生成するかどうかは気にしませんが、大規模なデータセットをすべて結合するのにかかる時間は気にします。Appendツールの代わりにMergeツールを使用して新しいフィーチャクラスを作成するのに時間がかかりますか、それともMergeとAppendはパフォーマンスの面で本質的に同じですか?

5
ArcGIS Geoprocessing Toolsを使用するPythonスクリプトを(.exeに)コンパイルしますか?
私は数か月間Pythonでコーディングしており、主にジオプロセシングタスク用のかなり複雑なスクリプトを開発しました。そうは言っても、SQL / VBA / VBScriptのバックグラウンドから来ているので、私はまだ多くを学んでいます。 コンパイルされたコードは通常、言語インタープリターで処理する必要があるコードよりも高速で実行されることを知っているため、ビッグデータを操作するためにジオプロセシングPythonスクリプトを.EXEファイルにコンパイルする可能性に興味があります。 これも可能ですか?もしそうなら、arcgisscriptingまたはarcpyモジュールをインポートするPython(.py)スクリプトをコンパイルする最良の方法は何ですか? やりたいことを見つけるために数分を費やし、検索の結果、とりわけこの記事が返されました:http : //www.ehow.com/how_2091641_compile-python-code.html コンパイラは動作しているように見えましたが、結果の.EXEファイルを実行すると、一部のファイルが利用できないという不可解なエラーが発生しました。 Pythonスクリプトは、コマンドラインからはかなり適切と思われるものを実行しますが、.pyファイルをコンパイルできた場合、若干の改善が見られるかどうか疑問に思っています。繰り返しますが、処理に+20時間かかる大きなデータセットを使用しています(入力水質サンプルサイトからの分水界の輪郭を描く)。改善のために手に入れることができるものは何でも取ります。 このスクリプトは、サイトのテストセットを使用してコマンドラインから迅速外のArcGISの10%を走っ対 ArcCatalogで新しいツールボックスのスクリプトツールとしてスクリプトを設定します。専用のコンピューターでArcGISのインスタンスを開かずに、コマンドラインからスクリプトを実行しました。 では、arcgisscriptingモジュールをインポートし、ArcToolBoxツールを呼び出すPythonスクリプトをコンパイルできますか? 編集 入力をありがとう、これは私にとって有用です。このスクリプトは、主に多くのArcGISツールを調整し、適切な属性で目的の形式/場所で出力する方法です。一部の暫定ラスターファイルのスクラッチパーソナルジオデータベースではなくスクラッチフォルダーに書き込むことで、ESRI GRID形式とIMG形式の両方で保存できるように、すでにいくつかの脂肪を削除しました。ただし、プロファイラーの提案を確認します。 私のオフィスには、主にコンパイルされたVisual BasicプログラムやVB.NETプログラムと比較して、「コンパイルされたコードはインタープリターを介して実行されるコードよりもはるかに速い」と Pythonに質問する人がいますが、それは良い点ですツールはどちらの方法でも時間がかかります。そして、現代のコンピューティングマシンでは、コードの解釈はコンパイルされたコードよりもそれほど遅くないので、その余分な距離を進むことが保証されているようです。 編集 -ラスター形式でのプログラムの最適化に関する更新。 このPythonプログラムの「最適化」をフォローアップしたかったため、パーソナルジオデータベースではなくGRID形式で中間ラスターを書き込むことで、2時間の処理時間を節約できました。それだけでなく、データサイズのディスクスペース消費量が大幅に削減されました。私がすべてのラスターを書き込んだ元の実行(およびそれらはラスターに変換されたポイントフィーチャであり、その後、流域ラスターであった)は、これらのファイルだけで37.1 GBのデータになりました。後者の2つのデータ出力をGRID形式のフォルダーに書き込むことは、667 MBのデータに削減されました。 主にデータのサイズの方法で、ファイルGDBがこれらのデータをどのように処理するかを知りたいと思います。ただし、処理時間を9.5時間から7.5時間に短縮することで、GRID形式のジオデータベース外のラスターを処理することを支持できます。

6
RAMディスクを使用すると、ArcGIS Desktopのパフォーマンスが大幅に向上しますか?
ArcGIS Desktop 10を実行しているVirtual PCでRAMディスクを構成し、HKCU \ Software \ ESRI \ Output \ TempPathをRAMディスク上のディレクトリに設定しました。この種の構成で何らかの改善が見られるのは難しいため、他の誰かが非仮想コンピューターでこれを行ったかどうか、そして結果はどうだったか知りたいです。 逸話的な答えは結構です。 また、キャッシュパスをRAMディスクに配置することはおそらく良い考えではありませんが、とにかくこれを行う人はいますか?(HKCU \ Software \ ESRI \ Desktop10.0 \ Settings \ Cache Path)

2
ArcPyスクリプトが遅いのはなぜですか?
ポイントシェープファイル内のフィールドを、その中にあるポリゴンフィーチャからの情報で更新する簡単なarcpyスクリプトがあります。arcpyで100ポイントを実行するには9分かかりますが、arcmapでの空間結合は瞬時に行われます。この問題を解決するための迅速に確立された方法があると確信しています。誰かが私を正しい方向に向けることができますか? import took 0:00:07.085000 extent took 0:00:05.991000 one pt loop took 0:00:03.780000 one pt loop took 0:00:03.850000 one pt loop took 0:00:03.791000 import datetime t1 = datetime.datetime.now() import arcpy t2 = datetime.datetime.now() print "import took %s" % ( t2-t1) #set up environment arcpy.env.workspace = "data\\" arcpy.env.overwriteOutput = True desc = …

3
ラベルクラスと定義クエリの使用-どれが最も効果的ですか?
ArcSDEジオデータベースに格納された非常に大きなデータセットを使用して、ArcMap内で作業する場合に最高のパフォーマンスを提供するのはどれですか?特定のフィーチャにラベルを付けるために複雑なSQLクエリを使用する複数のラベルクラス、または各レイヤーの定義クエリとして設定される同じ複雑なSQLクエリを使用する同じレイヤーの複数のコピー?

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