晴天一声雷,NCL官网发布重要通告,他们决定不再更新NCL转而向Python发展。WHAT???我刚把NCL用熟了你就跟我说这个。 但做出这种选择确实也是有一定道理的,python在地球科学社区中的
好久没用NCL了,今天上去官网看了一下,发现他们在去年11月份又update了一封给用户的信,愉快地宣布PyNIO和PyNGL统统烂尾啦~~
Python在气象与海洋领域的应用愈发广泛,特别是其拥有众多的第三方库避免了重复造轮子,使得开发速度较快。但是官方提供的Python仅包含了核心的模块和库,为了完成其他任务,所需的第三方模块和库需要另行安装,这个过程往往较为繁琐。
为了帮助大家从NCL迁移到Python,开发者也是想尽了办法啊,最近有发起了新的项目-GeoCAT Examples[1],提供了很多的与NCL网站示例脚本对应的Python脚本,旨在帮助大家从NCL逐步迁移到Python。
NCL是气象和海洋绘图中常用的软件,其专门为处理气象和海洋数据设计,因此在处理两类数据有着较高的效率。同时,随着NCL多个版本的优化,NCL提供了大量优秀的函数,来帮助使用者快速熟悉并使用气象和海洋中常用的统计方法。虽然现在NCL在向python转移,但是短时间内NCL依旧不会过时。
“Hello!大家好哇,欢迎关注“自学气象人”。在这个系列笔记正式开始前呢,我想和大家分享一下作为一个大气科学专业的学子,为什么会选择学习Python。”
在地球科学领域也得到了广泛应用,尤其是地球科学数据处理和可视化方面,比如地球科学数据分析和可视化库Iris,应用于数值模式数据处理的wrf-python,气候数据处理库CDAT以及地球科学可视化库NCL的Python版PyNGL。
曾作为忠实的果粉,对于macOS的喜爱是无可替代的,并不是秀优越,毕竟ThinkPad X1等诸多电脑价格并不比MacBook Pro便宜,抛开硬件层面,苹果生态系统的用户体验确实是行业标杆,给人一种贵的有理由的印象,咬咬牙还是可以搞一台的(疫情原因消费降级也能理解)。但是,近两年“巨硬”Microsoft发力了,将用户体验终于摆放到了合适的位置,把软件和硬件的结合做了大量的优化,再回到Windows上作为日常使用的主力机器,突然发现MacBook Pro她不香了。本文简单地分享一下配置使用的经验,经供参考,愿为各位科研生活提供便利。
作为曾经地球科学领域最炙手可热脚本语言之一的NCL已经进入维护模式,不再更新。NCAR将使用Python作为地球科学领域的主要数据处理和可视化工具。
NCL作为一门高级编程语言,包含了大量函数库,使得编程语法较为简洁方便,这也导致了在处理较大数据时运行速度的下降(Matlab、Python等也有同样的问题)。虽然如此,但是我们还是可以采取一些方法,提高NCL代码的运行效率。
目前,有很多工具可以进行WRF模式后处理,比如NCL,Grads,Python,MATLAB等等,而且每一种语言都有其优势。NCL中有WRF模式后处理的包,可以非常方便的处理WRF模式结果,而近些年Python在气象上的应用也越来越广泛,各种气象相关包也日渐完善。MATLAB在WRF模式后处理方面就显得捉襟见肘了,倒不是MATLAB不适合做WRF模式后处理,而是关于这方面的开源包不多。
Matlab自带颜色图比较单调,很多时候无法达到其它绘图工具,如:NCL、Python matplotlib、GMT等绘图软件颜色图效果。下面就介绍如何将上述丰富的颜色图为己所用,以及自定义颜色图。
conda包管理器可以创建,导出,列出,移除以及更新python环境,而且python环境可以使用不同版本的python,并且安装不同的安装包。在每一个环境之间进行切换称为激活环境。你也可以和别人共享环境文件。
NetCDF文件是自描述的二进制数据格式。所谓自描述就是自带属性信息,这和一般的雷达基数据格式不同,一般的雷达数据也是二进制的,但不是自描述的,而是需要额外的数据格式文档来说明数据格式,而NetCDF文件中包含了描述变量和维度的元数据信息。通常包含以下三个部分:
话说,这篇文章我本来想起个名字叫《如何用Python画子图》,然后我看了一眼公众号后台:
鉴于气象圈中使用matlab的比较多,先说一下使用matlab如何读取 grib2 格式数据。
Panoply是NASA开发的一个软件。支持Windows,Linux和macOS多种操作系统,下图是其操作界面。
排名第一的刘凑华,是我和小宋的学长,所以我们经常亲切地管meteva叫:“老刘的库”
Converts values of type short to values of type float using the "scale" and "offset" attributes (if present).
WRF模式是数值天气预报和大气模拟系统,其开发目的就是用语研究和实际应用。运行WRF模式时,可以利用多种初始场数据来驱动,然后配置好选项之后便可以模拟天气过程(说的好像很简单的样子==)。
下面给大家讲一讲shell编程在数据处理和模式运行中的妙用。主要有三个方面的内容:
NCL-Chinamap GitHub项目地址: https://github.com/huangynj/NCL-Chinamap 本地图数据作者保留著作权和最终解释权,本数据可用于教育,科研等非商业用途,若商业用途请提前与本数据作者联系,经允许后方可使用,如有违反,本数据作者保留权利! 为了表示对贡献者劳动成果的尊重,若使用该地图数据绘图发表论文等,可考虑添加致谢! 中文致谢:感谢中国科学院大气物理研究所黄永杰博士提供的包含正确中国国界 和行政区划的地图数据(https://github.com/huan
首先需要确保xgrads库的安装: pip install xgrads Install from github 或者 git clone https://github.com/miniufo/xgrads.git cd xgrads python setup.py install 链接https://github.com/miniufo/xgrads , 有提供示例ctl和dat文件,下面我们是使用的ctl和grd文件转换的,方法类似: #import sys #sys.path.append('/home/gavin/miniconda3/envs/atmpy/lib/python3.8/site-packages') #sys.path from xgrads import CtlDescriptor, open_CtlDataset ds = open_CtlDataset('lst.ctl') ctl = CtlDescriptor(file='lst.ctl') ds.attrs['pdef' ] = 'None' ds.to_netcdf('lst.nc') data = ds.ro1 data.where(data!=ctl.undef).plot(figsize=(9,5), cmap='jet') 以上需要注意两点: 1.如果在jupyter-lab中无法加载xgrads需要手动添加其路径,使用到的是:import sys 2. xgrads存在bug,如果不添加语句ds.attrs['pdef' ] = 'None'会一直报错,无法生成nc文件!
工欲善其事,必先利其器。充分发挥每个工具的优势可以显著提高我们的工作效率。为了更好的工作和科研,今天给大家介绍一些提高效率的工具。
通常所说的regridding/remaping/interpolation都是将不同网格的数据映射到新的网格。
更改配色方案可需更改参数cmap(colormaps). xarray 绘图模块默认对全正/负数据采用viridis(顺序配色)配色方案,而对含正和负的数据采用RdBu_r(互逆配色). 下面尝试更改上述绘图的配色方案为Spectral.
NCL作为一门气象专业语言,自带了很多气象届常用的算法和命令,比如各种强大的插值函数。
“ Proplot是python画图时常用的库,今天就让我们先来一起认识下它吧!”
在这里,我们介绍一个开源的Python项目,它主要结合matplotlib的绘图实用程序和xarray包的数据管理,并将它们集成到一个可以通过命令行和GUI使用的软件中。
这部分包含的时 wrf-python 模块中的API,如果wrf-python提供的函数不能满足你的需求,你也可以根据已有的API重新编写一个处理函数或是其它的诊断函数。当然,大多数时候我们仅需要wrf-python已经提供的诊断函数和其它可调用函数,可能都不会使用到这些API。
距离上次xarray的更新已经过去两个多星期了...,关于xarray插值方法的介绍官方文档已经给的比较详细了,也有公众号推送过相关文章 xarray指南:插值 基于xarray的气象场站点和格点插值,所以xarray的插值部分就不单独说了。
Jucker M. Scaling of Eliassen‐Palm flux vectors. Atmospheric Science Letters.:e1020.
给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits[i] 来写的数字。例如,如果 digits = ['1','3','5'],我们可以写数字,如 '13', '551', 和 '1351315'。
基于很多同志询问添加经纬度办法,系统性重编了地图的经纬度添加方式。各种投影中以矩形投影PlateCarree最为方便,可以套用matplotlib.mticker的形式。在最新的0.18版本的cartopy中,虽然还不完善,但是终于能直接绘制兰勃脱下的标签了。墨卡托在官网上有示例。
新做的游戏有个排行榜功能,通过cc.resources.loadDir 去加载图片资源头像,生成一个排行榜:
高维数据是一种非常常见的数据类型,其中包含了多种属性。比如:数值模式输出结果通常包含多种物理参量及多个时次,还有一些空间位置信息。尽管高维数据非常常见,但是高维数据的分析一直是个挑战。那么如何才能有效的分析高维数据呢?就此问题,本文主要介绍一些气象领域的高维数据可视化工具。
WPS(WRF Preprocessing System)是为了真实数据模拟提供输入的前处理过程,包含了3个主要程序,分别为:geogrid.exe、ungrib.exe和metgrid.exe。[^1]
CDO提供了一系列查看数据集信息的命令,可以非常方便的查看数据集信息,而不用想使用python,ncl,matlab等编程语言或软件一样,先读文件,然后再获取相关信息,可以通过命令行直接对文件操作,然后将文件信息输出到屏幕,当然也可以重定向到文件或其它接口。
PyAOS(Python for Atmosphere and Ocean Science)是面向大气和海洋科学的Python社区,由Damien Irving博士创建维护,旨在为大气和海洋科学领域的科研人员提供相关的Python资源。
通常情况下,要获取某个区域内的格点数据,如果要求不是很高,直接采取矩形框挑选方法——即锁定所需范围内的经纬度,就能挑选出需要的数据。而对于不规则的范围,数据的匹配精度有一定要求,譬如,需要严格按照某个特定区域的shapefile文件来截取数据。虽然,NCL官网提供了可行的解决方案,但是 shapefile_mask_data(包含在shapefile_utils.ncl中,官网有提供)也仅仅是较好地适用于2维的Lat-Lon数据,对于3维或者更高维度的数据,其处理效率非常低下。所以,针对于这个问题,在实际的操作中我给出了一个快速处理的方案,仅供参考:
脚本略有缺失,完整脚本请购买施宁教授出的《NCL数据处理与绘图实习手册》纸质书籍。版权归施宁教授所有。
WWW 2022已公布录用论文,接收323篇/投稿1822篇,录用率为17.7%,完整录用论文列表见https://www2022.thewebconf.org/accepted-papers/
上次我们说到了如何使用Python处理NetCDF格式文件,这次我们说一下如何使用python处理grib格式数据。
坐在餐馆的用餐者。假设餐厅中有两个桌子。桌子1中的人可能彼此相关,可能是一组家庭成员或同事。
mfc_div_1.ncl: Calculate various divergence and moisture quantities including Vertically Integrated Moisture Flux Convergence (VIMFC). VIMFC has a high correlation with frontal and convective activity. Positive values indicate net precipitation. The following equation is implemented within mfc_div_1.ncl
本节提要:关于一些不常见的colorbar的仿制:弯曲与环形的colorbar、两端分离的colorbar、收缩colorbar的主副刻度、双刻度列colorbar、截取与拼接cmap、外部颜色引入cmaps与palettable库包、特别的格式定制、levels等距而colorbar刻度距离不等距、其他类型的伪colorbar、使刻度侧的框线与colorbar柱体分离。
本文利用对比学习缓解推荐系统中数据稀疏问题,并且利用图方法在对比学习中考虑邻域节点之间的关系。本文提出NCL方法,主要从两方面考虑对比关系,
NetCDF(Network Common Data Form)是一种科学二进制数据格式,由UCAR负责开发和维护netCDF软件,主要用于存储多维科学数据。在地球科学领域使用较为广泛,大多数数值模式,卫星,雷达等数据格式通常为NetCDF格式。
领取专属 10元无门槛券
手把手带您无忧上云