2017-05-16 6 views
0

netCDF4를 사용하여 다차원 데이터를 저장하고 있습니다. 데이터는 예를 들어 time = [0, 1, 2], height = [10, 20], direction = [0, 120, 180, 240, 300]의 세 가지 차원을 가지지 만 모든 조합 (그리드 점)에는 데이터가 없습니다. 이 예에서는 height/direction- 조합으로 제한됩니다. 즉, height == 10direction in {0, 120, 240}height == 20에만 direction in {120, 180, 300}에 대한 데이터가 있다고 가정합니다. 내가 볼이 다루는netCDF4 : 사용되지 않는 격자 점으로 다차원 데이터 처리 방법

접근 방법은 다음과 같습니다

  1. height/direction -combination에 대해 별도의 일차원 Variable를 사용합니다.
  2. 데카르트 곱을위한 단일 3 차원 Variable, 즉 모든 가능한 조합을 사용하고 일부 조합의 경우 모든 값이 마스킹된다는 사실과 함께 살아 간다.
  3. 각 높이마다 다른 위치 치수 정의를 사용하고 각 높이에 2 차원 Variable을 사용하십시오.

하나의 접근 방식을 선호하는 이유는 무엇입니까?

답변

1

기본적으로 응답 번호 2가 정확한 것입니다. NETCDF 파일은 격자 파일이며, 데이터 기술의 자연스러운 구조는 시간, 높이 및 방향의 세 가지 차원을 정의하는 것입니다.

_FillValue 

이 등과 ncview R, 파이썬 같은 소프트웨어는 데이터를 판독되는 것을 의미 어레이 항목에있는 데이터에 대한 메타 데이터에 의해 정의 된 값과 같도록 데이터를 설정할 필요가없는 이 점수는 "누락"으로 지정됩니다. 누락 된 값을 정의에 대한 자세한 내용은

볼 : 메타 규칙에 최대 읽을 때 http://www.unidata.ucar.edu/software/netcdf/docs/fill_values.html

0

, 나는 다른 옵션을 발생 : 'compression by gathering'는 heightdirection 변수의 단일 location variable에.

장난감 예제에서 어떻게 작동합니까?

0: 10,0 * 
1: 10,120 * 
2: 10,180 
3: 10,240 * 
4: 10,300 
5: 20,0 
6: 20,120 * 
7: 20,180 * 
8: 20,240 
9: 20,300 * 

이어서 location = [0, 1, 3, 6, 7, 9] 및 데이터는 제 2 및 제 3 A compress: "height direction" 특성이 치수 location, 및 time를 사용하여 정의된다 : 첫째 일차원리스트에 모든 위치 모인다. 위치 인덱스와 height/direction 값의 관계를 명시하기 위해 2 차원 보조 좌표 변수를 추가하는 것이 가장 좋습니다 (height_direction = [(10,0), (10,120), (10,240), (20,120), (20,180), (0,300)]).

라이브러리 지원이없는 것처럼 보이기 때문에 모든면에서 가장 편리한 옵션은 아닙니다. 그러나 메타 데이터 표준 인 "NetCDF Climate and Forecast (CF) Metadata Conventions"에서 인코딩된다는 점을 감안할 때 합법적 인 옵션으로 보입니다.