前言

现在的问题就是 我提出出来的这份数据到底对不对。因为我没有任何的资料可以告诉我,我需要什么数据去做我这个项目的预测。我得到的资料只有一份师兄给的别人的完整代码,里面有一份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)相关推荐

  1. python读取nc文件数据生成专业气象图

    python读取nc文件数据生成专业气象图如色斑图.等值线.风向标,如下图所示: 代码如下: # -*- coding: utf-8 -*- """ Created on ...

  2. File Juicer for Mac(Mac文件数据提取工具)

    File Juicer for mac版是Mac平台上的一款功能强大的文件数据提取工具,这款File Juicer Mac将会帮助您查找和提取,包括图像,视频,音频或文本,支持各种格式的文件,功能强大 ...

  3. matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据

    MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...

  4. MATLAB打开nc文件并读取nc文件数据

    MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...

  5. vue xlsx 导入导出_只需三步vue实现excel文件数据提取并存为json数据

    前言: 以前将excel数据导入到数据库是通过前端,将excel文件上传到后端,通过后端语言进行相应的加工将excel文件中的数据取出并存入数据库:从而实现数据库的存入流程.但是这也带来了一些问题,首 ...

  6. 读取.nc文件数据及可视化

    nc格式的文件广泛应用于大气科学.水文.海洋学.环境模拟.地球物理等诸多领域.这种文件可以存储多维数字矩阵,同时又封装了自描述信息(例如经纬度.高度层.时间等). nc文件的IO接口也很普及,Pyth ...

  7. python:txt写入csv:abaqus二次开发rpy文件数据提取

    问题描述 使用脚本控制abaqus批量构建RVE模型(调用micro mechanics插件)并且使用EasyPBC添加边界约束得到E11与V12结果,完整的所有结果包含在rpy文件中,因此需要将结果 ...

  8. python读取nc文件并转换成csv_使用Python截取nc文件数据保存到CSV文件-Go语言中文社区...

    问题要求: 编写一个函数完成以下任务:截取经度在23°N-40°N,纬度在118°E-131°E范围内各属性不同深度的数据,使用Python中合适的数据结构将截取的数据保存到同名CSV文件中.(nc文 ...

  9. 新版本matlab(2019a之后)csv文件数据提取总结——readtable函数

    filename2='G:\DDS_FFT_TEST\dds_fft_test\iladata2M4096.csv'; 数据格式:f2 = readtable(filename2,'HexType', ...

  10. 利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)

    以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值. ([数据分享]1960-2020年中国1公里分辨率月降水数据集) 一.确定经纬度所在行列号 以92.18E,30.47 ...

最新文章

  1. 不要签字!不要签字!不要签字!最近违法裁员猖獗,这里单独给大家一些应对参考!...
  2. 原创 | 脑机接口不断迎来重大突破,“思想钢印”还会远吗?
  3. ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页
  4. Scala方法定义,方法和函数的区别,将方法转换成函数
  5. 200903阶段一C++
  6. 西北农林科技大学 计算机复试,西北农林科技大学 | 学长学姐考研面试经验谈...
  7. 汇编语言(六)之输出字符的前导后字符
  8. OpenCV 4.0 rc版本发布,扩展计算图Graph API
  9. java.lang.Runtime.availableProcessors返回可用处理器的Java虚拟机的数量
  10. Github图片无法打开的问题解决【2020.07.20更新】
  11. linux内核版本 2.6.39,编译RedHat Linux-2.6.39内核
  12. numpy将所有数据变为0和1_PyTorch 学习笔记(二):张量、变量、数据集的读取、模组、优化、模型的保存和加载...
  13. 查看高通kernel用哪个dsti
  14. ENVI学习总结(二)——基于自带定位信息的几何校正
  15. 一篇文章带你搞懂观察者模式
  16. ASP.NET的gridview设置数据格式DataFormatString(链接)
  17. HDU 2079 选课时间(题目已修改,注意读题)(母函数)
  18. win10默认头像路径
  19. 流媒体技术介绍(中篇)
  20. indexedDB(三)查询(详细)篇

热门文章

  1. sas不能安装独立的java_sas安装问题java platform standard edition runtime environment
  2. linux u盘写保护,用usboot解决u盘写保护
  3. 用USBOOT软件修复U盘
  4. 过来领你的Bug之“缺陷分析“篇
  5. Abaqus2020帮助文件无法搜索问题
  6. Java Se 、JavaEE、JavaME区别
  7. Python实现办公自动化读书笔记——自动化处理Word文档
  8. 在ADS中进行DCR仿真
  9. 三态缓冲器!74系列芯片的型号区别…
  10. 深度学习——常用数据标注工具总结