netcdf数据在matplotlib Basemap出图

简介: 使用python,将netcdf数据在matplotlib Basemap出图

netcdf是一种数据格式;

netcdf的介绍网址,参见百度百科:https://baike.baidu.com/item/netCDF/6000434

matplotlib是python中的一个画图插件;

matplotlib的介绍网址,参见百度百科:

https://baike.baidu.com/item/Matplotlib/20436231?fr=aladdin

使用python做地图效果的,是工作中的需要,气象数据一般都存在netcdf中,也没有深入学习python语言,只是按照要求达到了个实现效果。

下边的代码是详细列举了如何从netcdf中读取数据,在绘制在basemap地图上的效果;

python的开发环境和下载代码中的各种轮子,请百度搜索去部署,我也不熟,下边的代码是基于python2.7进行开发的,netcdf的样例数据从网上也能下载到;

#设置编码格式,引用所需要的各种类库

#coding=utf-8 
import matplotlib.pyplot as plt
import numpy as np
import scipy.ndimage
from mpl_toolkits.basemap import Basemap, cm
import netCDF4 as nc
import matplotlib.colors as colors
#netcdf文件的路径设置,使用反向斜杠,和windows常用不一样
filename="E:/git/grib2json/20171011/20171011-3KM_WEST.nc"
#打开nc文件,从中按照变量获取数据,详细学习nc数据中的格式
data=nc.Dataset(filename)
lat= data.variables['XLAT'][:].squeeze()
lon= data.variables['XLONG'][:].squeeze()
pm25=data.variables['pm25'][:].squeeze()
cutpm= pm25[20, 4, :, :]
#初始化一个basemap的对象,设置坐标系为经纬度,后边是范围
m = Basemap(epsg=4326,resolution='i',llcrnrlat=23,urcrnrlat=37,llcrnrlon=97,urcrnrlon=112)
fig1 = plt.figure() 
x, y = m(lon, lat) 
# 初始化设置颜色级别,根据不同的值渲染不同颜色
levels = [0, 35, 75, 115, 150, 250, 350, 500]
myRBB = np.array([[153, 219, 231], [26, 161, 206], [0, 123, 217], [103, 255, 136], [10, 227, 50], [50, 244, 62],[228, 243, 62],[226, 151, 62]])
cmap = colors.ListedColormap(myRBB / 255.0)
norm = colors.BoundaryNorm(boundaries=levels, ncolors=len(levels))
#根据以上的x\y\值数组,在地图上进行画图
CS2 = m.contourf(x, y, cutpm,cmap=cmap,alpha=0.75)
#画海岸线和国家边界
m.drawcoastlines(linewidth=0.5)
m.drawcounties(linewidth=0.3)
plt.title('pm25', size=20)
#加载个base自带的地图图片
m.etopo()
#显示绘画窗口
plt.show()

注:使用时,请去掉所有注释,容易报错

以下是效果图:
image.png

相关文章
|
4月前
|
数据可视化 JavaScript 前端开发
Matplotlib动画制作:让数据生动起来!
Matplotlib动画制作:让数据生动起来!
70 0
|
6月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
98 1
|
4月前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
在这个数据可视化的新纪元,让我们充分发挥 Python 的优势,用精彩的图表讲述数据背后的故事,为决策提供有力的支持,为交流带来清晰的视角。
39 4
|
6月前
|
存储 数据可视化 Python
Python中的数据可视化:使用Matplotlib和Pandas探索数据
【7月更文挑战第31天】 在数据科学的世界里,可视化是理解复杂数据集的关键。本文将引导你通过Python的Matplotlib库和Pandas库来揭示数据背后的故事。我们将一起构建图表,从简单的线图到复杂的热图,每一步都将用代码示例来丰富你的理解。文章不仅仅是展示如何绘制图表,更是一次深入探索数据结构和模式的旅程。
81 8
|
6月前
|
数据可视化 数据挖掘 Python
数据界的颜值担当!Python数据分析遇上Matplotlib、Seaborn,可视化美出新高度!
【7月更文挑战第24天】在数据科学领域,Python的Matplotlib与Seaborn将数据可视化升华为艺术,提升报告魅力。Matplotlib作为基石,灵活性强,新手友好;代码示例展示正弦波图的绘制与美化技巧。Seaborn针对统计图表,提供直观且美观的图形,如小提琴图,增强数据表达力。两者结合,创造视觉盛宴,如分析电商平台销售数据时,Matplotlib描绘趋势,Seaborn揭示类别差异,共塑洞察力强的作品,使数据可视化成为触动人心的艺术。
70 7
|
6月前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
【7月更文挑战第23天】在数据驱动时代,Python通过Matplotlib与Seaborn引领数据可视化新纪元。Matplotlib基础强大,提供广泛绘图选项;Seaborn则简化流程,图表更美观,适合快速可视化。两者结合,轻松应对复杂定制需求,将数据转化为生动故事,支持决策与交流。
42 6
|
6月前
|
数据可视化 数据挖掘 Python
|
6月前
|
数据可视化 数据挖掘 Python
逆袭之路!Python数据分析新手如何快速掌握Matplotlib、Seaborn,让数据说话更响亮?
【7月更文挑战第22天】在数据驱动时代,新手掌握Python的Matplotlib与Seaborn可视化技能至关重要。Matplotlib, 基础且灵活, 适合初学者绘制基础图表; Seaborn在其上提供更高级接口, 专注统计图形和美观样式。建议先学Matplotlib掌握核心技能, 再用Seaborn提升图表质量。快速上手Matplotlib需实践, 如绘制折线图。Seaborn特色功能含分布图、关系图、分类数据可视化及高级样式设定。结合两者可实现复杂数据可视化, 先Seaborn后Matplotlib微调。持续实践助你灵活运用工具, 让数据生动呈现, 助力分析与决策。
65 2
|
6月前
|
数据可视化 数据挖掘 数据处理
数据之美,尽收眼底!Python数据分析师如何利用Matplotlib、Seaborn打造视觉盛宴,征服数据世界?
【7月更文挑战第22天】Python的Matplotlib和Seaborn库是数据可视化的利器。Matplotlib基础强大,灵活定制,适合各类图表;Seaborn在其上层封装,提供美观的统计图形,简化复杂操作。结合使用,它们助数据分析师揭示数据规律,打造视觉盛宴,征服数据世界。示例代码分别展示了如何绘制正弦波图和箱线图。
42 0
|
7月前
|
数据可视化 数据挖掘 Shell
20. Matplotlib 数据可视(上)
20. Matplotlib 数据可视化
56 0