Beispiel #1
0
        /// <summary> taegetDir以下のファイルから計測データを抜き出し、MeasuredValue型のリストを返す </summary>
        public List <MeasuredValue> CollectInspectedValues(InspectItem inspects, string targetDir)
        {
            //指定フォルダ以下のファイルを取得する (フォルダ内のxmlファイルをリストに格納)
            var getfiles = new FileUtil();
            var fnames   = getfiles.GetXmlFiles(targetDir);

            //answersの作成
            var answers = new List <MeasuredValue>();

            //fnameの各ファイルごとに{}内の処理を繰り返しリストの作成
            foreach (var fname in fnames)
            {
                //ファイル名の取得
                var getFileName = Path.GetFileName(fname);

                //パーセプトロンの解析結果を得る
                var data = CPerceptronData.LoadFromFile(fname, true);

                //注目測定点名・項目を元にデータを取得し、MeasuredValue型で返す
                foreach (var element in inspects.Inspects)
                {
                    foreach (var item in inspects.Items)
                    {
                        CInspectionCharacteristic outInspect;
                        if (CPerceptronData.IsContains(data, element, item, out outInspect))
                        {
                            //容器(anser)を作成
                            var answer      = new MeasuredValue();
                            var absoluteAns = 0d;

                            //指定した測定点・項目を元にabsoluteを返す
                            var itemAbsolute = outInspect.Measurement.abusolute;

                            //リストに値を格納
                            answer.Fname   = getFileName;
                            answer.Inspect = element;
                            answer.Item    = item;
                            answer.Value   = double.TryParse(itemAbsolute, out absoluteAns) ? absoluteAns : double.NaN;
                            answers.Add(answer);
                        }
                    }
                }
            }
            return(answers);
        }
Beispiel #2
0
        private static void Main(string[] args)
        {
            //注目測定点名と注目計測名と項目が書かれたファイルのアドレス
            var csvFilePath = @"C:\Users\hayashi\Documents\Visual Studio 2015\Projects\CodeTestSpace\insepectionData\settingData.CSV";

            //特殊計算と対象が書かれたファイルのアドレス
            var csvCalcPath = @"C:\Users\hayashi\Documents\Visual Studio 2015\Projects\CodeTestSpace\insepectionData\calcSettingData.CSV";

            //処理対象のフォルダのアドレス
            var basePath = @"C:\Users\hayashi\Documents\Visual Studio 2015\Projects\CodeTestSpace\testdata\";

            //結果ファイル保存先のアドレス
            var saveDataPath = @"C:\Users\hayashi\Documents\Visual Studio 2015\Projects\CodeTestSpace\output\result.csv";

            //結果保持用
            var resultCalcMeanDev   = new List <List <CalcValue> >();
            var resultSpCalcMeanDev = new List <List <SpCalcMeanDev> >();

            //注目測定点名と注目計測名と項目をファイルから読み込む
            //例
            //ST1_SF01 (注目測定点名)
            //CubeHole1,CubeHole2 (注目計測名)
            //X Y ...等(項目)
            //注目計測名、項目は可変数
            var institem     = new InspectItem();
            var inspectItems = institem.LoadConfiguration(csvFilePath);

            //特殊計算内容をファイルから読み込む
            //例:
            //distance,CubeHole1,CubeHole2
            //特殊計算内容は可変とする
            var instSetting = new CalcSetting();
            var calcSetting = instSetting.LoadConfiguration(csvCalcPath);

            foreach (var inspectItem in inspectItems)
            {
                //指定フォルダ以下のファイルを取得する
                //注目測定点名と合致するファイルを更にコレクトする
                //コレクトしたファイルから、注目計測名と注目測定名のデータを収集する
                var instData       = new MeasuredValue();
                var measuredValues = instData.CollectInspectedValues(inspectItem, basePath);

                //各注目測定点名ごとの平均と標準偏差を求める
                var instDataMeanDev = new CalcValue();
                var calcMeanDev     = instDataMeanDev.CalcMeanDev(inspectItem, measuredValues);
                resultCalcMeanDev.Add(calcMeanDev);

                //特殊計算を求める
                var instSpCalc = new SpCalcValue();
                var spCalc     = instSpCalc.SellectSpCalc(calcSetting, measuredValues);

                //特殊計算の平均と標準偏差を求める
                var instDataSpCalcMeanDev = new SpCalcMeanDev();
                var spCalcMeanDev         = instDataSpCalcMeanDev.CalcMeanDev(calcSetting, spCalc);
                resultSpCalcMeanDev.Add(spCalcMeanDev);

                //結果をファイルに保存する
                var saveDatas = new FileUtil();
                saveDatas.SaveDatas(saveDataPath, calcMeanDev, spCalcMeanDev);
            }
        }