파이썬 18

[조화분해] 파이썬을 활용한 조화분해(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년 이후 가장 큰 피해를 ..

[기타 - 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..

[기타 - 쉘] 해양수치모델 하이컴 다운로드 2 - 스크립트를 활용한 자동 다운로드. 쉘, wget, crontab

이번에는 지난글에 이어, 스크립트를 통해 하이컴 정보를 수집하는 방법에 대해 소개해보도록 하겠다. 웹페이지에서 바로 다운로드 받는 방법은 짧은 자료나 단기적으로 자료를 활용할 때는 편할수도 있지만, 정기적으로 수집하거나 광범위한 기간을 수집해야 할 경우에는 매우 번거로운 작업이다. 따라서, 이번에는 스크립트를 작성하여 일괄적으로 정보를 수집하는 방법에 대해 알아보도록 하겠다. 1. wget 활용 보통 장기 정보를 수집하거나 정기적으로 정보를 수집할 때는 자료의 크기가 매우 커지게 된다. 또한 이런 경우는 보통 연구 또는 실무적으로 활용하기 위한 경우가 많아 서버에 자료를 수집해두는 경우가 많다. 따라서, 리눅스 운영체제에서 웹페이지의 자료를 다운로드 받는 프로그램인 wget을 활용한다. wget은 web..

[파이썬] 해양수치모델 시간 형식 변환. 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 등을 활..