以下では、破損したシェープファイルの復旧方法の推奨事項について説明します。 これらの推奨事項は、実行される必要がある順序でリストされています。 破損の一般的な原因としては、編集内容を保存しているときのコンピューターのクラッシュ、無効なジオメトリ (たとえば、ちょうネクタイ) の追加、他のソフトウェア (Microsoft Excel など) による属性テーブルの変更が挙げられます。 以下にリストされた推奨事項によってシェープファイルが復旧されない場合は、バックアップに戻します。
- [ジオメトリのチェック (Check Geometry)] ジオプロセシング ツールを使用します。 データに伴う問題が、このツールが実行されている間に、または出力テーブルに表示されます。 実行後に、出力テーブルを確認します。 空のテーブルは、不正なジオメトリが検出されなかったことを示します。 不正なジオメトリが表示された場合、[ジオメトリの修正 (Repair Geometry)] ジオプロセシング ツールを使用します。
- [ジオメトリの修正 (Repair Geometry)] ツールを実行します。 [ジオメトリの修正 (Repair Geometry)] ツールを実行した後に、[ジオメトリのチェック (Check Geometry)] ツールを実行し、破損したフィーチャがすべて削除されていることを確認します。 このプロセスを必要に応じて繰り返します。
- データをジオデータベースにエクスポートしてから、新しいシェープファイルにコピーします。
- フィーチャのすべてまたはサブセットを選択し、選択したフィーチャを新しいシェープファイルまたはフィーチャクラスにエクスポートします。
- データがネットワーク ドライブ上にある場合、そのデータをローカル ドライブにコピーします。 データがローカル ドライブ上にある場合、そのデータを一次ドライブのルート (たとえば、C:\) にコピーしてみます。
- 属性テーブル内に無効なフィールド名があるかチェックします。 有効なフィールド名の長さは 10 文字までです。 フィールド名は数字で始まってはなりません。 フィールド名は、アンダースコアを除き、どのスペース、特殊文字も含むことができません。
- ファイル名は、アンダースコアを除き、どの特殊文字も含むことができません。 一般的に言えば、ArcGIS Desktop では、シェープファイル名のスペースは有効ですが、テストの目的で、スペースを含まないようにシェープファイル名を変更します。
- すべてのインデックス (空間、属性、およびジオコーディング) ファイル、投影法ファイル、およびメタデータ ファイルを Windows エクスプローラーで削除します。 つまり、*.shp、*.dbf、および *.shx を除くすべてのファイルを削除します。 これらのファイルを削除する前に、各ファイルのコピーを作成します。
- 別のコンピューターでシェープファイルを開きます。
- 別のバージョンのソフトウェア アプリケーションを使用してシェープファイルを開きます。 シェープファイルを開くことができる場合、選択したフィーチャを新しいシェープファイルまたはフィーチャクラスにエクスポートすることによって、シェープファイルを新しいシェープファイルとして保存します。
- シンプル データ ローダーを使用するか、フィーチャを ArcMap の編集セッションにコピーすることによって、データを新しいフィーチャクラスにコピーします。 シェープファイルが多くのフィーチャを含んでいない場合は、フィーチャを 1 つずつ、またはグループでコピーし、特定のフィーチャが破損しているかどうか確認します。 フィーチャをコピーした後に、編集内容を保存します。 問題が解決したかどうか確認します。
- データがまだ修復されず、上記の最初の 2 つの推奨事項によって不正なレコードのフィーチャ ID が表示された場合、それらのレコードを編集セッションで手動で削除してみます。
- シェープファイルの *.dbf の部分を Microsoft Excel にインポートし、dBASE 4 ファイルとして保存します。 ファイルに対して、他のどのような変更も行わないでください。
- ArcGIS Desktop でフィールド演算を使用してフィールドの計算を実行してみます。 フィールド演算は、破損したレコードで停止することがあります。
- FID、Shape、および 1 つの属性フィールドを除き、シェープファイル内のすべてのフィールドを削除します (シェープファイルは、1 つ以上の属性フィールドを含む必要があります)。 問題が解決しない場合、新しい文字列フィールドを追加し、残っている最後の属性フィールドを削除します。 問題が解決した場合、これは、いずれかのフィールドに問題があることを示しています。 バックアップのシェープファイルに戻し、除去のプロセスを使用して破損したフィールドを決定します。