자료분석 및 코딩 43

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

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

[자료수집] 기상청 수치모델(기상, 파랑) 다운로드 - (2) FTP를 활용한 모델 다운로드

지난번엔 기상자료개방포탈에서 자료를 신청하는 법에 대해 다뤘었다(아래링크). 이번에는 신청한 자료를 FTP로 다운받는 법에 대해 소개해보도록 하겠다. https://ihatenumber.tistory.com/69 [자료수집] 기상청 수치모델(기상, 파랑) 다운로드 - (1) 기상자료개방포탈 자료 신청 방법 오늘은 기상청의 수치모델을 다운로드하는 방법에 대해 알아보도록 하겠다. 주로 해양정보를 분석하지만 기상정보 역시 해양환경과 밀접하기 때문에 회사업무나 연구에 자주 활용한다. 또한, ihatenumber.tistory.com 1. 기상청 FTP 주소 및 계정확인하기 자료 신청이 완료되어 다운로드가 가능하다는 안내메일 또는 메세지를 받았다면 다운로드가 가능하다. 72시간 정도까지만 서버가 열려있으니, 늦기..

[자료수집] 기상청 수치모델(기상, 파랑) 다운로드 - (1) 기상자료개방포탈 자료 신청 방법

오늘은 기상청의 수치모델을 다운로드하는 방법에 대해 알아보도록 하겠다. 주로 해양정보를 분석하지만 기상정보 역시 해양환경과 밀접하기 때문에 회사업무나 연구에 자주 활용한다. 또한, 기상청에서도 해양 및 파랑정보를 생산하기 때문에 기상청 자료도 매우 유용하게 활용된다. 기상청에서는 관측정보외에도 수치예측모델 정보를 제공하는데, 오늘은 기상청의 수치예측모델을 다운받는 법에 대해 소개해보도록 하겠다. 1. 기상자료개방포탈 기상청의 과거정보는 기상자료개방포탈에서 다운로드 받을 수 있다. 정확히 표현하자면 정보를 신청할 수 있다. 기상청에서 운용되는 수치모델은 일별/시간별로 생성되지만 이러한 실시간으로 생성되는 데이터는 일정의 정보이용료를 납부하고 정기적으로 수신할 수 있다. 하지만 미래의 예측정보가 아닌 과거정..

[리눅스] 서버 접속 터미널 mobaXterm, 리눅스 기초

자료분석과 관련된 업무를 하다보면 리눅스를 사용해야 할 상황이 자주 생긴다. 대용량 데이터를 처리하거나 수치모델을 다루거나 코웍을 위해 사용하거나 등 다양한 이유로 익숙하지 않은 리눅스를 사용해야할 상황이 생긴다. 그래서 이번엔 리눅스와 이를 조금이라도 쉽게 사용하기 위한 팁에 대해 다뤄보려한다. 1. 리눅스 운영체제 리눅스(linux)는 윈도우와 같은 컴퓨터의 운영체제이다. 윈도우같은 편리한 운영체제를 두고 굳이 리눅스를 사용하는 이유는 다수의 사용자가 사용하기 용이하며, 다중의 연산 및 작업을 하기에 매우 용이하다. 직관적인 명령과 출력으로 연산속도가 매우 빨라 방대한 양의 계산이나 연산이 필요한 수치자료 분석에 적합하다. 물론, 윈도우에서도 모두 가능하지만 윈도우는 사용자 편의에 초점을 맞춰 그래픽..

[파이썬] 4-1. 조위 자료 분석 (3) - datetime을 활용한 문자 숫자 날짜변환, 날짜/시간 연산, 수치모델 시간 변환

이번에는 datetime을 활용해서 시간 데이터를 변환하고 처리하는 방법에 대해 다뤄보도록 하겠다. 대부분의 txt파일 또는 csv형식의 ascii 파일 데이터는 문자열로 정보가 입력되어 있기 때문에 이를 숫자, 값, 날짜형식으로 변환하는 과정이 필요하다. matlab에서는 datenum, datevec을 주로 활용했지만 파이썬에서는 보통 datetime 모듈을 활용한다. datetime 모듈은 문자열 또는 숫자열로 되어 있는 날짜/시간 정보를 다룰 때 활용하는 모듈이다. 날짜 연산이나 표기 형식 변환 등 다양한 목적으로 사용할 수 있다. 이번에는 문자/숫자를 날짜정보로 변환, 날짜정보를 문자/숫자열로 변환, 날짜 연산 등의 필수적인 기능에 대해서 논해보도록 하겠다. 지난번 글에서는 아래그림처럼 data..

[파이썬] 4-1. 조위 자료 분석 (2) - dataframe의 칼럼명/열이름/헤더 수정 rename, 결측값 숫자변환

지난번 글에서는 판다스(pandas)의 read_csv를 활용해 데이터를 읽어오는 부분까지 진행했었다. 오늘은 읽은 데이터 중 특정 열을 뽑아내서 분석하기 위한 전 단계인 데이터 추출 및 칼럼명(헤더) 수정, 문자열의 숫자변환 등에 대해 설명해보도록 하겠다. 1. columns 이름 수정 (칼럼명, 헤더 수정) 지난번에 pandas의 read_csv로 읽은 데이터는 아래와 같다. 전체 데이터 중 분석할 데이터는 '관측시간'과 '조위(cm)'이다. 하지만 리눅스의 스파이더에서는 한글 입력이 안되기 때문에 데이터를 처리하기에 앞서 각 열이름을 영어로 변환해줘야 한다. 따라서, 먼저 칼럼명(열이름)을 먼저 바꿔보도록 하겠다. 칼럼명 변경은 dataframe의 columns 또는 rename 속성을 활용한다. ..

[파이썬] 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가 출력된다. 루트 역시 반대로 구하면 된다. 사실 제곱근도 루트가 아니라..

[파이썬] 3-1. 기본문법 - 변수 만들기 & 변수 저장 & 데이터형식

개발, 코딩, 프로그래밍은 매우 어렵게 느껴지지만, 내가 이해한바로 쉽게 표현해보면 일련의 '변수로 저장'하는 일의 반복이다. 이런 저런 숫자, 문자, 그림 등의 데이터를 변수로 저장해서 연산을 하거나 출력을 하거나 등의 과정이라고 보면 된다. 따라서, 대부분의 명령은 'A = B' 와 같이 뭐는 뭐다 라는 식의 형태가 된다. 여기서 A가 바로 내가 저장한 변수가 되고, A안에는 B라는 내용이 들어가는 것이다. 자료분석 및 코딩은 이러한 변수를 저장하고 각 변수를 연산하여 결과를 내는 과정이다. 따라서, 오늘은 파이썬의 가장 기본 문법이 되는 변수를 저장하는 규칙에 대해 설명해보겠다. 1. 변수 만들기 : '변수 = 데이터' 할당연산자인 '=' 를 기준으로 좌측의 '변수'에 우측의 '데이터' 를 저장하는..