def loan_mapping(map_rendered=False): mform = map_form(request.form) if request.method == 'POST' and mform.validate( ): #if user is posting, get form data and store it map_rendered = True # compute desired group-by/agg operation data = LCH.compute_group_avgs(LD, mform.data['col_name'], mform.data['grouping_var'], mform.data['agg_fun'], state_fips_dict=state_fips_dict, min_counts=50) data.name = mform.data['col_name'] if mform.data['agg_fun'] == 'count': data.name = 'counts' # paint base map by county pal = LCH.paint_map(data, app.base_map, app.county_paths, fips_to_zip, color='cube', name_legend_map=name_legend_map, agg_fun=mform.data['agg_fun']) # save colorbar for map as a png plt.savefig(fig_dir + 'map_cbar.png', dpi=500, format='png') plt.close() return render_template('loan_mapping.html', map_form=mform, svg=Markup(str(app.base_map)), rnum=np.random.randint(0, 100000), map_rendered=map_rendered)
def loan_mapping(map_rendered=False): mform = map_form(request.form) if request.method == 'POST' and mform.validate(): #if user is posting, get form data and store it map_rendered = True # compute desired group-by/agg operation data = LCH.compute_group_avgs(LD, mform.data['col_name'], mform.data['grouping_var'], mform.data['agg_fun'], state_fips_dict=state_fips_dict, min_counts=50) data.name = mform.data['col_name'] if mform.data['agg_fun'] == 'count': data.name = 'counts' # paint base map by county pal = LCH.paint_map(data, app.base_map, app.county_paths, fips_to_zip, color='cube', name_legend_map=name_legend_map, agg_fun=mform.data['agg_fun']) # save colorbar for map as a png plt.savefig(fig_dir + 'map_cbar.png', dpi=500, format='png') plt.close() return render_template('loan_mapping.html', map_form=mform, svg=Markup(str(app.base_map)), rnum=np.random.randint(0,100000), map_rendered=map_rendered)
clf.fit(X, y) pred_arr[:,n] = clf.predict(fips_data[['longitude','latitude']].values) #%% generate pngs for reg-tree at each depth value image_list_path = os.path.join(movie_dir,'image_list.txt') F = open(image_list_path,'wb+') pred_prc = scipy.percentile(pred_arr,[10, 90]) prc_range = pred_prc[1]-pred_prc[0] # overall range of data # MAKE COLORBAR FIGURE WITH FIXED RANGE temp = pred_arr[:,-1].copy() cur_range = scipy.percentile(temp,[10,90]) # range for this map temp = (temp - cur_range[0])*prc_range/np.diff(cur_range) + pred_prc[0] # scale to have same range fips_data['preds'] = temp new_data = LCH.fill_missing_fips(ktree,map_coords,fips_data) cbar_fig = LCH.paint_map(new_data['preds'], base_map, county_paths, fips_to_zip, color = 'cube', get_cbar=True) plt.savefig(movie_dir + 'tree_cbar.png', dpi=500, format='png') plt.close() for n in xrange(max_levels): cur_range = scipy.percentile(pred_arr[:,n],[10,90]) # range for this map pred_arr[:,n] = (pred_arr[:,n] - cur_range[0])*prc_range/np.diff(cur_range) # scale to have same range fips_data['preds'] = pred_arr[:,n] new_data = LCH.fill_missing_fips(ktree,map_coords,fips_data) LCH.paint_map(new_data['preds'], base_map, county_paths, fips_to_zip, color = 'cube', get_cbar=False) title_path.string = 'Depth {} Tree'.format(n) bytestring = base_map.encode() out_file = os.path.join(movie_dir,'tree_depth%d.png' % n) cairosvg.svg2png(bytestring=bytestring, write_to = out_file) F.write(out_file + '\n')