首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MeteoAI

    背向NCL,面向对象

    首先这不是一篇告诉你如何抛弃NCL的推送,而是告诉你如何更好的使用Python! 作为曾经地球科学领域最炙手可热脚本语言之一的NCL已经进入维护模式,不再更新。 NCAR对NCL进行了“封装”,构成了PyNGL和PyNIO,随后可能还会开发一款工具,囊括NCL中大多数函数。 PyNGL和PyNIO中的函数和绘图方式与NCL是非常类似的,可以非常顺畅的从NCL转到Python。 既然已经从NCL转到Python了,那么为什么一定要执着于PyNGL和PyNIO呢,今天就抛开PyNGL和PyNIO,介绍Python中其他常用库,实现真正的跨平台切换。 matlab及其他版本•colorcet,palettable,colour:提供了很多可选的colormap•colormap:提供了一些颜色转换基础操作和创建colormap的函数•cmaps:提供了NCL

    2.9K32发布于 2019-07-24
  • 来自专栏MeteoAI

    告别NCL 拥抱Python

    晴天一声雷,NCL官网发布重要通告,他们决定不再更新NCL转而向Python发展。WHAT???我刚把NCL用熟了你就跟我说这个。 现在python不但可以替代NCL而且还能提供很多NCL不具备的功能。 NCL to Python NCL的功能在python中转为了PyNIO和PyNGL这两个库: 1.PyNIO使用了NetCDF的接口用来读写各种类型的数据,包括NetCDF、GRIB、HDF等。 不过幸运的是NCL团队很贴心的给出了NCL向Python过渡的指导手册(NCL-to-Python Transition Guide),链接在文末。 PyNGL的参数设置跟NCL绘图的指令很像,但确实还是有一些区别。最主要的问题就是PyNGL对数据的适配不如NCL中gsn_csm命令好。

    7.3K62发布于 2019-07-24
  • 来自专栏好奇心Log

    NCL专辑 | 提高NCL代码的运行效率的各种方法

    1、尽量少用循环 NCL在做循环时特别费时间,这就需要我们在设计代码逻辑时尽量减少循环,对于循环,能合并的就合并,还有可以多用一些NCL的隐藏技能。 NCL要高的多,可以利用shell脚本来写循环。 尤其是需要循环读取多个很大的文件时,即使在NCL脚本中删除了这些文件的变量名,但是NCL并不会释放这些文件,它们还会占用大量的内存,造成运算效率低下。 中的getenv函数读取 ncl test.ncl done 假设这里是要对每个文件中的变量var算平均值,那么test.ncl脚本如下: begin filedirectory = getenv 7、用NCL调用Fortran程序 用NCL调用Fortran程序,需要使用wrapi脚本来将Fortran程序编译成共享对象,从而使NCL可以用external来调用该共享对象。

    5.2K40发布于 2020-12-22
  • 来自专栏气象学家

    NCL 绘图示例(十):栅格图

    有任何问题都欢迎交流探讨,共同学习进步!

    2.1K20发布于 2020-02-17
  • 来自专栏好奇心Log

    如何在Windows下使用NCL

    同时,随着NCL多个版本的优化,NCL提供了大量优秀的函数,来帮助使用者快速熟悉并使用气象和海洋中常用的统计方法。虽然现在NCL在向python转移,但是短时间内NCL依旧不会过时。 NCL主要是在Linux系统下运行。 NCL版本较为落后,目前版本可能为6.4.0(最新版本为6.6.2) sudo apt install ncl-ncarg 方法二 下载NCL6.6.0的安装包后直接解压缩。 退出WSL界面重启,输入ncl,若出现下图则表示成功。 在Windows下运行的NCL你可以随时找到他的目录,如果一个版本在绘图或者计算的时候存在bug,你可以直接对NCL的文件进行替换,方便快捷。

    4.8K31发布于 2020-10-15
  • 来自专栏气象杂货铺

    网格气象场插值-NCL

    两图中红色均表示rectilinear网格,左图黑色四边形表示curvilinear网格,右图黑色多边形表示unstructured网格 Regridding步骤 在NCL中实现上述网格映射主要采用的是 0 = "y" ;-- name dimension 0 (default: ncl0) var_regrid! NCL_Advanced_regrid_rectilin_to_curvilin_bilin_wgts_ESMF.ncl" fileattdef(fout,fAtt) ;-- copy file attributes NCL_Advanced_regrid_curvilin_to_rectilin_bilin_weights_ESMF.ncl" fileattdef(fout,fAtt) ;-- copy file NCL_Advanced_regrid_unstruct_to_rectilin_bilinear_wgts_ESMF.ncl" fileattdef(fout,fAtt) ;-- copy file

    6.5K53发布于 2020-04-21
  • 来自专栏好奇心Log

    NCL专辑 | 常用插值函数集锦

    NCL作为一门气象专业语言,自带了很多气象届常用的算法和命令,比如各种强大的插值函数。 平时,我们不管做科研也好,还是做业务也好,都逃不了各种各样的插值:站点插到格点上,格点插到站点上,高分辨率插值到低分辨率格点,低分辨率插值到高分辨率,还有各种模式输出产品往站点、格点上插……NCL没出来之前 后来有了NCL,导师再也不怕你因为插值而卡在那里一个月没有任何进展啦!(然而NCL停更了耶。。) 好啦,现在让我们一起快乐地插值吧! ? NCL的插值函数都在ngmath库(该库是Fortran、C语言、NCL可直接调用的数学命令的集合)中。 根据插值方法的不同,NCL的插值函数主要可以分为以下几类: csagrid系列:该系列函数利用一个三次样条近似演算法来拟合输入数据的函数。

    5.1K21发布于 2021-02-19
  • 来自专栏好奇心Log

    NCAR的烂尾项目——NCL与PyNIO

    NCL官网真是不写信则已,一写就是分手信啊。。 NCAR宣布已有的NCL、PyNIO和PyNGL都进入维护模式。 NCL: NCL处于维护模式。 记得NCL宣布全力开发PyNIO和PyNGL,是在2019年1月,而且他们当时还煞有介事地发布了时间节点。 具体可以见我以下两篇旧文: 如何优雅地告别NCL NCL投入Python怀抱的路线图与时间表 谁能想到,这才短短一年多的时间,这两个气象界万众瞩目的包,就烂尾了 ? 放弃了独立性的NCL,在Python的框架下能走多远?

    2.6K40发布于 2021-05-08
  • 来自专栏气象学家

    NCL 绘图示例(七):组图

    有任何问题都欢迎交流探讨,共同学习进步!

    4.7K21发布于 2020-02-17
  • 来自专栏气象学家

    NCL绘图示例(五):卫星投影图

    有任何问题都欢迎交流探讨,共同学习进步!

    1.4K31发布于 2020-02-17
  • 来自专栏气象杂货铺

    NCL转Python示例脚本集合

    为了帮助大家从NCL迁移到Python,开发者也是想尽了办法啊,最近有发起了新的项目-GeoCAT Examples[1],提供了很多的与NCL网站示例脚本对应的Python脚本,旨在帮助大家从NCL逐步迁移到 在提供了的很多Python绘图示例脚本中,目前尚存在不足的是NCL中curly vector图的绘制。如下图所示: ? 左为Python绘制,右为NCL绘制. 左图为截图. 可见,matplotlib所绘制的quiver图,矢量箭头没有NCL的流线型,但这个问题后面可能会通过matplotlib上游贡献解决。 其余的图python基本都能够很容易的实现。 左为Python,右为NCL绘制 附: 官方提供的图片大小不一致,为了将Python和NCL的图片进行拼接,本文处理图片用到了ImageMagic的两个命令: •identify:获取图片的尺寸信息•convert :改变图片尺寸,并进行图片拼接 使用如下命令分别获取Python和NCL绘制的图的图片尺寸 identify xy_18_lg.png xy_18_lg.png PNG 700x472 826x827+

    2.2K10发布于 2020-04-21
  • 来自专栏好奇心Log

    NCL专辑 | 合成分析——厄尔尼诺年的环流合成

    脚本主要内容: NetCDF数据读取 计算和存储 等值线、矢量箭头、图层叠加 脚本略有缺失,完整脚本请购买施宁教授出的《NCL数据处理与绘图实习手册》纸质书籍。版权归施宁教授所有。 代码: load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm /gsn_csm.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" load "$NCARG_ROOT/lib/ncarg /nclscripts/csm/shea_util.ncl" begin year=ispan(1979,2013,1) ; 79/80 - 13/14 it_s=197912 ;起始年月 it_e plot-comp-enso") gsn_define_colormap(wks,"rainbow+gray") ; 调用rainbow+gray色板,,其它色板名称请查阅http://www.ncl.ucar.edu

    3.3K11发布于 2020-12-22
  • 来自专栏气象学家

    NCL 绘图示例(九):垂直剖面图

    有任何问题都欢迎交流探讨,共同学习进步!

    4.8K31发布于 2020-02-17
  • 来自专栏气象学家

    NCL绘图示例(四):兰伯特投影图

    有任何问题都欢迎交流探讨,共同学习进步!

    2.7K21发布于 2020-02-17
  • 来自专栏好奇心Log

    关于滤波和NCL的filwgts_lanczos函数

    NCL中的filwgts_lanczos函数 对于滤波,首先需要构造滤波器,根据需要分为三种:高通滤波器,低通滤波器以及带通滤波器。 NCL提供了filwgts_lanczos函数来构造Lanczos滤波器,其参数总共有nWgt, ihp, fca, fcb, sigma这五个,参数含义取值参见下方或官网函数说明。

    4.6K43发布于 2021-05-28
  • 来自专栏气象学家

    NCL 绘图示例(八):风场矢量图

    有任何问题都欢迎交流探讨,共同学习进步!

    6.3K31发布于 2020-02-17
  • 来自专栏好奇心Log

    构建适合大气与海洋应用的Anaconda环境

    4 使用从conda搭建NCL环境 气象和海洋领域中,NCL也是较为常用的语言,其出图较为精美,且官网提供众多现成的脚本。 但是官方不再继续更新维护,NCL与较新版本系统的glibc库等不兼容,因此在较新版本的linux系统中无法安装(如ubuntu20.04)。 需要继续使用的,可以通过conda构建NCL环境,方便又快捷。 -n ncl_stable -c conda-forge ncl source activate ncl_stable conda update -n ncl_stable -c conda-forge --all # 安装成功后使用 source activate ncl_stable ncl plot.ncl 参考: http://www.ncl.ucar.edu/Download/conda.shtml

    1.5K20发布于 2021-08-26
  • 来自专栏气象学家

    经典回顾 | NCL上准确绘制中国国界、台湾岛屿、南海诸岛及省界等

    NCL-Chinamap GitHub项目地址: https://github.com/huangynj/NCL-Chinamap 本地图数据作者保留著作权和最终解释权,本数据可用于教育,科研等非商业用途 method=result100W ),对原NCL的中国地图数据进行修正,从而能够绘制正确的国界、中国台湾岛屿、南海诸岛及省界等。 测试成功的 NCL 版本有:6.1.2, 6.2.0, 6.2.1, 6.3.0, 6.4.0, 6.5.0, 6.6.2. 下载完成后可以直接运行提供的例子脚本进行测试: ncl plot_with_correct_Chinamap.ncl 使用修正的地图数据关键属性是: res@mpDataSetName 详细可以参考提供的例子:plot_with_correct_Chinamap.ncl

    7.2K63编辑于 2022-01-18
  • 来自专栏气象学家

    NCL高效快速精准提取不规则区域内的格点数据

    虽然,NCL官网提供了可行的解决方案,但是 shapefile_mask_data(包含在shapefile_utils.ncl中,官网有提供)也仅仅是较好地适用于2维的Lat-Lon数据,对于3维或者更高维度的数据 /shapefile_utils.ncl" 2 3 yearn = 14 ; 1996-2009 4 leadn = 30 ; days 5 pentadn = 6

    7.5K30发布于 2020-04-13
  • 来自专栏气象学家

    NCL绘图示例(六):中国区域内的站点(客观分析)图

    有任何问题都欢迎交流探讨,共同学习进步!

    3.1K32发布于 2020-02-17
领券