說實(shí)話,其實(shí)很簡單,但是網(wǎng)上的那些教程資料都不是太適合初學(xué)者,所以很多人看著也做不出來。簡單說一下關(guān)鍵步驟: 1、數(shù)據(jù)表BLN建立,含X,Y坐標(biāo)和數(shù)據(jù),可以從CAD里直接得到坐標(biāo) 2、先生成網(wǎng)格文件GRD,這步直接使用BLN文件生成 3、白化,一般
等值線圖因其能直觀的看出走勢而被多數(shù)人應(yīng)用,這里介紹給大家一個(gè)簡單的軟件來繪制等值線圖。
方法
首先要做的就是在excel上整理數(shù)據(jù)。一般情況下坐標(biāo)數(shù)據(jù)在B列和C列,目標(biāo)列也就是你要畫等值線的數(shù)據(jù)隨便放在哪一排,本次用的是F列,整理結(jié)果如圖。
簡單說: 1、準(zhǔn)備數(shù)據(jù):A,各關(guān)鍵點(diǎn)坐標(biāo)X,Y值及該點(diǎn)的數(shù)值,EXCEL表或BLN文件均可;B:白化邊界數(shù)據(jù);C:繪圖范圍坐標(biāo)。其中B,C非必須 2、網(wǎng)絡(luò)化GRD,要用EXCEL或BLN文件 3、白化,需要白化邊界數(shù)據(jù),此步也是非必須 4、生成等值線圖,利用2步或
第二步是打開surfer軟件。認(rèn)識(shí)軟件界面,
從事煤炭資源勘查工作中,需要做很多等值線圖,周圍同事多是用傳統(tǒng)的三角網(wǎng)插值方法,一個(gè)鉆孔一個(gè)鉆孔地量取之間的距離,然后在Excel表格中計(jì)算分點(diǎn)距離,再在CAD中描點(diǎn)連線……雖然這是一種嚴(yán)密的插值法,但是感覺過程復(fù)雜,與傳統(tǒng)手工作圖無異
找到數(shù)據(jù)功能,要將excel的資料轉(zhuǎn)化為網(wǎng)格文件。點(diǎn)中數(shù)據(jù)功能,單擊,找到你所需資料的excel文件,點(diǎn)確定,會(huì)出現(xiàn)如下對(duì)話框,將x設(shè)為excel中含有Y坐標(biāo)的列,y設(shè)為excel中含有X坐標(biāo)的列,z設(shè)為目標(biāo)列,本次用F列,網(wǎng)格化方法選克里格。
等值線圖因其能直觀的看出走勢而被多數(shù)人應(yīng)用,這里介紹給大家一個(gè)簡單的軟件來繪制等值線圖。 工具/原料 電腦 方法/步驟 1 首先要做的就是在excel上整理數(shù)據(jù)。一般情況下坐標(biāo)數(shù)據(jù)在B列和C列,目標(biāo)列也就是你要畫等值線的數(shù)據(jù)隨便放在哪一排,本
點(diǎn)確認(rèn)之后會(huì)有對(duì)話框一直點(diǎn)確認(rèn),記住你輸出網(wǎng)格數(shù)據(jù)的位置。
限定界限有兩種方式 1、最簡單的是定義好兩個(gè)邊框的坐標(biāo),就是左下角和右上角的,這樣在網(wǎng)格化過程中自動(dòng)白化數(shù)據(jù)邊界以外的地方,只要在網(wǎng)格化數(shù)據(jù)時(shí)勾選 Blank grid outside convex hull of data,如下圖 這樣就得到一個(gè)矩形范圍的等值線圖。 2
下面就是正式的生成等值線圖,點(diǎn)選地圖功能,選新建等值線圖
你覺得在這里用幾段文字告訴你,你能畫嗎? 如果接觸過,哪里有問題可以問,如果一點(diǎn)也不懂,那問過了也不會(huì)。 我說一下基本步驟: 1、數(shù)據(jù)準(zhǔn)備,CAD也好,臺(tái)帳也好,最后得到一個(gè)EXCEL表或在Surfer里建一個(gè)BLN,至少有3列,X、Y坐標(biāo) 和數(shù)據(jù),如
在對(duì)話框找到剛生成的網(wǎng)格數(shù)據(jù)文件,直接點(diǎn)擊打開,畫圖界面就會(huì)直接出現(xiàn)等值線圖。
clear all; close all; warning off all; [X Y Z] = peaks(50); %%此處的X,Y,Z換成你的數(shù)據(jù) [c,h] = contourf(X,Y,Z);%%利用contourf函數(shù)繪圖 clabel(c,h); %%標(biāo)注
最后在左上角文件中選擇另存為將圖保存到你想要保存的文件夾。
1、建立一個(gè)Excel表或在Surfer里直接建立一個(gè)BLN文件,把坐標(biāo)及每點(diǎn)的溫度值輸入,至少包括三列,X、Y、數(shù)據(jù),如果圖中要標(biāo)關(guān)鍵點(diǎn),則還需要各點(diǎn)的名稱列。 如下圖所示。 2、網(wǎng)格化,即grid--data,選擇上面建立的Bln文件或Excel文件 。 設(shè)置好d
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
如何用C#調(diào)用surfer 來畫等值線圖
ActiveX 對(duì)象名:Suefer.ApplicationClass
//具體方法
Suefer.ApplicationClass AppSurfer=new Surfer.ApplicationClass();
//對(duì)Surfer的調(diào)用
AppSurfer.Visible=false;//注Surfer窗口是不顯現(xiàn)
AppSurfer.ScreenUpdating=false;//Surfer制圖過程是否顯示;
//建立一個(gè)繪圖文檔和一個(gè)繪圖窗口
Surfer.IPlotDocumentDoc=(Surfer.IPlotDocument) AppSufer.Document Add(SrfDocType.srfDocPlot);
//給對(duì)象AppSurfer添加空白繪圖文檔,并取名為Doc;
Surfer.MapFrame mapframe=Doc.Shapes.AddPostMap(PostCSVFile,3,2,7,5,0);
/*新建一個(gè)給地圖添加標(biāo)注文件的圖層
PostCSVFile就是標(biāo)注文件的路徑加文件名, 3代表文件中的第三列是經(jīng)度, 2代表第二列是緯度, 7代表第七列是需要標(biāo)注的名稱, 5表示所需要選用的
符號(hào), 0是標(biāo)注選用的角度;*/
mapframe.Axes.Item(1).LablelFormat Postfix="E";
mapframe.Axes.Item(3).LablelFormat Postfix="N";
//注:給標(biāo)注圖的橫坐標(biāo)軸后面添加E,縱坐標(biāo)軸后面添加N;
Surfer.IPostMap postmap=(Surfer.IPostMap)mapframe.Overlays.Item(1);
//注:定義postmap 是mapframe上的一個(gè)標(biāo)注圖層;
postmap.LableFont.Bold=false;
postmap.LableFont.Size=10;
postmap.Symbol.Size=0.05;
//注: postmap 圖層上的文字等不加粗,字體大小為10號(hào),符號(hào)大小為0. 05;
AppSurfer.GridData(InCSVFile,2,3,5,nil,Surfer.SrfDupMethod.srfDupNon,0.03,0.03,nil,nil,//
10
92,110,32,43,
Surfer.SrfGridAlgrithm.srfKing,false,nil,nil,nil,nil,//20
nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,//30
nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,//40
nil,nil,nil,nil,nil,nil,nil,nil,nil,GridFile,//50
Surfer.SrfGridFormat.srfGridFmatAscii,nil,nil,nil,nil,nil,nil,)
//注:將所提供的降水文件格點(diǎn)化, InCSVFile即需要格點(diǎn)化的文件名加路徑,文件第2列是經(jīng)度,第3列是緯度,第5列是降水量值,網(wǎng)格經(jīng)緯向的分
//辨率都是0. 03,起始經(jīng)度是92度,終止經(jīng)度是110度,起始緯度是32度,終止緯度是43度,選擇的插值方法是Kriging方法, GridFile即時(shí)離散插值后生
//成的路徑加文件名(其后綴應(yīng)該是“. grd”, . grd文件格式是Ascii碼的形式;
bit=AppSurfer.GridBlank (GridFile, outpath+ "\"+"GANKONG.BLN",GridFile,SrfGridFormat.srfGridFmtAscii);
//注:第一個(gè)GridFile為輸入的離散化文件路徑加文件名,將其利用bln文件去掉邊界外的數(shù)據(jù),第二個(gè)GridFile 為輸出的離散化文件路徑加文件
//名,其輸出格式也是Ascii碼;
Surfer.IMapFrame MapFrame1=Doc.Shapes.AddContourMap(GridFile);
//注:將格點(diǎn)化文件GridFile生成等值線圖,并給其命名為MapFrame1;
Surfer.IContourMap ClassedCounterMap=(Surfer.IContourMap)MapFrame1.Overlays.Item(1);
//注:將等值線圖形屬性指定給變量ClassedCounterMap;
ClassedCounterMap.Levels.LoadFile (outpath +"\ " + " 01. lvl" ) ;
ClassedCounterMap.SmoothContours.Equals(4);
ClassedCounterMap.FillContours=true;
ClassedCounterMap.ShowColorScale=true;
/// /注:等值線圖的色彩填充文件為01. lvl, Surf2er都帶有這個(gè)文件,
//SmoothContours為平滑等值線邊界,選擇填充等值線,顯示色標(biāo);
Surfer.IMapFrame mapframe2=Doc.Shapes.AddBaseMap(outpath + " \ " + " GANMAP. BLN ",outpath + " \ " + " GANKONG. BLN" ) ;
//注:添加BLN 底圖并將此圖層命名為map2frame2;
double[ ] CustomLevels=new double[14];
CustomLevels[0]=0;
CustomLevels[1]=1;
CustomLevels[2]=5;
CustomLevels[3]=10;
//注:定義色標(biāo)的標(biāo)注值,可以根據(jù)具體情況而定;
Surfer.ILevels Levels=((Surfer.IContourMap)MapFrame.Overlays.Item(1)).Levels;
Levels.Set(CustomLevels);
Levels.Item(1).Fill.ForeColor=Surfer.srfColor.srfColorLightYellow;
Levels.Item (2).Fill.ForeColor=Surfer.srfColor.srfColorBananaYellow;
Levels.Item (3).Fill.ForeColor=Surfer.srfColor.srfColorSeaGreen;
Levels.Item (4).Fill.ForeColor=Surfer.srfColor.srfColorOceanGreen;
//注:給MapFrame圖層上加色標(biāo),色標(biāo)方案是此處定義的顏色方案;
Levels.Item(1).ShowLabel=true;
Levels.Item(2).ShowLabel=true;
Levels.Item(3).ShowLabel=true;
Levels.Item(4).ShowLabel=true;
//注:顯示色標(biāo)值;
Doc.Shapes.SelectAll( );
Surfer.ISelectionsel=Doc.Selection;
sel.OverlayMaps( );
//注:將圖層全部選定,然后覆e68a847a686964616f31333337373732蓋地圖;
if(bit){Surfer.IMapFrame lMapFrame=((Surfer.IMapFrame)Doc.Shapes.Item("Map")) ;
((Surfer.IContourMap)lMapFrame Overlays.Item ("Contours")).SetZOrder(Surfer.SrfZOrder.srfZOToBack);
}
((Surfer.IMapFrame)Doc.Shapes.Item("Map")).SetLimits(92,110,32,43);
//注:定義新的圖層lMapFrame,新圖層的大小仍然是經(jīng)度92 - 110度,緯度32 - 43度;
Doc.Export(outGraphic,false,"Defaults=1,Width=720,KeepAspect=1,ColorDepth=24,Automatic=0,Quality=100");
AppSurfer.Documents.CloseAll(Surfer.SrfSave2Types.srfSaveChangesNo);
AppSurfer.Quit();
//注:輸出文件加路徑名是outGraphic,即圖片名稱,可以選擇幾種后綴(如png、jpg等) ,定義圖片的大小、顏色、質(zhì)量等等,最后退出AppSurfer;
------其他回答(20分)---------
C# code
using System;
using System.Threading;
using System.Drawing;
// Before using this code you need to add a reference to the Surfer.exe program,
// which will automatically cause a type library to be generated.
// 1. In Visual Studio .NET, open the Solution Explorer
// 2. Right-click on References and select "Add Reference"
// 3. Click "Browse", find Surfer.exe and click "Open"
// 4. Click OK
// You can all add "using Surfer;" to the top of this file to to avoid having to
// reference the Server namespace on declarations.
//
//
namespace TT
{
/// <summary>
/// Demonstrates how to control surfer from a C# class
/// </summary>
public class SurferControl {
public Surfer.IColorMap ColorMap;
public SurferControl() {
//
// TODO: Add constructor logic here
//
// Make an instance of the application
Surfer.ApplicationClass AppSurfer = new Surfer.ApplicationClass();
// Make the application visible
AppSurfer.Visible = true;
// Get the Documents collection
Surfer.IDocuments Docs = AppSurfer.Documents;
// Add a new document to the Documents collection
Surfer.IPlotDocument Doc = (Surfer.IPlotDocument) Docs.Add(Surfer.SrfDocTypes.srfDocPlot);
// Get the Shapes collection from the document
Surfer.IShapes Shapes = Doc.Shapes;
// Create a shaded relief map from the helens2.grd file
Surfer.IMapFrame MapFrame = Shapes.AddReliefMap(AppSurfer.Path + @"\samples\helens2.grd");
// Get the shaded relief overlay from the map frame
Surfer.IReliefMap ReliefMap = (Surfer.IReliefMap) MapFrame.Overlays.Item(1);
// Get the ColorMap used by the relief map
ColorMap = ReliefMap.ColorMap;
// Animate the colors of the shaded relief map from the default black to red.
Thread AnimateThread = new Thread(new ThreadStart(AnimateColorMap));
AnimateThread.Start();
}
surfer8.0中如何將等值線圖和3D圖組合在一起,生成如下圖形?
surfer也許有這個(gè)功能吧,不過我真不知道,希望知道的朋友告訴,我也學(xué)百習(xí)一下。
下面說一下我的思路,完全可以實(shí)現(xiàn)這種效果。
下面的表面度圖就不說了,不問用做其它設(shè)置了。
而等值線圖默認(rèn)是平面的,需要在屬性對(duì)話框答里旋轉(zhuǎn),與表面圖一致。如下圖:
旋轉(zhuǎn)設(shè)成45度,傾斜30度,就可內(nèi)以了。
然后可以輸出些等值線圖,容再把等值線圖隱藏后,輸出表面圖,再把輸出的兩張圖用PS上下擺好,畫四條垂直線就可以了。
供參考。
怎么在surfer同時(shí)畫多個(gè)等值線圖
分別生成兩個(gè)等值線圖,然后疊加在一起就可以了。
surfer8中有overlay的功能,
surfer9中麻煩一點(diǎn),可以通過調(diào)整位置和尺度的方式實(shí)現(xiàn)。
哈哈!追問還有一個(gè)問題是:CAD貼圖:如何把底圖填充的顏色也顯示出來,不僅僅是線條??!怎么修改設(shè)置???本回答被提問者采納
surfer畫等值線圖怎么圓滑
我以前回答過類似百的問題,基本上有三種辦法:
1、增加坐標(biāo)度點(diǎn),三個(gè)點(diǎn)和三十個(gè)點(diǎn),生成的等值線平滑度程度的區(qū)別是極問明顯的,所以,坐標(biāo)越多,線條越平滑
2、適當(dāng)?shù)牟逯岛瘮?shù),不同的函數(shù),計(jì)算答的方法不同,得到的線條也有區(qū)版別,可以嘗試一下。
3、使用smooth,如下圖所示,平滑級(jí)別有低中高三個(gè),但權(quán)效果并不是太明顯。
本回答被提問者采納surfer的等值線圖怎么與底圖疊加
1、首先,必須保證底圖與等值線圖的坐標(biāo)一致。
2、選中底圖和等值線圖,在左側(cè)窗口,用SHIFT或CTRL配合左鍵多選
3、如下圖,MAP-overlay maps,即可按坐標(biāo)對(duì)齊。
本回答被提問者采納
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com