1961-1990 년의 온도 데이터를 기반으로 90 번째 백분위 수를 계산해야합니다. 나는 30 개의 NETCDF 파일을 가지고 있으며 모든 파일은 일년 동안의 일일 데이터를 포함하고있다. 나는 특별한 Lat에 대한 백분위 수 (90 번째)를 계산할 필요가있다. 30 년 동안 매일의 데이터 중 단지 여름날만을 고려하는 것이다. 또한 2 월에 29 일이있는 해를 고려해야합니다. 코드를 실행할 때 첫 번째 여름 (1961 년 여름)을 고려했을 때 모든 여름을 서로 고려할 수 없습니다. 하나의 디렉토리에있는 모든 NetCDF 파일에서 월 하위 집합을 추출하는 방법
data = xr.open_mfdataset('/Tmax-2m/Control/*.nc')
time = data.variables['time']
lon = data.variables['lon'][:]
lat = data.variables['lat'][:]
tmax = data.variables['tmax'][:]
df = data.sel(lat=39.18,lon=-95.57, method='nearest')
time2=df.variables['time'][151:243]
dg=df.sel (time=time2, method = 'nearest')
print np.percentile (dg.tmax, 90)
나는이 방법을 시도하지만 매년 여름마다의 백분위를 계산 :
splits=[151,516,881,1247,1612,1977,2342,2708,3073,3438,3803,4169,4534,4899,5264,5630,5995,6360,6725,7091,7456,7821,8186,8552,8917,9282,9647,10013,10378,10743]
t0=92
result=[]
for i in splits:
time3=df.variables['time'][i:(i+t0)]
dg=df.sel(time=time3, method ='nearest')
result.append(np.percentile (dg.tmax, 90))
np.savetxt("percentile1.csv", result, fmt="%s")
방금 결과의 평균을 수 없다? –
아니요 극단 값이므로 평균을 낼 수 없습니다. – Amy