# -*- coding: utf-8 -*-
"""
Created on Tue Apr 21 11:53:20 2020
@author: hp
"""
import pandas
from netCDF4 import Dataset as ne
import numpy as np
import csv
import glob
import sys
from netCDF4 import Dataset
import matplotlib.pyplot as plt
import numpy as np
from netCDF4 import date2index
from netCDF4 import num2date, date2num
from datetime import datetime
from matplotlib import dates
import os
import netCDF4
import netCDF4 as nc
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
def to_csv(source_file):
#读取nc数据
nc_obj=Dataset("G:\merra\Merra2\MERRA2_400.tavgU_2d_aer_Nx.202001.nc4.nc4")
print(nc_obj.variables.keys())
#获取相应数组集合--纬度经度温度深度
duext_set = nc_obj.variables['DUEXTTAU'][:]
bcang_set = nc_obj.variables['BCANGSTR'][:]
ocan_set = nc_obj.variables['OCANGSTR'][:]
totext_set = nc_obj.variables['TOTEXTTAU'][:]
totan_set = nc_obj.variables['TOTANGSTR'][:]
duan_set = nc_obj.variables['DUANGSTR'][:]
bcext_set = nc_obj.variables['BCEXTTAU'][:]
ocext_set = nc_obj.variables['OCEXTTAU'][:]
time_set = nc_obj.variables['time'][:]
lat_set = nc_obj.variables['lat'][:]
lon_set = nc_obj.variables['lon'][:]
#文件名不含扩展名
source_file=source_file.split('.')
file_name=source_file[0]
#创建csv目标文件
try:
#打开目标csv文件
with open(file_name+'.csv','a',newline='') as targetFile:
# 创建写入流
writer = csv.writer(targetFile)
# 写入表头
writer.writerow(['lat', 'lon', 'time','DUEXTTAU','BCANGSTR','OCANGSTR','TOTEXTTAU','TOTANGSTR','DUANGSTR','BCEXTTAU','OCEXTTAU'])
# 写入数据
for i in range(len(time_set)):
for j in range(len(lat_set)): # j为纬度
for k in range(len(lon_set)): # k为经度
if lat_set[j] == 40:
if lon_set[k] == 116.25:
writer.writerow([time_set[i],lat_set[j],lon_set[k],duext_set[i][j][k],bcang_set[i][j][k],ocan_set[i][j][k],totext_set[i][j][k],totan_set[i][j][k],duan_set[i][j][k],bcext_set[i][j][k],ocext_set[i][j][k]])
targetFile.close()#关闭文件
print('Get'+file_name+'.csv Success!')
except Exception as e:#抛异常
print('Error :'+str(e))
if '__name__ ==__main__':
print("start transfrom!")
to_csv('200101beijing.nc')
print('Transform successfully')