我有2d numpy数组480行和1440列,由下面的'data'命名:
The first element belongs to (49.875S,179.875W),
the second element belongs to (49.625S,179.625W),
and the last element belongs to (49.875N,179.875E).
import os, glob, gdal, numpy as np
fname = '3B42RT.2014010606.7.bin'
with open(fname, 'rb') as fi:
fi.seek(2880,0)
data = np.fromfile(fi,dtype=np.uint16,count=480*1440)
data = data.byteswap()
data = data.reshape(1440,480)
如何转换这个numpy数组,使其第一个元素属于(49.875N,179.625W),即分别为左上纬度和经度;最后一个元素属于(49.625S,179.875E),即分别是右下角和经度。
我试图旋转它,但我不认为它是正确的。
data = np.rot90(data,1)
你们中有些人遇到过这类问题吗? 我正在使用的二进制文件位于:ftp://trmmopen.gsfc.nasa.gov/pub/merged/3B42RT/3B42RT.2014010606.7.bin.gz
答案 0 :(得分:0)
好的,如果它真的只是重新排序元素的问题,那么你可能会寻找这样的东西:
from itertools import chain
Lat = [[11, 12, 13, 14, 15, 16],
[21, 22, 23, 24, 25, 26],
[31, 32, 33, 34, 35, 36]]
Lon = [[111, 112, 113, 114, 115, 116],
[121, 122, 123, 124, 125, 126],
[131, 132, 133, 134, 135, 136]]
print zip(chain.from_iterable(Lat), chain.from_iterable(Lon))
但你的问题确实令人困惑。在询问stackoverflow时,尝试将其分解为跳过与问题无关的所有内容的最小示例。