2017-06-04 643 views
0

NetCDFファイルをPythonを使用してCSVファイルまたはテキストファイルに変換しようとしています。私はthis postを読みましたが、私はまだ一歩足りません(私はPythonを初めて使っています)。緯度、経度、時間、降水量データを含むデータセットです。NetCDFファイルをCSVまたはテキストをPythonを使用して変換する

import netCDF4 
import pandas as pd 

precip_nc_file = 'file_path' 
nc = netCDF4.Dataset(precip_nc_file, mode='r') 

nc.variables.keys() 

lat = nc.variables['lat'][:] 
lon = nc.variables['lon'][:] 
time_var = nc.variables['time'] 
dtime = netCDF4.num2date(time_var[:],time_var.units) 
precip = nc.variables['precip'][:] 

私はそれがパンダとのデータフレームを作成する問題です理解していますが、ここから続行するかどうかはわからない:

これは、これまでのところ、私のコードです。あなたの要件に応じて、あなたがnumpyののsavetxtメソッドを使用することができるかもしれ

答えて

1

import numpy as np 

np.savetxt('lat.csv', lat, delimiter=',') 
np.savetxt('lon.csv', lon, delimiter=',') 
np.savetxt('precip.csv', precip, delimiter=',') 

この意志出力データの任意の見出しやインデックス列のない、しかし。

あなたがそれらの機能を必要とした場合は、あなたがデータフレームを構築することができますし、次のようにCSVとして保存します。

df_lat = pd.DataFrame(data=lat, index=dtime) 
df_lat.to_csv('lat.csv') 

# and the same for `lon` and `precip`. 

注:ここでは、私は、日付/時刻インデックスが最初の次元に沿って走ることを前提としていデータ。

+0

ありがとうございます!残念ながら、これはうまくいかなかった - 私は他のデータセットで使用していたすべての緯度と経度を抽出し、それをループして各場所の時系列を取得した。上記のリンクのように。時間がかかりますが、機能します! – aliki43

2

私はpandas.Seriesはあなたが時間、緯度、経度、降水量でCSVを作成するために働くべきだと思います。

import netCDF4 
import pandas as pd 

precip_nc_file = 'file_path' 
nc = netCDF4.Dataset(precip_nc_file, mode='r') 

nc.variables.keys() 

lat = nc.variables['lat'][:] 
lon = nc.variables['lon'][:] 
time_var = nc.variables['time'] 
dtime = netCDF4.num2date(time_var[:],time_var.units) 
precip = nc.variables['precip'][:] 

# a pandas.Series designed for time series of a 2D lat,lon grid 
precip_ts = pd.Series(precip, index=dtime) 

precip_ts.to_csv('precip.csv',index=True, header=True) 
+0

ありがとうございます!これは完璧でした – aliki43

+0

あなたは大歓迎です。あなたは将来の読者のために答えを受け入れるべきです。 –

関連する問題