我有两个不同的netCDF文件:一个“grided”,一个“ungrided”(见下面的示例)。在
我试着用这两种方法做一个网格网格,如下所示:
dataset = Dataset(file_name)
data = dataset.variables['air_temp'][:]
lats = dataset.variables['lat'][:]
lons = dataset.variables['lon'][:]
print lats.shape
print lons.shape
lons, lats = np.meshgrid(lons,lats)
print lons.shape
print lats.shape
网格:lats
:一维数组(720,)和lons
:一维数组(1440,)
并在meshgrid
之后返回一个二维数组(7201440)。在
ungrided:lats
:2-D数组(1080,2048)和lons
(1080,2048)我希望在meshgrid
之后有一个2-D数组(10802048),但它返回的是MemoryError
lats:
[[-34.18847656 -34.20410156 -34.21972656 ..., -40.50195312 -40.50488281
-40.5078125 ]
[-34.19726562 -34.21289062 -34.22851562 ..., -40.51171875 -40.51367188
-40.51660156]
[-34.20605469 -34.22167969 -34.23828125 ..., -40.52246094 -40.52441406
-40.52734375]
...,
[-43.77441406 -43.79394531 -43.81347656 ..., -50.73339844 -50.73339844
-50.734375 ]
[-43.78320312 -43.80175781 -43.82226562 ..., -50.7421875 -50.74316406
-50.74316406]
[-43.79199219 -43.81054688 -43.83105469 ..., -50.75195312 -50.75195312
-50.75292969]]
lons:
[[ 4.93164062 4.9765625 5.02148438 ..., 36.7734375 36.82421875
36.875 ]
[ 4.92675781 4.97167969 5.015625 ..., 36.77246094 36.82324219
36.87402344]
[ 4.921875 4.96679688 5.01171875 ..., 36.77148438 36.82226562
36.87304688]
...,
[ -1.18457031 -1.13574219 -1.08691406 ..., 36.3359375 36.3984375
36.45996094]
[ -1.19238281 -1.14257812 -1.09375 ..., 36.3359375 36.3984375
36.45996094]
[ -1.19921875 -1.14941406 -1.09960938 ..., 36.3359375 36.3984375
36.45996094]]
np.meshgrid
在网格化的系统上运行得很好:几毫秒内几乎没有使用RAM,另一方面网格化的一个完全崩溃了我的Mac。我必须通过活动监视器杀死python进程。我以为是因为我的电脑只有4GB的内存,但我和一个运行在16GB的Windows上的朋友试了一下,结果发现同样的问题。在
我只看到一篇文章谈到使用更小的数据块,但是这个netCDF文件只有2Mb!它如何生成16Gb的RAM?在
“无网格”的lats
和{
目前没有回答
相关问题 更多 >
编程相关推荐