def redirect_month(request): #try: methodtype=request.matchdict['accesstype'] methodkey=request.matchdict['access'] try: mylib=HSRLImageArchiveLibrarian(**{methodtype:methodkey}) except RuntimeError: return HTTPNotFound(methodtype + "-" + methodkey + " is invalid") # return HTTPTemporaryRedirect(location=request.route_path("home")) if 'thumbtype' in request.matchdict and request.matchdict['thumbtype']!='all': subtypekey=request.matchdict['thumbtype'] else: subtypekey=None nowtime=datetime.utcnow() if 'year' in request.matchdict: yearno=int(request.matchdict['year']) else: yearno=nowtime.year if 'month' in request.matchdict: monthno=int(request.matchdict['month']) else: monthno=nowtime.month if 'day' in request.matchdict: dayno=int(request.matchdict['day']) elif monthno==nowtime.month and yearno==nowtime.year and subtypekey==None: dayno=nowtime.day else: dayno=1 d=validdate(yearno,monthno,dayno,0,0) besttime=mylib.validClosestTime(d) return HTTPTemporaryRedirect(location=monthurlfor(request,methodtype,methodkey,subtypekey,besttime))
def redirect_month(request): #try: methodtype = request.matchdict['accesstype'] methodkey = request.matchdict['access'] try: mylib = HSRLImageArchiveLibrarian(**{methodtype: methodkey}) except RuntimeError: return HTTPNotFound(methodtype + "-" + methodkey + " is invalid") # return HTTPTemporaryRedirect(location=request.route_path("home")) if 'thumbtype' in request.matchdict and request.matchdict[ 'thumbtype'] != 'all': subtypekey = request.matchdict['thumbtype'] else: subtypekey = None nowtime = datetime.utcnow() if 'year' in request.matchdict: yearno = int(request.matchdict['year']) else: yearno = nowtime.year if 'month' in request.matchdict: monthno = int(request.matchdict['month']) else: monthno = nowtime.month if 'day' in request.matchdict: dayno = int(request.matchdict['day']) elif monthno == nowtime.month and yearno == nowtime.year and subtypekey == None: dayno = nowtime.day else: dayno = 1 d = validdate(yearno, monthno, dayno, 0, 0) besttime = mylib.validClosestTime(d) return HTTPTemporaryRedirect(location=monthurlfor( request, methodtype, methodkey, subtypekey, besttime))
def select_day(request): try: if not ('year' in request.params and 'month' in request.params and 'day' in request.params and 'hour' in request.params): return HTTPTemporaryRedirect(location=request.route_path('today', accesstype=request.params.getone('accessby'), access=request.params.getone('accessto'))) selected=validdate(int(request.params.getone('year')),int(request.params.getone('month')),int(request.params.getone('day')),int(request.params.getone('hour'))) return HTTPTemporaryRedirect(location=monthurlfor(request, request.params.getone('accessby'), request.params.getone('accessto'), selected)) except: return HTTPTemporaryRedirect(location=request.route_path('home'))
def select_month(request): try: if not ('year' in request.params and 'month' in request.params): return HTTPTemporaryRedirect(location=request.route_path('thumb', accesstype=request.params.getone('accessby'), access=request.params.getone('accessto'), thumbtype=request.params.getone('type'))) selected=validdate(int(request.params.getone('year')),int(request.params.getone('month'))) if 'day' in request.params: selected += timedelta(days=int(request.params.getone('day'))-1) return HTTPTemporaryRedirect(location=monthurlfor(request, request.params.getone('accessby'), request.params.getone('accessto'), request.params.getone('type'), selected)) except: return HTTPTemporaryRedirect(location=request.route_path("home"))
def select_day(request): try: if not ('year' in request.params and 'month' in request.params and 'day' in request.params and 'hour' in request.params): return HTTPTemporaryRedirect(location=request.route_path( 'today', accesstype=request.params.getone('accessby'), access=request.params.getone('accessto'))) selected = validdate(int(request.params.getone('year')), int(request.params.getone('month')), int(request.params.getone('day')), int(request.params.getone('hour'))) return HTTPTemporaryRedirect( location=monthurlfor(request, request.params.getone('accessby'), request.params.getone('accessto'), selected)) except: return HTTPTemporaryRedirect(location=request.route_path('home'))
def select_month(request): try: if not ('year' in request.params and 'month' in request.params): return HTTPTemporaryRedirect(location=request.route_path( 'thumb', accesstype=request.params.getone('accessby'), access=request.params.getone('accessto'), thumbtype=request.params.getone('type'))) selected = validdate(int(request.params.getone('year')), int(request.params.getone('month'))) if 'day' in request.params: selected += timedelta(days=int(request.params.getone('day')) - 1) return HTTPTemporaryRedirect( location=monthurlfor(request, request.params.getone('accessby'), request.params.getone('accessto'), request.params.getone('type'), selected)) except: return HTTPTemporaryRedirect(location=request.route_path("home"))
def form_view(request): #print 'URLREQ: ',request.matched_route.name methodtype = request.matchdict['accesstype'] methodkey = request.matchdict['access'] try: mylib = HSRLImageArchiveLibrarian(**{methodtype: methodkey}) except RuntimeError: return HTTPNotFound(methodtype + "-" + methodkey + " is invalid") # return HTTPTemporaryRedirect(location=request.route_path("home")) st = mylib() instruments = st['Instruments'] instcount = len(instruments) name = st['Name'] datasets = [] for inst in instruments: datasets.extend(lib.instrument(inst)['datasets']) try: starttime = validdate(int(request.params.getone('byr')), int(request.params.getone('bmo')), int(request.params.getone('bdy')), int(request.params.getone('bhr')), int(request.params.getone('bmn'))) endtime = validdate(int(request.params.getone('eyr')), int(request.params.getone('emo')), int(request.params.getone('edy')), int(request.params.getone('ehr')), int(request.params.getone('emn'))) maxalt = float(request.params.getone('maxalt')) minalt = float(request.params.getone('minalt')) except: #print 'fallback' #print request.POST #print request.GET minalt = 0 maxalt = 15 lasttime = mylib.validClosestTime(datetime.utcnow()) endtime = validdate(lasttime.year, lasttime.month, lasttime.day, lasttime.hour, lasttime.minute - (lasttime.minute % 5)) starttime = validdate(endtime.year, endtime.month, endtime.day, endtime.hour - 2, endtime.minute) oldformparmsdict = { methodtype: methodkey, 'forcematlab': 'yes', 'byr': '%i' % starttime.year, 'bmo': '%i' % starttime.month, 'bdy': '%i' % starttime.day, 'bhr': '%i' % starttime.hour, 'bmn': '%i' % starttime.minute, 'eyr': '%i' % endtime.year, 'emo': '%i' % endtime.month, 'edy': '%i' % endtime.day, 'ehr': '%i' % endtime.hour, 'emn': '%i' % endtime.minute, 'minalt': '%i' % minalt, 'maxalt': '%i' % maxalt } oldformparams = '&'.join( (k + '=' + oldformparmsdict[k]) for k in oldformparmsdict.keys()) #print oldformparams if request.matched_route.name == 'netcdfgen': oldurl = "http://lidar.ssec.wisc.edu/cgi-bin/processeddata/retrievedata.cgi?%s" % ( oldformparams) if request.matched_route.name == 'imagegen': oldurl = "http://lidar.ssec.wisc.edu/cgi-bin/ahsrldisplay/requestfigs.cgi?%s" % ( oldformparams) if False: #instcount>3 :#more than just HSRL. python doesn't support it yet return HTTPTemporaryRedirect(location=oldurl) #print request # used in both forms, but simplifies template alts = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 25, 30] #in kilometers # these are only used in netcdf, and not form-configurable. this simplifies the template altres = 30 timeres = 30 altresvals = [ 7.5, 15, 30, 45, 60, 75, 90, 120, 150, 300, 450, 600, 900, 1200 ] # in meters timeresvals = [ 2.5, 5, 10, 15, 30, 60, 120, 180, 240, 300, 600, 900, 1200, 3600, 43200 ] # in seconds #print instruments hosttouse = None porttouse = None if "X-Forwarded-Host" in request.headers: hosttouse = request.headers['X-Forwarded-Host'] porttouse = '' return { 'project': 'Picnic', 'bdate': starttime, 'edate': endtime, 'calendar': calendar, 'timedelta': timedelta, 'datetime': datetime, 'altrange': [minalt, maxalt], 'alts': alts, 'timeresvals': timeresvals, 'altresvals': altresvals, 'timeres': timeres, 'altres': altres, 'imagesets': jsgen.formsetsForInstruments(datasets, 'images'), 'netcdfsets': jsgen.formsetsForInstruments(datasets, 'netcdf'), 'datasets': datasets, 'method': methodtype, methodtype: methodkey, 'oldurl': oldurl, 'netcdfdestinationurl': request.route_url('netcdfreq', _host=hosttouse, _port=porttouse), 'imagedestinationurl': request.route_url('imagereq', _host=hosttouse, _port=porttouse), 'cdltemplates': { "hsrl_nomenclature.cdl": "UW HSRL(NetCDF4)", "hsrl_cfradial.cdl": "NCAR CFRadial", "hsrl3_processed.cdl": "UW Processed (NetCDF3)", "hsrl3_raw.cdl": "UW Raw (NetCDF3)", "custom": "User Provided:" }, 'cdltemplateorder': [ "hsrl_nomenclature.cdl", "hsrl_cfradial.cdl", "hsrl3_processed.cdl", "hsrl3_raw.cdl", "custom" ], 'userTracking': picnicsession.haveUserTracking(), #'usercheckurl':request.route_path('userCheck'),#'http://lidar.ssec.wisc.edu/cgi-bin/util/userCheck.cgi', 'dataAvailabilityURL': request.route_path('dataAvailability'), 'sitename': name, 'setCount': setCount, 'setGen': setGen, 'make_archived_widget': server_archive.make_archived_widget, 'archived_widget_head': server_archive.archived_widget_head }
def form_view(request): #print 'URLREQ: ',request.matched_route.name methodtype=request.matchdict['accesstype'] methodkey=request.matchdict['access'] try: mylib=HSRLImageArchiveLibrarian(**{methodtype:methodkey}) except RuntimeError: return HTTPNotFound(methodtype + "-" + methodkey + " is invalid") # return HTTPTemporaryRedirect(location=request.route_path("home")) st=mylib() instruments=st['Instruments'] instcount=len(instruments) name=st['Name'] datasets=[] for inst in instruments: datasets.extend(lib.instrument(inst)['datasets']) try: starttime=validdate(int(request.params.getone('byr')), int(request.params.getone('bmo')), int(request.params.getone('bdy')), int(request.params.getone('bhr')), int(request.params.getone('bmn'))) endtime=validdate(int(request.params.getone('eyr')), int(request.params.getone('emo')), int(request.params.getone('edy')), int(request.params.getone('ehr')), int(request.params.getone('emn'))) maxalt=float(request.params.getone('maxalt')) minalt=float(request.params.getone('minalt')) except: #print 'fallback' #print request.POST #print request.GET minalt=0 maxalt=15 lasttime=mylib.validClosestTime(datetime.utcnow()) endtime=validdate(lasttime.year,lasttime.month,lasttime.day,lasttime.hour,lasttime.minute-(lasttime.minute%5)) starttime=validdate(endtime.year,endtime.month,endtime.day,endtime.hour-2,endtime.minute) oldformparmsdict={methodtype:methodkey, 'forcematlab':'yes', 'byr':'%i' % starttime.year, 'bmo':'%i' % starttime.month, 'bdy':'%i' % starttime.day, 'bhr':'%i' % starttime.hour, 'bmn':'%i' % starttime.minute, 'eyr':'%i' % endtime.year, 'emo':'%i' % endtime.month, 'edy':'%i' % endtime.day, 'ehr':'%i' % endtime.hour, 'emn':'%i' % endtime.minute, 'minalt':'%i' % minalt,'maxalt':'%i' % maxalt} oldformparams='&'.join((k+'='+oldformparmsdict[k]) for k in oldformparmsdict.keys()) #print oldformparams if request.matched_route.name=='netcdfgen': oldurl="http://lidar.ssec.wisc.edu/cgi-bin/processeddata/retrievedata.cgi?%s" % (oldformparams) if request.matched_route.name=='imagegen': oldurl="http://lidar.ssec.wisc.edu/cgi-bin/ahsrldisplay/requestfigs.cgi?%s" % (oldformparams) if False:#instcount>3 :#more than just HSRL. python doesn't support it yet return HTTPTemporaryRedirect(location=oldurl) #print request # used in both forms, but simplifies template alts=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] #in kilometers # these are only used in netcdf, and not form-configurable. this simplifies the template altres=30 timeres=30 altresvals=[7.5,15,30,45,60,75,90,120,150,300,450,600,900,1200] # in meters timeresvals=[2.5,5,10,15,30,60,120,180,240,300,600,900,1200,3600,43200] # in seconds #print instruments hosttouse=None porttouse=None if "X-Forwarded-Host" in request.headers: hosttouse=request.headers['X-Forwarded-Host'] porttouse='' return {'project':'Picnic', 'bdate':starttime, 'edate':endtime,'calendar':calendar,'timedelta':timedelta,'datetime':datetime, 'altrange':[minalt,maxalt],'alts':alts, 'timeresvals':timeresvals,'altresvals':altresvals, 'timeres':timeres,'altres':altres, 'imagesets':jsgen.formsetsForInstruments(datasets,'images'), 'netcdfsets':jsgen.formsetsForInstruments(datasets,'netcdf'), 'datasets':datasets,'method':methodtype,methodtype:methodkey, 'oldurl':oldurl, 'netcdfdestinationurl':request.route_url('netcdfreq',_host=hosttouse,_port=porttouse), 'imagedestinationurl':request.route_url('imagereq',_host=hosttouse,_port=porttouse), 'cdltemplates':{ "hsrl_nomenclature.cdl":"UW HSRL(NetCDF4)", "hsrl_cfradial.cdl":"NCAR CFRadial", "hsrl3_processed.cdl":"UW Processed (NetCDF3)", "hsrl3_raw.cdl":"UW Raw (NetCDF3)", "custom":"User Provided:" }, 'cdltemplateorder':[ "hsrl_nomenclature.cdl","hsrl_cfradial.cdl","hsrl3_processed.cdl","hsrl3_raw.cdl","custom"], 'userTracking':picnicsession.haveUserTracking(), #'usercheckurl':request.route_path('userCheck'),#'http://lidar.ssec.wisc.edu/cgi-bin/util/userCheck.cgi', 'dataAvailabilityURL':request.route_path('dataAvailability'), 'sitename':name,'setCount':setCount,'setGen':setGen,'make_archived_widget':server_archive.make_archived_widget,'archived_widget_head':server_archive.archived_widget_head}