PythonまたはArcObjectsを介して破損したシェープファイルまたはラスターを特定する


9

分析ツールで使用できないように破損しているラスター(ESRI GRID形式など)またはシェープファイルを特定する方法に興味があります。構造化されたフォルダーツリーに多数のファイルがあり、ファイルツリーをたどるスクリプトを作成したり、ラスターにIDを付けたりしたい。たとえば、ArcCatalogで表示しようとすると、表示できないしたがって、ジオプロセシングツールは失敗します。シェープファイルまたはフィーチャクラスについても同様です。

私の好みはどういうわけかPythonでこれを行うことです(そして、ESRI以外のpythonモジュールなどに反対することはありません)が、私は何でも開いています。ジオメトリを検証したり、ファイルデザインの一部の側面を利用したりして、何かを一緒にハックできると思いますが、何が最も理にかなっていますか?それとも、そのような目的のために特別に設計された別の方法がありますか?

私の目標は、実際のバッチ処理を開始する前に、1週間に及ぶ大規模な前処理ファイルに対して単純な品質管理メカニズムを実行して、すべてが正常であることを確認できるようにすることです。

ありがとう、トム

回答:


1

ラスタの場合は、単純なスクリプトを使用して、使用するすべてのラスタのプロパティ(セルサイズ、範囲など)を出力しないのはなぜですか。プロパティの取得に失敗すると、それ以上の高度な処理も失敗します。

さらに、ラスタープロパティをログファイルに書き込み、範囲、セルサイズ、値のタイプなどがすべて期待どおりであることを確認できます。

import arcgisscripting, sys, string, os
gp = arcgisscripting.create()

try:
    # Set local variables
    InRaster = "D:/Data/elevation"
    InPropertyType = "MAXIMUM"

    # Process: GetRasterProperties
    zmax = gp.GetRasterProperties (InRaster, InPropertyType)
    # log these to a file or apply logic here to 
    # make sure values are in the expected ranges


except:
    # Print error message if an error occurs
    # likely to be an invalid raster
    print gp.GetMessages()

また、1週間に及ぶ処理についての言及はやや心配です。プロセスを再実行する必要がある可能性が非常に高いため、プロセスをいくつかの小さな中間ステップに分割する方法はありますか。このようにして、各ステージで結果を確認できます。何かが正しくない場合は、最初からではなく、前のステップから再開するだけで済みます。


ラスタープロパティの取得に関する提案に感謝します。データタイプのいくつかの特性を利用することは、私が認識している検証ツールがないことを考えると、おそらく私の最善の策になると考えました。1週間の処理に関しては、問題はありません。時間の長さは、単にラスターの数とそのサイズによるものです。私はそれを処理する堅牢なpythonプログラムを持っていますが、問題の一部はデータがネットワーク上にあるため、ローカルではないために速度が低下します。実際に、既に持っているものを処理リストから削除する機能を組み込みました自動実行
turkishgold

さらに、形状をチェックするだけで、シェープファイルに対しても同様のことを行うでしょう(@Craig Williams)。私の投稿の目的は、ESRI以外のPythonモジュールなどのようなものがあるかどうかを調査することでしたが、これらの応答に基づいてOutlookはあまり良くありません。
turkishgold

@turkishgold-GDALとPythonバインディングgdal.org/gdal_tutorial.html
geographika


1

ベクトルのshpファイルに関しては、arcscriptsでシェイプファイルチェッカーのようなものを使用します。
シェイプファイルチェッカー

ラスターの場合ジオプロセシング時の最も一般的なエラーは、無効なフィールドタイプです。
ジオプロセシングモジュールでフィールドタイプを検出し、ラスターでフィールドタイプのチェックを実行することを検討してください。
他のタイプのエラーまたは他に考慮すべきいくつかのことは、インデックスが付けられているパレット、または特定の処理でサポートされていない色深度である可能性があります。

実際に汚職されていることはもう少し珍しいようです。しかし、それが起こる可能性があることを確認してください。ここで探す必要があるかもしれません。
esriフォーラムの
破損dted
ほとんどの場合、これらのケースでは、別のソフトウェアを使用してファイルを開き、それを保存して正しい形式/パラメーターに保存することで、これらの問題の多くが修正されると考えられます。

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