我正在尝试自动化一些数据以在python中绘图。我有一个BASH脚本将文件移动到正确的目录,然后调用以下脚本:
python /discover/nobackup/projects/giss/exec/plotcek.py
plotcek.py脚本包含以下内容:
#!/bin/python
import glob
import plot_checkaij
from plot_checkaij import plot_checkaij
import plot_checktaij
from plot_checktaij import plot_checktaij
run=glob.glob('JUN*.aijE*.nc')
if not run: pass
else:
plot_checkaij(run[0])
run=glob.glob('DEC*.aijE*.nc')
if not run: pass
else:
plot_checkaij(run[0])
run=glob.glob('JUN*.taijE*.nc')
if not run: pass
else:
plot_checktaij(run[0])
run=glob.glob('DEC*.taijE*.nc')
if not run: pass
else:
plot_checktaij(run[0])
这个脚本基本上会在当前文件夹中查找与语法匹配的文件,例如'JUN * .aijE * .NC'。如果文件存在,则调用并操作函数
plot_checkaij(run[0]),
如果没有,它会转到下一个“if”语句。我遇到的问题是plotcek.py脚本没有正确调用该函数。
当我执行BASH脚本时,我实际得到的是:
def plot_checkaij(run):
打印到屏幕上,而不是运行该功能。
当我手动进入python并通过将其复制到命令行来运行脚本时,一切都正常运行。从plotcek.py脚本调用函数时,我遇到了问题。
我是编程新手,我非常接近于让这个脚本正常工作,但我无法发现这个最后的小错误!
我很感激任何帮助!的由于 !!
P.S。我不确定它是否有帮助,但这里是plot_checkaij函数代码:
def plot_checkaij(run):
import netCDF4
from netCDF4 import Dataset
from pylab import *
ncfile=Dataset(run,'r')
temp=ncfile.variables['tsurf'][:,:]
prec=ncfile.variables['prec'][:,:]
sst=ncfile.variables['sst'][:,:]
lat=ncfile.variables['lat'][:]
lon=ncfile.variables['lon'][:]
subplot(3,1,1)
pcolor(lon,lat,temp)
#xlim([-180,180])
#ylim([-90,90])
subplot(3,1,2)
pcolor(lon,lat,prec)
#xlim([-180,180])
#ylim([-90,90])
subplot(3,1,3)
pcolor(lon,lat,sst,vmin=-5,vmax=30)
#xlim([-180,180])
#ylim([-90,90])
savefig(run+".png",optimize=True,quality=85)
quit()