public int Compare(object info1, object info2) { IDWGrid fileInfo1 = info1 as IDWGrid; IDWGrid fileInfo2 = info2 as IDWGrid; if (fileInfo1.m_Distance < fileInfo2.m_Distance) { return(-1); } if (fileInfo1.m_Distance > fileInfo2.m_Distance) { return(1); } return(0); }
//将实况信息格点化 public static double[] AutoStationRainToGrid(DataTable ds, double xmin, double ymin, double xmax, double ymax, out int xNum, out int yNum, double RATE) { double[] gridValues = null; xNum = 0; yNum = 0; try { if (ds.Rows.Count > 7) { //RATE = 0.005; xNum = (int)(Math.Abs(xmax - xmin) / RATE); yNum = (int)(Math.Abs(ymax - ymin) / RATE); gridValues = new double[xNum * yNum]; IDWGrid[] list = new IDWGrid[ds.Rows.Count]; for (int i = 0; i < list.Length; i++) { list[i] = new IDWGrid(); list[i].x = double.Parse(ds.Rows[i]["x"].ToString()); list[i].y = double.Parse(ds.Rows[i]["y"].ToString()); list[i].z = double.Parse(ds.Rows[i]["z"].ToString()) * 0.1; } double gridx, gridy, gridz; for (int j = 0; j < yNum; j++) { for (int i = 0; i < xNum; i++) { gridx = RATE * i + xmin; gridy = RATE * j + ymin; gridz = DotsToGrid(list, gridx, gridy); gridValues[j * xNum + i] = 0; if (gridz >= 0) { gridValues[j * xNum + i] = gridz; } } } } } catch (Exception ex) { //Common.Writetxtlog(ex.ToString()); } return(gridValues); }