private double[,] AddData(int nRows, int nColumns, byte[] mapdata, bool isSixteenbit)
{
double[,] dataArray = new double[nRows, nColumns];
double[] xarray = new double[nColumns];
for (int i = 0; i < xarray.Length; i++)
{
xarray[i] = -3.0f + i * 0.25f;
}
double[] yarray = xarray;
int mapindex = 0;
for (int i = 0; i < dataArray.GetLength(0); i++)
{
for (int j = 0; j < dataArray.GetLength(1); j++)
{
if (isSixteenbit)
{
byte val1 = (byte)mapdata.GetValue(mapindex++);
byte val2 = (byte)mapdata.GetValue(mapindex++);
bool convertSign = false;
if (val1 == 0xff)
{
val1 = 0;
val2 = (byte)(0x100 - val2);
convertSign = true;
}
int ival1 = Convert.ToInt32(val1);
int ival2 = Convert.ToInt32(val2);
double value = (ival1 * 256) + ival2;
if (convertSign) value = -value;
dataArray[i, j] = value;
}
else
{
byte val1 = (byte)mapdata.GetValue(mapindex++);
int ival1 = Convert.ToInt32(val1);
double value = ival1;
dataArray[i, j] = value;
}
}
}
return dataArray;
}