浮動小数点値を持つ複雑なデータファイルを読み込もうとしています。この形式(Met Office PPファイル)を処理するいくつかのCコードが提供されており、ビットのいじりやスワッピングが多く行われます。そして、それは機能しません。データのサイズのようにかなり正しくなりますが、返される行列の数値は無意味であり、NaNと1e38や-1e38のような値が自由に散らばっています。
ただし、これらをnetCDFに変換できるバイナリexe( "convsh")があり、netCDFは見栄えがよくなります。風速の渦巻き模様のマップです。
私が考えているのは、PPファイルのバイトが間違った順序で読み込まれているということです。NetCDFデータで正しく返されたfloatのバイトと、Cコードから誤って返されたfloatのバイトを比較できれば、正しいスワップページを見つけることができます。
では、浮動小数点数の4(または8?)バイトをダンプする単純なR関数はありますか?何かのようなもの:
> as.bytes(pi)
[1] 23 54 163 73 99 00 12 45 # made up values
「bytes」、「float」、「binary」の検索は役に立ちませんでした。
Cでの些細なことですが、これを書くのにかかった時間内に書いたかもしれません...