Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BeamLocation ¶
type BeamLocation struct {
X float32
Y float32
Z float32
GeomCorr float32
IJ map[int32]BeamLocationProj
}
BeamLocation - One beam location record for a given PMC. IJ is an array of coordinates for each context image (indexed by the PMC of the context image)
type BeamLocationByPMC ¶
type BeamLocationByPMC map[int32]BeamLocation
BeamLocationByPMC - All beam location info we have per PMC
type BeamLocationProj ¶
BeamLocationProj - Beam location projected onto context image i/j direction
type DetectorSample ¶
type DetectorSample struct {
// Metadata for the spectrum, string->string
Meta MetaData
// Spectrum histogram values, generally 4096 of them
Spectrum []int64
}
DetectorSample - Represents an individual spectrum
type DetectorSampleByPMC ¶
type DetectorSampleByPMC map[int32][]DetectorSample
func (d DetectorSample) detectorID() string {
return d.Meta["DETECTOR_ID"].SValue // we know it's a string...
}
DetectorSampleByPMC - Detector data in a lookup by PMC
type FileMetaData ¶
type FileMetaData struct {
RTT string
SCLK int32
SOL string
SiteID int32
Site string
DriveID int32
TargetID string
Target string
Title string
Instrument string
PMCOffset int32 // The offset we added to PMCs from this dataset in case of combined dataset
}
FileMetaData - dataset metadata
type HousekeepingData ¶
type HousekeepingData struct {
Header []string
Data map[int32][]MetaValue
PerPMCHeaderIdxs map[int32][]int32 // Per-PMC order of meta string names. NOTE: This is OPTIONAL! If not specified, assumed order is order of []MetaValues
}
HousekeepingData - stores column names & data
type ImageMeta ¶
type ImageMeta struct {
LEDs string // R, G, B, U, W (all LEDs on), PC = the processed floating point TIF image
PMC int32
FileName string
ProdType string
}
ImageMeta - metadata for the "disco" image
type MatchedAlignedImageMeta ¶
type MatchedAlignedImageMeta struct {
// PMC of the MCC image whose beam locations this image is matched with
AlignedBeamPMC int32 `json:"aligned-beam-pmc"`
// File name of the matched image - the one that was imported with an area matching the Aligned image
MatchedImageName string `json:"matched-image"`
// This is the x/y offset of the sub-image area where the Matched image matches the Aligned image
// In other words, the top-left Aligned image pixel is at (XOffset, YOffset) in the matched image
XOffset float32 `json:"x-offset"`
YOffset float32 `json:"y-offset"`
// The relative sizing of the sub-image area where the Matched image matches the Aligned image
// In other words, if the Aligned image is 752x580 pixels, and the Matched image is much higher res
// at 2000x3000, and within that a central area of 1600x1300, scale is (1600/752, 1300/580) = (2.13, 2.24)
XScale float32 `json:"x-scale"`
YScale float32 `json:"y-scale"`
// Full path, no JSON field because this is only used internally during dataset conversion
MatchedImageFullPath string `json:"-"`
}
MatchedAlignedImageMeta - metadata for an image that's transformed to match an AlignedImage (eg MCC)
type MetaValue ¶
type MetaValue struct {
SValue string
IValue int32
FValue float32
DataType protos.Experiment_MetaDataType
}
MetaValue - A variant to store an individual metadata value
func FloatMetaValue ¶
FloatMetaValue - short-hand for creating a float metadata value variant
func IntMetaValue ¶
IntMetaValue - short-hand for creating a int metadata value variant
func StringMetaValue ¶
StringMetaValue - short-hand for creating a string metadata value variant
type OutputData ¶
type OutputData struct {
// dataset ID that should be used to identify this dataset as part of the output path/file name, etc
DatasetID string
// The group the dataset will belong to
Instrument protos.ScanInstrument
Meta FileMetaData
DetectorConfig string
BulkQuantFile string
DefaultContextImage string
// If file is composed from multiple sources, this stores all sources
Sources []FileMetaData
// Pseudo-intensity ranges defined for this experiment (they may not change, and this may be redundant!)
PseudoRanges []PseudoIntensityRange
// Housekeeping header names
HousekeepingHeaders []string
// Per-PMC data
PerPMCData map[int32]*PMCData
// RGBU images
RGBUImages []ImageMeta
// Disco images - visual spectroscopy using MCC, taken different coloured LEDs
DISCOImages []ImageMeta
// Images that reference and match aligned images
MatchedAlignedImages []MatchedAlignedImageMeta
// Who created this dataset
CreatorUserId string
// Beam generator version number
BeamVersion uint32
// ClearBeforeSave - As the name says, this flag can indicate from the importer that when saving this data
// we have to clear existing data for it. Mainly for images, do we want old ones to stick around incorrectly?
ClearBeforeSave bool
}
OutputData - the outer structure holding everything required to save a dataset
func (*OutputData) EnsurePMC ¶
func (o *OutputData) EnsurePMC(pmc int32)
EnsurePMC - allocates an item to store data for the given PMC if doesn't already exist
func (*OutputData) SetPMCData ¶
func (o *OutputData) SetPMCData( beams BeamLocationByPMC, hk HousekeepingData, spectra DetectorSampleByPMC, contextImgsPerPMC map[int32]string, pseudoIntensityData PseudoIntensities, pmcSourceRTTs map[int32]string)
SetPMCData - Passing in all data by PMC lookups
type PMCData ¶
type PMCData struct {
SourceRTT string // Can be left empty if only from one data source
Housekeeping []MetaValue
HousekeepingHeaderIdxs []int32 // Index of value name in list of Headers
Beam *BeamLocation
DetectorSpectra []DetectorSample
ContextImageSrc string
ContextImageDst string
PseudoIntensities []float32
}
PMCData - Used to pass everything we've read to the output saver package...
type PseudoIntensities ¶
PseudoIntensities - PMC to pseudo-intensity float array
type PseudoIntensityRange ¶
PseudoIntensityRange - Range item