Ejemplo n.º 1
0
    def __init__(self):
        # Patient/ acquistion information
        self.name = ''
        self.modality = ''
        self.original_orientation = ''
        self.window = ''
        self.level = ''

        # Masks (vtkImageData)
        self.mask_dict = {}

        # Surfaces are (vtkPolyData)
        self.surface_dict = {}
        self.last_surface_index = -1

        # Measurements
        self.measurement_dict = {}

        # TODO: Future ++
        self.annotation_dict = {}

        # InVesalius related data
        # So we can find bugs and reproduce user-related problems
        self.invesalius_version = version.get_svn_revision()

        self.presets = Presets()

        self.threshold_modes = self.presets.thresh_ct
        self.threshold_range = ''

        self.raycasting_preset = ''
Ejemplo n.º 2
0
    def __init__(self, threshold, generation_limit, N_pop, mutation_variance,
                 obstacle_courses):
        # Intialise Class for Genetic Algorithm

        self.threshold = threshold  # Threshold on fitness value
        self.generation_limit = generation_limit  # Number of generations before algorithm ends
        self.N_pop = N_pop  # Population Size
        self.parents_in_new_gen = 0.25  # Percentage of parents transfered to the new generation
        self.mutation_variance = mutation_variance  # Variance of the normal distribution for mutation

        # Create Folder name for data storage
        date_time = str(datetime.datetime.now())[:-10]
        temp_list = list(date_time)
        temp_list[10] = '_'
        self.folder_name = './data/data_' + ''.join(temp_list)
        if not os.path.exists(self.folder_name):
            os.makedirs(self.folder_name)

        # Find the range of angles for the lasers
        self.angle_ranges = []
        for i in range(12):
            self.angle_ranges.append((np.pi / 6) + i * (np.pi / 6))

        self.parameter_limits = [
            [0, 3],  #z_sat
            [0, 3],  #x_sat
            [1, 10],  #z_lim
            [1, 10],  #x_lim
            [0, 3],  #z_norm
            [0, 3],  #x_norm
            [0, 1],  #z_up
            [2, 5],  #max_vel
            [0, len(self.angle_ranges) - 1],  #angle range choice (index)
            [2, 20],  #number of lasers
            [1, 5]
        ]  #stabiliser_choice

        # Find the Range of the parameters
        self.parameter_ranges = []
        for i in range(len(self.parameter_limits)):
            self.parameter_ranges.append(self.parameter_limits[i][1] -
                                         self.parameter_limits[i][0])

        # Intialise Population
        self.population = self.initialisePopulation()
        self.universal_best_fitness = -100000.

        # Load in the drone presets
        self.preset = Presets()
        self.preset.loadDefault()

        # Set parameters and courses
        self.safe_vel = 1.
        self.obstacle_courses = obstacle_courses
        self.simulation_time = 30.0

        # Load stabiliser controllers
        self.stabilisers = []
        for i in range(5):
            self.stabilisers.append(self.loadStabiliser(i + 1))
Ejemplo n.º 3
0
 def __init__(self):
   self.__channel_users = {}
   self.__user_ids = {}
   self.__bracket = TourneyTree()
   self.__last_post = None
   self.participants = Participants()
   self.presets = Presets()
   self.is_joinable = False
Ejemplo n.º 4
0
import numpy as np
import time
import matplotlib.pyplot as plt
import pickle
import os

from drone import TrainingDrone
from environment import Environment, Obstacle, Course
from render import Renderer, DataStream
from presets import Presets

import neat

# Load Presets
preset = Presets()
preset.loadDefault()

# Initialise objects
drone = TrainingDrone(preset.drone_dict)

# Generate obstacles/load empty course
course = Course()
obstacles = course.emptyCourse()

environment = Environment(preset.lasers, obstacles, preset.max_laser_length,
                          preset.safe_vel, preset.safe_angle)
# Initialise None lists in environment and drone
environment.update(drone, False)
drone.recieveLaserDistances(environment.laser_distances)
Ejemplo n.º 5
0
	def __init__(self):
		wx.Frame.__init__(self, None, -1, DEFAULT_TITLE)
		
		self.settings = Settings(cmdFolder)

		self.materialSize = ""

		self.CreateStatusBar()
		self.SetStatusText("")

		self.images = Images(os.path.join(cmdFolder, "images"))
		
		ico = wx.Icon(os.path.join(cmdFolder, "images", "shapeoko.png"), wx.BITMAP_TYPE_PNG)
		self.SetIcon(ico)

		self.cnc = None
		self.material = None
		self.toolList = None
		self.pGrid = None
		self.objListBox = None
		self.bScrollUp = self.bScrollDown = None
		self.bMoveUp = self.bMoveDown = None
		self.fsWidth = self.fsHeight = self.fsThick = None
		self.bAdd = self.bDel = self.bRender = self.bNew = self.bLoad = self.bSave = self.bSaveAs = None

		self.setCnc()

		self.objectTypes = {
			"Rectangle": Rectangle,
			"Circle": Circle,
			"Arc": Arc,
			"Path": Path,
			"Polygon": Polygon,
			"Linear Drill": LinearDrill,
			"Circular Drill": CircularDrill,
			"Rectangular Drill": RectangularDrill,
			"Carve Grid": CarveGrid,
			"Carve Diamond": CarveDiamond
		}

		self.rawObjectTypes = {
			"Rectangle": Rectangle,
			"Circle": Circle,
			"Arc": Arc,
			"Path": Path,
			"Polygon": Polygon,
			"LinearDrill": LinearDrill,
			"CircularDrill": CircularDrill,
			"RectangularDrill": RectangularDrill,
			"CarveGrid": CarveGrid,
			"CarveDiamond": CarveDiamond
		}

		self.presets = Presets(cmdFolder)
		self.presetList = self.presets.getPresetList()

		self.fileMenu = None
		self.setMenu()

		self.t = 0
		self.seq = 1
		self.objList = []
		self.modified = False
		self.currentFile = None

		szLeft = self.listAndButtonSizer()

		szRight = self.propertySizer()

		sz = wx.BoxSizer(wx.HORIZONTAL)
		sz.Add(szLeft)
		sz.Add(szRight, 1, wx.EXPAND)

		self.Bind(wx.EVT_CLOSE, self.onClose)

		self.SetSizer(sz)
		self.Layout()
		self.Fit()

		self.Show()
		self.msgTimer = 0
		self.timer = wx.Timer(self)
		self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)
		self.startTimer()