爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4688|回复: 1

[源程序] 关于python 调用 surfer 对XYZ型数据网格化问题

[复制链接]

新浪微博达人勋

发表于 2019-7-5 18:05:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 qianz98 于 2019-7-5 18:05 编辑

当我尝试用python调用surfer对数据进行网格化的时候,发现没有按我设想的输出格点数据文件。,
为了便于说明问题,数据采用\Samples\Demogrid.dat
代码如下:

  1. <p># -*- coding: utf-8 -*-
  2. """
  3. Created on Sat May 11 22:47:35 2019</p><p>python3.6 surfer13
  4. """
  5. import win32com.client as w32c
  6. import os</p><p>def test():
  7.     app = w32c.Dispatch('Surfer.Application')
  8.     app.Visible = True
  9.     xpath=os.path.dirname(os.path.realpath(__file__))
  10.     datafile=os.path.join(xpath,'Demogrid.dat')
  11.     gridfile=os.path.join(xpath,'temp.grd')
  12.     print(datafile)
  13.     print(gridfile)
  14.     xx=app.GridData3(DataFile=datafile,
  15.                            Algorithm=2,
  16.                            DupMethod=2,
  17.                            ShowReport=True,
  18.                            NumCols="500",
  19.                            NumRows="500",
  20.                            OutGrid=gridfile
  21.                            )
  22.     print(xx)
  23.    
  24.    
  25. if __name__ == "__main__":
  26.     test = test()</p>
复制代码

运行结果如下图:
可以看到XX为 true 证明这个转换是成功的。但是转换结果有问题。
具体情况是,我输入的Demogrid.dat,指定生成temp.grd, 但是没有生成,文件夹下生成了一个Demogrid.grd
我指定的网格点数量是500*500,生成的Demogrid.grd 网格点是78*100。这个代码是模仿\Samples\Scripts\GridData3_Spacing 写的。
为了解决这个问题,我安装过Surfer13-15的多个破解版本。都没有解决。
我不明白是我的代码问题,还是软件不是正版导致的。










调试

调试

调试2

调试2
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-7-8 17:08:49 | 显示全部楼层
我这边是没有问题, python 3.7+surfer 16.5
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表