問題タブ [hdf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6581 参照

r - Rで.hdfファイルを読み取るには?

.hdf 形式のファイルが多数あります。これらは残念ながら R で読み取り可能な hdf5 ファイルではありません。R で hdf ファイルを読み込んで読み込む方法はありますか? または、.hdf を hdf5 に変換する方法はありますか? C ベースの h4toh5 ツールをダウンロードしましたが、役に立ちません。他に変換する方法はありますか?どうもありがとう。

0 投票する
1 に答える
800 参照

python - Pandas - read_hdf または store.select がクエリに対して誤った結果を返す

pandas store.append を介して保存された大規模なデータセット (400 万行、50 列) があります。store.select または read_hdf のいずれかを、特定の値よりも大きい 2 列のクエリ (つまり、"(a > 10) & (b > 1)") で使用すると、15,000 ほどの行が返されます。

df のようにテーブル全体を読み込んで df[(df.a > 10) & (df.b > 1)] を実行すると、30,000 行が得られます。問題を絞り込みました-テーブル全体を読み込んで df.query("(a > 10) & (b > 1)") を実行すると、同じ15,000行ですが、エンジンをpythonに設定すると--- > df.query("(a > 10) & (b > 1)", engine = 'python') 30,000 行を取得します。

HDF および Query メソッドでクエリを実行する eval/numexpr メソッドと関係があると思われます。

タイプは列aとbのfloat64であり、float(つまり、1ではなく1.)でクエリを実行しても、問題は解決しません。

フィードバックをいただければ幸いです。または、他のユーザーが同じ問題を抱えている場合は、これを修正する必要があります。

よろしく、 ニール

========================

情報は次のとおりです。

pd.show_versions()

df.info() ---> 選択した 15,000 行ほどで

ptdump -av ファイル

これが私が表で読む方法です:

これが私がテーブルを書く/埋める方法です:

編集: いくつかのサンプル データを提供する要求への応答....

データ

分かりやすくするために、15,000 の結果を「INCORRECT」と呼びましょう。30,000 の結果を「CORRECT」と呼びましょう。INCORRECT ではなく、CORRECT のアイテムと呼びましょう:「Only in CORRECT」です。

INCORRECT のすべての行/項目が CORRECT に完全に含まれていることを確認しました。

それぞれのデータの行は次のとおりです (それぞれの行 10000 と 10001 を取得しました)。

正しい場合のみ:

正しくない:

正しい:

0 投票する
2 に答える
1513 参照

python - astype を使用して H5py で HDF データセットへの参照を作成する

h5py docsから、astypeデータセットのメソッドを使用して、HDF データセットを別のタイプとしてキャストできることがわかります。これは、オンザフライで変換を実行する contextmanager を返します。

uint16ただし、として保存されているデータセットを読み取り、それをfloat32型にキャストしたいと思います。その後、キャストタイプとして別の関数でこのデータセットからさまざまなスライスを抽出したいと思いfloat32ます。ドキュメントは、使用を次のように説明しています

これにより、データセット全体が読み込まれて に変換されますがfloat32、これは私が望んでいるものではありません。データセットへの参照を持ちたいのですが、にfloat32相当するものとしてキャストしnumpy.astypeます。.astype('float32')オブジェクトへの参照を作成して、別の関数に渡して使用できるようにするにはどうすればよいですか?

例:

さらに、データ要素にアクセスするときにのみ astype コンテキストが適用されるようです。この意味は

astypeを使用する派手な方法はありませんか?

0 投票する
0 に答える
208 参照

emr - Amazon EMR で HDFS キャッシングを有効にする方法を教えてください。

EMR でHDFS キャッシュを有効にする最も簡単な方法は何ですか?

より具体的には、すべてのノードでdfs.datanode.max.locked.memory「メモリにロックできる最大サイズ」( ) を設定および増加する方法を教えてください。ulimit -l

次のコードは正常に動作するようで、更新して呼び出すdfs.datanode.max.locked.memoryカスタム ブートストラップを作成することもできます。より良いまたはより速い方法はありますか?/usr/lib/hadoop/hadoop-daemon.shulimit

0 投票する
0 に答える
511 参照

matlab - HDFS for Hadoop から HDF データを読み取る方法

Hadoop で画像処理を行っています。処理に HDF 衛星データを使用しています。hadoop ストリーミングで jpg やその他の画像タイプのデータにアクセスして使用できます。ただし、HDF データを使用するとエラーが発生します。Hadoop は HDFS から HDF データを読み取ることができませんでした。エラーを表示するのにも 20 分以上かかります。私の HDF データ サイズは 150MB を超える単一ファイルです。

この問題を解決する方法。Hadoop の作成方法は、この HDF データを HDFS から読み取ることができます。

私のコードの一部

エラーログは次のとおりです。

誰でもこの問題を解決するのを手伝ってください。

0 投票する
2 に答える
266 参照

matlab - MATLAB でカラーマップを使用して画像を保存する方法

HDF 衛星データを使用してバンドを取得し、そこからさまざまな植生指数を結論付けています。hdf データのすべてのバンドはグレー カラー形式で、グレー カラー スケール イメージです。HDF データが処理された後、カラー マップを使用して色に変換できます (カラー マップにはジェットを使用しています)。私の疑問は、imwriteを使用しているときにグレースケール画像をカラーマップに変換する方法です。imwrite 内で colormap を使用する方法。何度も試しましたが、出力は完全な青色のみで、出力イメージが損なわれます。これを行うのを手伝ってください。

0 投票する
0 に答える
1604 参照

python - Pandas - 最高の圧縮率のための最適な永続化戦略?

質問

dtype の種類が少ない一連の DataFrame が多数ある場合、最初に圧縮率、2 番目に解凍速度、3 番目に初期圧縮速度を考慮する場合、Pandas DataFrame の永続化/シリアル化の最適な設計は何ですか?

バックグラウンド:

ファイルごとに約 50 個のデータ フレームの論理ブロックに格納する必要がある [2900,8] 形状のデータフレームが約 20 万個あります。データ フレームには、np.int8、np.float64 型の変数が含まれています。ほとんどのデータ フレームはスパース型に適していますが、スパースは HDF 'テーブル' 形式のストアではサポートされていません (それが役立つというわけではありません - スパース gzip 圧縮されたピクルについては、以下のサイズを参照してください)。データは毎日生成され、現在合計で 20 GB を超えています。私は HDF に縛られているわけではありませんが、最高品質の圧縮と組み合わせて、永続ストア内の個々のデータフレームの読み取りを可能にするより良いソリューションをまだ見つけていません。繰り返しになりますが、圧縮率を向上させるために少し速度を犠牲にしても構わないと思っています。特に、これをネットワーク全体に送信する必要があるためです。

同様の立場にあるものに関連する可能性のある他のSOスレッドと他のリンクがいくつかあります。ただし、私が見つけたもののほとんどは、優先順位としてストレージ サイズを最小限に抑えることに焦点を当てていません。

pandas を使用した「大規模データ」ワークフロー

HDF5 と SQLite。同時実行性、圧縮、I/O パフォーマンス [終了]

環境:

例:

結果

上記の結果を考えると、最良の「圧縮優先」ソリューションは、bzip2 を使用して HDF 固定形式でデータを保存することのようです。おそらく HDF を使用せずに、さらに多くのスペースを節約できる、データを整理するより良い方法はありますか?

更新 1

以下の Jeff のコメントによると、最初の圧縮なしでテーブル ストア HDF ファイルに ptrepack を使用し、その後再圧縮しました。結果は以下のとおりです。

奇妙なことに、ptrepack で再圧縮すると、ファイルの合計サイズが増加するようです (少なくともこの場合、同様のコンプレッサーでテーブル形式を使用しています)。

0 投票する
1 に答える
403 参照

java - NetCDF 4.5 Java NetCDF ファイル バージョン 4 の問題 + HDF の古いコードが機能しない

NetCDF バージョン 3 のファイルがあります。Windows 用の最新の ncks (2014 年 10 月 1 日リリース) を使用して ncks -4 --cnk_dmn lat,4 --cnk_dmn lon,4 --cnk_dmn time,512 2014.nc 2014_chunked.nc 、NetCDF バージョン 4 の 2014_chunked.nc ファイルを生成したファイルを再チャンクしました。

たとえば、新しいファイル 2014_chunked.nc は WCT で読み取ることができます。ただし、Javaコードは生成されます

そして例外をスローします

コードは

JRE 7 http://www.unidata.ucar.edu/downloads/netcdf/netcdf-java-4/index.jspには最新の NetCDF4.5 を使用し ます。

netcdf jar ファイルを調べたところ、Nc4.class の長さが数バイトしかないことがわかりました。したがって、jar には NetCDF4 iosp がなく、NetCDF 4 ファイルに H5iosp を使用しています。

netcdf 4.2 の HDF5 および HDF4 ファイルを開くための同じ Java コードは正常に動作しますが、4.5 では動作しないため、NetCDF 4.5 Java の新しいバージョンは、私が常に使用していたバージョン 4.2 とは少し異なる方法で使用する必要があると思います。

なにが問題ですか?