DEM六种坡度计算方法程序源代码说明简单差分二阶三阶反距离平方权三阶反距离权三阶不带权边框差分
运用以下六种坡计算方法编写坡度计算程序:1)简单差分2)二阶差分3)三阶反距离平方权差分4)三阶反距离权差分5)三阶不带权差分6)边框差分
OpenFileDialog FileName = new OpenFileDialog();//初始化打开文件对话框
FileName.InitialDirectory = Application.StartupPath;//默认路径
FileName.Filter = "文本文件(*.txt)|*.txt"; //设置打开文件类型
FileName.FilterIndex = 2;//设置控件打开文件夹的显示顺序
FileName.RestoreDirectory = true;//设置是否记忆之前打开的目录
if (FileName.ShowDialog() == DialogResult.OK)//如果成功选择
{
string path = FileName.FileName.ToString();//获取选择文件完整路径
string Name = path.Substring(path.LastIndexOf("\\") + 1);//获取文件名
label2.Text = Name;
data1 = System.IO.File.ReadAllLines(path);//获取文本内string数组
//获取前六行信息
for (int w = 0; w < 6; w++)
{
ST = data1[w];
switch (w)
{//正则检测数字(整数和小数区分)
case 0:
String cols = Regex.Match(ST, "\\d+$").Value;
ncols =int.Parse(cols);//提取ncols值
break;
case 1:
String rows = Regex.Match(ST, "\\d+$").Value;
nrows = int.Parse(rows);//提取nrows值
break;
case 4:
String size = Regex.Match(ST, "\\d").Value;
cellsize = int.Parse(size);//提取cellsize值
break; }}
string[] CLO = new string[data1.Length];//定义行字符串
double[,] ta = new double[nrows+2, ncols+2];//元素数值
//获取六行之后的信息
char flag = ' ';// 由空格分割元素字符串
for (int j = 0; j < ncols+2; j++)
{
for (int i = 0; i < nrows+2; i++)
{ ta[i, j] = 0; //给所有数值赋零
}}
......
......