2013-04-09 17 views
5

Şu anda HDF5 veri kümelerinin sıkıştırılmasıyla ilgili bir proje üzerinde çalışıyorum ve son zamanlarda h5py kullanmaya başladım. Temel öğreticileri takip ettim ve oluşturulduğu sırada bir dosyayı açabilmem, oluşturabildim ve sıkıştırabildim. Ancak, var olan bir dosyayı sıkıştırmak söz konusu olduğunda başarısız oldum (bu benim çalışmamın amacıdır).Varolan dosyanın h5py kullanarak sıkıştırılması

'r +' kullanarak dosyaları açmayı ve sonra da parçalanmış veri kümelerini sıkıştırmayı denedim, ancak dosya boyutları aynı kaldı.

Hangi komutları kullanacağım ile ilgili herhangi bir öneri var mı, yanlış şeyler hakkında mı gidiyorum?

cevap

3

Sıkıştırma, h5py'de kullanımı çok kolaydır. Wiki HowTo ve Compression kılavuzlarına bakın. Temelde, olurdu gibi bir şey: Ayrıca ben bağlantılı Sıkıştırma kılavuzuna bakın, öbek dosya boyutu/erişimini optimize boyutları almak nasıl bazı sorunlar vardır

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

.

Varsa hangi sıkıştırmanın varsayılan olarak açık olduğunu hatırlamıyorum.

+1

Evet, tam olarak denedim, ancak yeni bir dosya oluştururken sadece benim için çalışacak gibi görünüyor. Gzip/szip/lzf sıkıştırması etkin olan yığın boyutuyla (100,100) yeni bir dosya oluşturabilirim. Varolan bir dosyayı yüklediğimde, sıkıştırmanın gerçekte işlev görmesinin tek yolu, orijinal dosyanın içeriği üzerine yazılır ve yeni bir tane oluşturulursa (orijinalin aynı adıyla). Bir dosya yüklediğimde, parçalanmış bir veri kümesi oluşturun, sıkıştırmayı etkinleştirin ve sonra dosyayı kapatın, hiçbir etki veya değişiklik görünmez. Bir adımı kaçırdığımı hissettim, ne olduğundan emin değilim. – kromegaman

+0

Kromegaman sıkıştırma ve yığın boyutu, dosyanın diske nasıl yazıldığının yönergeleridir. Zaten yazılmış bir dosya için değiştirebileceğiniz bir şey olduğunu düşünmüyorum. Sıkıştırma/parçalarını değiştirmenin tek yolunun bu ayarlarla yeni bir dosya yazmak olduğunu düşünüyorum. – Bitwise

+0

Evet, daha çok kullanıyorum, o şekilde görünüyor. Yeni bir dosya ve veri kümesi oluşturmam gerektiğini, mevcut dosyadaki verileri yeni dosyaya kopyalayıp yeni dosyayı oluştururken sıkıştırmam gerektiğini düşünüyorum. Yine de, yardım için çok teşekkürler! – kromegaman

İlgili konular