C#调用surfer的相关方法及引用.doc_第1页
C#调用surfer的相关方法及引用.doc_第2页
C#调用surfer的相关方法及引用.doc_第3页
C#调用surfer的相关方法及引用.doc_第4页
C#调用surfer的相关方法及引用.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#中使用SurferPosted on2012-08-02 16:13磊阅读(2803) 评论(6)编辑收藏做地理信息或者绘制等值线,都会选择Surfer这个软件。这个软件对我们的作用有两个(1)插值(2)绘图。软件:Windows 7 x64,Microsoft Visual Studio 2012 RC,Surfer 10一、添加引用,Surfer在COM组件中。 然后在代码中加入using Surfer;二、创建一组原始数据文件命名为data.dat12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697A B C120.12 31.52 89.79 119.95 31.32 83.26 120.47 31.22 81.31 120.30 31.10 86.61 120.38 30.97 83.15 120.10 30.95 84.17 120.65 31.20 80.17 119.93 30.28 90.50 120.08 30.55 91.64 120.47 30.90 79.73 120.18 30.48 84.60 120.43 30.53 83.61 120.73 30.75 87.01 120.72 30.88 80.97 120.18 30.72 83.37 120.28 30.62 80.03 120.32 30.78 87.27 120.50 30.75 79.74 120.43 30.88 81.81 120.27 30.45 86.04 120.53 30.63 87.13 120.68 30.52 86.14 120.92 30.43 79.39 120.85 30.53 81.73 121.03 30.68 95.00 120.92 30.85 87.40 120.83 30.75 92.30 120.83 31.02 81.77 120.18 31.65 104.16 120.25 31.75 97.80 120.25 31.92 95.63 120.42 31.95 98.16 120.53 31.73 85.53 120.67 31.98 93.80 120.38 31.80 100.58 120.75 31.63 83.27 121.03 31.70 87.42 120.73 31.48 77.56 121.27 31.50 96.19 120.97 31.38 94.84 120.63 31.00 75.23 121.10 31.45 102.03 120.92 31.12 76.40 120.95 31.32 94.21 119.35 31.45 90.56 119.52 31.43 88.80 119.83 31.37 103.36 119.57 31.75 97.85 119.53 31.68 96.52 119.55 31.23 92.77 119.98 31.52 85.24 119.25 31.55 101.62 119.43 31.23 90.09 119.75 31.68 102.12 119.57 31.63 98.45 119.57 31.98 93.84 119.63 30.27 92.78 119.68 30.23 92.63 119.80 30.25 100.69 119.97 30.40 92.96 119.90 30.53 95.44 119.72 30.73 90.87 119.87 30.87 86.82 119.48 30.53 96.67 119.57 30.43 152.66 119.58 30.35 100.68 119.52 30.30 84.11 119.63 30.18 102.20 119.75 30.33 90.42 119.87 30.62 92.62 119.78 30.53 107.69 119.83 30.52 107.95 120.00 30.78 107.96 119.25 30.53 92.84 119.33 30.63 98.59 119.38 30.58 83.97 119.42 30.42 94.15 119.38 30.48 93.54 119.47 30.45 102.92 119.52 30.43 124.86 119.63 30.50 117.88 119.70 30.63 92.68 119.58 30.75 99.43 119.60 30.83 94.63 119.80 30.70 106.83 119.80 31.05 93.04 119.92 31.00 91.79 119.55 30.92 87.18 119.68 31.12 100.53 119.78 31.15 115.56 121.15 30.97 78.28 120.98 31.08 78.57 121.12 31.12 78.25 121.23 31.27 96.45 121.15 31.33 98.21 121.73 30.98 81.56 三、下面对上面的原始文件进行插值123456789101112131415161718Application app = newApplication();varpath = AppDomain.CurrentDomain.BaseDirectory;app.GridData2(DataFile: path + data.dat, /数据文件地址xCol: 1, /x为第一列数据yCol: 2, /y为第二列数据zCol: 3, /z为第三列数据DupMethod: Surfer.SrfDupMethod.srfDupNone,xMin: 117.742635, /x最小值xMax: 122.452486, /x最大者yMin: 29.418809, /y最小值yMax: 32.463007, /y最大值Algorithm: Surfer.SrfGridAlgorithm.srfKriging, /插值算法KrigingNumCols: (122.452486 - 117.742635) / 0.01, /x方向插值数据量NumRows: (32.463007 - 29.418809) / 0.01, /y方向插值数据量OutGrid: path + grid.grd, /返回文件为gridfileOutFmt: Surfer.SrfGridFormat.srfGridFmtAscii); /返回文件编码为Asciiapp.Quit();System.GC.Collect(System.GC.GetGeneration(app);插值算法有很多,大家可以去API中查找SrfGridAlgorithm,这里就不多说了。生成的文件格式也有很多种,有种比较精简的是srfGridFmtBinary。四、查看目录下的grid.grd文件,插值完成1234567DSAA471 304117.742635 122.45248629.418809 32.46300775.361336919208 149.9220712506191.83441632763108 91.81999394510157 91.80551937407597 91.79099305953743 91.77641547089857 91.76178710274148 91.74710847558691 91.73238013667276 91.71760266076672 91.70277665099104 91.68790273967451 91.67298158922344 91.65801389301778 91.64300037633481 91.62794179728556 91.61283894778934 91.59769265456495 91.58250378014809 91.56727322394012 91.55200192327513 五、生成图片生成图片有很多很多种类,这里就只讲解2种一个是ContourMap另一个是BaseMap代码如下,就不细致讲解了。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879Application app = newApplication();IDocuments docs = app.Documents;IPlotDocument Doc = (IPlotDocument)docs.Add(SrfDocTypes.srfDocPlot); /创建一个空白绘图文档IShapes Shapes = Doc.Shapes;varpath = AppDomain.CurrentDomain.BaseDirectory;#region 添加等值面IMapFrame contourMapFrame = Shapes.AddContourMap(path + grid.grd); /加载网格文件for(inti = 1; i = contourMapFrame.Axes.Count; i+)contourMapFrame.Axes.Item(i).Visible = false;contourMapFrame.Axes.Item(i).MajorTickType = SrfTickType.srfTickNone;contourMapFrame.Axes.Item(i).ShowLabels = false;contourMapFrame.SetLimits(xMin: 117.742635, /x最小值xMax: 122.452486, /x最大者yMin: 29.418809, /y最小值yMax: 32.463007 /y最大值);contourMapFrame.xMapPerPU = 0.25; /设置比例contourMapFrame.yMapPerPU = 0.25; /设置比例IContourMap contourMap = (IContourMap)contourMapFrame.Overlays.Item(1);/contourMap.ShowColorScale = true; / 显示对应色柱/contourMap.ColorScale.Top = 8.48; /色柱y方向位置/contourMap.ColorScale.Left = contourMap.Left + contourMap.Width + 0.8;/色柱x方向位置/contourMap.ColorScale.Width = 0.8; /色柱宽度/contourMap.ColorScale.Height = 8; /色柱高度contourMap.FillContours = true;/添加颜色填充/通过文件加载颜色/ILevels levels = contourMap.Levels;/levels.LoadFile(Server.MapPath(DataDesert.lvl);/加载系统颜色contourMap.FillForegroundColorMap.LoadFile(C:Program FilesGolden SoftwareSurfer 10ColorScalesRainbow.clr);contourMap.ApplyFillToLevels(1, 1, 0);/使用灰色/contourMap.Levels.AutoGenerate(contourMap.Grid.zMin,contourMap.Grid.zMax,10);for(inti = 0; i contourMap.Levels.Count; i+)contourMap.Levels.Item(i + 1).ShowLabel = true; /显示等值线上的数值contourMap.Levels.Item(i + 1).ShowHach = false; /contourMap.Levels.Item(i + 1).Line.Style = Invisible; /不显示线contourMap.SmoothContours = SrfConSmoothType.srfConSmoothNone; /平滑等值线边界当前设置不平滑#endregion#region 添加边界/后添加的会覆盖在先前添加的图片之上IMapFrame boundryMapFrame = Shapes.AddBaseMap(path + boundry.bln, Defaults=1);for(inti = 1; i = boundryMapFrame.Axes.Count; i+)boundryMapFrame.Axes.Item(i).Visible = false; /隐藏轴线boundryMapFrame.Axes.Item(i).MajorTickType = SrfTickType.srfTickNone; /隐藏边线boundryMapFrame.Axes.Item(i).ShowLabels = false; /隐藏轴线上的坐标boundryMapFrame.SetLimits(xMin: 117.742635, /x最小值xMax: 122.452486, /x最大者yMin: 29.418809, /y最小值yMax: 32.463007 /y最大值);boundryMapFrame.xMapPer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论