【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件
海洋与大气科学
软件
选择此软件是因为习惯了,matlab能看得到的界面。
新建文本
导入相关库
import netCDF4,numpy
netCDF4:该包作用:读、写netCDF files.
numpy:该包作用:NumPy 提供全面的数学函数、随机数生成器、线性代数例程、傅立叶变换等。
导入相关库
from netCDF4 import Dataset
Dataset的功能:读取数据。
读取数据
a = Dataset(‘D:\pycharm_work\data\scs_etopo.nc’)
a存放着scs_etopo.nc数据的全部信息。
查看变量
print(a.variables.keys())
输出:
dict_keys([‘lat’, ‘lon’, ‘elevation’])
从而知道scs_etopo.nc数据中有经纬度和高度信息。
print功能输出内容到当前屏幕或者工作空间。
查看文件详细信息
print(a);因为文件信息都存放在a中,因此输出a即可。
title: The GEBCO_2020 Grid - a continuous terrain model for oceans and land at 15 arc-second intervals;
institution: On behalf of the General Bathymetric Chart of the Oceans (GEBCO);
source: The GEBCO_2020 Grid is the latest global bathymetric product released by the General Bathymetric Chart of the Oceans (GEBCO) ;
dimensions(sizes): lat(6000), lon(5040);
variables(dimensions): float64 lat(lat), float64 lon(lon), int16 elevation(lat, lon);
某个变量的详细信息
print(a.variables[‘elevation’])% 将具体的变量加入进去!
可以看到:
elevation的:名称、单位、数组大小如下:
standard_name: height_above_reference_ellipsoid;
long_name: Elevation relative to sea level;
units: m;
current shape = (6000, 5040);
以上这么多相当于matlab的ncdisp 或者ncinfo
学习输出到txt文本
循环写入nc文件中的每一个变量。
for i in a.variables:
txt_file.write(i + “:” + str(a.variables[i][:]) +“\n”)
关闭文件
txt_file.close()
每个变量显示完全
全文代码:
# -*- coding: utf-8 -*-
# %%
# Importing related function packages
import netCDF4,numpy
from netCDF4 import Dataset
# data's route
# %%
a = Dataset('D:\pycharm_work\data\scs_etopo.nc')
# %%
# export the variables to current screen
print(a.variables.keys())
# 查看nc文件有些啥东东
print(a)
print('---------------------------------------')
# %%
# 查看nc文件中的变量
print(a.variables.keys())
for i in a.variables.keys():
print(i)
print('---------------------------------------')
# %%
# 查看每个变量的信息
print(a.variables['lat'])
print(a.variables['lon'])
print(a.variables['elevation'])
# %% 将变量信息写入文本txt
# 以写入模式打开txt文本
txt_file = open("variable.txt","w")
# 循环写入nc文件中的每一个变量。
for i in a.variables:
txt_file.write(i + ":" + str(a.variables[i][:]) +"\n")
# 关闭文件
txt_file.close()
# 以写入模式打开txt文本
txt_file = open("variable1.txt","w")
# 循环写入nc文件中的每一个变量。
for variable in a.variables:
# 获取变量的数值
var_value = a.variables[variable][:]
# 将变量的名称和数值对应起来,并输入到txt;
txt_file.write(f"{variable}: {var_value}\n")
# 关闭文件
txt_file.close()
# 03
# 以写入模式打开txt文本
variables = a.variables.keys()
txt_file = open("variable2.txt","w")
# 循环写入nc文件中的每一个变量。
for variable in a.variables:
# 获取变量的数值
var_value = a.variables[variable][:]
# 将变量的名称和数值对应起来,并输入到txt;
txt_file.write('变量名:' + variable + '\n')
txt_file.write('数据:\n')
# 遍历维度
for j in range(var_value.shape[0]):
txt_file.write(str(var_value[j]) + '\n')
txt_file.write('\n')
# 关闭文件
txt_file.close()
a.close()