[Tutor] raw_input() slice list
questions anon
questions.anon at gmail.com
Wed Sep 28 05:18:13 CEST 2011
I would like to use user_input() to decide how to slice a list.
This works fine until I try to leave it blank to try and select the whole
list [:]
I have posted the section of interest below and the error I get when I try
to press enter. Further below that is the entire code.
Any feedback will be greatly appreciated.
*
section of code of interest:*
startperiod=int(raw_input("Start slice (e.g. 1 ): "))
endperiod=int(raw_input("End slice (e.g. 2): "))
skipperiod=int(raw_input("skip slice (e.g. 1): "))
if startperiod=="" and endperiod=="" and skipperiod=="":
startperiod=""
endperiod=""
skipperiod=""
for (path, dirs, files) in os.walk(MainFolder):
for dir in dirs:
print dir
path=path+'/'
for ncfile in files:
if ncfile[-3:]=='.nc':
print "dealing with ncfiles:",
path+ncfile
ncfile=os.path.join(path,ncfile)
ncfile=Dataset(ncfile, 'r+', 'NETCDF4')
variable=ncfile.variables[ncvariablename][:]
TIME=ncfile.variables['time'][:]
fillvalue=ncfile.variables[ncvariablename]._FillValue
ncfile.close()
for variable, TIME in
zip((variable[startperiod:endperiod:skipperiod]),(TIME[startperiod:endperiod:skipperiod])):
*the error:*
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
plotrawdata('TSFC')
File "D:\My Dropbox\Python_code\functions.py", line 39, in plotrawdata
startperiod=int(raw_input("Start slice (e.g. 1 ): "))
ValueError: invalid literal for int() with base 10: ''
*THE WHOLE PROGRAM:*
from netCDF4 import Dataset
import numpy as N
import matplotlib.pyplot as plt
from numpy import ma as MA
from mpl_toolkits.basemap import Basemap
from netcdftime import utime
from datetime import datetime
import os
import matplotlib.colors as mc
import matplotlib.colorbar as c
OutputFolder=r"D:/DSE_work/temp_samples2/"
MainFolder=r"D:/DSE_work/temp_samples2/"
def plotrawdata(variable):
if variable=='TSFC':
ncvariablename='T_SFC'
MainFolder=r"D:/DSE_work/temp_samples2/"
ticks=[-5,0,5,10,15,20,25,30,35,40,45,50]
Title='Surface Temperature'
elif variable=='RHSFC':
ncvariablename='RH_SFC'
MainFolder=r"E:/DSE_BushfireClimatologyProject/griddeddatasamples/temp_samples6/"
ticks=[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 101]
Title='Surface RH'
fileforlatlon=Dataset("D:/DSE_work/temp_samples2/2020/01/IDZ00026_VIC_ADFD_T_SFC.nc",
'r+', 'NETCDF4')
LAT=fileforlatlon.variables['latitude'][:]
LON=fileforlatlon.variables['longitude'][:]
startperiod=int(raw_input("Start slice (e.g. 1 ): "))
endperiod=int(raw_input("End slice (e.g. 2): "))
skipperiod=int(raw_input("skip slice (e.g. 1): "))
if startperiod=="" and endperiod=="" and skipperiod=="":
startperiod=str("")
endperiod=str("")
skipperiod=str("")
for (path, dirs, files) in os.walk(MainFolder):
for dir in dirs:
print dir
path=path+'/'
for ncfile in files:
if ncfile[-3:]=='.nc':
print "dealing with ncfiles:",
path+ncfile
ncfile=os.path.join(path,ncfile)
ncfile=Dataset(ncfile, 'r+', 'NETCDF4')
variable=ncfile.variables[ncvariablename][:]
TIME=ncfile.variables['time'][:]
fillvalue=ncfile.variables[ncvariablename]._FillValue
ncfile.close()
for variable, TIME in
zip((variable[startperiod:endperiod:skipperiod]),(TIME[startperiod:endperiod:skipperiod])):
#for variable, TIME in
zip((variable[sliceperiod]),(TIME[sliceperiod])):
cdftime=utime('seconds since
1970-01-01 00:00:00')
ncfiletime=cdftime.num2date(TIME)
print ncfiletime
timestr=str(ncfiletime)
d = datetime.strptime(timestr,
'%Y-%m-%d %H:%M:%S')
date_string =
d.strftime('%Y%m%d_%H%M')
#Set up basemap using mercator
projection
http://matplotlib.sourceforge.net/basemap/doc/html/users/merc.html
map =
Basemap(projection='merc',llcrnrlat=-40,urcrnrlat=-33,
llcrnrlon=139.0,urcrnrlon=151.0,lat_ts=0,resolution='i')
x,y=map(*N.meshgrid(LON,LAT))
map.drawcoastlines(linewidth=0.5)
#map.readshapefile(shapefile1,
'DSE_REGIONS')
map.drawstates()
plt.title(Title+' %s
UTC'%ncfiletime)
CS = map.contourf(x,y,variable,
ticks, cmap=plt.cm.jet)
l,b,w,h =0.1,0.1,0.8,0.8
cax = plt.axes([l+w+0.025, b,
0.025, h], )
cbar=plt.colorbar(CS, cax=cax,
drawedges=True)
#save map as *.png and plot
netcdf file
plt.savefig((os.path.join(OutputFolder,
ncvariablename+date_string+'UTC.png')))
plt.show()
plt.close() # must use
plt.close() so that colorbar works!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110928/6a8b88a2/attachment.html>
More information about the Tutor
mailing list