python读取nii文件_ncl如何批量读取nc文件[通俗易懂]

python读取nii文件_ncl如何批量读取nc文件[通俗易懂]需求分析:研究需要使用到—中国多尺度排放清单模型MEIC中的数据

需求分析:研究需要使用到—中国多尺度排放清单模型MEIC中的数据。下载的MEIC含.xml, .nc以及.asc三种不同类型的文件,如下;.nc以及.asc中的数据理论上相同,但需要验证。
在这里插入图片描述

  1. 数据读取
import xarray as xr
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import os

Dir = '../MEIC/2015/'
file = os.listdir(Dir)
industry_ncfile = [f for f in file if f.endswith('.nc') and f.split('_')[2] == 'industry']
industry_ascfile = [f for f in file if f.endswith('.asc') and f.split('_')[2] == 'industry']

# nc文件的打开结果
xs = xr.open_dataset(Dir + industry_ncfile[0])    # 内含x_range, y_range, spacing, dimension以及z五个参数, 大小为320*200=64000个有效数据
lon = np.arange(xs.x_range[0], xs.x_range[1], xs.spacing[0])
lat = np.arange(xs.y_range[0], xs.y_range[1], xs.spacing[0])
xs.z[xs.z == xs.z.nodata_value] = np.nan   # 将填补值设置为空
xs_data= xs.z.values

# asc文件的打开结果
acs = np.loadtxt(Dir+industry_ascfile[0], skiprows = 6)  # 跳过前六行
acs[acs == -9999] = np.nan

# 验证.nc以及.asc文件保存的内容是否一致
acs = acs.reshape(-1)
print(xs_data[~np.isnan(xs_data)], acs[~np.isnan(acs)].astype('float32'))
print(xs_data[~np.isnan(xs_data)] == acs[~np.isnan(acs)].astype('float32'))
  1. 结果
runfile('G:/3_Atmos/O3_Mapping/read_meic.py', wdir='G:/3_Atmos/O3_Mapping')
[2.2673947e-05 3.2877232e-04 2.5508177e-04 ... 2.5880449e+01 2.6455739e+00
 3.9224476e+01] [2.2673947e-05 3.2877232e-04 2.5508177e-04 ... 2.5880449e+01 2.6455739e+00
 3.9224476e+01]
[ True  True  True ...  True  True  True]

3.总结
        MEIC数据是包含NOX、COX等众多排放数据的一个开源数据。目前的最新版本为MEIC V1.3,含2008-2017逐年的排放数据;其空间范围[10, 60]&[70, 150], 最高空间分辨率为0.25。

今天的文章python读取nii文件_ncl如何批量读取nc文件[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87826.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注