자료분석 및 코딩/파이썬 16

[조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 3. 조류조화분해

파이썬의 t-tide와 조위관측정보를 활용하여 조화분해를 한 이전 글에 이어서, 이번에는 해수유동 관측정보를 활용한 조류 조화분해 방법에 대해 소개해보도록 하겠다. 조화분해와 관련된 기초지식 및 방법에 대한 내용은 아래 링크를 참고하면 된다. 조화분해 개요 [조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 1. 조화분해란오랜만에 본업으로 돌아와, 이번에는 조화분해에 대해 알아보도록 하겠다. 학위과정 중에는 matlab의 t-tide를 주로 이용했었는데, matlab을 활용할 수 있는 여건이 되는 기업들은 많지 않다. 파이썬ihatenumber.tistory.com  t-tide 사용 [조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 2. t-tide 조화..

[파이썬] 유속, 풍속(speed) & 유향, 풍향(degree)의 U, V 변환

조류조화분해를 진행하기에 앞서 유속과 유향값을 U, V로 변환하는 법에 대해 알아보도록 하겠다. 관측을 통해 얻은 해수유동 값은 보통 유속과 유향으로 표기된다. 해수유동(조류) 값은 크기와 방향을 가진 벡터값인데 이를 분석하기 위해서는 방향을 제거한 스칼라값인 U, V로 변환해야 한다. 오늘은 이 과정에 대해 알아보도록 하겠다.   1. 좌표계 기준 변환 유속과 유향을 U, V로 변환하려면 먼저, 방향 값을 Radian 값으로 변환해야 한다. 하지만 수학적 표현인 Radian의 각도와 방향의 각도는 기준이 서로 다르다. 아래 왼쪽 그림처럼 방향을 나타낼 때는 북쪽을 기준으로, 시계방향으로 0~360도로 표현하지만 좌표계에서는 동쪽을 기준으로 반시계방향으로 0~360도로 표현된다.방향계 - 북쪽이 0도, ..

[조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 2. t-tide 조화분해 하기

지난 글에 조화분해에 대해 간략하게 설명하였고, 이번에는 실제 데이터와 t-tide를 활용하여 조화분해를 해보도록 하겠다.조화분해개요 [조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 1. 조화분해란오랜만에 본업으로 돌아와, 이번에는 조화분해에 대해 알아보도록 하겠다. 학위과정 중에는 matlab의 t-tide를 주로 이용했었는데, matlab을 활용할 수 있는 여건이 되는 기업들은 많지 않다. 파이썬ihatenumber.tistory.com  1. 조위 관측정보 조위 정보는 국립해양조사원 바다누리 해양정보 서비스에서 다운로드가 가능하다. 별도로 관측한 조위 정보여도 무방하다. 이번 글에서 활용한 조위자료는 인천 조위관측소의 2024년 11월 자료이며, 실제 데이터는 아래 우측 ..

[조화분해] 파이썬을 활용한 조화분해(harmonic analysis) - 1. 조화분해란

오랜만에 본업으로 돌아와, 이번에는 조화분해에 대해 알아보도록 하겠다. 학위과정 중에는 matlab의 t-tide를 주로 이용했었는데, matlab을 활용할 수 있는 여건이 되는 기업들은 많지 않다. 파이썬과 같은 무료 언어 패키지를 활용해야 하는데, 다행히 파이썬에서도 t-tide 패키지가 있다. 우연히 업무차 조화분해를 할 일이 생겨서 파이썬으로 조화분해를 해보게 되었고, 이 과정에 대해 남겨보도록 하겠다.   1. 조화분해(Harmonic analysis)란, 조화분해란 조석 관측 자료를 바탕으로 조석의 성분을 분리하고 각 조석 성분마다의 진폭과 지각을 구하는 분석 방법이다. 조석은 달과 태양을 포함한 다수의 천체들의 규칙적인 운동에 의해 물이 오르락 내리락하는 현상이다. 각 천체들의 인력에 의해 ..

[파이썬] 해양수치모델 검증 - 1. nc 파일읽기, 특정 지점(위치) 찾기, 최근접 격자 찾기

오늘은 수치예측모델의 정확도를 분석하기 위해 관측정보와 비교하는 과정에 대해 소개해보도록 하겠다. 이를 위해서는 모델자료를 읽고, 관측점에 해당하는 데이터를 추출해야한다. 또한, txt 또는 csv형식의 관측정보를 읽어야 하고, 모델과 관측의 데이터를 동일한 시간간격으로 맞춰줘야 한다.  이번 글에서는 모델자료를 읽는 법과 특정 위치의 데이터만 추출하는 법에 대해 다뤄보도록 하겠다.  | 자료 개요기간 : 2016. 10. 02 ~ 10. 08 (태풍 차바)모델 : HYCOM(해양), RDAPS(기상), RWW3(파랑)관측 : 기상청 서귀포 해양기상부이, 국립해양조사원 서귀포 조위관측소분석항목 : 해양 - 조위, 기상 - 풍속, 파랑 - 파고  분석 샘플로 활용할 자료는 2010년 이후 가장 큰 피해를 ..

[파이썬] 해양수치모델 시간 형식 변환. GMT, UTC, KST, 그리니치, 줄리안 데이 변환

이번에는 수치모델의 시간 형식에 대해 다뤄보도록 하겠다. 여기서 필요한 개념은 줄리안데이(julian day, 율리우스일)와 표준시, 그리고 파이썬의 datetime 라이브러리이다. 1. 줄리안데이 (julian day, 율리우스일) 특정시각을 기준일로부터 시간(일,시,분,초 등) 단위로 계산한 값 줄리안데이란 특정 시점을 나타내기 위해 기준일로부터 매일 1일씩 더하여 나타낸 값(기준일로부터의 일수)이다. 정확한 정의는 율리우스력 BC 4713년 1월 1일부터의 일수인데, 보통 특정 시각을 일수로 표현할 때 줄리안 데이를 쓴다고 표현한다. 예를 들어, 2000년 1월 1일 기준으로 잡고, 1월 5일을 줄리안데이로 나타내면 5개 되며, 1월 5일 12시는 5.5가 된다. 수치모델에서는 이런 줄리안데이 개념..

[파이썬] 해양수치모델 NetCDF 자료처리. 파이썬 Nc 파일 읽기 ncread

지난번에 NetCDF에 대해 알아봤었다. NetCDF의 특성과 차원의 이해, 파일 구조에 대해 간략히 설명했었는데 오늘은 실제 NetCDF(이하 nc)를 파이썬으로 읽어오는 과정에 대해 알아보도록 하겠다. https://ihatenumber.tistory.com/78 [파이썬] 해양수치모델 NetCDF 형식의 이해 해양자료를 다루다보면 꽤나 자주 접하는 데이터형식이 바로 NetCDF이다. 주로 수치모델결과 같은 대용량 수치정보를 저장할 때 쓰이며, txt나 csv같은 비교적 단순한 시계열 정보만 다루던 사람에 ihatenumber.tistory.com 파이썬으로 NetCDF를 분석 & 처리할 때는 netCDF 라이브러리를 활용한다. 매트랩에서는 프로그램 내 내장 함수인 ncinfo, ncread 등을 활..

[파이썬] 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) 형태의 데이터를 처리할 때 매우 유용하게 쓰이는 파이썬 패키지이다. 자연과학 분..