Raiju package

Primary Package

kaipy.raiju.dst module

kaipy.raiju.dst.DPSDst_mhdrcm(rmI: H5Info, s5: Group, rmax=6, doMHD=False, br=None, areaCC=None)

Same as DPSDst_raiju but for RCM

kaipy.raiju.dst.DPSDst_raiju(raiI: RAIJUInfo, s5: Group, rmax=6)

Calculate DPSDst [nT] for a raiju step If return2D=True, gives back full 2D map, where each value is that cell’s contribution to DPSDst.

This will ignore isGood, if provided, but will manually ignore RAIJUINACTIVE cells

If return2D=False (default), returns single value that sums over all isGood=True

kaipy.raiju.dst.calcMRIonoVars(s5)
kaipy.raiju.dst.create_command_line_parser()
kaipy.raiju.dst.main()
kaipy.raiju.dst.plotDstTS(raiI: RAIJUInfo, rmax=6, mrI: H5Info = None)

kaipy.raiju.m2m module

Diagnostic tools to check mapping MHD moments to etas and back

kaipy.raiju.m2m.checkMom2Mom_pnt(raiI: RAIJUInfo, s5: Group, i0: int, j0: int, spcID='BLK', doIntenPlot=False, doConsoleIO=False) m2mData_pnt
kaipy.raiju.m2m.checkMom2Mom_step(raiI: RAIJUInfo, s5: Group, mask_cc: ndarray = None, spcID='BLK', doPlot=False, doConsoleIO=False) m2mData_step
kaipy.raiju.m2m.checkMom2Mom_summary(raiI: RAIJUInfo, ut_start: datetime = None, ut_end: datetime = None, stride_minutes: float = 5)
kaipy.raiju.m2m.create_command_line_parser()
class kaipy.raiju.m2m.m2mData_pnt(p_mhd: float, d_mhd: float, kt_mhd: float, p_rai: float, d_rai: float, kt_rai: float)

Bases: object

d_mhd: float
d_rai: float
kt_mhd: float
kt_rai: float
p_mhd: float
p_rai: float
class kaipy.raiju.m2m.m2mData_step(frac_P: numpy.ndarray, frac_D: numpy.ndarray)

Bases: object

frac_D: ndarray
frac_P: ndarray
kaipy.raiju.m2m.main(config=None)

kaipy.raiju.raijuUtils module

class kaipy.raiju.raijuUtils.RAIJUInfo(h5fname, noSubsec=True, useTAC=False, useBars=True)

Bases: H5Info

Extends H5Info to grab RAIJU-specific info

getSpcFromFlav(flav: int) SpeciesInfo
species: SpeciesInfo
class kaipy.raiju.raijuUtils.SpeciesInfo(grp)

Bases: object

kaipy.raiju.raijuUtils.etak2Den(etak, bVol)

etak [#/cc * Rx/T] bVol [Rx/nT]

Returns: density [#/cc]

kaipy.raiju.raijuUtils.etak2Press(etak, alamc, bVol)

etak [#/cc * Rx/T] alamc: [eV*(Rx/nT)^(2/3)] bVol [Rx/nT]

Returns: pressure [nPa]

kaipy.raiju.raijuUtils.getMask(s5, dom='ACTIVE')
kaipy.raiju.raijuUtils.getMask_cornerByCellCondition(s5, condition)
kaipy.raiju.raijuUtils.getSpcFromNkArr()
kaipy.raiju.raijuUtils.getVar(grp: Group, varName: str, mask: bool = None, broadcast_dims=None) ndarray

Get vars from h5 file this way so that we’re sure everyone agrees on type and shape

kaipy.raiju.raijuUtils.intensity_kappa(n, mass, E, kT, kappa=6)

Intensity for energy E in an analytic Maxwellian profile n: density in #/cc mass: mass in kg E: energy in keV kT: temp in keV j: Intensity [1/(s*sr*keV*cm^2)]

kaipy.raiju.raijuUtils.intensity_maxwell(n, mass, E, kT)

Intensity for energy E in an analytic Maxwellian profile n: density in #/cc mass: mass in kg E: energy in keV kT: temp in keV j: Intensity [1/(s*sr*keV*cm^2)]

kaipy.raiju.raijuUtils.lambda2Energy(lambdas, bvol)

lambdas = [eV*(Rx/nT)^(2/3)] bVol = [Rx/nT] return: energy [keV]

kaipy.raiju.raijuUtils.spcIdx(spcList: List[SpeciesInfo], flav: int) int

Lambdautils Package

kaipy.raiju.lambdautils.AlamData module

class kaipy.raiju.lambdautils.AlamData.AlamData(params: List[SpecParams])

Bases: object

Initialize by giving a list of SpecParams AlamData will generate all of them and hold as a list of Species

params: List[SpecParams]
class kaipy.raiju.lambdautils.AlamData.Species(params: SpecParams)

Bases: object

Initialize by giving a SpecParam object Species will generate alam dist using the params

params: SpecParams
kaipy.raiju.lambdautils.AlamData.conditional_decorator(dec, dataclasses_json_module_imported)

kaipy.raiju.lambdautils.AlamParams module

class kaipy.raiju.lambdautils.AlamParams.SpecParams(n: int, amin: float, amax: float, distType: DistType, flav: int, numNuc_p: int, numNuc_n: int, q: int, fudge: float | None = 0, name: str | None = None)

Bases: object

Defines a single species A full species parameter set is defined by the combination of the params listed here AND the ones in whatever DistType is chosen

amax: float
amin: float
distType: DistType
flav: int
fudge: float | None = 0
genAlami()
n: int
name: str | None = None
numNuc_n: int
numNuc_p: int
q: int
kaipy.raiju.lambdautils.AlamParams.conditional_decorator(dec, dataclasses_json_module_imported)

kaipy.raiju.lambdautils.DistTypes module

class kaipy.raiju.lambdautils.DistTypes.DT_Manual(name: str = 'Empty')

Bases: DistType

If you want to completely ignore all this generator stuff, you could use this and do whatever you want. But if you were doing all that anyways, its probably just easier to manually edit the h5 dataset directly

class kaipy.raiju.lambdautils.DistTypes.DT_Single(name: str = 'Empty')

Bases: DistType

Just a single channel, pretty boring

genAlami(sP)
class kaipy.raiju.lambdautils.DistTypes.DT_Wolf(name: str = 'Empty', p1: float = None, p2: float = None, kmin: int = 0, kmax: int = -1)

Bases: DistType

Lambda channel spacing based on Wolf’s notes

(ask Anthony Sciola or Frank Toffoletto for a copy)

With the addition that there can be 2 p values for the start and end, and pStar transitions between them kmin, kmax let you set what part of the full distribution you actually generate

genAlami(sP)

Takes a filled out SpecParams and returns the lambda interfaces

kmax: int = -1
kmin: int = 0
p1: float = None
p2: float = None
class kaipy.raiju.lambdautils.DistTypes.DistType(name: str = 'Empty')

Bases: object

name: str = 'Empty'
kaipy.raiju.lambdautils.DistTypes.conditional_decorator(dec, dataclasses_json_module_imported)

kaipy.raiju.lambdautils.fileIO module

kaipy.raiju.lambdautils.fileIO.saveAlamData(f5name: str, alamData: AlamData)

Takes an AlamData object, formats it to raijuconfig.h5 style, and saves it Will also call saveAlamParams above if it did write AlamData to file

kaipy.raiju.lambdautils.fileIO.saveAlamParams(f5name: str, alamData: AlamData)

waveModel Package

kaipy.raiju.waveModel.genWM module

kaipy.raiju.waveModel.genWM.ChorusPoly(Li, Eki, polyArray)
kaipy.raiju.waveModel.genWM.ReSample(L, MLT, Qp, xMLT)
kaipy.raiju.waveModel.genWM.genChorus(params, fInChorus)
kaipy.raiju.waveModel.genWM.genWM(params: wmParams)
kaipy.raiju.waveModel.genWM.genh5(fOut: str, inputParams: wmParams)
kaipy.raiju.waveModel.genWM.readPoly(fIn)

kaipy.raiju.waveModel.wmData module

class kaipy.raiju.waveModel.wmData.wmParams(dim=4, nKp=7, nMLT=97, nL=41, nEk=155)

Bases: object

getAttrs()