【可定制、转换时间戳】解析nc文件,并保存为csv文件
解析nc文件,并保存为csv文件
- 写在最前面
- 解析nc文件(代码汇总放最后面)
- 读取nc文件
- 获取气象文件中所有变量
- 解析时间
- 解析部分代码汇总
- 写入csv文件
写在最前面
愿称之为:支持私人订制、非常完美的版本
参考:
解析部分参考:
https://blog.csdn.net/qq_40105563/article/details/119871620
时间换算参考:
https://blog.csdn.net/weixin_51015047/article/details/122571396
{不规则时间}:
https://blog.csdn.net/weixin_43646592/article/details/113427937
写入csv文件参考:
https://blog.csdn.net/Cqh__/article/details/109750908
解析nc文件(代码汇总放最后面)
方便后续代码调整
读取nc文件
不清楚原因,xarray库读取有问题,只能用netCDF4库
获取气象文件中所有变量
解析时间
生成的real_time是一个numpy数组,数组中嵌套的是datetime对象
从1800年开始的,网上部分代码是从1900年开始的
将数据转化为字符串形式
注意:由于这个数据都是每个月1日,所以只用保存年/月
格式的数据即可
如果需要保存年/月/日
格式的数据,代码可改成:
data0 = str(real_time[i].year)+"/"+str(real_time[i].month)+str(real_time[i].day)
年月日时分秒,以此类推
解析部分代码汇总
import netCDF4
from netCDF4 import Dataset
dir = r'sst.mnmean.nc' # 替换为自己的nc文件
nc = Dataset(dir)# 获取气象文件中所有变量
vars=nc.variables.keys()#取出各variable的数据看看,数据格式为numpy数组
for var in vars:#读取每个变量的值var_data=nc.variables[var][:].dataprint(var,var_data.shape)time = nc.variables['time'] # 读取时间
real_time = netCDF4.num2date(time,time.units)
print(real_time)#查看一下time的属性
nc.variables['time']time = nc.variables['time'] # 读取时间
real_time = netCDF4.num2date(time,time.units)
print(real_time)print(real_time[0].year,real_time[0].month)
print(str(real_time[0].year)+"/"+str(real_time[0].month))data = []
for i in range(len(real_time)):data0 = str(real_time[i].year)+"/"+str(real_time[i].month)data.append(data0)print(data)
写入csv文件
from netCDF4 import Dataset
import csvnc = Dataset('sst.mnmean.nc')
print(nc.variables.keys())lat = nc.variables['lat'][:]
lon = nc.variables['lon'][:]
sst = nc.variables['sst'][:]time = nc.variables['time'] # 读取时间
# 将时间转化格式:cftime.DatetimeGregorian(1854, 1, 1, 0, 0, 0, 0, has_year_zero=False)
real_time = netCDF4.num2date(time,time.units)
print(real_time)
# 将时间转化格式:['1854/1', '1854/2', '1854/3', '1854/4', '1854/5', '1854/6', '1854/7']
data = []
for i in range(len(real_time)):data0 = str(real_time[i].year)+"/"+str(real_time[i].month)data.append(data0)
print(data)# def getDate(num):
# y = 1801 + num/12
# m = 1 + num % 12
# return "%(year)d-%(month)02d"%{'year':y,'month':m}with open('New_nc v2.0版本.csv', 'a', newline='') as fp:writer = csv.writer(fp, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)writer.writerow(['time', 'lat', 'lon', 'sst'])# 输入经纬度的维数for i in range(len(data)):for j in range(len(lat)):for k in range(len(lon)):if str(sst[i][j][k]) not in '--':writer.writerow([data[i], lat[j], lon[k], sst[ i, j, k]])
完结✿✿ヽ(°▽°)ノ✿
相关文章:
【可定制、转换时间戳】解析nc文件,并保存为csv文件
解析nc文件,并保存为csv文件 写在最前面解析nc文件(代码汇总放最后面)读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面 愿称之为:支持私人订制、非常完美的版本 参考: 解析部分参…...
介绍串行和并行两种通信方式
前言 参考文章: 串行和并行- CSDN搜索 并行传输和串行传输的区别_金陵大掌柜的博客-CSDN博客 串行和并行介绍 (1)串行和并行是计算机领域中两个重要的概念。串行是指在计算机中,任务按照顺序一个一个执行,每个任务执行…...
优化爬虫效率:利用HTTP代理进行并发请求
网络爬虫作为一种自动化数据采集工具,广泛应用于数据挖掘、信息监测等领域。然而,随着互联网的发展和网站的增多,单个爬虫往往无法满足大规模数据采集的需求。为了提高爬虫的效率和性能,我们需要寻找优化方法。本文将介绍一种利用…...
关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径
问题 关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径 解决方法: shell 脚本命令:(配置自定义缓存路径 java-Djava.io.tmpdir ) tmp…...
Android HAL - hidl-gen
1.hidl-gen的使用 hidl-gen 编译器会将 .hal 文件编译成一组 .h 和 .cpp 文件,这些 自动生成的文件用于编译客户端 / 服务端实现链接到的共享库,同 时也可以生成 Android.bp 编译文件。 1.1 生成的文件 HIDL 软件包中自动生成的文件会关联到与该软件…...
CGAL 数值类型
文章目录 一、简介二、内置数值类型三、CGAL提供的数值类型四、GMP提供的数值类型五、LEDA提供的数值类型六、CORE提供的数值类型七、区间运算参考资料一、简介 数字类型必须满足一定的语法和语义要求,这样它们才能在CGAL代码中成功使用。一般来说,它们被认为是一个代数结构概…...
建站系列(六)--- 后端开发语言
目录 相关系列文章前言一、常见后端开发语言二、PHP三、Java四、Python五、Go 相关系列文章 建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— 网络协议 建站系列…...
王道数据结构编程题 查找
二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };递归二分查找 题目描述 写出二分查找的递归算法。初…...
vue 部分知识点总结
计算属性和方法有什么区别,怎么选择? 在编程中,计算属性和方法都是用于处理数据的工具,但它们有一些区别。以下是它们的区别和如何选择的几个因素: 执行方式:计算属性是基于依赖的响应式系统,在…...
谷粒商城----ES篇
一、product-es准备 P128 ES在内存中,所以在检索中优于mysql。ES也支持集群,数据分片存储。 需求: 上架的商品才可以在网站展示。上架的商品需要可以被检索。 分析sku在es中如何存储 商品mapping 分析:商品上架在es中是存s…...
Redis3.2.1如何设置远程连接?允许局域网访问
背景: 电脑A的redis需要开放给电脑B使用,二者处于同一局域网 【后面会补充更详细的踩坑历程,先发出来作为记录】 过程: 在你查了很多方法后,如果还是没有解决, 尝试考虑一下你的redis配置文件是不是修…...
网络原理(二)TCP的可靠传输
网络原理(一)目录 网络原理应用层传输层先说UDP(不可靠传输)重点说明TCP(可靠传输)一、确认应答二、超时重传三、链接管理建立连接断开链接 四、滑动窗口五、流量控制&am…...
Chat GPT 使用教学,文字创作、学习
目录 文章长篇文章学习任何东西文章 大纲、目录、标题、内容 写出10个即将被AI取代的工作的文章标题 当然,以下是一些可能会被AI取代的工作的文章标题:"未来十年,AI将如何改变传统制造业的就业格局?" "智能客服崛起:人工智能如何重塑客户服务行业?"…...
Android之 Canvas绘制
一 Canvas介绍 1.1 Canvas 是绘制图形的重要类之一,它可以在 View 或 SurfaceView 上绘制各种图形和文本. 1.2 要创建 Canvas,首先需要有一个 View 或 SurfaceView 对象,在 View 或 SurfaceView 的绘制方法中,可以通过 Canvas 的…...
Vue + Element UI 前端篇(十五):嵌套外部网页
Vue Element UI 实现权限管理系统 前端篇(十五):嵌套外部网页 嵌套外部网页 在有些时候,我们需要在我们的内容栏主区域显示外部网页。如查看服务端提供的SQL监控页面,接口文档页面等。 这个时候就要求我们的导航菜…...
Jabbi的Rust学习日记(二)
特征: 就目前我学习到的rust知识来看,我认为rust有以下几个特征: 链式调用表达式强类型 use 使用use导入包,我觉得rust的导包和python的很像 main main函数是rust可执行程序最先执行的代码,可以说是程序的入口&…...
【杂】环形时钟配色笔记
配色网站笔记 coolorsflatuicolorscolordrophttps://www.webdesignrankings.com/resources/lolcolors/ 配色2...
会话跟踪技术学习笔记(Cookie+Session)+ HTTP学习笔记
一、核心知识点(重点): 1.1 Cookie 1. Cookie:是一种客户端会话技术,数据会被保存在客户端,Cookie会携带数据访问服务器,用以完成一次会话内多次请求间的数据共享 2. 过程:浏览器…...
分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测
分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测 目录 分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测预测效果基本介绍程序设计参考资料致谢 预测效果 基本介绍 分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网…...
Yarn 和 npm 的区别
Yarn 和 npm 都是 JavaScript 的包管理工具,它们的主要区别在于以下几个方面: 性能:Yarn 的安装速度和包的下载速度通常比 npm 更快,这是因为 Yarn 使用本地缓存和并行下载等技术来提高性能。 可靠性:Yarn 具有更好的…...
第20章 原子操作实验(iTOP-RK3568开发板驱动开发指南 )
在上一章节的实验中,对并发与竞争进行了实验,两个app应用程序之间对共享资源的竞争访问引起了数据传输错误,而在Linux内核中,提供了四种处理并发与竞争的常见方法,分别是原子操作、自旋锁、信号量、互斥体,…...
Android 开机自启动
APP需要开机自启动,要通过开机广播实现。 1,在AndroidManifest.xml中增加权限 <!-- .接收启动完成的广播权限 --><uses-permission android:name"android.permission.RECEIVE_BOOT_COMPLETED" /> 2,在AndroidManifes…...
01_前端css编写的三种方式
前言 CSS的引入方式共有三种:行内样式、内部样式表、外部样式表 一、内联式引入 用法: 在元素上直接通过style属性进行设置css样式设置 示例: <h1 style"color:red;">style属性的应用</h1> <p style"font-si…...
07-垃圾收集算法详解
上一篇:06-JVM对象内存回收机制深度剖析 1.分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各…...
Redis高并发分布式锁实战
高并发场景秒杀抢购超卖bug实战重现 秒杀抢购场景下实战JVM级别锁与分布式锁 大厂分布式锁Resisson框架实战 Lua脚本语言快速入门与使用注意事项 Redisson分布式锁源码剖析 Redis主从架构锁失效问题解析 从CAP角度剖析Redis与Zookeeper分布式锁区别 Redlock分布式锁原理与…...
MybatisPlus分页插件使用
一. 效果展示 二. 代码编写 2.1 pom <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency>2.2 添加配置类 Configuration MapperScan(…...
Linux指令二【进程,权限,文件】
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行 资源分配和调度的一个独立单位,是应用程序运行的载体。 一、进程基本指令 1.ps:当前的用户进程 ps 只显示隶属于自己的进程状态ps -aux 显示所有进程…...
uni-app运行到微信开发者工具-没有打印的情况
前言 到我们进场使用微信开发者工具时,就会发现它经常会有bug,特别是在软件更新,组件库更新之后 最近在更新微信开发者工具之后发现所有打印都不显示了,虽然是小问题-但对于强迫症很烦 以为是代码配置问题-结果是更新之后打印开…...
由前端接口入门学习后端的controller层
由前端接口入门学习后端的controller层 一、简单介绍一下controller层:二、前端调用后端接口时,一般会传递参数给后端,后端的控制层是如何接收的呢?三、更深入地介绍一下关于请求体参数DTO作为入参Map作为入参 本文是以一个前端工…...
HJ71 字符串通配符
Powered by:NEFU AB-IN Link 文章目录 HJ71 字符串通配符题意思路代码 HJ71 字符串通配符 题意 问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。 要求ÿ…...
网站平台建设设备清单/山东济南seo整站优化公司
MXS&Vincene ─╄OvЁ &0000001 ─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好,但是绝大部分人是死在明天晚上,只有那些真正的英雄才能见到后天的太阳。 MXS&…...
wordpress 已安装主题/临沂seo网站管理
同步锁作用: 在我当前包含(lock.acquire() 和 lock.release()之间 )的代码没有执行完成,不进行线程切换,必须等我执行完了,下一个线程才能继续执行(为什么要用同步锁,假如我们同时在操作一个数据的时候,比如数字100,10个线程同时操作他减1的时候,每个线程减10次,我们想要拿到结…...
购物网站怎么做代码/企业文化经典句子
2019独角兽企业重金招聘Python工程师标准>>> https://www.reddit.com/r/rust/comments/3x05j6/does_rust_work_on_arm/ https://github.com/warricksothr/RustBuild 转载于:https://my.oschina.net/innovation/blog/546933...
宝安做网站公司/百度seo按天计费
1、while循环语句 迭代(iteration)意味着反复执行相同的代码块。实现迭代的编程结构称为循环(loop)。 假设有一项任务,要在屏幕上输出从1到100的数字。仅仅使用之前讨论过的知识,可能会写出如下代码: print(1) print(2) print(3) # 此处省略…...
自媒体自助下单网站怎么做/网络推广方式有哪几种
2019独角兽企业重金招聘Python工程师标准>>> 一、 Order deny,allow //先看deny语句 deny from all allow from 127.0.0.1 //先禁止全部,后允许127.0.0.1 二、 Order allow,deny //先看allow语句 deny from all allow from 127.0…...
个人备案网站有什么限制/西安seo推广
只要尽力,努力了,就算失败了,输了,也不要遗憾,也不会遗憾!其实也算成功了!你不努力,不尽力,失败了,输了,那你会遗憾,甚至是终身&#…...