用Python读取nc文件的代码是什么
Admin 2022-09-03 群英技术资讯 800 次浏览
今天小编跟大家讲解下有关“用Python读取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)
参考文献1
# plt对某个doy的全球sif值作图。左半部分为西半球,右边是东半球
# 选了doy为10的sif数据作图
plt.contourf(long, lati, data[10, :, :] )
plt.colorbar(label="Sif", orientation="horizontal")
plt.show()
运行结果:

参考文献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()
运行效果:

参考文献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/
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
阈值分割法是一种基于区域的图像分割技术,原理是把图像像素点分为若干类。本文将利用Python+OpenCV实现阈值分割,感兴趣的可以了解一下
这篇文章主要介绍了python之NAN和INF值处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
内容介绍1视频帧采样2将图片转为字符画2.1创建像素-字符索引2.2将图片逐像素转换为字符3将字符图像合成视频4完整代码5参考前言:放鞭炮贺新春,在我国有两千多年历史。关于鞭炮的起源,有
本篇文章给大家带来了关于Python的相关知识,其中主要整理了解析参数的三种方法相关问题,第一个选项是使用 argparse,它是一个流行的 Python 模块,专门用于命令行解析;另一种方法是读取 JSON 文件,我们可以在其中放置所有超参数;第三种也是鲜为人知的方法是使用 YAML 文件,下面一起来看一下,希望对大家有帮助。
在做网站项目时,经常会使用脚本生成sitemap, 便于爬虫爬取,有利于SEO。 那么如何使用Python来生成sitemap呢?下面我们来研究一番。安
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008