0

GeoTIFF (geo-referenced TIFF image) にファイルがあり、GDAL を使用して Python にロードし、Numpy 配列に変換できます。この配列は、GDAL によってファイルから取得された地理参照情報を使用してプログラムで処理されます。

GDAL の依存関係を取り除きたいので、GeoTIFF 情報を別のファイル形式 (JSON が思い浮かびます) にシリアル化する予定です。次の望ましい要件があります。

  • ファイルサイズが小さい。
  • 高速アクセス;
  • 可能であればランダム アクセス (スライス)。
  • Numpy に適しています (デコードするために凝ったクラスや別のモジュールの依存関係は必要ありません)。
  • シンプル/率直/「人間が読める」;
  • 難解ではなく、他の言語の他のスクリプトで簡単に使用できます。

JSON は問題なく機能しますが、最小でも最速のアクセス形式でもないことが懸念されます。配列タイプはであるためuint16、バイナリはオプションである可能性があります。ピクルスは難解すぎるかもしれません。CSV では、地理参照情報 (角の座標と解像度) をグリッド値から分離することが難しくなります。

読んでくれてありがとう!

4

1 に答える 1

0

私は GeoTIFF 情報に精通していませんが、フラット データを保存するには、 h5py と呼ばれる Python バインディングの優れたセットを持つ hdf5 形式を強くお勧めます。簡単な例を次に示します。これは、操作がいかに簡単かを示しています。

>>> import h5py
>>> f = h5py.File('data.hdf5')
>>> a = np.arange(12.0).reshape((4,3))
>>> a
array([[  0.,   1.,   2.],
       [  3.,   4.,   5.],
       [  6.,   7.,   8.],
       [  9.,  10.,  11.]])
>>> f.create_dataset('array', data=a)
<HDF5 dataset "array": shape (4, 3), type "<f8">
>>> f['array'].attrs['info'] = 'some data I want to store'
>>> f['array'].attrs['date'] = (6, 21, 2012)
>>> f.close()
>>> f = h5py.File('data.hdf5')
>>> f['array']
<HDF5 dataset "array": shape (4, 3), type "<f8">
>>> f['array'].value
array([[  0.,   1.,   2.],
       [  3.,   4.,   5.],
       [  6.,   7.,   8.],
       [  9.,  10.,  11.]])
>>> f['array'].attrs['info']
'some data I want to store'
>>> f['array'].attrs['date']
array([   6,   21, 2012])
于 2012-06-22T00:51:59.870 に答える