ncview安装和踩坑
前言
最近在尝试跑WRF,WRF输出的数据想要快速查看画图的话ncview是一个很好的工具。然而在安装ncview的过程中遇到了诸多困难,搞了好几天才终于成功,需要总结一下经验。
安装ncview
ncview是一款linux系统上的软件,他可通过至少一下两种方法安装。
conda 安装
1$ conda install -c conda-forge ncview
apt 安装(需要sudo)
1$ sudo apt-get install ncview
我只试过第一种方法。在使用conda完成后,会出现几个包被自动升级。导致conda出现一些问题,具体报错信息我忘了。当时将报错信息贴到百度里,解决方法就是将那几个包降回原版本就可以了。
配置
安装完成后,需要修改.bashrc,添加
1export DISPLAY=172.16.4.224:0.0
其中172.16.4.224是本地电脑的ip,可通过cmd命令ipconfig查看,IPv4地址那一行显示的就是ip。
.bashrc修改后后记得source .bashrc
在本地电脑中,需要下载安装Xming,安装完成后在Xmi ...
各类网站数据下载
前言
前段时间在各种网站上下载数据,发现不是所有数据都想ERA5,NCEP资料那样用鼠标点击就很容易获取。例如EASE积雪、JRA55,FNL数据等等。在数据下载这方面就费了很大功夫。有必要整理一下,各类网站资料下载的快捷方法,以免重复造轮子
FNL
当初下载这个数据是为了用它启动WRF,参考的教程是 NECP FNL数据批量下载 - 知乎 (zhihu.com)
这个教程说得挺详细,我一遍就成功了。
https://rda.ucar.edu/datasets/ds083.2/index.html#!access 如下,点击Web File Listing
然后:
找到自己需要的年份,我这里需要2019年的数据
勾选需要的数据,然后选择下载方式,这里建议直接选择第一个,下载快还方便(✪ω✪)
最后,把下载到的download.csh文件放到你想要的存放数据的文件夹,打开终端输入指令(Linux系统下)
1./download.csh password(后面跟你的NECP账户密码:我的是A开头,特殊符号结尾的那个)
1如有权限问题(permission),则输入指令chmod 7 ...
一些装机软件
前言
记录一下最近用的一些实用软件,因为这些软件需要配置一些插件才好使。插件多,配置过程繁琐,所以记录一下。
Zotero
zotero-pdf-translate :文献翻译插件,几乎不用怎么额外设置,很实用。支持Zotero7 beta
zotero-tag :标签插件,能够以颜色和标志给文献添加标签。添加文献后能够自动添加 “未读” 标签,打开pdf后自动去除 “未读”。但是目前(2023.9.4)作者还没有支持Zotero7。
zotero-style :能够为Zotero添加更多列,能够将文献标签直接展示在主页面并可以为标签创建分类。实现类似Endnote的 “未读” 粗体和文献评级。支持Zotero7 beta
Obsibian
Obsidian-Typora-Vue-Theme : Obsibian的一款外观主题,仿Typora。我觉得比较好看
obsidian-editing-toolbar :Obsibian不能直接对文本进行高亮、字体颜色等更改。这个插件安装后会出现一个工具栏,能够实现对文本的富文本操作(高亮等)
tag-wrangler :标签管 ...
自定义Python函数
[TOC]
前言
存储一下自己定义的常用函数。
标准化
123def getnorm(array): array = (array - array.mean())/array.std() return array
提取冬季
1234def getDJF(DataArray): mat_w = DataArray.resample(time='QS-DEC').mean() mat_w = mat_w.sel(time=mat_w['time.month'] == 12) return mat_w
线性回归
123456789101112from sklearn.feature_selection import f_regressiondef getReg(mat, sequence): A = np.vstack((sequence, np.ones((1, sequence.shape[0])))).T (a, b, c) = mat.shape mat_rshp = mat.copy().values.re ...
EP通量、能量与eddy通量关系推导
[TOC]
前言
Eliassem-Palm,1961第二章能量通量与eddy通量关系推导整理
参考文献:
Eliassen & Palm. On the transfer of energy in stationary mountain waves. Geofys. Publ. (1961).
扰动方程组
由原始方程组 (绝热、静力平衡、无摩擦)
$$
\begin{align}
&\frac{ {du} }{ {dt} } = - \frac{ {\partial \phi } }{ {\partial x} } + fv\\
&\frac{ {dv} }{ {dt} } = - \frac{ {\partial \phi } }{ {\partial y} } - fu\\
&\frac{ {\partial p} }{ {\partial z} } = - \rho g\\
&\frac{ {\partial u} }{ {\partial x} } + \frac{ {\partial v} }{ {\partial y} } ...
Lorenz 能量循环框架推导
前言
Lorenz大气能量循环框架推导。
参考文献:
Lorenz, E. N. Available Potential Energy and the Maintenance of the General Circulation. Tellus 7, 157–167 (1955).
大气动力学,刘式适、刘式达,第一版和第二版
动力气象学,吕美仲,第一版
有效位能的定义
有效位能是大气全位能与最小全位能之差。
全位能是位能 $P$ 与内能 $I$ 之和,垂直积分结果为
$$
\begin{align}
P + I &= \int_0^{ + \infty } {\rho (gz + {c_v}T)} dz\\
&= \int_0^{ + \infty } { - \frac{ {\partial p} }{ {\partial z} }z} dz + \int_0^{ + \infty } {\rho {c_v}T} dz\\(静力平衡)
&= - \int_{ {p_s} }^0 z dp + \int_0^{ + \infty } {\rho ...
Cartopy 调用"天地图"底图
前言
科研绘图上地图底图一般是白色的,加上海岸线也就成底图。这种做法的好处是如果我们需要向底图上添加等值线、填色图等附有彩色信息的图案或线条,这种信息在白底下更突出。作为可以绘图,这种白底也最简单、严肃。
但是如果我们要画出某个台风的移动路径,偌大的白图上就横躺这几根线条略显单调。这时如果能丰富底图,整张图的效果会有很大提升。
使用这种底图需要调用其他网站的地图接口,让图像叠加在Cartopy的坐标轴内。
Cartopy无网络底图
Cartopy内置了一种底图 ax.stock_img(),不需要利用网络接口。缺点就是分辨率很差。
12345678910111213141516171819202122232425262728293031323334353637383940import matplotlib.pyplot as pltimport cartopy.crs as ccrsfrom cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTERimport pandas as pdimport nump ...
Lanczos 滤波
前言
在使用上一篇讲述的傅里叶滤波作出一些结果后,王老师建议我换一下其他滤波方法试一下。我注意到文献中使用 Lanczos 和 Butterworth 滤波方法较多,所以打算研究一下这类滤波方法。
本文参考的文献有:
《Data Analysis Methods in Physical Oceanography, Third Edition》
《lanczos filtering in one and two dimensions》
《气候变率诊断和预测方法》
Lanczos 滤波
Lanczos滤波的本质是对时间长度为 $N$ 的原时间序列 $x(n)$ 的各个点进行加权,形成新的序列 $y(n)$。即
$$
\begin{equation}
{y_n} = \sum\limits_{k = - M}^M { {w_k} x_{n - k} } {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt ...
傅里叶变换与滤波
前言
在读了王老师的那篇探讨行星波影响冬季风关系的文章后。我也想自己动手计算一下EP通量。论文的计算步骤里有一步是要将各变量进行傅里叶分解,保留1-3波。由于当时不了解傅里叶变换,这一步也就跳过去了。算出来的EP通量始终小了一个量级。我想也许就是因为没做滤波导致的?不管是不是这个原因,我还是决定学习一下傅里叶变换。目前没怎么翻书,看了两篇知乎文章,感觉大致就懂了。
傅里叶变换 (scipy.fft)
如何理解傅里叶变换公式?
如何通俗地解释什么是离散傅里叶变换?
连续傅里叶变换
傅里叶变换的基本思想就是
任何连续信号(周期性或非周期性的)都可以由一组适当的正弦曲线组合而成
假设时间为 $x$ ,每个时间点对应的信号振幅为 $y(x)$。傅里叶级数有如下公式:
$$
\begin{equation}
y(x) = \frac{ { {a_0} } } {2} + \sum\limits_{n = 1}^N { {a_n} } \cos (2\pi fnx) + {b_n}\sin (2\pi fnx)
\end{equation}
$$
这里规定了离散的频率 $2\pi fn$ 。 ...
地图及地图文件使用技巧
前言
记录一下使用地图及地图文件的小技巧吧
地图的合并
bou2_4p.shp 由各个省份的polygon组成。 如何将江苏省和山东省的polygon合并组成一个polygon呢?
1234567891011import geopandas as gpdimport shapely# 读取数据china = gpd.read_file('bou2_4p.shp', encoding='gbk')# 提取江苏和山东的 polygonprovince = china.loc[china.NAME.isin(['江苏省','山东省']), 'geometry']# 合并polygonpolygon_combine = shapely.ops.unary_union(province)
Proplot极地投影画出直线段
今天作图的时候想在地图上取一个剖面,于是想现在图上画出剖面线段。这件事本来在等经纬度投影下是一件很容易的事情,然而我的地图是北极投影,做出来的效果并不是想象中的样子。
1 ...














