王波,齐军岐.C#调用Surfer接口绘制区域站等值线图[J].陕西气象,2014(2):45-47.文章编号:1006-4354(2014)02-0045-03收稿日期:2013-08-19作者简介:王 波(1985—),男,陕西杨陵人,汉族,学士,助理工程师,从事技术保障和气象信息技术开发。C#调用Surfer接口绘制区域站等值线图王 波1,齐军岐2(1.千阳县气象局,陕西千阳 721100;2.宝鸡市气象局,陕西宝鸡 721006)关键词:C#;Surfer;区域自动气象站;等值线图中图分类号:P415 文献标识码:B 截止2012年底,宝鸡市已建成158个区域自动气象站,实现了多要素的连续动态实时监测,大大增强了灾害性天气的监测预警能力。目前,在对地方的气象服务工作中,各类气象服务材料已必不可少,简单的表格式材料已不能满足当前的服务需求。将Surfer强大的插值、绘图功能和C#编程语言的简单可视化操作以及高效运行效率相结合,利用C#编程语言调用Surfer软件接口的绘图函数,实现区域自动气象站温度和降水资料插值填图、等值线绘制以及色彩填充,将气象资料转化为美观、便于调阅的图像文件,对台站人员更好地应用区域站资料,做好气象服务提供帮助。1 绘制等值线图流程首先,利用结构化查询语言(StructuredQueryLanguage,简称sql)查询区域站整点数据,结合站点信息动态生成“温度.dat”和“雨量.dat”两个基本气象要素数据文件;接着通过C#调用Surfer软件接口,对基本气象要素数据进行格点化处理,最后加载“宝鸡市底图.bln”、“宝鸡市边界图.bln”两个地图文件和“等级.lvl”色标文件绘制温度、降水等值线色斑图。2 基本数据文件及格式2.1 气象要素数据文件气象要素数据文件(.dat)的文件格式如下X Y ZX0Y0Z0X1Y1Z1………XnYnZn其中第一、二列分别为区域站站点经度和纬度,第三列为气象要素值(如气温、降水量),每行代表一个区域自动气象站的数据。C#生成气象要素数据文件(.dat)核心代码为Select一小时雨量,空气温度fromCawsDatawhere日期时间=+date+″0000″;(获取区域站雨量和温度数据,date为yyyyMMddhh的时间格式字符串)StreamReadersr=newStreamReader(baojistation,Encoding.GetEncoding(″GBK″))(获取区域站经纬度数据)wendu+=station+″″+T+″\r\n″;StreamWritersw=newStreamWriter(″温度.dat″);(生成X、Y、Z格式的“温度.dat”文件)2.2 地图数据绘图所需的地图数据为“宝鸡市底图.bln”和“宝鸡市边界图.bln”,包含了市、县边界经纬度数据。宝鸡市底图文件格式为Length(底图坐标个数)flag(标志)54 2014(2) 陕 西 气 象X0 Y0X1Y1……XnYn其中length为底图坐标总数,flag为标志位1或0(1代表消除闭合曲线内的等值线,0代表消除闭合曲线外的等值线),Xn、Yn分别代表所辖区县边界经纬度坐标。宝鸡市边界图与底图格式一样,唯一不同的是边界图包含的是一条连续的边界曲线经纬度坐标,也就是一条闭合曲线,即要求Xn=X0、Yn=Y0。2.3 色彩填充文件绘图所需的色彩填充文件为.lvl格式的色标文件,包含了气象要素值所对应的数量等级颜色值及样式。3 绘制等值线图3.1 C#对Surfer软件接口调用引用首先添加对Surfer软件Interop.Surfer.dll类库文件的引用,然后可以通过编写C#代码实现对Surfer软件各功能的调用,实现宝鸡市区域自动气象站温度、雨量等值线图的绘制。surfer接口引用调用代码usingSurfer;(为C#程序添加Surfer接口引用)Surfer.ApplicationSurferApp=newSurfer.Application();(调用Surfer,生成实例对象)3.2 气象要素数据离散化差值绘制等值线图需要的数据为格点数据,需要将包含气温、雨量、站点经纬度的气象要素数据转换成格点数据。气象要素数据格点化转换核心代码为SurferApp.GridData(datFile,1,2,3,Surfer.SrfDupMethod.srfDupNone,0.03,0.03,...106.2,108.4,33.4,35.6,Surfer.SrfGridAlgorithm.srfKriging,...);(调用Surfer实例对象的GridData()方法对气象要素数据进行格点化转换,datFile为生成的XYZ文件 名,即.dat文件加路径,0.03为网格经纬向的分辨率,106.2、33.4分别为起始经、纬度,108.4、35.6分别为结束经、纬度,插值方法是Kriging方法)3.3 生成等值线图气象要素数据通过离散化差值转换为格点数据后,Surfer对格点数据进行Insert平滑处理,通过GridBlank()方法利用“宝鸡市边界.bln”文件去掉地图边界外的区域;建立绘图文档和绘图窗口,将气象要素格点数据生成等值线图添并加到等值面图层;新建并添加色彩填充文件即“等级.lvl”、宝鸡市地图文件、图例、图注等图层,最后将所有图层叠加调用绘图文档的Export()方法生成等值线图并输出。生成等值线图核心代码SurferApp.GridSplineSmooth(OutGrid,8,8,SrfSplineMethod.srfSplineInsert,...);(将格点数据文件进行平滑,平滑方法为Insert,行列的插值点数都为8)SurferApp.GridBlank(SmoothGrid,BlankFile,...);(利用“宝鸡市边界.bln”文件去掉地图边界外的区域)Doc=(Surfer.IPlotDocument)SurferApp.Documents.Add(Surfer.SrfDocTypes.srfDocPlot);(建立一个绘图文档和一个绘图窗口)ClassedCounterMap.Levels.LoadFile(LevelFile);(添加等值线图色彩填充文件)Surfer.IMapFramemapframe2=Doc.Shapes.AddBaseMap(BaseFile);(添加宝鸡市底图文件)sel.OverlayMaps();(将图层全部选定,进行层叠覆盖)Doc.Export(OutGrpahic,...,width=680,height=500,...);(OutGraphic为生成的等值线图片名称,格式可选如png、jpg等,680和500为图片的长和宽)4 结语C#调用Surfer软件接口既可以充分发挥 64陕 西 气 象 2014(2) 刘兴元.接地电阻测量技术讨论[J].陕西气象,2014(2):47-48.文章编号:1006-4354(2014)02-0047-02收稿日期:2013-09-23作者简介:刘兴元(1971—),男,汉族,陕西凤县人,大学本科,工程师,主要从事防雷检测工作。Surfer软件强大的绘图功能,又可以发挥C#编程强大的人机交互优势,二者相结合所绘制的区域站温度、降水量等值线图可将区域自动气象站观测资料直观和美观的显示出来。 参考文献:[1] 王建,白世彪,陈晔.Surfer8地理信息制图[M].北京:中国地图出版社,2004:124-128.[2] 马玉峰,高春香.VB与Surfer联合编程实现自动绘制气象要素图形[J].内蒙古气象,2010(2):38-40.[3] 王!,段燕楠,何俊.基于C#的ASP.NET建立气象数据查询系统[J].电脑编程技巧与维护,2010(13):41-43.接地电阻测量技术讨论刘兴元(宝鸡市气象局,陕西宝鸡 721006)中图分类号:P429 文献标识码:B 接地电阻的测量是防雷检测工作一个很重要的项目,需要严格遵守国家有关技术标准。1 测试点位的选择检测接地电阻时,接地棒不应插在接地系统内部,并应与共用接地网、独立接地装置或建筑物自然接地装置保持适当间距,一般以3~5m为宜,且须避开地下电缆、管道等。加油加气站接地网范围较大,应在其区域外选择插线点,切不可图方便随意在其接地网范围内插线,甚至将插线点选择在油罐区内,否则所测数据只是接地系统内部接地棒插地点与测试点之间的相对过渡(接触)电阻,而非接地系统自身接地电阻。对于一个接地系统而言,接地棒插好后,检测过程中不得随意变换其位置,否则由于参照点的变化,前后所测数据不是一个序列,不具有同一性和可比性,检测结论缺乏科学性。2 检测仪器及辅助线的使用测试仪器不应置于高压线电磁辐射范围内,一般在边相导线地面投影5m外可有效避免电磁感应干扰。测量接地电阻时,经常会遇到地面硬化、没有土地,或高处作业,测试线长度不够,需要使用辅助线来延长测试线的情况。配置辅助线时,要求导电性能好,线径适当,自身线阻小,绝缘良好,不得有裸露部分,否则与地面接触,会影响测量数据的准确性。初次使用辅助线,应当测试其自身电阻值,作为订正值,测量结果应当减去订正值。每次使用辅助线,必须全部展开,不得在线圈状态下测量,否则由于电感效应会使测量结果偏大。高处甩放辅助线时,应注意地面行人安全,并避免接触或缠挂到周围电线电缆上。3 检测时段的选择证券、期货、金融等行业对时效特别敏感,检测时应格外小心。为避免操作失误导致交易不正常甚至中断,造成不必要的损失和麻烦,对这些行业的单位进行检测时,须待下午闭市并备份74 2014(2) 陕 西 气 象