我有很多由二维组成的卫星数据。
(我将H5转换为不包含纬度信息的2d数组数据 我另外制作了Lat / Lon信息数据。)
我在一个数据中知道真正的Lat / Lon协调和网格协调。
如何在Python中部分阅读2d卫星文件?
" numpy.fromfile"通常用于读取二进制文件。
如果我在numpy.fromfile中使用option作为count,我可以部分读取二进制文件。
但是我想在一个数据中跳过保存内存的前记录。
例如,我有3x3 2d数据如下:
python
a = [[1,2,3] [4,5,6] [7,8,9]
我刚刚在Python中阅读了[3] [0]。 (结果= 7)
当我在Fortran中读取文件时,我使用了" recl,rec"。
的Fortran
打开(1,文件=' exsmaple.bin',访问='直接',recl = 4)! recl = 4表示4 btype
读取(1,rec = lat * x-lon)文件名
接近(1)
lat表示数据中纬度的位置。 (在上面的示例中,lat = 3; Fortran中的起始编号为1。)
lon表示经度在数据中的位置。 (在上面的示例中,lon = 1; Fortran中的起始编号为1.)
x不是。行。 (x = 3,上面的例子,数组是3x3)
我可以读取文件,只使用4个字节的内存。
我想知道Python中的类似方法。
请给我特别的信息以节省时间和记忆。
感谢您阅读我的问题。
2016年10月28日。 溶液
蟒 数据= [1,2,3,4,5,6,7,8,9],dtype = int8,filename = name
a = np.memmap(name,dtype =' int8',mode =' r',shape =(1),offset = 6)
打印[0]
结果: 7
答案 0 :(得分:0)
阅读.h5文件:
import h5py
ds = h5py.File(filename, "r")
variable = ds['variable_name']
答案 1 :(得分:0)
很难按照您的描述进行操作。一些适当的代码缩进将有助于解决您的英语问题。
所以你有关于H5文件的数据。最简单的方法是h5py
将它加载到Python / numpy会话中,并从这些数组中选择必要的数据。
但听起来好像你已经把这部分数据写成了一个普通的'二进制文件。知道你是怎么做的可能会有所帮助。这个2d也是以什么方式?
np.fromfile
读取文件,就像它是1d一样。你能读到这个文件,最多可以看到count
吗?并使用正确的dtype
?
np.fromfile
接受一个打开的文件。所以我认为您可以打开文件,使用seek
跳过,然后从那里读取count
项。但我还没有测试过这个想法。