2016-10-31 2 views
1

현재 .NC 파일에서 데이터를 추출하여 그놈에서 사용하기 위해 .cur 파일을 만듭니다. 나는 파이썬에서 이렇게하고있다.시간을 기준으로 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 가져 오기 데이터 세트에서 순이익 로 수입 NumPy와를 code' 시도 코드가 volcgrp = 데이터 집합 ('file_1.nc', 'R') VAR = volcgrp.variables [ ' ('% s \ n'% newList) print (var); print (var)새 목록 = var.tolist 파일 열기 ('text.txt', 'w') ("Done") volcgrp.close() 'code' 이 경우 water_v를 추출하여 텍스트 파일에 넣으려고합니다. 우리의 임무는 행 1과 행 2에 각각 water_v와 water_u가 오는 행을 포함하는 파일을 만드는 것입니다. 이것은 .NC 파일에서 각 시간 요소에 대해 발생해야합니다. 조금 더 명확하게 표시되어 있습니까? –

+0

질문에 코드를 넣으십시오. 제대로 포맷 할 수 있습니다 (들여 쓰기가 파이썬에서 중요하므로 괜찮은 포맷팅이 더 중요합니다). – Blckknght

답변

1

의 핵심은 세 가지 차원의 각각에 대한 water_uwater_v에서 읽을 다음은 시간 차원에 따라 그 변수에 액세스 할 수 있습니다.

water_u_first = water_u[0,:,:] 

것은 당신이 코멘트에 설명 같은 텍스트 파일에이 3D 데이터를 저장하려면, 당신이 필요합니다 :이 파일에 처음으로 각 격자 점에서 데이터에 액세스 할 수

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'][:,:,:] 

(2) 해당 시점에 time을 반복하고, (2) 해당 시점에 water_uwater_v을로드하고, (3) 2D 배열을 1D로 병합하고, (4) 표준 file.write 기술을 사용하는 경우 문자열로 변환합니다 (Pandas to_csv은 피할 수 있음). 예제), 그리고 (5) 1D 배열을 텍스트 파일의 행으로 출력합니다.

+0

자세한 설명을 주셔서 감사합니다. 나는 그것을 시도하고 내 결과에 대해 알려 드릴 것입니다! 다시 한번 감사드립니다. –

관련 문제