From ad2e7677ed4e111b7d3d3077451c82672afbbc8d 2016-09-12 21:44:02 From: Fiorella Quino Date: 2016-09-12 21:44:02 Subject: [PATCH] Task #716: Vista ABS (urls.py for plot beams patterns) git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@200 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71 --- diff --git a/apps/abs/views.py b/apps/abs/views.py index f5b7a94..95fac84 100644 --- a/apps/abs/views.py +++ b/apps/abs/views.py @@ -2,12 +2,21 @@ from django.shortcuts import render_to_response from django.template import RequestContext from django.shortcuts import redirect, render, get_object_or_404 from django.contrib import messages +from django.conf import settings +from django.http import HttpResponse + +from datetime import datetime +from time import sleep +import os from apps.main.models import Device, Configuration from apps.main.views import sidebar from .models import ABSConfiguration, ABSBeam from .forms import ABSConfigurationForm, ABSBeamEditForm, ABSBeamAddForm + +from .utils.overJroShow import overJroShow +from .utils.OverJRO import OverJRO # Create your views here. import json, ast @@ -190,29 +199,7 @@ def abs_conf_edit(request, id_conf): return render(request, 'abs_conf_edit.html', kwargs) -def plot_patterns(request, id_conf): - - conf = get_object_or_404(ABSConfiguration, pk=id_conf) - beams_list = ast.literal_eval(conf.beams) - i = 1 - beams = [] - for b in beams_list: - beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)]) - beams.append(beam) - i=i+1 - - ###### SIDEBAR ###### - kwargs = {} - - kwargs['dev_conf'] = conf.device - kwargs['id_dev'] = conf.device - kwargs['id_conf'] = conf.id - kwargs['abs_beams'] = beams - kwargs['title'] = 'ABS Patterns' - kwargs['suptitle'] = conf.name - kwargs['no_sidebar'] = True - return render(request, 'abs_patterns.html', kwargs) def add_beam(request, id_conf): @@ -325,3 +312,171 @@ def remove_beam(request, id_conf, id_beam): kwargs['suptitle'] = 'Beam' kwargs['previous'] = conf.get_absolute_url_edit() return render(request, 'confirm.html', kwargs) + + + +def plot_patterns(request, id_conf): + + conf = get_object_or_404(ABSConfiguration, pk=id_conf) + beams_list = ast.literal_eval(conf.beams) + i = 1 + beams = [] + for b in beams_list: + beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)]) + beams.append(beam) + i=i+1 + + ###### SIDEBAR ###### + kwargs = {} + + kwargs['dev_conf'] = conf.device + kwargs['id_dev'] = conf.device + kwargs['id_conf'] = conf.id + kwargs['abs_beams'] = beams + kwargs['title'] = 'ABS Patterns' + kwargs['suptitle'] = conf.name + kwargs['no_sidebar'] = True + + return render(request, 'abs_patterns.html', kwargs) + + +def plot_pattern(request, id_conf, id_beam): + + conf = get_object_or_404(ABSConfiguration, pk=id_conf) + beam = get_object_or_404(ABSBeam, pk=id_beam) + + #Lista de Beams de la configuracion con su respectivo ID + beams_list = ast.literal_eval(conf.beams) + i = 1 + #Lista de Objetos ABSBeams en el 0rden de su respectiva configuracion + beams = [] + for b in beams_list: + beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)]) + beams.append(beam) + i=i+1 + + ###### SIDEBAR ###### + beam = get_object_or_404(ABSBeam, pk=id_beam) + kwargs = {} + + kwargs['dev_conf'] = conf.device + kwargs['id_dev'] = conf.device + kwargs['id_conf'] = conf.id + kwargs['abs_beams'] = beams + kwargs['beam'] = beam + kwargs['title'] = 'ABS Patterns' + kwargs['suptitle'] = conf.name + kwargs['no_sidebar'] = True + + return render(request, 'abs_patterns.html', kwargs) + + + +def plot_uppattern(request, id_conf, id_beam): + + from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas + + conf = get_object_or_404(ABSConfiguration, pk=id_conf) + beam = get_object_or_404(ABSBeam, pk=id_beam) + + exp_name = conf.experiment.name + + just_rx = 0 + + only_rx = json.loads(beam.only_rx) + if only_rx['up'] == True: + just_rx = 1 + + antenna = ast.literal_eval(beam.antenna) + objAntenna = json.dumps(antenna['antenna_up']) + antenna_up = ''.join(str(i) for i in objAntenna) + phase_tx = antenna_up.replace(' ','') + + tx = ast.literal_eval(beam.tx) + tx = json.dumps(tx['up']) + tx = ''.join(str(i) for i in tx) + gain_tx = tx.replace(' ','') + + rx = ast.literal_eval(beam.rx) + rx = json.dumps(rx['up']) + rx = ''.join(str(i) for i in rx) + gain_rx = rx.replace(' ','') + + ues = json.dumps(beam.get_up_ues) + ues = ''.join(str(i) for i in ues) + ues_tx = ues.replace(' ','') + + #sleep(1) + + overjro = OverJRO() + overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx) + contentFile = overjro.setTextContent() + finalpath = overjro.saveFile(contentFile) + + currentdate = datetime.today() + newOverJro = overJroShow() + newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath) + newOverJro.setupParameters() + newOverJro.execute() + path = newOverJro.getPlot() + path= "apps/abs/media/"+path + + + canvas=FigureCanvas(newOverJro.figure) + response=HttpResponse(content_type='image/png') + canvas.print_png(response) + return response + +def plot_downpattern(request, id_conf, id_beam): + + sleep(4) + from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas + + conf = get_object_or_404(ABSConfiguration, pk=id_conf) + beam = get_object_or_404(ABSBeam, pk=id_beam) + + exp_name = conf.experiment.name + + just_rx = 0 + + only_rx = json.loads(beam.only_rx) + if only_rx['down'] == True: + just_rx = 1 + + antenna = ast.literal_eval(beam.antenna) + objAntenna = json.dumps(antenna['antenna_down']) + antenna_down = ''.join(str(i) for i in objAntenna) + phase_tx = antenna_down.replace(' ','') + + tx = ast.literal_eval(beam.tx) + tx = json.dumps(tx['down']) + tx = ''.join(str(i) for i in tx) + gain_tx = tx.replace(' ','') + + rx = ast.literal_eval(beam.rx) + rx = json.dumps(rx['down']) + rx = ''.join(str(i) for i in rx) + gain_rx = rx.replace(' ','') + + ues = json.dumps(beam.get_down_ues) + ues = ''.join(str(i) for i in ues) + ues_tx = ues.replace(' ','') + + overjro = OverJRO() + overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx) + contentFile = overjro.setTextContent() + finalpath = overjro.saveFile(contentFile) + + currentdate = datetime.today() + newOverJro = overJroShow() + newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath) + newOverJro.setupParameters() + newOverJro.execute() + path = newOverJro.getPlot() + path= "apps/abs/media/"+path + + + canvas=FigureCanvas(newOverJro.figure) + response=HttpResponse(content_type='image/png') + canvas.print_png(response) + return response