Python读取NetCDF(nc)文件详解
1.先决条件:安装netCDF4库
pip install netCDF4
pip install pandas
2.导入相关库
from netCDF4 import Dataset
import pandas as pd
import os
3.写一个读取nc文件的函数
def read_NetCDF_ionPrf(filename):
data = Dataset(filename, 'r') # filename为文件所在路径,权限为只读
MSL_alt = data.variables['MSL_alt'][:] # Mean sea level altitude of perigee point(km)
GEO_lat = data.variables['GEO_lat'][:] # Geographical latitude of perigee point (°)
GEO_lon = data.variables['GEO_lon'][:] # Geographical longitude of perigee point (°)
OCC_azi = data.variables['OCC_azi'][:] # Azimuth angle of occ.plane with respect to earth(°)
TEC_cal = data.variables['TEC_cal'][:] # calibrated occultation TEC below LEO orbit(TECU)
ELEC_dens = data.variables['ELEC_dens'][:] # Election density(el/cm3)
df = pd.DataFrame({
'MSL_alt': MSL_alt,
'GEO_lat': GEO_lat,
'GEO_lon': GEO_lon,
'OCC_azi': OCC_azi,
'TEC_cal': TEC_cal,
'ELEC_dens': ELEC_dens
}, index=pd.RangeIndex(start=1, stop=len(MSL_alt)+1, step=1))
df.to_csv(filename+'.csv') # 读取后保存为csv文件
4.调用函数
directory = 'E:/programme/python/NetCDF/ionPrf/2019.065/' # nc文件路径
for root, dirs, files in os.walk(directory):
for file_name in files:
if file_name.endswith("_nc"): # 寻找路径里的nc文件
file_path = os.path.join(root, file_name) # 获得nc文件路径(包含文件名)
# print(file_path)
read_NetCDF_ionPrf(file_path)
5. 读取结果(csv格式)
6.获取全局属性
hour = data.getncattr('hour')
minute = data.getncattr('minute')
作者:爱吃虾de螃蟹