NC文件数据提取完成(1.16)
前言
现在的问题就是 我提出出来的这份数据到底对不对。因为我没有任何的资料可以告诉我,我需要什么数据去做我这个项目的预测。我得到的资料只有一份师兄给的别人的完整代码,里面有一份wave.csv,它里面只有一个variable的数据,但是我不知道他的nc文件是怎样的,里面有什么variable、dimension等,所以我暂时不能判断我的csv能不能顺利用上还是个问题。
但是,总的来说,终于把12月份没做的工作补上了。(12月份因为身体原因请假了)
11月份其实已经完成了这部分的工作,当时有错误是因为我对nc文件还是没有了解清楚。下面我简单讲一下nc文件
ocean_wave_mask_0.25_1979_2019.nc
<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF3_64BIT_OFFSET data model, file format NETCDF3):Conventions: CF-1.6history: 2021-01-24 04:34:50 GMT by grib_to_netcdf-2.16.0: /opt/ecmwf/eccodes/bin/grib_to_netcdf -S param -o /cache/data2/adaptor.mars.internal-1611462662.9284418-14936-7-224dd432-cac8-4772-91ab-b267b1fa790e.nc /cache/tmp/224dd432-cac8-4772-91ab-b267b1fa790e-adaptor.mars.internal-1611462662.9290237-14936-3-tmp.gribdimensions(sizes): longitude(81), latitude(101), time(492)variables(dimensions): float32 longitude(longitude), float32 latitude(latitude), int32 time(time), int16 lsm(time, latitude, longitude), int16 mwd(time, latitude, longitude), int16 mwp(time, latitude, longitude), int16 swh(time, latitude, longitude), int16 shts(time, latitude, longitude), int16 shww(time, latitude, longitude)groups:
可以看到variable有longitude,latitude,time,lsm, mwd, mwp, swh, shts ,shww 9个
维度是:longitude, latitude, time
longitude,latitude,time这三个既是维度也被视为变量。
lsm(time, latitude, longitude), mwd(time, latitude, longitude), mwp(time, latitude, longitude), swh(time, latitude, longitude), shts(time, latitude, longitude),shww(time, latitude, longitude) 这些说明这些变量是三维数组,顺序是time, latitude, longitude
这是我昨晚做出的csv,我当时别人的一个想法把nc文件的数据提出出来转成csv
我也是昨晚睡着睡着突然想起了来自己又走歪了啊哈哈哈哈,我不是要这个shape
但是知道也不错,至少我知道之后得到的csv会很大,就没那么怀疑了
(492, 101, 81)
这是一个 492 x 101 x 81 的数字阵列,还是很庞大的
重新开展我的提取工作,其实就是11月份我做的那份代码,了解清楚文件就可以顺利进行啦。
from netCDF4 import Dataset
import csv
import string
import netCDF4 as nf
import datetimenc = Dataset(r'data/ocean_wave_mask_0.25_1979_2019.nc')
print(nc.variables.keys())time = nc.variables['time'][:]
# 纬度 latitude
# expver = nc.variables['expver'][:] 79-21nc是三维,没有这个维度
# 经度 longitude
latitude = nc.variables['latitude'][:]
# 风速
longitude = nc.variables['longitude'][:]
lsm = nc.variables['lsm'][:]
mwd = nc.variables['mwd'][:]
mwp = nc.variables['mwp'][:]
swh = nc.variables['swh'][:]
shts = nc.variables['shts'][:]
shww = nc.variables['shww'][:]#解析出时间
def getDate(time):arr = nf.num2date(nc.variables['time'][:], 'hours since 1900-01-01 00:00:00.0').datay = arr[0].yearm = arr[0].monthreturn "%(year)d-%(month)02d"%{'year':y,'month':m}print(getDate(time))now_time1 = datetime.datetime.now()
print(now_time1)
with open(fr'{79-19}.csv', 'a', newline='') as fp:#字段名writer = csv.writer(fp, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)# writer.writerow(['time',# 'Land-sea mask',# 'Mean wave direction',# 'Mean wave period',# 'Significant height of combined wind waves and swell',# 'Significant height of total swell',# 'Significant height of wind waves'])writer.writerow(['time','lsm','mwd','mwp','swh','shts','shww'])# 输入经纬度的维数# for i in range(len(time)):# for j in range(len(expver)):# for k in range(len(latitude)):# for r in range(len(longitude)):# if str(lsm[i][j][k][r]) not in '--':# if str(mwd[i][j][k][r]) not in '--':# if str(mwp[i][j][k][r]) not in '--':# if str(swh[i][j][k][r]) not in '--':# if str(shts[i][j][k][r]) not in '--':# if str(shww[i][j][k][r]) not in '--':# writer.writerow([getDate(time[i]),# # expver[j],# # latitude[k],# # longitude[r],# lsm[i, j, k, r],# mwd[i, j, k, r],# mwp[i, j, k, r],# swh[i, j, k, r],# shts[i, j, k, r],# shww[i, j, k, r]# ])for i in range(len(time)):for k in range(len(latitude)):for r in range(len(longitude)):if str(lsm[i][k][r]) not in '--':if str(mwd[i][k][r]) not in '--':if str(mwp[i][k][r]) not in '--':if str(swh[i][k][r]) not in '--':if str(shts[i][k][r]) not in '--':if str(shww[i][k][r]) not in '--':writer.writerow([getDate(time[i]),# expver[j],# latitude[k],# longitude[r],lsm[i, k, r],mwd[i, k, r],mwp[i, k, r],swh[i, k, r],shts[i, k, r],shww[i, k, r]])
now_time2 = datetime.datetime.now()
print(now_time2)
print('yes')
总结
一步一步的走,别想着一飞冲天。
还有就是一定要注意身体,因为你永远不知道明天和意外哪个先来。
NC文件数据提取完成(1.16)相关推荐
- python读取nc文件数据生成专业气象图
python读取nc文件数据生成专业气象图如色斑图.等值线.风向标,如下图所示: 代码如下: # -*- coding: utf-8 -*- """ Created on ...
- File Juicer for Mac(Mac文件数据提取工具)
File Juicer for mac版是Mac平台上的一款功能强大的文件数据提取工具,这款File Juicer Mac将会帮助您查找和提取,包括图像,视频,音频或文本,支持各种格式的文件,功能强大 ...
- matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据
MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...
- MATLAB打开nc文件并读取nc文件数据
MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...
- vue xlsx 导入导出_只需三步vue实现excel文件数据提取并存为json数据
前言: 以前将excel数据导入到数据库是通过前端,将excel文件上传到后端,通过后端语言进行相应的加工将excel文件中的数据取出并存入数据库:从而实现数据库的存入流程.但是这也带来了一些问题,首 ...
- 读取.nc文件数据及可视化
nc格式的文件广泛应用于大气科学.水文.海洋学.环境模拟.地球物理等诸多领域.这种文件可以存储多维数字矩阵,同时又封装了自描述信息(例如经纬度.高度层.时间等). nc文件的IO接口也很普及,Pyth ...
- python:txt写入csv:abaqus二次开发rpy文件数据提取
问题描述 使用脚本控制abaqus批量构建RVE模型(调用micro mechanics插件)并且使用EasyPBC添加边界约束得到E11与V12结果,完整的所有结果包含在rpy文件中,因此需要将结果 ...
- python读取nc文件并转换成csv_使用Python截取nc文件数据保存到CSV文件-Go语言中文社区...
问题要求: 编写一个函数完成以下任务:截取经度在23°N-40°N,纬度在118°E-131°E范围内各属性不同深度的数据,使用Python中合适的数据结构将截取的数据保存到同名CSV文件中.(nc文 ...
- 新版本matlab(2019a之后)csv文件数据提取总结——readtable函数
filename2='G:\DDS_FFT_TEST\dds_fft_test\iladata2M4096.csv'; 数据格式:f2 = readtable(filename2,'HexType', ...
- 利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)
以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值. ([数据分享]1960-2020年中国1公里分辨率月降水数据集) 一.确定经纬度所在行列号 以92.18E,30.47 ...
最新文章
- 不要签字!不要签字!不要签字!最近违法裁员猖獗,这里单独给大家一些应对参考!...
- 原创 | 脑机接口不断迎来重大突破,“思想钢印”还会远吗?
- ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页
- Scala方法定义,方法和函数的区别,将方法转换成函数
- 200903阶段一C++
- 西北农林科技大学 计算机复试,西北农林科技大学 | 学长学姐考研面试经验谈...
- 汇编语言(六)之输出字符的前导后字符
- OpenCV 4.0 rc版本发布,扩展计算图Graph API
- java.lang.Runtime.availableProcessors返回可用处理器的Java虚拟机的数量
- Github图片无法打开的问题解决【2020.07.20更新】
- linux内核版本 2.6.39,编译RedHat Linux-2.6.39内核
- numpy将所有数据变为0和1_PyTorch 学习笔记(二):张量、变量、数据集的读取、模组、优化、模型的保存和加载...
- 查看高通kernel用哪个dsti
- ENVI学习总结(二)——基于自带定位信息的几何校正
- 一篇文章带你搞懂观察者模式
- ASP.NET的gridview设置数据格式DataFormatString(链接)
- HDU 2079 选课时间(题目已修改,注意读题)(母函数)
- win10默认头像路径
- 流媒体技术介绍(中篇)
- indexedDB(三)查询(详细)篇
热门文章
- sas不能安装独立的java_sas安装问题java platform standard edition runtime environment
- linux u盘写保护,用usboot解决u盘写保护
- 用USBOOT软件修复U盘
- 过来领你的Bug之“缺陷分析“篇
- Abaqus2020帮助文件无法搜索问题
- Java Se 、JavaEE、JavaME区别
- Python实现办公自动化读书笔记——自动化处理Word文档
- 在ADS中进行DCR仿真
- 三态缓冲器!74系列芯片的型号区别…
- 深度学习——常用数据标注工具总结