将numpy数组更改为所需的形状

时间:2014-08-23 06:07:56

标签: python numpy gis

我有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

1 个答案:

答案 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时,尝试将其分解为跳过与问题无关的所有内容的最小示例。