Main Content

ncread

netCDF 데이터 소스의 변수에서 데이터 읽기

    설명

    예제

    vardata = ncread(source,varname)source에 포함된 netCDF 변수 varname으로부터 모든 데이터를 읽어 들입니다. 반환되는 변수 값 vardatavarname의 netCDF 데이터형과 가장 일치하는 MATLAB® 데이터형입니다.

    예제

    vardata = ncread(source,varname,start,count)start에 의해 지정된 위치에서 시작하여 데이터를 읽어 들입니다. count 인수는 각 차원을 따라 읽어 들일 요소 개수를 지정합니다.

    예제

    vardata = ncread(source,varname,start,count,stride)는 변수의 각 차원의 인덱스 사이에 stride로 지정된 간격을 갖는 데이터를 반환합니다.

    예제

    모두 축소

    netCDF 파일 example.nc에서 peaks라는 이름의 변수를 읽어 들여 플로팅합니다.

    peaksData = ncread("example.nc","peaks");
    whos peaksData
      Name            Size            Bytes  Class    Attributes
    
      peaksData      50x50             5000  int16              
    

    peaksData를 플로팅하고 제목을 추가합니다.

    surf(peaksData)
    title("Peaks Data")

    Figure contains an axes object. The axes object with title Peaks Data contains an object of type surface.

    위치 [25 17]부터 시작해 각 차원의 끝까지 peaks 변수 데이터의 일부만 읽어 들여 플로팅합니다.

    start = [25 17];   % Start location along each coordinate
    count = [Inf Inf]; % Read until the end of each dimension
    peaksData = ncread("example.nc","peaks",start,count);
    whos peaksData
      Name            Size            Bytes  Class    Attributes
    
      peaksData      26x34             1768  int16              
    

    데이터를 플로팅합니다.

    surf(peaksData)
    title("Peaks Data Starting at [25 17]")

    Figure contains an axes object. The axes object with title Peaks Data Starting at [25 17] contains an object of type surface.

    각 차원을 따라, 지정한 간격마다 있는 변수 인덱스에서 샘플링한 데이터를 읽어 들여 플로팅합니다. start의 위치에서 시작하여 stride에 지정된 간격으로 변수 데이터를 읽어 들입니다. stride의 값이 1이면 해당 차원에서 인접한 값들이 차례로 액세스되고, 값이 2이면 해당 차원에서 하나 걸러 하나의 값이 액세스되는 식입니다.

    start  = [1 1]; 
    count  = [10 15]; 
    stride = [2 3]; 
    sampledPeaksData = ncread("example.nc","peaks",start,count,stride);
    whos sampledPeaksData
      Name                   Size            Bytes  Class    Attributes
    
      sampledPeaksData      10x15              300  int16              
    

    데이터를 플로팅합니다.

    surf(sampledPeaksData)
    title("Peaks Data Subsampled by [2 3]")

    Figure contains an axes object. The axes object with title Peaks Data Subsampled by [2 3] contains an object of type surface.

    입력 인수

    모두 축소

    netCDF 데이터 소스 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. source 인수는 다음 값 중 하나일 수 있습니다.

    • 로컬 netCDF 소스의 경로

    • 원격 OPeNDAP netCDF 데이터 소스의 OPeNDAP URL

    • 원격 netCDF 소스의 HTTP URL로, 바이트 범위 읽기를 활성화하기 위해 URL 끝에 #mode=bytes가 추가됨

      참고

      바이트 범위 읽기는 다른 소스에서 읽는 것보다 속도가 느립니다. 바이트 범위 읽기에 대한 자세한 내용은 netCDF 문서를 참조하십시오.

    예: "myNetCDFfile.nc"

    예: "http://host_name/netcdf_filename#mode=bytes"

    변수 이름으로, netCDF 데이터 소스의 변수 이름을 포함하는 string형 스칼라 또는 문자형 벡터로 지정됩니다.

    sourcenetcdf4 형식의 파일을 지정하는 경우 완전히 정규화된 이름으로 varname을 지정하여 그룹 계층 내에서 변수의 위치를 지정할 수 있습니다.

    예: "myVar"

    예: "/myGrp/mySubGrp/myNestedVar"

    변수의 데이터 시작 위치로, 양의 정수로 구성된 숫자형 벡터로 지정됩니다. N차원 변수에 대해 start를 1부터 시작하는 인덱스를 포함하는 길이가 N인 벡터로 지정합니다.

    start를 지정하지 않으면 ncread 함수는 각 차원을 따라 첫 번째 인덱스에서부터 변수를 읽어 들이기 시작합니다.

    예: [2 1 3]

    데이터형: double

    읽어 들일 요소 개수로, 양의 정수 또는 Inf 값으로 구성된 숫자형 벡터로 지정됩니다. N차원 변수에 대해 count를 길이가 N인 벡터로 지정하고, 각 차원을 따라 읽어 들일 요소 개수를 포함합니다. count의 요소에 Inf가 하나라도 있는 경우 ncread는 해당 차원의 끝까지 읽어 들입니다.

    count를 지정하지 않으면 ncread 함수는 각 차원의 끝까지 변수 데이터를 읽어 들입니다.

    예: [Inf 10 50]

    데이터형: double

    각 차원에서 변수 인덱스 사이의 간격으로, 정수로 구성된 숫자형 벡터로 지정됩니다. N차원 변수에 대해 stride를 길이가 N인 벡터로 지정합니다. stride 벡터의 요소는 순서대로 변수의 차원에 대응됩니다. 값이 1이면 해당 차원에서 인접한 netCDF 변수의 값들이 차례로 액세스되고, 값이 2이면 해당 차원에서 하나 걸러 하나의 값이 액세스되는 식입니다.

    stride를 지정하지 않으면 ncread 함수는 각 차원에서 디폴트 간격 1을 사용하여 데이터를 읽어 들입니다.

    예: [2 10 1]

    데이터형: double

    출력 인수

    모두 축소

    변수 데이터로, 숫자형 배열, 텍스트, 또는 varname의 netCDF 데이터형과 가장 일치하는 MATLAB 데이터형으로 구성된 숫자형 배열로 반환됩니다. MATLAB이 가장 일치하는 유형을 결정하는 방법은 NetCDF 데이터형을 MATLAB 데이터형으로 변환 항목을 참조하십시오.

    숫자형 변수의 경우 특성 _FillValue, scale_factor, add_offset 중 하나라도 존재하면 vardatadouble형입니다. 또한 ncreadvardata를 반환하기 전에 이러한 특성 규칙을 순서대로 적용합니다.

    1. _FillValue 특성이 존재하는 경우:

      • vardatadouble형 또는 single형이면, ncread_FillValue 특성 값과 같은 vardata 값을 NaN 값으로 바꿉니다.

      • vardata가 그 외 다른 숫자형이면, ncread_FillValue 특성 값과 같은 vardata 값뿐 아니라 NaN vardata 값도 0 값으로 바꿉니다.

    2. scale_factor 특성이 존재하는 경우, ncreadvardata 값에 scale_factor 특성의 값을 곱합니다.

    3. add_offset 특성이 존재하는 경우, ncreadvardata 값에 add_offset 특성의 값을 더합니다.

    참고

    varnameNC_STRING 유형인 경우 UTF-8 인코딩 문자를 포함할 수 있습니다. varnameNC_CHAR 유형인 경우 ASCII 인코딩 문자만 포함해야 합니다.

    데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | cell | char | string

    세부 정보

    모두 축소

    NetCDF 데이터형을 MATLAB 데이터형으로 변환

    netCDF 관련 MATLAB 함수는 아래 표에 따라 netCDF 데이터형과 가장 일치하는 MATLAB 데이터형을 자동으로 선택합니다.

    NetCDF 데이터형MATLAB 데이터형
    NC_DOUBLEdouble
    NC_FLOATsingle
    NC_INTint32
    NC_SHORTint16
    NC_BYTEint8
    NC_CHARchar
    NC_STRING(*)string
    NC_INT64(*)int64
    NC_UINT64(*)uint64
    NC_UINT(*)uint32
    NC_USHORT(*)uint16
    NC_UBYTE(*)uint8
    사용자 정의 NC_VLEN 유형(*)cell

    (*) 이 netCDF 데이터형은 netcdf4 형식의 파일에만 사용할 수 있습니다.

    • MATLAB은 다차원 데이터를 열 우선으로 해석하지만 netCDF C API는 다차원 데이터를 행 우선으로 해석합니다. netCDF C API의 다차원 데이터는 MATLAB에 표시된 순서와 반대로 차원을 표시하기 때문에 결과적으로 전치된 것으로 표시됩니다.

    버전 내역

    R2011a에 개발됨

    모두 확장