データセットprecip_subset
には3つの1D numpy配列があります。私はprecip_subset
を作成するために31のデータセットをマージしました。データセットの最初のnumpy arrrayは曜日を表し、2番目の配列は経度を表し、thrid配列は緯度を表します。データセットの各位置で降水量に固有の値があります。たとえばprint(precip_subset[1, 0, 21])
は私に1.05
という値を与えます。1つのnumpy配列を持つデータセット内の値の位置を取得する
precip_subset
では、私は降水量の特定の値しか求めませんでした。だから私はそうのようなデータセットを限定:この後
data_low = precip_subset[(precip_subset > 0) & (precip_subset < 3.86667)]
、私はこれを実行しようとしました:
for val in data_low:
if val < 1:
print(precip_subset.tolist().index(val))
私がやろうとしていますどのような元のデータセット内の値の位置を取得している、precip_subset
。しかし、私はThe truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
というエラーが出ます。誰も私がprecip_subset
から値の位置を得る方法を説明することはできますか?
EDIT:ここprecip_subsetが作成された方法である。
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
data_path = r"C:\Users\matth\Downloads\TRMM_3B42RT\3B42RT_Daily.201001.7.nc4"
f = Dataset(data_path)
latbounds = [ -31 , -19 ]
lonbounds = [ 131, 146 ] # degrees east ?
lats = f.variables['lat'][:]
lons = f.variables['lon'][:]
# latitude lower and upper index
latli = np.argmin(np.abs(lats - latbounds[0]))
latui = np.argmin(np.abs(lats - latbounds[1]))
# longitude lower and upper index
lonli = np.argmin(np.abs(lons - lonbounds[0]))
lonui = np.argmin(np.abs(lons - lonbounds[1]))
precip_subset = f.variables['precipitation'][ : , lonli:lonui , latli:latui ]
変数 "沈殿" は、元のデータセットからr"C:\Users\matth\Downloads\TRMM_3B42RT\3B42RT_Daily.201001.7.nc4"
ある、precip_subsetの形状及び大きさは、それぞれ(31, 60, 48)
と89280
それはどのように非常に明確ではありません'precip_subset'が作成されました...それは3つの1D配列をかしめて作成したものは何ですか?これは、 'precip_subset'が3D配列であることを示す使用例' precip_subset [1、0、21]) 'と矛盾する2D配列になります。したがって、 'precip_subset'配列の形を明確にしてください。 –
私はコード全体を投稿します。 –
私はあなたのデータを表すnumpyデータ配列の小さな例を作成することがより役に立ちそうです。あなたの例では、データがあなたのファイルにどのように配置されているかは分かりません。あなたの質問に答えるために 'netCDF4'に慣れている必要があります。 –