liminfo

NetCDF Reference

NetCDF/CF 규약/ncdump/xarray 레퍼런스

24개 결과

NetCDF Reference 소개

NetCDF 레퍼런스는 기상학, 해양학, 기후과학, 지구공간 데이터 분석에서 표준으로 사용되는 자기 기술적 파일 형식인 NetCDF(Network Common Data Form)의 종합 빠른 참조 가이드입니다. NetCDF-3 Classic(2GB 제한), NetCDF-3 64-bit offset, NetCDF-4(HDF5 기반, 그룹/압축/사용자 타입 지원)를 비교하고, 모든 .nc 파일의 근간인 차원(Dimensions), 변수(Variables), 속성(Attributes) 데이터 모델을 다룹니다.

이 레퍼런스는 기본 개념(NetCDF 버전, time/lat/lon/level 차원, 변수 선언, 전역/변수 속성), CF 규약(standard_name, UDUNITS 단위 체계, 시간 좌표 달력 유형, cell_methods 집계 방법), ncdump/도구(ncdump 헤더 확인, ncgen CDL 변환, CDO 시간 평균 및 공간 추출, NCO 변수 추출 및 속성 편집, OPeNDAP 원격 접근, THREDDS/ERDDAP 서버), xarray(open_dataset, sel/isel 선택, groupby/resample/rolling 연산, cartopy 시각화, open_mfdataset 다중 파일, Dask 대용량 처리, netCDF4 저수준 라이브러리) 4개 카테고리로 구성되어 있습니다.

ncdump -h로 기후 모델 출력을 확인하거나, CDO로 월평균을 계산하거나, NCO로 공간 부분집합을 추출하거나, xarray와 Dask로 테라바이트 규모의 ERA5 재분석 데이터 파이프라인을 구축할 때 필요한 정확한 명령어 구문과 함수 시그니처, 설정 패턴을 즉시 찾을 수 있습니다.

주요 기능

  • NetCDF 버전 비교 - Classic(2GB 제한), 64-bit offset, NetCDF-4의 chunking, 압축, 병렬 I/O 등 HDF5 기능
  • CF 규약 가이드 - standard_name 변수(air_temperature, precipitation_flux), 시간 좌표 달력 유형, cell_methods 집계 구문
  • ncdump 명령어 레퍼런스 - 헤더 확인(-h), 좌표 표시(-c), 시간 변환(-t), 전체 CDL 덤프
  • CDO 빠른 참조 - timmean, yearmean, mergetime, sellonlatbox를 이용한 시간 평균 및 공간 추출
  • NCO 명령어 가이드 - ncks 변수 추출/차원 슬라이스, ncrename 이름 변경, ncatted 속성 편집, ncea 앙상블 평균
  • Python xarray API - open_dataset, sel/isel 선택, groupby/resample/rolling 통계, 압축 인코딩 to_netcdf
  • Dask 연동 패턴 - 대용량 NetCDF의 지연 평가(lazy evaluation)와 청크 전략 설정
  • OPeNDAP URL 및 THREDDS/ERDDAP 서버를 통한 원격 데이터 접근으로 전체 파일 다운로드 없이 선택적 전송

자주 묻는 질문

NetCDF란 무엇이고 언제 사용하나요?

NetCDF(Network Common Data Form)는 다차원 배열 데이터를 저장하기 위한 자기 기술적, 플랫폼 독립적 바이너리 파일 형식입니다. 기후 모델 출력, 기상 재분석 데이터(ERA5, MERRA-2), 위성 관측, 해양 데이터의 표준 형식으로, 단위, 좌표계, 시간 기준 등 메타데이터가 파일 자체에 포함되는 격자형 과학 데이터 저장에 적합합니다.

NetCDF-3과 NetCDF-4의 차이점은 무엇인가요?

NetCDF-3 Classic은 2GB 파일 크기 제한이 있고 무제한 차원을 하나만 지원합니다. NetCDF-3 64-bit offset은 크기 제한을 해제합니다. NetCDF-4는 HDF5 기반으로 그룹(계층 구조), 내부 압축(zlib), 사용자 정의 데이터 타입, 다중 무제한 차원, chunked 저장, 병렬 I/O를 지원합니다.

CF 규약이란 무엇이고 왜 중요한가요?

CF(Climate and Forecast) 규약은 NetCDF 파일의 변수, 좌표, 속성 명명과 기술 방법을 정의하는 메타데이터 표준입니다. standard_name 속성(예: air_temperature), UDUNITS 호환 단위, 달력 유형(standard, noleap, 360_day)을 포함한 시간 좌표 형식, cell_methods 집계 기술 등을 규정합니다. CF 준수는 CDO, NCO, xarray 등 도구 간 상호운용성을 보장합니다.

NetCDF 파일을 빠르게 확인하려면 어떻게 하나요?

ncdump -h file.nc로 데이터 없이 차원, 변수, 속성을 확인합니다. -c 옵션으로 좌표 변수 값을 포함하고, -t 옵션으로 시간 값을 읽기 쉬운 날짜 문자열로 변환합니다. Python에서는 xr.open_dataset("file.nc")으로 열고 데이터셋 객체를 출력하면 차원, 좌표, 변수, 속성의 구조적 요약을 볼 수 있습니다.

NetCDF 데이터의 시간 평균은 어떻게 계산하나요?

CDO 사용 시: cdo timmean in.nc out.nc(전체 시간 평균), cdo yearmean(연평균), cdo monmean(월평균). xarray 사용 시: ds.mean(dim="time")(시간 평균), ds.groupby("time.month").mean()(월별 기후값), ds.resample(time="Y").mean()(연 리샘플). 두 방법 모두 CF 시간 좌표를 자동으로 처리합니다.

공간 또는 변수 부분집합은 어떻게 추출하나요?

CDO: cdo sellonlatbox,lon1,lon2,lat1,lat2 in.nc out.nc로 공간 추출. NCO: ncks -v temp file.nc out.nc로 변수 추출, ncks -d time,0,11로 차원 슬라이스. xarray: ds.sel(lat=slice(30,40), lon=slice(120,130))로 좌표 기반 선택하며, method="nearest"로 최근접 이웃 검색도 가능합니다.

메모리에 들어가지 않는 대용량 NetCDF 파일은 어떻게 처리하나요?

xarray에서 Dask를 사용하여 chunks를 지정합니다: ds = xr.open_dataset("large.nc", chunks={"time": 100, "lat": 50, "lon": 50}). 이렇게 하면 .compute()를 호출할 때까지 계산이 지연되어 전체 파일을 메모리에 로드하지 않고 청크 단위로 처리합니다. 다중 파일은 xr.open_mfdataset("data_*.nc", parallel=True)로 Dask 병렬 처리와 함께 결합합니다.

파일을 다운로드하지 않고 원격으로 NetCDF 데이터에 접근할 수 있나요?

OPeNDAP를 사용하면 URL로 원격 NetCDF 파일을 열 수 있습니다: ds = xr.open_dataset("https://thredds.server.org/path/file.nc"). 요청한 부분집합만 네트워크로 전송됩니다. THREDDS Data Server는 OPeNDAP, HTTP, WMS 접근을 제공하며, ERDDAP는 CSV, JSON, NetCDF 출력을 지원하는 RESTful URL API를 제공합니다.