2013-10-22 8 views
1

NetCDF4 파일 작업에 문제가 있습니다. 아무도 도와주세요. 그것을 읽는 것이 효과가있는 것 같습니다.NetCDF4 파일 처리 문제

print f.dimensions 

이 날을 제공

<type 'netCDF4.Dataset'> 
root group (NETCDF4 file format): 
dimensions: soundings, levels 
variables: 
groups: Retrieval, Sounding 

... :

import netCDF4 
f = netCDF4.Dataset('mydata.nc', 'r') 

I 파일 (>>> 인쇄 F) 내부에 무엇을 조사하려고

, 나는 몇 가지 정보를 얻을 수

OrderedDict([(u'soundings', <netCDF4.Dimension object at 0x2bd24b0>), 
(u'levels', <netCDF4.Dimension object at 0x2bd2500>)]) 

튜토리얼에서 읽은 내용부터

print len(soundings) 

그러나 "name 'soundings'not defined"오류 메시지가 나타납니다. 아무도 내가 뭘 잘못할 지 알지 못하니? 감사.

답변

2

soundings 변수를 정의하지 않았기 때문에 오류가 발생합니다. 당신이

soundings = f.dimensions[u'soundings'] 

하여이 변수를 정의 할 경우에 당신은 print len(soundings)를 사용 soundings의 길이를 찾을 수 있어야합니다.

또는, 당신은 내가 netCDF4을 사용하지 않는 한, 직접 내가 인정해야

print len(f.dimensions[u'soundings']) 

를 사용하여 '수심'차원의 길이에 액세스 할 수 있습니다, 그래서 netCDF4 documentation 간략하게 읽어 보시기 바랍니다. '는 netCDF의 파일의 크기'섹션에서 그것은 netCDF4 데이터 세트의 크기를 표시하는 다음과 같은 예를 들어 있습니다. (간단히 말해서, 나는 rootgrp의 출처에 대한 세부 사항을 생략 한)

>>> print rootgrp.dimensions 
OrderedDict([('level', <netCDF4.Dimension object at 0x1b48030>), 
      ('time', <netCDF4.Dimension object at 0x1b481c0>), 
      ('lat', <netCDF4.Dimension object at 0x1b480f8>), 
      ('lon', <netCDF4.Dimension object at 0x1b48a08>)]) 

을 을 다음의 코드에서 코드의 다음 줄은 이것이다 :

>>> print len(lon) 

당신이 놓친 것은 변수 lon

>>> lon = rootgrp.createDimension('lon', 144) 
로, 추가로 최대 선언이다

위의 튜토리얼의 섹션에서는 을 사용하여 netCDF 파일에 새로운 크기 인 치수를 작성하는 반면 netCDF 파일에서 기존 치수를 읽는 중입니다. 따라서 netCDF 파일에서 치수를 가져와야합니다.

+0

도움 주셔서 감사합니다. 나는 netCDF 문서를 한 시간 이상 훑어보고, 위의 예제를 발견했지만 그것을 이해할 수 없었다. 완전히 올바른 것으로 가정 했으므로 코드의 한 단계가 빠져 있음을 깨닫지 못했습니다. 이제 어떻게해야할지 알았습니다. 감사. – paulchen