728x90

python 42

keras 인공신경망으로 기상변수 예측 모델 만들기1 (Sequential)

오늘부터 keras 인공신경망을 이용해서 기상변수 예측 모델을 만들어보겠습니다 현재는 프로토 타입같은 초기 모델입니다 아직 딥러닝을 공부해가는 중이고 파이썬으로는 어느 정도의 정확성이 가능한지 알아보려고 합니다 모델을 수정해보고 결과가 좋아질 때마다 포스팅을 할 계획이기 때문에 꽤 길게 이어질 것 같습니다 먼저 사용한 자료는 ASOS 종관기상관측 자료를 사용했습니다 104 북강릉 지점에 2020년 7월 31일 00시부터 2023년 7월 31일 00시까지 3년 자료를 사용했습니다 사용한 기상변수는 6개로 기온, 습도, 풍속, 기압, 시정, 이슬점온도 입니다 코드입니다 import numpy as np import tensorflow as tf import pandas as pd from keras.mode..

파이썬/딥러닝 2023.08.03

파이썬 basemap으로 일기도 비슷하게 그려보기

오늘은 파이썬으로 일기도를 그려보겠습니다 제가 사용한 자료는 NCAR RDA에서 NCEP GDAS/FNL 0.25도 글로벌 대류권 분석 및 예측 그리드 자료를 사용했습니다 시간대는 2023년 7월 24일 06 UTC입니다 사용한 투영법은 Lambert Conformal Conic으로 줄여서 lcc라고 부릅니다 중심 위경도는 서울 관측소의 위경도를 사용했습니다 고기압과 저기압 표시는 plt.text를 사용해서 직접 입력했습니다 metpy에 위경도와 기압값, 고기압인지 저기압인지 표시하는 함수도 찾았는데 아직은 성공하지 못해서 직접 입력했습니다 성공한다면 그것도 올리겠습니다 코드입니다 pip install pygrib pip install cartopy pip install basemap_data_hires..

작업29: NCL로 시각화한 자료 파이썬으로 gif 만들기2

이번에는 NCL로 그린 WRF 결과를 파이썬으로 gif로 만들어보겠습니다 혼자 해본 그림중에 3일 분량으로 21km * 21km로 그린 그림입니다 시간 간격은 3시간 간격입니다 from PIL import Image as image import numpy as np cd /content/drive/MyDrive/사진/png from IPython.display import Image al = [] for i in np.arange(1, 10, 2): a1 = "Surface_multi.00000" + str(i) + ".png" al.append(a1) for j in np.arange(11, 35, 2): a2 = "Surface_multi.0000" + str(j) + ".png" al.append(..

파이썬 2023.06.25

작업28: NCL로 시각화한 자료 파이썬으로 gif 만들기1

오늘은 NCL로 그렸던 파이썬을 이용해서 하나로 묶어서 gif 파일로 만들어보겠습니다 구글 드라이브 내에 있는 png를 찾기 보다는 디렉토리를 새로 만들어서 그 안에 png 파일들을 전부 넣고 일괄적으로 추출해서 사용하는 방식을 사용했습니다 먼저 코드입니다 cd '/content/drive/MyDrive/png' from PIL import Image import numpy as np al = [] for i in np.arange(0, 48, 1): st = "{}".format(i) + '.png' al.append(st) frames = [] for i in al: new_frame = Image.open(i) frames.append(new_frame) frames[0].save('TS.gif',..

파이썬 2023.05.04

작업27: 파이썬으로 대기 상단 연평균 일사량 계산하고 시각화하기2

저번 포스팅에 이어서 대기 상단 일사량을 계산하고 시각화 해보겠습니다 저희가 해야할 건 이 공식을 계산하는 코드를 구현하면 됩니다 대기 상단 일사량은 시간각하고 똑같게 위도별로 365개를 계산해줘야합니다 과제에는 위도별 평균 일사량과 적도, 북위 30, 60, 90도에서의 그래프 이렇게 2가지를 요구하고 있기에 일반적으로 계산된 값이 나열된 자료와 평균값 이렇게 2개가 필요합니다 바로 가보겠습니다 def cal_e(phi): ii = [] s = 1361 d1 = de d2 = be for i in range(len(d1)): E = (s/np.pi) * d2[i] * (globals()['a{}'.format(phi)][i] * np.sin(np.radians(phi)) * np.sin(np.radia..

파이썬 2023.04.30

작업26: 파이썬으로 대기 상단 연평균 일사량 계산하고 시각화하기1

정말 오랜만에 파이썬 글을 쓰네요.. 시험 기간이기도 하고 연구실 구성하는거랑 이것 저것 일이 많아서 좀 걸렸네요 ㅠㅠ 그동안 했던 것들을 다시 하나씩 올려보려고 합니다 오늘은 대기 상단 연평균 일사량을 계산해보고 시각화해보려고 합니다 기후학이라는 과목에서 과제로 나왔습니다 다음에 기후학을 듣는 학생들도 도움이 됐으면 좋겠습니다 먼저 코드 공유전에 몇가지 공식들 설명이 필요합니다 포트란으로 적위와 이심률을 계산했던 포스팅이 있어서 보셨을만한 공식입니다 순서대로 태양의 적위, 감마, 이심률 공식입니다 포트란으로 계산해 둔 테이블이 있지만 이번에는 파이썬으로도 새로 계산해서 사용해보려고 합니다 다음은 시간각입니다 정확히는 일출 시간각을 구해서 사용합니다 이렇게 구해진 3가지 값을 이용해서 아래 공식을 계산합..

파이썬 2023.04.30

작업25: 강릉 강설 분석해보기

어제 아침에 일어나니까 눈이 엄청 많이 와 있더라구요 그래서 제 나름대로 어떤 원리로 눈이 내리는지 분석해보려고 합니다 강릉은 눈이 이만큼이나 왔습니다 방재기상정보시스템에서 자료를 조회한 결과 2월 15일 16시 기준 강원도 강릉시 사천면 방동리에 위치한 북강릉 관측소에서 25.4cm 강원도 강릉시 용강동에 위치한 강릉 관측소에서는 13cm로 관측이 됐습니다 저번에 눈이 왔을 때도 10cm가 넘지 않았었는데 이번에는 왜 이렇게 많이 내린건지 궁금해졌습니다 여러분들도 영동지방의 기상 예측이 어렵다는 것을 한 번 쯤을 들어보셨을겁니다 태백 산맥이 가로막고 있기 때문에 굉장히 변칙적이거나 증폭되어서 나타나기 때문입니다 그래서 서울과 같은 영서 지방과 눈이 내리는 메커니즘도 약간 다릅니다 제가 배운 내용으로는 ..

작업24: Chat GPT 사용해보기3 (로렌츠 방정식)

오늘도 Chat GPT를 사용해보겠습니다 저번 포스팅에서는 간단한 날씨 모델을 요구해서 정말 간단한 결과를 얻었습니다 그래서 오늘은 질문에서부터 복잡한 모델을 만들어 달라고 했습니다 - Make a more complex numerical model with Python and show me the code. (Python으로 더 복잡한 수치 모델을 만들고 코드를 보여줘) 결과는 이렇게 나왔습니다 이 예에서, 우리는 방정식의 로렌츠 시스템을 정의하고 시간에 따른 시스템의 동작을 해결하기 위해 싸이파이 라이브러리의 solve_ivp 함수를 사용한다. 그런 다음 솔루션을 표시하여 변수 x, y 및 z가 시간에 따라 어떻게 변하는지 보여줍니다. 로렌츠 시스템(Lorenz system)은 대기의 단순화된 모델의..

파이썬/Chat GPT 2023.02.12

작업23: Chat GPT 사용해보기2

오늘도 역시 Chat GPT를 사용해보겠습니다 - Make a weather model out of Python and show me the code. (파이썬으로 날씨 모델을 만들어서 코드를 보여줘) 첫번째 질문은 아무 조건도 주지 않았습니다 Chat GPT에 대해서 알아보던 중에 조건을 주고 계산을 시켜도 특정 조건에 맞게 해준다고 되어 있었습니다 하지만 저는 일단은 조건은 주지 않으려고 합니다 결과는 이렇게 나왔습니다 여기 온도, 습도 및 풍속을 고려하고 이러한 매개 변수를 기반으로 날씨를 예측하는 Python의 간단한 날씨 모델 구현이 있습니다. 라는 간단한 코멘트도 달아줬습니다 다른 입력으로 함수를 호출하여 날씨 예측을 확인할 수 있습니다 이것은 단순한 날씨 모델의 구현일 뿐 날씨를 정확하게 예..

파이썬/Chat GPT 2023.02.11

작업21: Metpy로 단열선도 그려보기 (SkewT)

한동안 설 연휴도 있고 학습동아리도 겹치다 보니까 포스팅을 못하고 있었네요 학습 동아리에서 단열선도를 그려봤는데 이걸 포스팅해보겠습니다 그림을 그리려면 왜 이 그림이 필요한지를 알아야겠죠?? 단열선도가 무슨 그림인지 알아보겠습니다 단열선도란 쉽게 말하면 하늘의 단면도를 보여주는 그림입니다 정확한 정의는 고층 기상관측을 통한 관측값들을 연직구조를 보거나 대기 중에 다양한 열역학적인 과정들을 이해하기 위한 그림입니다 보통 ASOS나 AWS 기상관측보다는 훨씬 높은 고도의 상태를 보기 위해서 입니다 그럼 당연히 필요한 자료도 종관기상관측 자료가 아니라 고층기상관측 자료가 필요하겠죠?? 기상자료를 얻는 법은 정말 간단합니다 기상자료개방포털을 이용하면 아주아주 편리합니다 기상자료개방포털로 접속해서 관측 > 기상관..

파이썬/metpy 2023.02.08