2013-04-09 5 views
5

現在、HDF5データセットの圧縮に関するプロジェクトを進めており、最近h5pyを使用し始めました。私は基本的なチュートリアルに従い、作成中のファイルを開いて作成し、圧縮することができました。しかし、私はそれが私の仕事の目的である既存のファイルを圧縮することになると失敗しました。h5pyを使用した既存ファイルの圧縮

私は 'r +'を使用してファイルを開こうとした後、チャンクされたデータセットを圧縮しようとしましたが、ファイルサイズは同じままです。

どのコマンドを使用するべきか、私は物事について間違った方法をとっていますか?

答えて

3

圧縮はh5pyで非常に使いやすいです。 Wiki HowToCompressionガイドをご覧ください。 基本的に、それはようなものになるだろう:あなたはチャンクを選ぶ方法をいくつかの問題もあり

ds = myfile.create_dataset('ds', shape, dtype, compression='lzf') 

ファイルサイズ/アクセスを最適化するために、サイズ、私がリンクされ圧縮ガイドを参照してください。

どの圧縮がデフォルトでオンになっているかはわかりません。

+1

はい私はそれを試しましたが、新しいファイルを作成している間は私にとってはうまくいくようです。 gzip/szip/lzf圧縮を有効にしたチャンクサイズ(100,100)の新しいファイルを作成できます。既存のファイルを読み込むと、元のファイルの内容が上書きされ、新しいファイルが作成された場合(元のファイル名と同じ)、圧縮が実際に機能するように見える唯一の方法があります。 ファイルを読み込んだり、チャンクデータセットを作成したり、圧縮を有効にしてからファイルを閉じると、効果や変更が全くないようです。私は一歩も欠いている気がしますが、それが何であるかはわかりません。 – kromegaman

+0

@kromegaman圧縮とチャンクサイズは、ファイルがディスクに書き込まれる方法のガイドラインです。私はそれがすでに書かれているので、あなたが既存のファイルに対して変更できるものだとは思わない。私は、圧縮/チャンクを変更する唯一の方法は、これらの設定で新しいファイルを書き込むことだと思います。 – Bitwise

+0

はい、私はそれをもっと使うほど、それはそのように思われます。私は新しいファイルとデータセットを作成し、既存のファイルから新しいファイルにデータをコピーしてから、新しいファイルを作成するときに圧縮する必要があると思います。それでも、助けてくれてありがとう! – kromegaman

関連する問題