2014-10-02 3 views
0

netcdf 파일 및 변수에 액세스하기 위해 netcdf-java를 사용하고 있습니다. 각 변수의 시작 오프셋을 얻고 해당 오프셋을 직접 찾을 수 있는지 궁금합니다. 다음은 findVariable 메서드에서 변수를 얻는 현재 코드입니다.get netcdf 변수 시작 오프셋

NcHdfsRaf raf = new NcHdfsRaf(file, job.getConfiguration()); 
NetcdfFile ncfile = WRFFile.openFile(raf, path.toString()); 
Variable timesVar = ncfile.findVariable("Temperature"); 
+0

내가 이런 종류의 싶어 : 데이터가 시작하는 곳이 구조체의 멤버는 '시작' 의 API 때문에 Netcdf 내가 처리중인 파일은 Hadoop Distributed File System-HDFS에 있으며 다중 노드의 여러 블록에 분산되어 있습니다. 나는 여러 노드에서 전체 파일을 읽는 대신 하나의 노드에서 고려중인 변수가있는 블록을 식별하고 해당 블록 만 읽을 수 있다면 더 효율적이라고 생각합니다. – pthongtra

답변

0

허. 왜 그걸 원하니? 그것은 아마도 끔찍한 생각입니다. 이미 데이터를 읽을 수있는 인터페이스가 있으며이 인터페이스는 기본 파일 형식 변경으로부터 당신을 격리시킵니다. 또한 netcdf는 이식 가능한 파일 형식이라는 점을 기억하십시오. 주어진 오프셋에서 1000 바이트를 읽으면 해당 바이트가 예상 한 바이트가 아닐 수도 있습니다. 라이브러리는 엔디안 변환 및 발생할 수있는 가능한 모든 유형 변환을 처리합니다. 어떤 바보 같은 이유로 오프셋을 취득하기를 원한다면 방법의 모든 것을 밖으로

, 내가 드릴 것입니다 자바 클래스에서 아무것도 표시되지 않습니다 당신이 할 그 :

http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/javadoc/ucar/nc2/Variable.html

당신은 C 라이브러리에이 일을한다면, 대중 API 아래에, 당신은 NC_Var의 유형을 엿볼 수 :

https://github.com/Unidata/netcdf-c/blob/master/include/nc3internal.h#L159