码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python批量将多年降水的nc数据处理为季节性平均降水量或年降水量


     本代码目的:

    1.批量读取nc降水数据集。

    2.按照季节平均来粗略绘制降水量图。

    3.保存所有处理后的数据集,以备下次精细化绘图。

    原始数据请见美国2013-2021年每日降水的nc数据集资源-CSDN文库

     

    1. ##1.导入需要的库和函数
    2. import xarray as xr
    3. import os
    4. from netCDF4 import Dataset
    5. ##2.指定文件路径,实现批量读取满足条件的文件.(批量读取多个nc文件)
    6. path = r"D:/baseCode/raw/"
    7. #file = os.listdir(path)
    8. #print(file) #输出nc文件列表
    9. ##3.创建一个空的数据集来存储结果
    10. result = xr.DataArray()
    11. ##4.遍历文件夹下的nc文件
    12. for root_dir, sub_dir, files in os.walk(path):
    13. for file in files:
    14. if file.endswith('.nc'):
    15. file_name=os.path.join(root_dir, file)
    16. #print(file_name) #读取nc文件路径
    17. ##5.通过xarray读取nc数据
    18. f1=xr.open_dataset(file_name)
    19. #print(f1)
    20. #print(f1.dims) #返回一个字典类型。维度包括time,lat,lon。
    21. #print(f1.variables) #查看nc文件中的变量。
    22. dims =['time', 'lat', 'lon']
    23. #for dim in dims:
    24. #print('%s:%s' %(dim, f1.dims[dim]))
    25. ##6.读取nc数据中的经纬度和时间以及其他变量
    26. lat=f1.variables['lat'][:]
    27. lon=f1.variables['lon'][:]
    28. time=f1.variables['time'][:]
    29. #print(time.attrs)
    30. #print(time[90:270])
    31. precip=f1['precip']
    32. ##7.计算年降水量
    33. f1_season_sum = precip.groupby('time.year').sum(dim='time')
    34. print(type(f1_season_sum))
    35. #print(f1_season_sum)
    36. ##8.计算季节性降水平均值
    37. f1_season_mean = precip.groupby('time.season').mean(dim='time')
    38. #绘制并导出季节性平均降水量图。
    39. #f1_season_mean.plot(col='season')
    40. #plt.savefig(path+'season_figure.png', dpi=300)
    41. ##9.将计算结果添加到结果数据集中
    42. result = xr.concat([result, f1_season_sum], dim='file')
    43. #print(result) #查阅合并的数据集。
    44. ##10.将结果数据导出到path路径下。
    45. result.to_netcdf(path+'f1_season_sum_eachyear.nc')

  • 相关阅读:
    前后端联调统一校验规则
    GO sync.Map Store、Delete 、Load 、Range等方法使用举例
    【技巧】Leetcode 67. 二进制求和【简单】
    分享一个基于Python和Django的产品销售收入数据分析系统源码
    英语单词同义词辨析
    从零开始写 Docker(十二)---实现 mydocker stop 停止容器
    2022年浙江省中职组“网络空间安全”赛项模块B--Windows渗透测试
    kubernetes之Deployment
    软考高级系统架构设计师系列论文真题四:论高可靠性系统中软件容错技术的应用
    [附源码]java毕业设计同城搬家平台
  • 原文地址:https://blog.csdn.net/A18040554844/article/details/133877164
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号