2016-10-31 76 views
1

現在、.NCファイルからデータを抽出して、GNOMEで使用するために.curファイルを作成しています。私はこれをPythonでやっています時間に基づいてNETCDF(.NCファイル)からデータを抽出します

私は以下の変数を抽出しました。

water_u(time, y, x) 
water_v(time, y, x) 
x(x): 
y(y): 
time(time): time 
SEP(time, y, x) 

CURファイルには、次が含まれている必要があります。

[x][y][velocity x][velocity y] 

これは毎回変数存在するために起こるはず。この場合、私は10時間のデータを抽出しましたが、私は何千ものデータを持っています。[x][y]と速度。

私の質問は、時間変数に基づいてどのように速度を抽出するのですか?

import numpy as np 
from netCDF4 import Dataset 
volcgrp = Dataset('file_1.nc', 'r') 
var = volcgrp.variables['water_v'][:] 
print(var) 
newList = var.tolist() 
file = open('text.txt', 'w') 
file.write('%s\n' % newList) 
print("Done") 
volcgrp.close() 
+0

あなたは実際にあなたの質問への回答を得るチャンスを得るために、より詳細な情報を提供する必要があります。これまでに試したコードを表示し、何が起こったのかを記述してください(例外が発生するかどうか、もしそうなら、トレースバックを与えてください)。また、データの例を提供する必要があるかもしれませんが、まだファイルを解析できない場合(そして一般に共有することはできません)、少し難しいかもしれません。 – Blckknght

+0

@Blckknght これは私が「[netCDF4インポートデータセット volcgrp =データセット( 'file_1.nc'、 'R') VAR = volcgrp.variablesからNP 限り 'code'インポートnumpyのを試みたコードであります( '%s \ n'%newList) print(var); ファイルを開く( 'text.txt' ( "Done") volcgrp.close() 'code' この場合、water_vを抽出してテキストファイルに配置しようとしています。私の割り当ては、行1と行2にそれぞれwater_vとwater_uが来る行を含むファイルを作ることです。これは、.NCファイル内の各時間要素に対して発生する必要があります。 これは少し明確ですか? –

+0

コードを適切に書式設定することができる質問にPythonの字下げが重要なので、普通のフォーマットよりも重要です。 – Blckknght

答えて

1

ここで重要なのは、その3次元のそれぞれについてwater_uwater_vで読むために、その後、あなたはその時間次元に沿って、これらの変数にアクセスすることができます。このファイルの最初の時間のために、各格子点にデータにアクセスするには

import netCDF4 

ncfile = netCDF4.Dataset('file_1.nc', 'r') 
time = ncfile.variables['time'][:] #1D 
water_u = ncfile.variables['water_u'][:,:,:] #3D (time x lat x lon) 
water_v = ncfile.variables['water_v'][:,:,:] 

water_u_first = water_u[0,:,:] 

あなたはコメントで説明するようにテキストファイルにこの3Dデータを保存するために、あなたがする必要があります(2)その時点でとwater_vにアクセスし、(3)これらの2D配列を1Dに平坦化し、(4)標準のfile.write技術を使用している場合は文字列に変換します(Pandas to_csvを避けることができます例)、および(5)1D配列をテキストファイルに行として書き出す。

+0

詳細な説明に感謝します!私はそれを試し、私の結果についてあなたに知らせるでしょう!再びありがとう –

関連する問題