Beispiel #1
0
        private void BuildUsingKH(IList <TiltData> tilts)
        {
            FiltType   = FilterType.KarousHjelt;
            ZAxisTitle = "KH";
            ZUnit      = "%";
            var x = new List <float>();
            var y = new List <float>();
            var z = new List <float>();

            foreach (var kh in tilts.Select(tilt => VlfFilter.KarousHjelt(tilt, 0, 1)))
            {
                for (var i = 0; i < kh.Npts; i++)
                {
                    var xy = Displacement.NextPoint(kh.X, kh.Y, kh.Bearing, kh.Spacing * (i - 1));
                    x.Add(xy[0]);
                    y.Add(xy[1]);
                    z.Add(kh.Values[i]);
                }
            }
            Npts    = x.Count;
            XValues = new float[x.Count];
            YValues = new float[y.Count];
            ZValues = new float[z.Count];

            XValues = x.ToArray();
            YValues = y.ToArray();
            ZValues = z.ToArray();

            CalcGridSize();
        }
Beispiel #2
0
        private void tsKarousHjelt_Click(object sender, EventArgs e)
        {
            var selectedNode = treeViewMain.SelectedNode;

            var tiltData = selectedNode.Tag as TiltData;

            if (tiltData == null)
            {
                return;
            }
            if (tiltData.Npts < 6)
            {
                MessageBox.Show(@"There should be minimum of 7 data for this filter to work.");
                return;
            }

            var uniqeName = FindUniqeName(selectedNode.Name, treeViewMain.Nodes["NodeKH"]);

            if (InputPrompt.InputStringBox("Karous Hjelt-Filter", "Enter a name.", ref uniqeName) != DialogResult.OK)
            {
                return;
            }

            var skin = 0f;

            if (
                InputPrompt.InputNumberBox("Karous Hjelt-Filter",
                                           $"Skin depth normalization. Enter 0 to ignore skin depth", ref skin) != DialogResult.OK)
            {
                return;
            }

            var kh = VlfFilter.KarousHjelt(tiltData, skin);

            kh.Rename(uniqeName);

            AddNode(uniqeName, treeViewMain.Nodes["NodeKH"], kh);

            if (kh.RawLength > 150)
            {
                MessageBox.Show(
                    @"Due to the limitation of gridding implementation in this version, the pseudosection could not be shown. However, you can still export the result into an external file.",
                    @"Data Too Large To Grid", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            StartGriddingWorker(new Surface2D(kh));
        }