Ejemplo n.º 1
0
        public DataFields Clone()
        {
            var dataFields = new DataFields();

            dataFields.AddRange(this.Select(dataField => dataField.Clone()));
            return(dataFields);
        }
Ejemplo n.º 2
0
        private void GetAttr(Pair pair)
        {
            GridName = pair.GetAttrValue("GridName");
            string xdimStr = pair.GetAttrValue("XDim");

            int xdim = 0;

            if (int.TryParse(xdimStr, out xdim))
            {
                XDim = xdim;
            }
            string ydimStr = pair.GetAttrValue("YDim");
            int    ydim    = 0;

            if (int.TryParse(ydimStr, out ydim))
            {
                YDim = ydim;
            }

            string upperLeftPointMtrs = pair.GetAttrValue("UpperLeftPointMtrs");

            string[] strsUL = upperLeftPointMtrs.Split(new[] { '(', ')', ',' }, StringSplitOptions.RemoveEmptyEntries);
            double   xmin   = 0.0;

            if (double.TryParse(strsUL[0], out xmin))
            {
                XMin = xmin;
            }
            double ymax = 0.0;

            if (double.TryParse(strsUL[1], out ymax))
            {
                YMax = ymax;
            }

            string lowerRightMtrs = pair.GetAttrValue("LowerRightMtrs");

            string[] strsLR = lowerRightMtrs.Split(new[] { '(', ')', ',' }, StringSplitOptions.RemoveEmptyEntries);
            double   xmax   = 0.0;

            if (double.TryParse(strsLR[0], out xmax))
            {
                XMax = xmax;
            }
            double ymin = 0.0;

            if (double.TryParse(strsLR[1], out ymin))
            {
                YMin = ymin;
            }

            CellWidth  = (XMax - XMin) / XDim;
            CellHeight = (YMax - YMin) / YDim;

            Projection = pair.GetAttrValue("Projection");
            ProjParams = pair.GetAttrValue("ProjParams");
            Pair dataFields = pair.GetGroup("DataField");

            DataFields = new DataFields(dataFields);
        }
Ejemplo n.º 3
0
 public bool IsSameClassHdf4(Hdf4FileAttr attr)
 {
     if (HDFEOSVersion != attr.HDFEOSVersion)
     {
         return(false);
     }
     if (GridName != attr.GridName)
     {
         return(false);
     }
     if (Projection != attr.Projection)
     {
         return(false);
     }
     if (ProjParams != attr.ProjParams)
     {
         return(false);
     }
     if (XDim != attr.XDim)
     {
         return(false);
     }
     if (YDim != attr.YDim)
     {
         return(false);
     }
     //if (XMin - attr.XMin > double.Epsilon)
     //    return false;
     //if (YMin - attr.YMin > double.Epsilon)
     //    return false;
     //if (XMax - attr.XMax > double.Epsilon)
     //    return false;
     //if (YMax - attr.YMax > double.Epsilon)
     //    return false;
     if (CellWidth - attr.CellWidth > CellWidth / 1000000)
     {
         return(false);
     }
     if (CellHeight - attr.CellHeight > CellWidth / 1000000)
     {
         return(false);
     }
     if (DataFields != null && !DataFields.IsSameDataFields(attr.DataFields))
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 4
0
        public bool IsSameDataFields(DataFields dataFields)
        {
            if (dataFields == null)
            {
                return(false);
            }
            if (Count != dataFields.Count)
            {
                return(false);
            }

            for (int i = 0; i < Count; i++)
            {
                if (!this[i].IsSameDataField(dataFields[i]))
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 5
0
        public Hdf4FileAttr Clone()
        {
            var hdf4FileAttr = new Hdf4FileAttr
            {
                CellHeight    = CellHeight,
                CellWidth     = CellWidth,
                DataFields    = DataFields.Clone(),
                GridName      = GridName,
                H4File        = H4File,
                HDFEOSVersion = HDFEOSVersion,
                ProjParams    = ProjParams,
                Projection    = ProjParams,
                XDim          = XDim,
                YDim          = YDim,
                XMin          = XMin,
                XMax          = XMax,
                YMin          = YMin,
                YMax          = YMax
            };

            return(hdf4FileAttr);
        }