该代码用于绘制全球季节性平均降水的空间分布图。利用netCDF4和cartopy库读取并处理数据,通过循环计算特定季节(MAM, JAS, SON, DJS)的平均值,并使用contourf绘制等值线图。地图上标注了关键经线和纬度,且提供了颜色条以显示降水强度。
摘要由CSDN通过智能技术生成
import
netCDF4
as
nc
import
cartopy
.
crs
as
ccrs
from
cartopy
.
util
import
add_cyclic_point
def
sea_mean
(
start
)
:
temp
=
[
]
for
i
in
range
(
start
,
468
,
12
)
:
temp
.
append
(
i
)
temp
.
append
(
i
+
1
)
temp
.
append
(
i
+
2
)
mean_season
=
np
.
nanmean
(
pre
[
temp
,
:
,
:
]
,
0
)
return
mean_season
if
__name__
==
'__main__'
:
dataset
=
nc
.
Dataset
(
'GPCP.precip.mon.mean.nc'
)
print
(
dataset
.
variables
.
keys
(
)
)
lon
=
dataset
.
variables
[
'lon'
]
[
:
]
.
data
lat
=
dataset
.
variables
[
'lat'
]
[
:
]
.
data
time
=
dataset
.
variables
[
'time'
]
real_time
=
nc
.
num2date
(
time
,
time
.
units
)
.
data
pre
=
dataset
.
variables
[
'precip'
]
[
:
]
.
data
pre
[
pre
<
0
]
=
np
.
nan
fig
=
plt
.
figure
(
)
for
i
in
range
(
4
)
:
mon
=
[
3
,
6
,
9
,
12
]
title
=
[
'MAM'
,
'JAS'
,
'SON'
,
'DJS'
]
ax
=
fig
.
add_subplot
(
2
,
2
,
i
+
1
,
projection
=
ccrs
.
PlateCarree
(
central_longitude
=
180
)
,
facecolor
=
'gray'
)
ax
.
coastlines
(
)
cycle_data
,
cycle_lon
=
add_cyclic_point
(
sea_mean
(
mon
[
i
]
)
,
coord
=
lon
)
cycle_LON
,
cycle_LAT
=
np
.
meshgrid
(
cycle_lon
,
lat
)
cs
=
ax
.
contourf
(
cycle_LON
-
180
,
cycle_LAT
,
cycle_data
,
cmap
=
'bwr_r'
,
extend
=
'both'
,
levels
=
range
(
0
,
12
)
)
plt
.
title
(
title
[
i
]
)
plt
.
plot
(
range
(
-
180
,
180
)
,
[
0
]
*
360
,
'k--'
)
for
line
in
[
9
-
180
,
43.5
-
180
,
104
-
180
,
162.5
-
180
,
220.5
-
180
,
280
-
180
,
311
-
180
]
:
plt
.
plot
(
[
line
]
*
180
,
range
(
-
90
,
90
)
,
c
=
'w'
)
plt
.
xticks
(
range
(
-
180
,
180
,
60
)
,
[
'0'
,
'60°E'
,
'120°E'
,
'180°'
,
'120°W'
,
'60°W'
]
,
fontsize
=
10
)
plt
.
yticks
(
range
(
-
90
,
91
,
30
)
,
[
'90°S'
,
'60°S'
,
'30°S'
,
'0'
,
'30°N'
,
'60°N'
,
'90°N'
]
,
fontsize
=
10
)
plt
.
colorbar
(
cs
)
plt
.
show
(
)
-
改动了居中经线后,横坐标的经纬度维持不变!!!依旧是-180~180°
-
降水分布图也要跟着向西平移180度
SNX
全球
站点坐标文件下载地址:
ftp://igs.gnsswhu.cn/pub/whu/pub/gps/products/YYYY/igsyyPwwww.snx.Z
结果输出:
# coding=utf-8
# !/usr/bin/env
python
Program:plot_global_sitemap.py
Function:根据站点列表绘制站坐标
全球
分布图
本来想绘制如下的色斑
图
,但一开始不知到它叫这个名字,从等值线开始查起,发现等值线绘制是个比较大且难的
问题
,会出现等值点计算、等值点追踪、等值线裁剪等一些列的部分所组成,预想到最后还可能会出现效率
问题
,然,现今已有很多成熟和软件已集成(实现)了该功能,故在查找方法(方式)过程中小伙伴发现了它原来的真实名字,好了,废话到此结束。
一、色斑
图
绘制
1. 加载数据
做加载的数据包括,
经度
、维度、
降水
值三类数据,我把它们存在了一个csv文件中了,由于数据提前已进行了插值处理,因此这里不再进行插值计算。