- 积分
- 67521
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-23
- 最后登录
- 1970-1-1
|
发表于 2020-12-16 14:39:45
|
显示全部楼层
格式转换难在对“格式”的理解,“.dat”不是格式,而是扩展名,本质上是ASCII码构成的第4类数据。
格式转换其实就两步:1、读取A格式,暂存到内存中。2、写入B格式。语言只是工具而已,而已。。。
1、关于第4类数据的格式,文件头信息要读懂,其次主体部分就是经纬度存储
文件头:diamond 4 数据说明(字符串) 年 月 日 时次 时效 层次(均为整数)经度格距 纬度格距 起始经度 终止经度 起始纬度 终止纬度(均为浮点数) 纬向格点数 经向格点数(均为整数) 等值线间隔 等值线起始值 终止值 平滑系数 加粗线值(均为浮点数)
数据按先纬向后经向放(直角坐标网格时为先X方向后Y方向),均为浮点数。
有了起始、结束经纬度和分辨率,就知道数据数组的大小了,就可以读取所有数据成一个数组arr存到内存中。
C#可以用File.Readlines()方法读取所有内容,再用空白符分隔split(),之后赋值给一个数组double[] balance
2、对于通用格式(比如netcdf),各种语言都能写入,度娘搜“C# netcdf 读写”就会出现一大堆。有些语言有封装好的包(比如Python的netcdf或者xarray都能一行输出netcdf格式文件)。把arr作为变量传递到搜到的方法中去就完成了。
|
|