python -- 如何将nc数据中的时间转换为北京时区的时间

news2024/11/26 0:33:46
  • 在nc数据处理时,以ERA5的小时数据为例,使用的时间为UTC,不同时区存在时间上的差异,如何将其转化为北京当地的时间呢?

  • https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation
    在这里插入图片描述

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Aug  7 20:53:05 2023

@author: xpji
"""



import xarray as xr
import numpy as np
import pandas as pd
from datetime import datetime
from dateutil import tz


def convert_time_zone(input_path, output_path, start_time, end_time):
    # 设置时区
    from_zone = tz.gettz('UTC')
    to_zone = tz.gettz('Asia/Shanghai')

    # 打开NetCDF文件
    pre = xr.open_dataset(input_path)

    # 获取时间变量
    time_str = pd.date_range(start=start_time, end=end_time, freq='1H').strftime('%Y-%m-%d %H:%M:%S')

    result = []
    for t in time_str:
        dt = datetime.strptime(t, '%Y-%m-%d %H:%M:%S').replace(tzinfo=from_zone)
        dt = dt.astimezone(to_zone)
        print('原始时间:', t, '北京时间:', dt)
        result.append(dt)

    result_formatted = []
    for dt in result:
        dt_beijing = dt.strftime('%Y-%m-%d %H:%M:%S')
        result_formatted.append(dt_beijing)

    # 将result_formatted转换为与pre数据集的维度相同的DataArray
    time_beijing = xr.DataArray(result_formatted, dims='time')

    # 创建新的数据集
    pre_beijing = pre.copy(deep=True)
    pre_beijing['time'] = time_beijing

    # 保存为新的NetCDF文件
    pre_beijing.to_netcdf(output_path)

    print("数据已保存为:", output_path)


convert_time_zone('./wind_850hpa_hourly.nc', 
                  './wind_850hpa_hourly_beijing.nc', 
                  '2004-06-15 00:00:00', '2004-06-30 18:00:00')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/844886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp 微信小程序 echarts地图 点击显示类目

效果如图: 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题

CMU-CERT内部威胁数据集 r4.2版本介绍

CMU-CERT内部威胁数据集 r4.2版本介绍 一、相关介绍二、CMU-CERT r4.2版本内容三、重大变更 一、相关介绍 “CMU”是卡内基梅隆大学(Carnegie Mellon University)的简称。 “CERT”是卡内基梅隆大学的一个研究中心叫“CERT”,主要研究内部威…

Acwing.876 快速幂求逆元

题目 给定n组ai ,pi,其中p;是质数,求α;模p;的乘法逆元,若逆元不存在则输出impossible。 输入格式 第一行包含整数n。 接下来n行,每行包含一个数组ai, pi,数据保证p;是质数。 输出格式 输出共n行,每组数据输出一…

【C++】哈希开散列 | unordered系列容器的封装

文章目录 一.开散列1. 开散列的概念2. 开散列结构3. Insert 插入4. Find 查找5. Insert 扩容6. Erase 删除7. 析构函数8. 其它函数接口9. 性能测试 二.封装1. 封装内部结构2. 实现接口 三.代器器1. 迭代器的定义2. 常用接口3. 迭代器4. begin()、end()5. find的改动6. 下标访问…

如果您需要高质量的电源模块,不要犹豫,选择YB5011 非隔离AC-DC!

您是否正在寻找高质量的电源模块?我们昱灿电子推荐YB5011 非隔离AC-DC。它具有广泛的输入电压范围和高达90%的高效率。这款电源模块还配备了多种保护功能,如过载和短路保护,确保您的设备始终处于安全状态。不仅如此,YB5011还采用了…

Linux命令200例:whereis用于搜索以及定位二进制文件

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过具体的系统的命令讲解加上鲜…

【从零开始学习JAVA | 第四十一篇】深入JAVA锁机制

目录 前言: 引入: 锁机制: CAS算法: 乐观锁与悲观锁: 总结: 前言: 在多线程编程中,线程之间的协作和资源共享是一个重要的话题。当多个线程同时操作共享数…

windows(iis)服务器部署安装wordpress(php)网站教程

该教程包含iis安装,php安装,mysql安装,php网站部署上线,windows服务部署php网站,只需要这一篇文章就够了。 该教程为iis服务器部署安装wordpress(php)网站教程,同样适用wordpress网站迁移。 配置要求 1、windows服务器安装iis windows服务器安装iis管理器 打开控制面…

最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!

使用Nestjs和Vue3框架技术,持续集成AI能力到系统! 最新版【V2.5.8】更新: 新增 MJ 官方图片重新生成指令功能同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom ou…

2020年09月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题 第1题 Python自带的编程环境是? A:PyScripter B:Spyder C:Notepad D:IDLE 正确的答案是:D Python自带的编程环境是IDLE(Integrated Development and Learning Environment&a…

LVS工作环境配置

一、LVS-DR工作模式配置 模拟环境如下: 1台客户机 1台LVS负载调度器 2台web服务器 1、环境部署 (1)LVS负载调度器 yum install -y ipvsadm # 在LVS负载调度器上进行环境安装 ifconfig ens33:200 192.168.134.200/24 # 配置LVS的VIP…

Synchronized同步锁的优化方法 待完工

Synchronized 和后来出的这个lock锁的区别 在并发编程中,多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。在 JDK1.5 之前,Java 是依靠 Synchronized 关键字实现锁功能来做到这点的。Synchronized 是 JVM 实现的一种内置锁…

【枚举】CF1706 C

有人一道1400写了一个小时 Problem - C - Codeforces 题意: 思路: 首先先去观察样例: 很显然,对于n是奇数的情况,只有一种情况,直接操作偶数位就好了 主要是没搞清楚n是偶数的情况 其实有个小技巧&…

前沿分享-鱼形机器人

可能并不太前沿了,是21年底的新闻了,但是看见了就顺便发一下吧。 大概就是,通过在pH响应型水凝胶中编码不同的膨胀速率而构建了一种环境适应型变形微机器人,让微型机器人直接向癌细胞输送药物从而减轻药物带来副作用。 技术原理是&#xff0c…

第五章 树与二叉树

一、数据结构定义 二叉树的顺序存储结构二叉树的链式存储结构(即二叉链表)(因为有两个指针所以是二叉链表,如果再加一个指向父节点的指针就是三叉链表)typedef struct BTNode{ // BT即Binary Tree,二叉树i…

Reinforcement Learning with Code 【Code 4. DQN】

Reinforcement Learning with Code 【Code 4. DQN】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Reinforcement…

C++笔记之从数组指针到函数数组指针(使用using name和std::function)

C笔记之从数组指针到函数数组指针(使用using name和std::function) 参考笔记: C之指针探究(三):指针数组和数组指针 C之指针探究(十三):函数指针数组 C之指针探究(二):一级指针和一维数组 C之指针探究(十一):函数名的…

HCIP VLAN--Hybrid接口

一、VLAN的特点 1、一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机可以直接进行二层通信;而不同VLAN内的计算机,无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个VLAN内。 …

数字人现身大运会,怎么以动作捕捉技术助推运动与文博相结合

中国移动动感地带数字人橙络络,作为数智体验官以元宇宙的视角,带领观众沉浸式体验大运会,以极具科技和未来的数字人,对外传递大运青春风采,并且数字人橙络络还对大运会的赛事、活动进行了科普、讲解以及表演当地特色才…

Cpp学习——string(2)

目录 ​编辑 容器string中的一些函数 1.capacity() 2.reserve() 3.resize() 4.push_back()与append() 5.find系列函数 容器string中的一些函数 1.capacity() capacity是string当中表示容量大小的函数。但是string开空间时是如何开的呢?现在就来看一下。先写…