ファイルジオデータベース間で大きなラスターデータセットをすばやくコピーする方法はありますか?


8

大きなラスターデータセットを1つのファイルジオデータベースから別のジオデータベースにコピーするのに、なぜそれほど時間がかかるのですか?Windowsエクスプローラーでデータベース全体を数分でコピーできますが、ArcCatalogで単一のラスターをコピーすると時間がかかります。Windowsエクスプローラーを使用してファイルジオデータベース間でデータをコピーすることはお勧めできないと常に思っていましたが、これを行う安全な方法はありますか?もしそうなら、どうですか?

ここに画像の説明を入力してください


データベース内の単一のラスター(または少数)ですか?FGDBにラスターをコピーまたは書き込む時間は、DB内の他のフィーチャ/ラスターの数とともに増加することがわかりました。私は自分が75-100のカットオフを持っていると思いますが、遅くなりすぎているように感じます(ただし、プログラミングの観点からもそうです。走行距離は異なる場合があります)。
nicksan

通常、1つまたは2つのデータセットをコピーします(サイズは1GB〜20GBです)。このFGDBには他に約50のラスタがあります。
Jakub Sisak GeoGraphics 2012年

回答:


9

重要なのは、Windowsエクスプローラーが単一のファイルを処理する方法と、ArcCatalog / ArcGISがラスターを処理する方法の違いだと思います。ここにはいくつかの要因があります。

  1. ファイルGDB形式では、ラスターは単一のファイルで表されません。データテーブルと、おそらくピラミッドとインデックスで構成されています。これが重要なのは、ArcCatalogがラスターをコピーするときに、最初にこれらの個別のファイルをすべてラスターとして表示されるものに結合するためです。次に、ArcGISプログラミングレイヤーを介して実行し、新しいファイルGDBにコピーします。これは、プログラミングの追加レイヤーであるため、Windowsシステムリソースを使用してファイルをコピーするよりも、表面上ははるかに複雑です。

  2. 次の部分は、ArcCatalogで別のフィーチャクラスをコピーしたときに表示されるものに関連しています。ArcCatalogにコピーして貼り付けると、元のフィーチャクラスとターゲットフィーチャクラスを示す進行状況ウィンドウが表示され、転送されたフィーチャの数をカウントするイテレータが表示されます。これは、フィーチャクラスを通じて行ごとに反復していることを示しています。これは、データの整合性の観点からは、各機能がコピーされ、次の機能に進む前に検証されるため、理にかなっています。これがラスターに関連するのは、ラスターが数千ではないにしても数百のポイントで構成されるということです。ラスターデータセットがベクターフィーチャクラスと同じ方法でコピーされる場合、ArcCatalogは基本的にラスター内の各座標ペアを反復処理して、ある座標ペアから別の座標ペアにコピーします。 ArcCatalogにコピーされたフィーチャの数を示す進行状況バー

  3. 最後の要素はデータセットのサイズです。あなたの場合、表示しているファイルGDBには20,671,104 KBのテーブルがあり、これは最大20GBです。これは大きなRasterで、間違いなく何百万ものポイントが含まれています。これは、繰り返し処理する多くの座標ペアです。

ラスターデータセットのサイズを組み合わせて、各行(座標ペア)を反復処理する必要があり、それをすべてArcGISプログラミングレイヤーで実行すると、単一のコピーよりもはるかに複雑で時間がかかる操作になりますWindowsシステム関数を使用してファイル。

-------編集

ファイルジオデータベース間でラスターをコピーするためのより高速な方法に関する元の質問に答えるために、私が試す1つのことは、arcpyを呼び出すpythonスクリプトを記述することです。その後、追加のArcCatalog / ArcMapコードを実行せずにAPIを直接操作するため、わずかに高速になる場合があります。コードサンプルは次のとおりです。

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.Copy_management("olddata.gdb/raster1", "newdata.gdb/raster1")

速度の違いが顕著かどうかはわかりませんが、それはオプションです。
@ blah238が参照するもう1つのオプションは、ラスタをファイルジオデータベースに格納するのではなく、「geotiff」やArcINFOグリッドなどのファイルベースの形式で格納することです。これにより、ファイルをWindowsのインターフェイスから完全に操作できます。 。

残念ながら、これ以外に、ArcGISインターフェイスの外部でファイルジオデータベースを操作するためのオプションは限られています。プログラマーがさまざまなソフトウェアでそれとやり取りできるようにするFile GDBのAPIがあります。現在の1つの例は、GDAL / OGRライブラリ、および間もなく、Quantum GISです。APIの問題は、現時点ではラスターデータセットサポートしていないことです。これがあなたが主張したいものである場合は、ArcGIS Ideasサイトのこのエントリにサポートを追加します。


3
つまり、可能な場合は、ファイルベースまたはDBMS固有のラスター(Oracle Spatial GeoRasterなど)のデータタイプを使用します。
blah238

ありがとう。はい、私のラスターのいくつかは大きいです。では、エクスプローラやその他のサードパーティのユーティリティを使用する方法はありませんか?
Jakub Sisak GeoGraphics 2012年

2
エクスプローラーでラスターを含むFGDBを複製することにより、エクスプローラーを使用してそれを行うことができます。次に、カタログを使用して不要なものをすべて削除し、最後にカタログを使用して必要なものをすべて追加します(つまり、エクスプローラーは重い作業を行い、カタログを整理します)その後)。これは厄介なハックであり、FGDBの他のコンテンツは小さく、ラスターよりも削除/コピーにかかる時間が短いと想定しています。
MappaGnosis、2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.