def create_ch09table(request): '''Generates information from 'new' ch 09 related questions ''' #get real models models = getModels(pubonly=True) #generate information for ar5 table 1 ch09tableinfo = ch09table(models) # set up my urls ... urls = {} urls['home'] = reverse('cmip5q.explorer.views_ar5.home', args=()) urls['ch09csv'] = reverse('cmip5q.explorer.views_ar5.ch09csv', args=()) urls['ch09bib'] = reverse('cmip5q.explorer.views_ar5.ch09bib', args=()) return render_to_response('explorer/ar5/ch09table.html', {'ch09table': ch09tableinfo, 'urls': urls})
def ch09csv(request): ''' Generates csv representation of ar5 table 1 ''' #get date for csv file title now = datetime.datetime.now() filename = 'ar5csv_Tuning_%d_%d_%d.csv' % (now.day, now.month, now.year) # Create the HttpResponse object with the appropriate CSV header. response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' % filename #----- Ch 09 (Models) ----- #get real models models = getModels(pubonly=True) #generate information for ar5 table 1 ch09tableinfo = ch09table(models) writer = csv.writer(response) #write column headings writer.writerow(['Model ID', 'Institution', 'Model Assembly', 'Mean State Global Metrics', 'Observed Trends Metrics', 'Mean State Regional Metrics', 'Temporal Variability Metrics', 'Adjusted Parameters', 'Other Model Tuning?', 'Integral Conservation', 'Specific Tuning', 'Flux Correction Used?', 'Flux Correction Fields', 'Flux Correction Methods', ]) #write out each row of information in turn for row in ch09tableinfo: # write out list values into strings before entering in csv table meanstateglobmets = [] for met in row.meanstateglobmets: meanstateglobmets.append(met+'; ') meanstateglobmets = "".join(meanstateglobmets) obstrendsmets = [] for met in row.obstrendsmets: obstrendsmets.append(met+'; ') obstrendsmets = "".join(obstrendsmets) meanstateregmets = [] for met in row.meanstateregmets: meanstateregmets.append(met+'; ') meanstateregmets = "".join(meanstateregmets) tempvarmets = [] for met in row.tempvarmets: tempvarmets.append(met+'; ') tempvarmets = "".join(tempvarmets) adjparams = [] for met in row.adjparams: adjparams.append(met+'; ') adjparams = "".join(adjparams) intconservation = [] for met in row.intconservation: intconservation.append(met+'; ') intconservation = "".join(intconservation) fluxcorrfields = [] for met in row.fluxcorrfields: fluxcorrfields.append(met+'; ') fluxcorrfields = "".join(fluxcorrfields) writer.writerow([row.abbrev, row.centre.name, row.modelassembly, meanstateglobmets, obstrendsmets, meanstateregmets, tempvarmets, adjparams, row.othmodtuning, intconservation, row.spectuning, row.fluxcorrused, fluxcorrfields, row.fluxcorrmeth, ]) return response