首先你得安装
netCDF4
这个库 (pip install)
简单读取 如下
可以看到
dimensions
(sizes)
:
longitude
(480),
latitude
(241),
time
(480)
variables
(dimensions)
: float32
longitude
(longitude), float32
latitude
(latitude), int32
time
(time), int16
z
(time,latitude,longitude)
这是一个三维数据集,空间两维(
z
高度层为1,
500hPa
)、时间一维
数据提取
注意
:变量是
z
,
shape= (480,241,480)
时间40年x12月,空间0.75°x0.75°
用
np.array
把数据转化成数组(矩阵)类型
import
numpy
as
np
import
netCDF4
as
nc
d
=
nc
.
Dataset
(
'weishi79_18.nc'
)
time
=
np
.
array
(
d
.
variables
[
'time'
]
)
d_lon
=
np
.
array
(
d
.
variables
[
'longitude'
]
)
d_lat
=
np
.
array
(
d
.
variables
[
'latitude'
]
)
ws
=
np
.
array
(
d
.
variables
[
'z'
]
)
只做冬季,挑选所有12,1,2月
现有时间序列:197901-201812
a
=
[
]
for
t in
range
(
1
,
481
)
:
if
t
%
12
==
1
or t
%
12
==
2
or t
%
12
==
0
:
a
.
extend
(
[
t
-
1
]
)
ws_t
=
ws
[
a
,
:
,
:
]
ws_winter
=
np
.
zeros
(
(
39
,
241
,
480
)
)
for
m in
range
(
0
,
39
)
:
ws_winter
[
m
,
:
,
:
]
=
(
ws_t
[
m
*
3
+
2
,
:
,
:
]
+
ws_t
[
m
*
3
+
3
,
:
,
:
]
+
ws_t
[
m
*
3
+
4
,
:
,
:
]
)
/
3
80年-18年冬季平均就得到了
求距平值
ws_mean
=
np
.
zeros
(
(
241
,
480
)
)
ws_mean
=
np
.
mean
(
ws_winter
,
axis
=
0
)
ws_st
=
np
.
zeros
(
(
39
,
241
,
480
)
)
for
m in
range
(
0
,
39
)
:
ws_st
[
m
,
:
,
:
]
=
ws_winter
[
m
,
:
,
:
]
-
ws_mean
[
:
,
:
]