コード例 #1
0
            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);
            }
コード例 #2
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);
        }