python读取nc文件

2020-01-06 16:15:48 浏览数 (1)

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数据代码:

代码语言:javascript复制
# -*- 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)

0 人点赞