자료분석 6

[기타 - CDO] 2. NetCDF 날짜 및 시간 자르기 seltimestep

CDO의 옵션 중 첫번째로 소개할 옵션은 특정 기간을 자르는 seltimestep 이다. 옵션명 그대로 select timestep, 전체 파일 중 특정 timestep을 선택하여 새 파일로 만드는 기능이다. 1. 활용목적 및 활용처 서로 다른 NetCDF 파일을 합치거나 데이터 크기 또는 활용처에 따라 기간을 자를 때 사용한다. 예를들어 서로 다른 모델을 합쳐서 하나의 파일로 병합할 때, 두 nc파일은 차원이 같아야한다. 따라서 time dimension의 길이가 같아야하는데 두 데이터의 time 길이가 다를 때, 동일한 길이로 맞추기 위해 사용한다. 예를 들어, 위와 같은 해양모델(hycom, 좌측 그림)과 파랑모델(cmems, 우측 그림)을 병합한다고 가정해보겠다. 두 모델의 시간간격은 3시간으로 ..

[기타 - CDO] NetCDF 분석 가공 - 1. 수치 모델 및 예측 데이터 처리 프로그램 CDO 개요

최근 가장 자주 활용하는 분석 툴인 CDO에 대해 소개해보려 한다. CDO는 Climate Data Operators의 약자로, 기후 및 수치 기상 예측 데이터를 분석하고 처리하는 명령 연산자 모음이다. NetCDF3, 4와 Grib 형식 및 기타 형식의 데이터 처리 및 가공을 할 수 있는 툴이다. 공식 매뉴얼을 보면, 매우 방대한 기능이 설명되어 있고 페이지도 길지만 나는 주로 netCDF 파일을 처리할 때 활용한다. 따라서, 내가 자주 사용하는, netCDF 파일을 분석할 때 자주 사용하는 큼직큼직한 기능들 위주로 설명을 해보려 한다. 1. 다운로드 및 설치 아래의 공식 페이지에서 다운로드가 가능하다. 버전별로 다운로드가 가능하며 메뉴얼 및 공식 문서들도 모두 확인이 가능하다. https://code..

[파이썬] 해양수치모델 NetCDF 형식의 이해

해양자료를 다루다보면 꽤나 자주 접하는 데이터형식이 바로 NetCDF이다. 주로 수치모델결과 같은 대용량 수치정보를 저장할 때 쓰이며, txt나 csv같은 비교적 단순한 시계열 정보만 다루던 사람에게는 꽤나 복잡하고 이해하기 어려운 파일 형식이기도 하다. NetCDF (Network Common Data Form) 의 정의를 보면 '어레이(array) 지향 과학 데이터의 생성, 접근 및 공유를 지원하는 소프트웨어 라이브러리 및 자체 설명, 기계 독립적 데이터 형식 세트' 이다. 꽤나 어렵게 설명되어 있는데 쉽게 표현하자면 그냥 '배열 또는 행렬로 구성된 과학정보 형식' 이라고 이해하면 된다. 일반 사용자들이 자주 사용하는 txt나 csv 형식은 단순한 시계열 정보와 같은 2차원 데이터에서는 편리할 수 있..

[파이썬] 4-1. 조위 자료 분석 - 텍스트 읽기, pandas, read_csv, 인코딩 및 옵션

파이썬으로 실제 데이터를 읽고 처리하는 방법에 대해 소개해볼텐데, 첫번째로 해양데이터 중 가장 기초적인 정보에 해당하는 조위정보를 읽어오는 과정을 진행해보려한다. 조위정보는 국립해양조사원에서 무료로 제공해주는데, 국립해양조사원 바다누리 해양정보 서비스에 가면 다운로드 받을 수 있다. 로그인이 필요하며, 해양정보다운로드 페이지로 가서 관측자료, 월별/년별, 관측소유형(조위관측소), 관측소 선택, 연도를 선택하여 검색한 뒤 다운받으면 된다. 텍스트 자료 읽기 - text read (판다스, Pandas, read_csv) Pandas를 이용해서 텍스트 데이터를 읽을텐데, 판다스는 시계열(time series)이나 표(table) 형태의 데이터를 처리할 때 매우 유용하게 쓰이는 파이썬 패키지이다. 자연과학 분..

[파이썬] 3-3. 기본문법 - 조건문(if문)과 반복문(for문)

오늘은 자료분석 스크립트를 짜다보면 거의 무조건 쓰게되는 문법인 조건문과 반복문에 대해 알아보겠다. 처음 자료분석에 입문할 때는 이 if문과 for문을 어떤 상황에서 어떻게 써야하는지 감이 안오지만 한 두번 해보다 보면 정말 간단하면서도 필수적인 문법으로 느껴진다. 1. 조건문 - if / else / elif 조건문이란 '이럴땐 이렇게하고 저럴땐 저렇게 해라' 는 명령을 수식으로 나타내는 것이다. 자료분석에서는 특히, 어떤 값 이상일때는 ~~~~, 이하일 때는 ~~~~와 같이 조건을 거는 경우가 많다. 이러한 각 경우를 'if'와 'elif'와 'else'로 각각의 경우에 따라 로직 및 연산을 구현하는 것이다. if ~A~ : A라는 조건에 맞는다면 실행 elif ~B~ : A라는 조건에 맞지 않는 것..

[파이썬] 3-2. 기본문법 - 기초연산(제곱, 루트), 인덱스, 주석

자료분석을 목적으로 파이썬을 사용한다면, 가장 기본이 되는 것이 계산 및 연산이다. 간단한 계산들은 별도의 라이브러리를 설치하지고 내장 함수로만으로도 가능하다. 그래서 오늘은 파이썬의 기초연산 명령어와 연산 및 자료처리를 위해 필요한 개념인 인덱스에 대해 알아보겠다. 1. 기본연산 기본적인 사칙연산은 키보드에 있는 그대로 쓰면되고, 이는 다른 개발언어에서도 동일할텐데 아래와 같다. 더하기 : + 빼기 : - 곱하기 : * 나누기 : / 제곱 : ** 제곱근(루트) : **(1/n) 제곱은 **로 구한다. 이제곱은 **2, 세제곱은 **3, 네제곱은 **4처럼 계산하면 된다. 위 사진처럼 3의 이제곱은 3**2로 구하고, 그 값인 9가 출력된다. 루트 역시 반대로 구하면 된다. 사실 제곱근도 루트가 아니라..