【发布时间】:2014-08-23 06:07:55
【问题描述】:
我有 480 行和 1440 列的 2d numpy 数组,由下面的“数据”命名:
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
【问题讨论】:
-
“属于”是什么意思?
-
第一个元素对应(49.875S,179.875W)。是栅格数据,所以第一个元素的坐标是(49.875S,179.875W)
-
目前还不清楚这应该是什么意思。您是否应该将最初对应的元素(49.875N,179.625W)放在第一个位置?或者您是否应该以某种方式转换元素以使其代表(49.875N,179.625W)? (49.875N,179.625W) 的原始元素在数组中的哪个位置?二维数组的第二个元素到底是什么?
-
我想变换元素,使变换后的数组匹配所需的坐标。
-
@Drakos:根本不清楚您的数据如何对应于任何类型的地理。你能比给出三个坐标更明确吗?您的行和列是否对应于纬度和经度线(反之亦然)?您在数据中引用的“第二个”元素在哪里(是
data[0,1],还是其他)?