Example #1
0
        object CompositeIsotopics(string[] sa, bool headtest)
        {
            var res = new object();
            CompositeIsotopics cis = null;
            CompositeIsotopic ci = null;
            Array ev = Enum.GetValues(typeof(CompIsCol));
            if (headtest)  // full iso line
            {
                if (sa.Length != ev.Length)
                    return null;
                cis = new CompositeIsotopics();
                res = cis;
            }
            else  // comp iso subentry line
            {
                if (sa.Length != ev.Length - 2)
                    return null;
                ci = new CompositeIsotopic();
                res = ci;
            }
            float pumass = 0;
            Isotopics iso = new Isotopics();
            string s = string.Empty;
            double v = 0, err = 0;
            foreach (CompIsCol op in ev)
            {
                try
                {
                    if (headtest)
                        s = sa[(int)op];
                    else
                    {
                        if (op > CompIsCol.IsoSourceCode)
                            s = sa[(int)op - 2];
                        else
                            s = string.Empty;
                    }

                    switch (op)
                    {
                    case CompIsCol.IsoSourceCode:
                        if (headtest) {  Enum.TryParse(s, out cis.source_code); iso.source_code = cis.source_code; }
                        break;
                    case CompIsCol.IsoId:
                        if (headtest) { cis.id = string.Copy(s); iso.id = cis.id; }
                        break;
                    case CompIsCol.PuMass:
                        //if (!headtest)  // comp iso lines start with mass
                        //{
                            float sv = 0f;
                            float.TryParse(s, out sv);
                            pumass = sv;
                        //}
                        break;
                    case CompIsCol.AmDate:
                        INCC5FileImportUtils.GenFromYYYYMMDD(s, ref iso.am_date);
                        break;
                    case CompIsCol.PuDate:
                        INCC5FileImportUtils.GenFromYYYYMMDD(s, ref iso.pu_date);
                        break;
                    case CompIsCol.Pu238:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.pu238, v);
                        break;
                    case CompIsCol.Pu239:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.pu239, v);
                        break;
                    case CompIsCol.Pu240:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.pu240, v);
                        break;
                    case CompIsCol.Pu241:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.pu241, v);
                        break;
                    case CompIsCol.Pu242:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.pu242, v);
                        break;
                    case CompIsCol.Am241:
                        double.TryParse(s, out v);
                        iso.SetVal(Isotope.am241, v);
                        break;
                    case CompIsCol.Pu238err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.pu238, err);
                        break;
                    case CompIsCol.Pu239err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.pu239, err);
                        break;
                    case CompIsCol.Pu240err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.pu240, err);
                        break;
                    case CompIsCol.Pu241err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.pu241, err);
                        break;
                    case CompIsCol.Pu242err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.pu242, err);
                        break;
                    case CompIsCol.Am241err:
                        double.TryParse(s, out err);
                        iso.SetError(Isotope.am241, err);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Results.mlogger.TraceEvent(LogLevels.Warning, 34100, s + " fails as composite isotopics summary element " + op.ToString() + " " + ex.Message);
                    return null;
                }
            }
            // copy values onto the relevant object
            if (cis != null)
                cis.Copy(iso, pumass);
            if (ci != null)
                ci.Copy(iso, pumass);
            return res;
        }
Example #2
0
 string[] Convert(CompositeIsotopic i)
 {
     List<string[]> b = new List<string[]>();
     // do the header line
     Array ev = Enum.GetValues(typeof(IsoFiles.CompIsCol));
     string[] sa = new string[ev.Length - 2]; // not the identifier header entry so just do a - 2
     sa[(int)IsoFiles.CompIsCol.AmDate - 2] = Quote(i.am_date.ToString("yyyyMMdd"));
     sa[(int)IsoFiles.CompIsCol.PuDate - 2] = Quote(i.pu_date.ToString("yyyyMMdd"));
     sa[(int)IsoFiles.CompIsCol.PuMass - 2] = i.pu_mass.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu238 - 2] = i.pu238.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu238err - 2] = i.pu238_err.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu239 - 2] = i.pu239.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu239err - 2] = i.pu239_err.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu240 - 2] = i.pu240.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu240err - 2] = i.pu240_err.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu241 - 2] = i.pu241.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu241err - 2] = i.pu241_err.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu242 - 2] = i.pu242.ToString();
     sa[(int)IsoFiles.CompIsCol.Pu242err - 2] = i.pu242_err.ToString();
     sa[(int)IsoFiles.CompIsCol.Am241 - 2] = i.am241.ToString();
     sa[(int)IsoFiles.CompIsCol.Am241err - 2] = i.am241_err.ToString();
     return sa;
 }