MeteoInfoLab脚本示例:LaTeX写数学公式

LaTeX是排版常用的语法,科学计算软件中也常用它来写数学公式(比如MatLab, Matplotlib等),MeteoInfo通过调用JMathLaTeX库也可以实现这样的功能。LaTeX的语法介绍可以参考此网页:http://matplotlib.org/users/mathtext.html

下面是两个例子:

脚本程序:

def  f(x, c):
    m1 = sin(2*pi*x)
    m2 = exp(-c*x)
    return m1 * m2

x = linspace(0, 4, 100)
sigma = 0.5
plot(x, f(x, sigma), ‘r‘, linewidth=2)
xlabel(r‘$\rm{time}  \  t$‘, fontsize=16)
ylabel(r‘$\rm{Amplitude} \ f(x)$‘, fontsize=16)
title(r‘$f(x) \ \rm{is \ damping  \ with} \ x$‘, fontsize=16)
text(2.0, 0.5, r‘$f(x) = \rm{sin}(2 \pi  x^2) e^{\sigma x}$‘, fontsize=20)
show()
x = arange(0.01, 1, 0.01)
y = 0.5*log((1-x)/x)
scatter(x,y,s=4,label=r‘$\alpha =\frac{1}{2}\ln(\frac{1-\varepsilon}{\varepsilon })$‘)
xlabel(r‘$\varepsilon$‘,fontsize=20)
ylabel(r‘$\alpha$‘,fontsize=20)
xlim(0,1)
legend()
show()
时间: 2024-10-09 16:33:11

MeteoInfoLab脚本示例:LaTeX写数学公式的相关文章

MeteoInfoLab脚本示例:计算垂直螺旋度

尝试编写MeteoInfoLab脚本计算垂直螺旋度,结果未经验证. 脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uwnd.2011.nc') f_vwnd = addfile('D:/Temp/nc/vwnd.2011.nc') f_omega = addfile('D:/Temp/nc/omega.2011.nc') print 'Calculate vertical helicity...' tidx = 173

MeteoInfoLab脚本示例:FY-3C全球火点HDF数据

FY-3C全球火点HDF数据包含一个FIRES二维变量,第一维是火点数,第二维是一些属性,其中第3.4列分别是火点的纬度和经度.下面的脚本示例读出所有火点经纬度并绘图. 脚本程序: #Add data file fn = 'D:/Temp/hdf/FY3C_VIRRX_GBAL_L2_GFR_MLT_GLL_20150811_POAD_1000M_MS.HDF' f = addfile(fn) #Get data variable v = f['FIRES'] #Get data array d

MeteoInfoLab脚本示例:创建netCDF文件(合并文件)

在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例. 1.创建一个可写入的netCDF文件对象(下面用ncfile表示),用addfile函数,第一个参数是文件名,第二次参数'c'表示创建新的netCDF文件.ncfile = addfile(outfn, 'c') 2.添加维(Dimensions),用ncfile的adddim函数,两个参数分别是维名称和维长度.stn = 26564stdim = ncfil

MeteoInfoLab脚本示例:合并数组

对于全球数据来说,经度要么是-180 - 180,要么是0 - 360,都会存在边界数据不连续的问题.比如0 - 360的数据,怎么得到 -20 - 30度的连续格点数据就是个问题(跨越了数据的经度边界),在MeteoInfoLab中可以用DimArray或MIArray的join函数来将两个数组合并为一个,参数分别是另一个数组和合并的维的序号,比如下面例子中的二维数组(y, x),经度维是第二维(序号为1),也就是说两个数组沿着经度维合并.还需要给合并后的数组的经度维设置新的经度值. 脚本程序

MeteoInfoLab脚本示例:计算水平螺旋度

尝试了用MeteoInfoLab编写计算水平螺旋度的脚本,结果未经验证. 脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uwnd.2011.nc') f_vwnd = addfile('D:/Temp/nc/vwnd.2011.nc') print 'Calculate average wind field from 850 to 600 hpa...' tidx = 173 # Jun 23, 2011 t = f_

MeteoInfoLab脚本示例:AMSR-E卫星数据投影

AMSR-E(http://nsidc.org/data/amsre/index.html)数据中的Land3数据是HDF-EOS4格式,投影是Cylindrical_Equal_Area.这里示例读取数据并投影至等经纬度投影. 脚本程序: #Add data file fn = 'AMSR_E_L3_DailyLand_V06_20091231.hdf' f = addfile(os.path.join('D:/Temp/hdf', fn)) #vname = 'D_Soil_Moisture

MeteoInfoLab脚本示例:多Y轴图

数据范围相差比较大的数据序列进行对比的时候多Y轴图就很重要了.MeteoInfoLab中提供了一个twinx函数来根据已有的坐标系(Axes)生成一个新的Axes,这个命令会使得已有的Axes不绘制右边的Y轴,而新生成的Axes只绘制右边的Y轴.yaxis函数可以对某个Axes的Y轴进行相应的设置,第一个参数是某个Axes的对象,可以设置Y轴的颜色(color)和偏移(shift),对于超过2个Y轴的图形来说第3个Y轴就必须设置偏移以避免压盖. 双Y轴图: 多Y轴图: 脚本程序: ax1 = a

MeteoInfoLab脚本示例:线性拟合

MeteoInfoLab提供一个线性拟合函数linregress,参数是参与拟合的两个数据序列,返回拟合的斜率.截距和相关系数.有了上述拟合参数可以用polyval函数生成拟合数据(直线).然后可以将数据.拟合线.公式等绘图. 脚本程序: fn = os.path.join('D:/KeyData/PMMUL/data/54500_PMMUL_DA.csv') if os.path.exists(fn): print fn tdata = readtable(fn, delimiter=',',

MeteoInfoLab脚本示例:加载地图图层

应用最广泛的的地图数据应该是shape格式,网络上有很多免费下载资源.MeteoInfoLab中读取shape文件的函数是shaperead,参数即文件名,返回数据包含图形和属性信息的图层对象.矢量图层按照图元类型通常分点.线.面三种,都可以通过geoshow函数加入到地图坐标系(Axesm)中.在geoshow函数中可以指定图层的显示的Symbol(颜色等),可以设置facecolor, edgecolor, size等,这种情况下图层的所有图元都会以同一个Symbol来显示.也可以利用图层的