我有很多由二维组成的卫星数据。
(我将 H5 转换为不包含纬度信息的二维数组数据,我另外制作了纬度/经度信息数据。)
我知道一个数据中真正的纬度/经度协调和网格协调。
如何在 Python 中部分读取 2d 卫星文件?
“numpy.fromfile”通常用于读取二进制文件。
如果我在 numpy.fromfile 中使用选项作为计数,我可以部分读取二进制文件。
但是我想跳过一个数据中的前记录以节省内存。
例如,我有 3x3 2d 数据如下:
Python
a= [[1,2,3] [4,5,6] [7,8,9]]
我刚刚在 Python 中阅读了 a[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. 解决方案
python 数据= [1,2,3,4,5,6,7,8,9],dtype = int8,文件名=名称
a = np.memmap(name, dtype='int8', mode='r', shape=(1), offset=6)
打印 [0]
结果:7