<p>过了一段时间,我设法再次研究这个问题,显然上面的方法几乎是正确的。经过几次调整,在单个数据文件上进行了测试,并与GrADS solution交叉检查,我得到了如下结果:</p>
<pre><code> f = nc.Dataset('~/data/TRMM3H/3B42.19980101.12.7A.nc')
pcpt = f.variables['pcp'][:]
lon = f.variables['longitude'][:]
lat = f.variables['latitude'][:]
#select two regions
latidx1 = (lat >=4. ) & (lat <=6.5 )
lonidx1 = (lon >=100.5 ) & (lon <=101.5 )
latidx2 = (lat >=2.5 ) & (lat <=5.0 )
lonidx2 = (lon >=101. ) & (lon <=102. )
rainf = pcpt[:]
#these basically listing the values in an array (2 in this case)
rainf1 = rainf[:, latidx1][..., lonidx1]
rainf2 = rainf[:, latidx2][..., lonidx2]
rainf_1 = rainf1
rainf_2 = rainf2
#time to get the mean values
print np.mean(rainf_1)
print "............."
print np.mean(rainf_2)
print "............."
</code></pre>
<p>结果是:</p>
^{pr2}$
<p>用梯度法计算结果是一致的。在</p>
<p><strong>建议后编辑:</strong></p>
<pre><code> f = nc.Dataset('~/data/TRMM3H/3B42.19980101.12.7A.nc')
pcpt = f.variables['pcp'][:]
lon = f.variables['longitude'][:]
lat = f.variables['latitude'][:]
#select two regions
latidx1 = (lat >=4. ) & (lat <=6.5 )
lonidx1 = (lon >=100.5 ) & (lon <=101.5 )
latidx2 = (lat >=2.5 ) & (lat <=5.0 )
lonidx2 = (lon >=101. ) & (lon <=102. )
#these basically listing the values in an array (2 in this case)
rainf1 = pcpt[:, latidx1][..., lonidx1]
rainf2 = pcpt[:, latidx2][..., lonidx2]
rainf_1 = rainf1
rainf_2 = rainf2
#time to get the mean values
print np.mean(rainf_1)
print "............."
print np.mean(rainf_2)
print "............."
</code></pre>
<p>仍在测试文件中的原始文件。在</p>