Example #1
0
        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);
            }
        }
Example #2
0
        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();
            }
        }