public DataFields Clone() { var dataFields = new DataFields(); dataFields.AddRange(this.Select(dataField => dataField.Clone())); return(dataFields); }
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); }
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); }
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); }
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); }