public IGrid Provide(string filename) { AscReader asc = new AscReader(); var mat = asc.Load(filename); var mfgrid = new MFGrid(); mfgrid.RowCount = mat.Size[1]; mfgrid.ColumnCount = mat.Size[2]; //mfgrid.RowInteval = new MyScalar<float>(asc.CellSize); //mfgrid.ColInteval = new MyScalar<float>(asc.CellSize); mfgrid.IBound = new DataCube <float>(1, mfgrid.RowCount, mfgrid.ColumnCount); mfgrid.ActiveCellCount = 0; for (int r = 0; r < mat.Size[0]; r++) { for (int c = 0; c < mat.Size[1]; c++) { if (mat[0, r, c] == asc.NoDataValue) { mfgrid.IBound[0, r, c] = 0; } else { mfgrid.IBound[0, r, c] = 1; mfgrid.ActiveCellCount++; } } } mfgrid.Elevations = new DataCube <float>(1, 1, mfgrid.ActiveCellCount); var vector = asc.LoadSerial(filename, mfgrid); mfgrid.Elevations[0]["0", ":"] = vector; return(mfgrid); }