2017-06-30 18 views
1

これは単純な/愚かな質問であれば、Rを使用することについては非常に初心です。csvファイルのデータをnetCDFファイルに追加

私は風速とcp(風力発電係数)の2列のcsvファイルを持っています。 私はまた、それぞれのグリッドポイントで3時間の風速を持つ様々なnetCDFファイル(それぞれ1年を表す)を持っています。 (緯度424、緯度412)。

各格子点でnetCDFファイルにcpの値を追加したい、つまり、Rに適したnetCDFファイルに変数としてcpを追加したいのですが、Pythonを使って少し経験があります。

ありがとうございます。

+0

私はhttps://stackoverflow.com/questions/22933855/convert-csv-to-netcdf(この記事は[変換-CSV-に-NetCDFファイル]参考になると思います) –

+1

あなたのコメントをありがとう。私はそれを見ましたが、私のcsvファイルに緯度経度値はありませんので、その方法はうまくいくとは思いませんでしたか?問題は、NetCDFファイルに既に存在する風速に基づいてグリッドポイントにcp値を割り当てる必要があることです。 –

+0

'cp'をどのようにして速度にマッピングしたいですか?風速にある特定の「cp」値に対応する範囲があるかどうか。 '0 <= u <1'は' cp = 10'を与え、 '1 <= u <2'は' cp = 20'を返します。 – Bart

答えて

0

(1)V対cp曲線(CSVファイル)と(2)NetCDFファイルからの速度を取得するための単純な補間はできませんか?単純な補間は、Pythonでは非常に高速です(そして私もRで推測されます)。

CSVファイルのV対cp曲線が非常に詳細な場合は、最も近い近傍補間のような簡単な方法で逃げることができます。そうでない場合は、より良い選択肢があります。たとえば:

import numpy as np 
import matplotlib.pylab as pl 
from scipy import interpolate 

# Given combinations of velocity and cp (from CSV file): 
V_csv = np.linspace(0,10,4) 
cp_csv = V_csv**2. 

# Random velocities in the range {0..10} (from NetCDF file): 
V = np.random.random(5)*10 

# Create linear, nearest neighbour and quadratic interpolation functions 
f_near = interpolate.interp1d(V_csv, cp_csv, kind='nearest') 
f_lin = interpolate.interp1d(V_csv, cp_csv, kind='linear') 
f_quad = interpolate.interp1d(V_csv, cp_csv, kind='quadratic') 

# Interpolate: 
cp_near = f_near(V) 
cp_lin = f_lin(V) 
cp_quad = f_quad(V) 

# Visulalization 
pl.figure() 
pl.plot(np.linspace(0,10,256), np.linspace(0,10,256)**2., label='Real V vs cp curve') 
pl.plot(V_csv, cp_csv, '-x', label='Given (discrete) V vs. cp curve') 
pl.scatter(V, cp_near, label='nearest') 
pl.scatter(V, cp_lin, label='linear') 
pl.scatter(V, cp_quad, label='quadratic') 
pl.legend(frameon=False, loc='best') 
pl.xlabel('V') 
pl.ylabel('cp') 

enter image description here

+0

あなたの返事をありがとう。問題は、グラフの方程式にも風速の値によって変化する変数がありますが、関係式を示す方程式はありません... –

+0

今私は完全に失われています... – Bart

+0

はい申し訳ありませんが、それをよく説明してください。要するに、私はグラフの方程式を持っていない、私はグラフを添付しようとしていますが、このサイトに新しいです。 –

関連する問題