且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Python中将.sav文件转换为.csv文件

更新时间:2023-01-18 18:43:43

我可以通过更改必需的输出格式来解决我的问题,这是我的代码:

I could solve my problem by changing the requisite output format and here is my code:

import scipy.io as spio
import numpy as np
import csv

on2file = 'ON2_2016_112m_220415.sav'   # i/p file
outfile = 'ON2_2016_112m_220415.csv'   # o/p file

# Read i/p file
s = spio.readsav(on2file, python_dict=True, verbose=True)

# Creating Grid
#d_lat = s["d_lat"]
#d_lon = s["d_lon"]
lat = np.arange(-90,90,1.78218)  # (101,)
lon = np.arange(-180,180,1.78218)     # (202,)
ylat,xlon = np.meshgrid(lat,lon)

on2grid = np.asarray(s["on2_grid"])
on2gridsmooth = np.asarray(s["on2_grid_smooth"])

nrows = len(on2grid)
ncols = len(on2grid[0])

xlon_grid = xlon.reshape(nrows*ncols,1)
ylat_grid = ylat.reshape(nrows*ncols,1)
on2grid_new = on2grid.reshape(nrows*ncols,1)
on2gridsmooth_new = on2gridsmooth.reshape(nrows*ncols,1)

# Concatenation
allgriddata = np.concatenate((xlon_grid, ylat_grid, on2grid_new, on2gridsmooth_new),axis=1)

# Writing o/p file
f_handle = file(outfile,'a')
np.savetxt(f_handle,allgriddata,delimiter=",",fmt='%0.3f',header="longitude, latitude, on2_grid, on2_grid_smooth")
f_handle.close()