public IRI.Ham.Algebra.Matrix ReadQuarter(QuarterPart part) { int midRow = this.NumberOfRows % 2 == 0 ? this.NumberOfRows / 2 - 1 : this.NumberOfRows / 2; int midColumn = this.NumberOfColumns % 2 == 0 ? this.NumberOfColumns / 2 - 1 : this.NumberOfColumns / 2; switch (part) { case QuarterPart.UpperLeft: return(this.ReadRegion(0, 0, midRow, midColumn)); case QuarterPart.UpperRight: return(this.ReadRegion(0, midColumn + 1, midRow, this.NumberOfColumns - 1)); case QuarterPart.LowerLeft: return(this.ReadRegion(midRow + 1, 0, this.NumberOfRows - 1, midColumn)); case QuarterPart.LowerRight: return(this.ReadRegion(midRow + 1, midColumn + 1, this.NumberOfRows - 1, this.NumberOfColumns - 1)); default: return(null); } }
public void SaveQuarter(string fileName, QuarterPart part) { int midRow = this.NumberOfRows % 2 == 0 ? this.NumberOfRows / 2 - 1 : this.NumberOfRows / 2; int midColumn = this.NumberOfColumns % 2 == 0 ? this.NumberOfColumns / 2 - 1 : this.NumberOfColumns / 2; IRI.Ham.Algebra.Matrix values; switch (part) { case QuarterPart.UpperLeft: values = this.ReadRegion(0, 0, midRow, midColumn); SaveAsGRD(fileName, values, 0 + this.LowerLeftX, (this.NumberOfRows - values.NumberOfRows) * this.CellSize + this.LowerLeftY, this.CellSize, this.NoDataValue); break; case QuarterPart.UpperRight: values = this.ReadRegion(0, midColumn + 1, midRow, this.NumberOfColumns - 1); SaveAsGRD(fileName, values, (this.NumberOfColumns - values.NumberOfColumns) * this.CellSize + this.LowerLeftX, (this.NumberOfRows - values.NumberOfRows) * this.CellSize + this.LowerLeftY, this.CellSize, this.NoDataValue); break; case QuarterPart.LowerLeft: values = this.ReadRegion(midRow + 1, 0, this.NumberOfRows - 1, midColumn); SaveAsGRD(fileName, values, 0 + this.LowerLeftX, 0 + this.LowerLeftY, this.CellSize, this.NoDataValue); break; case QuarterPart.LowerRight: values = this.ReadRegion(midRow + 1, midColumn + 1, this.NumberOfRows - 1, this.NumberOfColumns - 1); SaveAsGRD(fileName, values, (this.NumberOfColumns - values.NumberOfColumns) * this.CellSize + this.LowerLeftX, 0 + this.LowerLeftY, this.CellSize, this.NoDataValue); break; default: throw new NotImplementedException(); } }