反距离权重插值计算程序



public void ChaZhi()



        {



            int
i,j,k;



            float
[,] WS0; //
原始网格数组           



            float
Kq=2.0f; //
权重指数                    



            int
Wm,Wn; //
设定网格数,Wm为列,Wn为行



            float wgx,wgy;
//
每个网格距离;



            float
z0; //
当前网格计算数值



PointF p0=new
PointF(); //
当前网格中心点



            PointF p1=new
PointF(); //
实测点



            MP1 pt=new
MP1();



            float
zk; //
实测点数值



            float
a1,a2; //
计算z0时的上下部分;



            float
dk,xx,yy; //
计算中间变量





            yy=yl;



            for(i=0;i<Wn;i++)



            {



                xx=xl;



                for(j=0;j<Wm;j++)



                {



                    p0.X=xx+wgx/2;



                    p0.Y=yy+wgy/2;



                    a1=0;



                    a2=0;



                    for(k=0;k<MPS.Count;k++)
//
计算当前网格实测点距离



                    {



                        pt=(MP1)MPS[k];                       



                        p1=toMapPoint(pt);



                        zk=pt.Z;



                        dk=Convert.ToSingle(Math.Pow(DistanceP(p0,p1),Kq));



                        a1+=zk/dk;



                        a2+=1/dk;



                    }



                    z0=a1/a2;



                    WS0[j,i]=z0;



                    xx+=wgx;



                }



                yy+=wgy;



            }        



        }





说明:



1. MP1是一个实测点的类,有CODE(代码)X,Y(坐标),Z(数值)等4个属性;



2. MPS是一个集合,放置实测点。



转载于:https://www.cnblogs.com/zany-hui/articles/2470759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值