繁体   English   中英

NASA中的NASA二进制文件

[英]Nasa binary files in Java

我有二进制数据文件。 这是规范:

SRTM数据文件的名称类似“ N34W119.hgt”。 字母和数字指的是什么,“。hgt”格式是什么?

每个数据文件覆盖地球表面的一个纬度乘一个经度块。 前七个字符指示块的西南角,N,S,E和W分别指北,南,东和西。 因此,“ N34W119.hgt”文件涵盖北纬34至35和西经118-119(此文件包括加利福尼亚州洛杉矶市中心)。 文件扩展名“ .hgt”仅代表单词“ height”,表示海拔。 它不是格式类型。 这些文件为“原始”格式(无标头且未压缩),16位带符号整数,以“地理”(纬度和经度数组)投影形式显示的海拔高度,以海平面以上的米为单位,数据空白由-32768表示。 国际3弧秒文件具有1201列和1201行数据,总文件大小为2884802字节(= 1201 x 1201 x 2)。 美国一秒秒文件具有3601列和3601行数据,总文件大小为25,934,402字节(= 3601 x 3601 x 2)。 有关更多信息,请阅读http://edcftp.cr.usgs.gov/pub/data/srtm/Readme.html上的文本文件“ SRTM_Topo.txt”。

任何人都可以帮助我如何在Java中读取此文件? 可以将此文件读取为数组,因为我需要对该文件中的元素执行一些操作?

我会将整个文件读到ShortBuffer中(以便您选择字节序)

FileChannel fc = new FileInputStream(file).getChannel();
ByteBuffer bb = ByteBuffer.allocateDirect((int) fc.size());
while (bb.remaining() > 0) fc.read(bb);
fc.close();
bb.flip();
// choose the right endianness
ShortBuffer sb = bb.order(ByteOrder.LITTLE_ENDIAN).asShortBuffer();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM