python读取nc数据并绘图的方法实例
作者:细细47 发布时间:2023-09-16 10:08:19
标签:python,nc文件,绘图
获取nc数据的相关信息
from netCDF4 import Dataset
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
path = "F:\\OCO2.SIF.all.daily.2001.nc"
csv_path = "F:\\test.csv"
dst = Dataset(path, mode='r', format="netCDF4")
print(dst.variables.keys())
data = dst.variables['all_daily_sif'][:]
print(data.shape)
# 输出结果如下:
# dict_keys(['lat', 'lon', 'doy', 'all_daily_sif'])
# (92, 360, 720)
#可见有92个时间序列,经度(lon)、纬度(lat)的取值有720,360个
# # 查看数据经纬度范围,经度-179.75~179.75,其中负值为西经,正值为东经;纬度正为北纬,负为南纬
# # 格点分辨率为0.5度
long = dst.variables['lon'][:]
lati = dst.variables['lat'][:]
print(long[0], long[-1], lati[0], lati[-1])
print(long.shape, lati.shape)
绘图
用matplotlib绘图
参考文献1
# plt对某个doy的全球sif值作图。左半部分为西半球,右边是东半球
# 选了doy为10的sif数据作图
plt.contourf(long, lati, data[10, :, :] )
plt.colorbar(label="Sif", orientation="horizontal")
plt.show()
运行结果:
用Basemap绘图
参考文献2
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
lat = dst.variables['lat'][:]
lon = dst.variables['lon'][:]
data = dst.variables['all_daily_sif'][:]
data[10] = data[10]
# use .shape function to check that arrays have
# the correct size.
# e.g. lon.shape
print(data[10].shape)
lon0 = lon.mean()
lat0 = lat.mean()
# 设置投影方式:cyl为圆柱投影、还可设置merc为mercator投影 llcrnrlat为起始lat;urcrnrlat为终止lat
# m = Basemap(projection='merc', llcrnrlat=lat[0], urcrnrlat=lat[-1], \
# llcrnrlon=lon[0], urcrnrlon=lon[-1], ax=ax1)
# 参数 "resolution" 用于控制地图面积边缘的精细程度,有'l'和'h'两种取值
m = Basemap(lat_0=lat0, lon_0=lon0,projection='cyl',resolution='l')
# 绘制等经纬度线 纬度每隔20度画一条线,且标注经纬度
m.drawparallels(np.arange(-90., 91., 20.), labels=[1, 0, 0, 0], fontsize=10)
m.drawmeridians(np.arange(-180., 181., 40.), labels=[0, 0, 0, 1], fontsize=10)
m.drawcoastlines()# 绘制海岸线
# m.drawcountries(linewidth=0.25) # 绘制国界线
# m.readshapefile('F:\E\data\grass_yield\shp\quhua\\省', 'states') # 读取中国各省边界,并绘图
lon, lat = np.meshgrid(lon, lat)
xi, yi = m(lon, lat)
# cmap是颜色,还可选‘jet'、‘spring'、‘winter'、'summer'、'autumn'
cs = m.contourf(xi, yi, data[10], cmap='summer')
# pad指位置,
cbar = m.colorbar(cs, location='bottom', pad="10%",format='%.1f')
# cbar = m.colorbar(C, 'right', ticks=np.arange(-128, 128, 40), format='%.1f')
font1 = {'family': 'DejaVu Sans', 'weight': 'normal', 'size': 16}
plt.title('CSIF', font1)
plt.show()
运行效果:
用Cartopy绘图
参考文献3
此前 Python 最常用的地图包是 Basemap,然而它将于 2020 年被弃用,官方推荐使用 Cartopy 包作为替代。Cartopy 是英国气象局开发的地图绘图包,实现了 Basemap 的大部分功能,还可以通过 Matplotlib 的 API 实现丰富的自定义效果。
安装Cartopy包
下载安装OSGeo4W4
参考文献:https://zhuanlan.zhihu.com/p/129351199
参考文献:https://blog.csdn.net/weixin_39618339的plt画图像图例的位置怎么写代码_用basemap画气象图
参考文献: https://zhajiman.github.io/
https://trac.osgeo.org/osgeo4w/
来源:https://blog.csdn.net/suexisang/article/details/122768900
0
投稿
猜你喜欢
- 一次性读取csv文件内所有行的数据<?php $file = fopen('windows_2011_s.csv',&
- 购物车是电子商务网站中不可缺少的组成部分,但目前大多数购物车只能作为一个顾客选中商品的展示,客户端无法将购物车里的内容提取出来满足自己事务处
- python 中提供一种用于对函数固定属性的函数(与数学上的偏函数不一样)# 通常会返回10进制int('12345') &
- Function closeUBB(strContent) '*************************
- 您是否记得关闭所有的XHTML元素,在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许
- 用途:将UTF-8编码汉字转换为GB2312码,兼容英文和数字版权:虽说是原创,其实也参考了別人的部分算法asp源代码:<% 
- 如下所示:import tensorflow as tfsess = tf.Session(config=tf.ConfigProto(lo
- 在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX,
- 如何验证日期输入是否正确?我们可以利用ASP 3.0里的On Error Resume Next来完成这项功能:<%Option&nb
- 本文实例为大家分享了bootstrap显示隐藏的具体代码,供大家参考,具体内容如下<html><head><m
- 词云图from pyecharts.charts import WordClouddef word1(): words= [ &
- 1、什么是超链接图标规范超链接图标规范是我根据《Iconize Textlinks with CSS》修改调整完成的。主要是整理出常用到的一
- while语句打印1-20的整数,并且每行打印五个数,为了实现每行5个数,我们使用一个if判断语句来实现,判断当打印出5个数之后,自动换行打
- 1、从半年以前要“去中心化”开始,豆瓣作了不少大的调整,重要的是上线了很多的新功能。同城、日记、相册、音乐试听、等等。2、一个多月来,豆瓣上
- 信息图表设计(Inforgraphic Design),是信息设计(Information Design)学科的一个分支,它兴起于20世纪末
- 本例详细介绍了如何在wiondws XP下安装与配置MySQL5.0.37 ,图文并茂,相信对初学mysql的朋友有所帮助。1 点击MySQ
- 本文实例讲述了Python基于list的append和pop方法实现堆栈与队列功能。分享给大家供大家参考,具体如下:#coding=utf8
- 读取binlog,方法有二:1.使用mysqlbinlog,详细用法,请参考MySQL手册2.使用MySQL的自带工具,SHOW BINLO
- 请先看看以下演示中的图案文字。这可不是图片效果,而是用CSS滤镜中的Chroma() 语句做成的文本文
- 在Windows中安装MySQL时,有3种MySQL 5.1安装软件包可供选择:· 基本安装:该安装软件包的文件名类似