python读取nc文件

nc文件的处理方式比较多,可以用MATLAB、JAVA、C、python或者其他的语言。我这两天折腾用python读取nc文件,查阅很多资料,左拼右凑的终于读出来了。

1、安装Anaconda

1)Anaconda的安装这里有详细的讲解。搜索“Anconda”,进入官网下载。我的电脑上安装的是python3.7,因此下载的Anaconda版本是python3.7。在这里插入图片描述
2) 双击下载好的 Anaconda3-5.3.0-Windows-x86_64.exe 文件进行安装。需要注意的是,来到 “Advanced Options 时”,勾选“Register Anaconda as my default python 3.7”,最后点击finish,安装完毕。
3)安装好后,按下Windows徽标键,在所有程序中,找到Anaconda3,点击Anaconda Navigator在这里插入图片描述
,第一次启用会初始化,加载完成后,界面如下所示。主要是用Spyder编写python代码,读取nc文件,因此需要install Spyder。因为我已经安装了Spyder,因此Spyder下面的框是“Lunch”。未安装时,下面的框是“install”,点击install安装就行。
在这里插入图片描述

2、安装所需要的模块

1)安装模块之前,更换一下Anaconda镜像。

(1)通过conda config 命令生成配置文件,首先进入cmd命令行,输入:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
(2)在命令行输入:conda config --set show_channel_urls yes
(3)在目录 C:\Users<你的用户名> 下就会生成配置文件.condarc,内容如下:
在这里插入图片描述
(4)修改上述配置文件,删除上述配置文件 .condarc 中的第三行,然后保存,最终版本文件如下:
在这里插入图片描述
(5)查看是否生效,通过命令 conda info 查看当前配置信息,内容如下,即修改成功,关注 channel URLs 字段内容
在这里插入图片描述
(6)测试一下,安装爬虫工具包 scrapy,执行命令:conda install scrapy
在这里插入图片描述

2)完成以上更改后,可以安装所需模块了。

首先进行一下更新,在Anaconda Prompt(开始菜单栏 Anaconda3文件下)中输入命令:conda update --all;
然后安装读nc文件所需的模块netCDF4:conda install netCDF4
这样就完成了HDF4模块的安装。

python代码

读nc数据代码:

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import netCDF4
from netCDF4 import Dataset
nc_obj=Dataset('e:\\P_CLDAS_RE01_EA16_PRE_HOUR_2015010101.nc')

#查看nc文件有些啥东东
print(nc_obj)
print('---------------------------------------')

#查看nc文件中的变量
print(nc_obj.variables.keys())
for i in nc_obj.variables.keys():
    print(i)
print('---------------------------------------')

#查看每个变量的信息
print(nc_obj.variables['LAT'])
print(nc_obj.variables['LON'])
print(nc_obj.variables['PRCP'])
print('---------------------------------------')

#查看每个变量的属性
print(nc_obj.variables['LAT'].ncattrs())
print(nc_obj.variables['LON'].ncattrs())
print(nc_obj.variables['PRCP'].ncattrs())
print(nc_obj.variables['LAT'].units)
print(nc_obj.variables['LON'].units)
print(nc_obj.variables['PRCP']._Fillvalue)
print('---------------------------------------')

#读取数据值
lat=(nc_obj.variables['LAT'][:])
lon=(nc_obj.variables['LON'][:])
prcp=(nc_obj.variables['PRCP'][:])
print(lat)
print(lon)
print('---------------******-------------------')
print(prcp)
Python中,如果你想要遍历指定文件夹内的所有.nc文件,并对每个文件读取数据后生成图表,然后按照文件名的某种规则保存对应的图片,你可以使用`os`模块来列出目录内容,`numpy`处理.npz文件,以及`matplotlib`库来绘制图形并设置文件名。这里是一个基本的步骤: 1. 导入需要的库: ```python import os import numpy as np import matplotlib.pyplot as plt from netCDF4 import Dataset # 如果你需要处理nc文件 ``` 2. 定义一个函数来处理单个.nc文件: ```python def process_nc_file(file_path): with Dataset(file_path) as ncdata: # 读取数据和变量 data = ncdata.variables['your_variable_name'][:] # 绘制图表 fig, ax = plt.subplots() ax.plot(data) # 设置图片名称,可以使用os.path.basename()获取文件名基础部分 file_name_base = os.path.splitext(os.path.basename(file_path))[0] save_path = f"plots/{file_name_base}.png" # 假设你想要保存到plots文件夹下 # 保存图片 plt.savefig(save_path) plt.close(fig) # 关闭窗口以避免显示 ``` 3. 遍历文件夹并应用上述函数: ```python folder_path = "your_folder_path" # 替换为你想要遍历的文件夹路径 for filename in os.listdir(folder_path): if filename.endswith(".nc"): # 检查是否是.nc文件 full_file_path = os.path.join(folder_path, filename) process_nc_file(full_file_path) ``` 这将按照文件夹中nc文件的顺序,依次处理并保存图片。如果你想根据.nc文件的内部信息自定义图片命名规则,只需修改`save_path`变量中的文件名构建逻辑即可。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值