Ejemplo n.º 1
0
        private void listViewWellbore_DoubleClick(object sender, EventArgs e)
        {
            if (step == 0)
            {
                Cursor.Current = Cursors.WaitCursor;
                try
                {
                    CreateWellDetailColumns();
                    ShowDetailsOfWell();

                    wellbores = svr.get <WitsmlWellbore>(new WitsmlQuery(), selectedWell);

                    CreateWellboreColumns();
                    ShowItemsOfWellbores();
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }

                step++;
                toolStripStatusLabelWellPath.Text = "Double click on wellbore to see logs";
            }
            else if (step == 1)
            {
                Cursor.Current = Cursors.WaitCursor;
                try
                {
                    CreateWellboreDetailColumns();
                    ShowDetailsOfWellbore();

                    logs = svr.get <WitsmlLog>(new WitsmlQuery(), selectedWellbore);

                    CreateLogColumns();
                    ShowItemsOfLogs();
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }

                step++;
                toolStripStatusLabelWellPath.Text = "Double click on log to see parameters";
            }

            else if (step == 2)
            {
                Cursor.Current = Cursors.WaitCursor;
                try
                {
                    CreateLogDetailColumns();
                    ShowDetailsOfLog();

                    curves       = selectedLog.getCurves();
                    iv           = selectedLog.getIndexCurve();
                    numberOfRows = iv.getNValues();

                    CreateCurveColumns();
                    ShowItemsOfCurves();
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }

                step++;
                toolStripStatusLabelWellPath.Text = "'File > Load data' to view";
            }
        }
Ejemplo n.º 2
0
        /**
         * Parse the specified DOM element and instantiate the properties
         * of this instance.
         *
         * @param element  XML element to parse. Non-null.
         */
        void update(XElement element)
        {
            //throws WitsmlParseException {
            //Debug.Assert(element != null : "element cannot be null";

            // Remove current bulk data
            foreach (witsmllib.WitsmlLogCurve curve in curves)
                ((WitsmlLogCurve)curve).clear();

            // Common data
            XElement commonDataElement = element.Element(element.Name.Namespace + "commonData");//, element.getNamespace());
            if (commonDataElement != null)
                commonData = new WitsmlCommonData(commonDataElement);

            // Index
            indexType = XmlUtil.update(element, "indexType", indexType);
            if (indexType != null)
            {
                if (indexType.ToLower().Contains("time"))
                {
                    startIndex = getIndex(XmlUtil.update(element, "startDateTimeIndex", (String)null));
                    endIndex = getIndex(XmlUtil.update(element, "endDateTimeIndex", (String)null));
                }
                else
                {
                    startIndex = getIndex(XmlUtil.update(element, "startIndex", (String)null));
                    endIndex = getIndex(XmlUtil.update(element, "endIndex", (String)null));
                }
            }

            indexCurveName = XmlUtil.update(element, "indexCurve", indexCurveName);
            _isGrowing = XmlUtil.update(element, "objectGrowing", _isGrowing);
            nRows = XmlUtil.update(element, "dataRowCount", nRows);
            serviceCompany = XmlUtil.update(element, "serviceCompany", serviceCompany);
            runNumber = XmlUtil.update(element, "runNumber", runNumber);
            bhaRunNumber = XmlUtil.update(element, "bhaRunNumber", bhaRunNumber);
            pass = XmlUtil.update(element, "pass", pass);
            creationTime = XmlUtil.update(element, "creationDate", creationTime);
            description = XmlUtil.update(element, "description", description);
            direction = XmlUtil.update(element, "direction", direction);
            stepIncrement = XmlUtil.update(element, "stepIncrement", stepIncrement);
            indexUnit = XmlUtil.update(element, "indexUnits", indexUnit);
            noValue = XmlUtil.update(element, "nullValue", noValue);
            unitNamingSystem = XmlUtil.update(element, "uomNamingSystem", unitNamingSystem);
            comment = XmlUtil.update(element, "otherData", comment);

            // Curve data
            var logCurveInfoElements = element.Elements(element.Name.Namespace + "logCurveInfo");//, element.getNamespace());
            foreach (Object e in logCurveInfoElements)
            {
                XElement logCurveInfoElement = (XElement)e;

                String curveName = XmlUtil.update(logCurveInfoElement, "mnemonic", (String)null);
                Int32? curveNo = XmlUtil.update(logCurveInfoElement, "columnIndex", (Int32?)null);

                WitsmlLogCurve curve = (WitsmlLogCurve)findCurve(curveName);
                if (curve == null)
                {
                    curve = new WitsmlLogCurve(this, curveName, curveNo.Value );
                    curves.Add(curve);
                }

                curve.update(logCurveInfoElement);
            }

            // Bulk data
            XElement logDataElement = element.Element(element.Name.Namespace + "logData"); //, element.getNamespace());
            if (logDataElement != null)
            {
                var dataElements = logDataElement.Elements(element.Name.Namespace + "data"); //, element.getNamespace());

                //for (var j = dataElements.iterator(); j.hasNext(); )
                foreach(var j in dataElements)
                {
                    XElement dataElement = (XElement)j;//.next();

                    String valueString = dataElement.Value.Trim(); //.getTextTrim();

                    String[] tokens = valueString.Split(dataDelimiter); //, -1);
                    for (int i = 0; i < tokens.Length; i++)
                    {
                        String token = tokens[i];
                        if (token.Equals(noValue))
                            token = "";

                        WitsmlLogCurve curve = (witsmllib.v140.WitsmlLogCurve)findCurve(i + 1);
                        curve.addValue(token);
                    }

                    // Handle missing log values
                    for (int i = tokens.Length; i < getNCurves(); i++)
                    {
                        WitsmlLogCurve curve = (witsmllib.v140.WitsmlLogCurve)findCurve(i + 1);
                        curve.addValue(null);
                    }
                }
            }

            unitConvert();
        }
Ejemplo n.º 3
0
        // Add any curves reported in identification, but not present during
        // instantiation
        protected void insertMissingCurves(WitsmlLogCurve[] curveArray)
        {
            for (int i = 0; i < curveArray.Length; i++)
            {
                if (curveArray[i] == null)
                {
                    foreach (WitsmlLogCurve curve in curves)
                    {
                        bool isFound = false;
                        for (int j = 0; j < curveArray.Length; j++)
                        {
                            if (curveArray[j] == curve)
                            {
                                isFound = true;
                                break;
                            }
                        }

                        if (!isFound)
                        {
                            curveArray[i] = curve;
                            break;
                        }
                    }
                }
            }
        }