Ejemplo n.º 1
0
 def get_2d_psi_values(self, time):
     time_index = self.get_time_index(time)
     try:
         return self.equilibrium.time_slice[time_index].profiles_2d[0].psi
     except:
         raise IdsAttributeLoadError(
             'There is no Psi grid data in equilibrium IDS @ Shot: ' +
             str(self.shot) + ' Run: ' + str(self.run) +
             ' in equilibrium IDS.')
Ejemplo n.º 2
0
 def get_ion_temperature(self, time):
     time_index = self.get_time_index(time)
     try:
         return self.profiles.profiles_1d[time_index].ion[1].temperature
     except:
         raise IdsAttributeLoadError(
             'There is no available D temperature for Shot:' +
             str(self.shot) + ' at Run: ' + str(self.run) + ' in ' +
             self.source + ' IDS')
Ejemplo n.º 3
0
 def get_electron_density(self, time):
     time_index = self.get_time_index(time)
     try:
         return self.profiles.profiles_1d[time_index].electrons.density
     except:
         raise IdsAttributeLoadError(
             'There is no available electron density for Shot:' +
             str(self.shot) + ' at Run: ' + str(self.run) + ' in ' +
             self.source + ' IDS')
Ejemplo n.º 4
0
 def get_grid_in_rho_tor(self, time):
     time_index = self.get_time_index(time)
     try:
         return self.profiles.profiles_1d[time_index].grid.rho_tor
     except:
         raise IdsAttributeLoadError(
             'There is no available rho tor based grid for Shot:' +
             str(self.shot) + ' at Run: ' + str(self.run) + ' in ' +
             self.source + ' IDS')
Ejemplo n.º 5
0
 def get_lcfs_boundary(self, time):
     time_index = self.get_time_index(time)
     try:
         return self.equilibrium.time_slice[time_index].boundary.outline.r,\
                self.equilibrium.time_slice[time_index].boundary.outline.z
     except:
         raise IdsAttributeLoadError(
             'No RZ coordinates for LCFS are available for Shot: ' +
             str(self.shot) + ' Run: ' + str(self.run) +
             ' in equilibrium IDS.')
Ejemplo n.º 6
0
    def get_time_index(self, time):
        try:
            time_array = self.equilibrium.time
        except:
            raise IdsAttributeLoadError(
                'No time array available for the requested Shot: ' +
                str(self.shot) + ' and Run: ' + str(self.run) +
                ' in equilibrium IDS.')

        if (time_array[time_array.argmin()] <=
                time) and (time_array[time_array.argmax()] >= time):
            return (np.abs(time_array - time)).argmin()
        else:
            raise ValueError('Time value : ' + str(time) +
                             ' is out of bound. Min time instance is ' +
                             str(time_array[time_array.argmin]) +
                             '. Max time instance is : ' +
                             str(time_array[time_array.argmax]))