public void addXMLWaveLengths(Scientrace.UserLightSpectrum ls, XElement xlightspectrum) { if (xlightspectrum.Attribute("ModuloMultiplier") != null) { ls.modulo_multiplier = this.X.getXInt(xlightspectrum, "ModuloMultiplier"); } //Console.WriteLine("Mod multiplier is now: "+ls.modulo_multiplier); if (xlightspectrum.Attribute("Tag") != null) { ls.tag = this.X.getXString(xlightspectrum.Attribute("Tag")); } foreach (XElement wlxel in xlightspectrum.Elements("Wavelength")) { double wlintens = this.X.getXDouble(wlxel, "Intensity", 1); if (wlintens > Scientrace.MainClass.SIGNIFICANTLY_SMALL) //check for minimal intensity threshold { if (wlxel.Attribute("nm") == null) { ls.addWavelength(this.X.getXDouble(wlxel, "m"), wlintens); } else { ls.addNanometerWavelength(this.X.getXDouble(wlxel, "nm"), wlintens); } } else { Console.WriteLine("NOTE: " + wlxel.ToString() + " has negligible intensity of " + wlintens + " and is skipped."); } } ls.force_verify_mod_multip(); }
public void getSpectrumXMLFromXMLFile(Scientrace.UserLightSpectrum ls, string filename) { if (System.IO.File.Exists(filename)) { XDocument xd = XDocument.Load(filename); this.addXMLWaveLengths(ls, xd.Element("Spectrum")); } else { throw new System.IO.FileNotFoundException("Spectrum filename (" + filename + ") does not exist"); } }
public Scientrace.UserLightSpectrum getUserLightSpectrum(XElement xspec) { string tag = this.X.getXString(xspec, "Tag"); Scientrace.UserLightSpectrum retls = new Scientrace.UserLightSpectrum(1, tag); //Console.WriteLine("Creating user lightsource "+tag); if (xspec.Attribute("CSVData") != null) { Console.WriteLine("Reading from comma seperated value files not yet possible"); //TODO: parse CSV values from this filename. } if (xspec.Attribute("XMLData") != null) { string xmldatafilename = this.X.getXString(xspec.Attribute("XMLData")); retls.tag = retls.tag + xmldatafilename; this.getSpectrumXMLFromXMLFile(retls, xmldatafilename); } this.addXMLWaveLengths(retls, xspec); return(retls); }