728x90

전체 글 148

Fortran으로 netCDF 파일 작성 (nf90_def_dim, def_var, put_att, put_var)

이번 포스팅부터는 제목 앞에 작업이란 단어를 지우기로 했습니다 저는 나름대로 몇 가지 일을 했고 하나 하나가 제가 계획을 꾸려서 하는 작업이라고 생각했는데 논문을 써보면서 작업이라고 할 만한 것들이 아니라고 생각했습니다 앞으로는 제목을 간단하게 적고 중요했던 키포인트를 뒤쪽 괄호에 적는 식으로 제목을 바꿔보려고 합니다 오늘은 포트란으로 NetCDF 파일을 작성해보겠습니다 먼저 코드입니다 PROGRAM net2 2 use netcdf 3 4 IMPLICIT NONE 5 6 INTEGER :: status, ncid 7 INTEGER :: nx, ny, ii, jj, x, y, xx, yy 8 REAL, DIMENSION(239, 239) :: field 9 REAL, DIMENSION(239, 239) :..

Fortran 2023.08.31

Fortran으로 netCDF 파일 읽고 평균 구하기(gfortran 컴파일 에러)

이번 포스팅은 정말 오랜만에 포트란입니다 WRF 결과물인 netCDF 파일을 읽고 격자들 전체의 평균 값을 구하는 코드를 해보겠습니다 전체 코드입니다 1 PROGRAM net1 2 use netcdf 3 4 IMPLICIT NONE 5 6 CHARACTER(len = 256) :: fi 7 REAL, ALLOCATABLE :: T2(:,:,:) 8 9 INTEGER :: dx, dy 10 INTEGER :: ncid, varid 11 INTEGER :: start(3), count(3) 12 13 14 fi = "wrfout_d01_2016-10-06_00.nc" 15 dx = 209 16 dy = 209 17 18 call check(nf90_open(fi, NF90_NOWRITE, ncid), "op..

Fortran 2023.08.24

keras 인공신경망으로 기상변수 예측 모델 만들기4

이번 포스팅은 입력 변수 개수를 증가시켜서 해보겠습니다 모델에도 약간의 수정이 있습니다 출력층의 노드 갯수가 12개여야 하기 때문에 앞선 모델들의 노드 갯수에 2배를 해줬습니다 또 추가적으로 이전 모델들에서 학습 횟수가 30~50 정도부터 더 이상 낮아지지 않는 구간이 시작되기 때문에 EarlyStopping도 추가했습니다 Early Stopping은 학습 횟수를 전부 채우지 않았음에도 학습을 조기 종료하는 함수입니다 변수는 monitor, min_delta, patience, mode 이렇게 4가지를 입력 받으며 monitor와 patience 2개를 주로 사용합니다 monitor : 조기 종료 기준이 될 값 (loss, val_loss...) min_delta : 모델이 손실을 줄여가는 과정에서 개선..

파이썬/딥러닝 2023.08.07

keras 인공신경망으로 기상변수 예측 모델 만들기3 (과소적합)

이번 포스팅에서는 저번과 모두 동일하지만 자료만 MinMaxScaler를 이용해서 정규화를 시킨 후에 학습하고 예측시켜보겠습니다 저번과 달라진 것은 전혀 없습니다 모델의 구조나 자료의 크기는 전부 같습니다 모델 생성 코드는 아래 링크에서 보시면 될 것 같습니다 https://dunggeul7843.tistory.com/120 작업32: keras 인공신경망으로 기상변수 예측 모델 만들기2 첫 번째 모델 수정입니다 이번에는 모델 구조와 은닉층의 갯수는 그대로 둔 채 자료의 갯수만 늘렸습니다 사용한 자료는 똑같이 ASOS 종관기상관측 자료를 사용했습니다 104 북강릉 지점에 2014년 dunggeul7843.tistory.com 이번 포스팅에는 MinMaxScaler 코드와 학습하는 과정이랑 결과만 보여드리..

파이썬/딥러닝 2023.08.07

keras 인공신경망으로 기상변수 예측 모델 만들기2

첫 번째 모델 수정입니다 이번에는 모델 구조와 은닉층의 갯수는 그대로 둔 채 자료의 갯수만 늘렸습니다 사용한 자료는 똑같이 ASOS 종관기상관측 자료를 사용했습니다 104 북강릉 지점에 2014년 7월 31일 00시부터 2023년 7월 31일 00시까지 10년으로 자료 크기를 늘렸습니다 사용한 기상변수는 6개로 기온, 습도, 풍속, 기압, 시정, 이슬점온도 입니다 코드입니다 import numpy as np import tensorflow as tf import pandas as pd from keras.models import Sequential from keras.layers import Embedding, LSTM, GRU, Dense, Dropout from keras.models import l..

파이썬/딥러닝 2023.08.03

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

세계 최초 상온 상압 초전도체

이석배 퀀텀 에너지 연구소 대표와 오근호 한양대 명예 교수가 이끄는 연구진이 7월 22일 아카이브에 논문을 발표함 LK99라는 물질을 개발했음 일부 과학자들은 논문의 근거자료가 명확하고 제조 방법까지 쓰여있어 의심이 필요없다고 하지만 하지만 과학자들은 랑가 디아스 교수의 경우를 예로 들며 보수적으로 보고 있음 초전도체는 전기 저항이 0인 도체를 말함 보통은 전선을 통해 전류가 흐를 때 저항이 생기기 때문에 전력 손실이 아주 큼 매년 미국은 이 손실로만 22조원 정도의 비용 손실이 생김 또한 외부 자기장에 영향을 받아 물체 내부에 초전류가 생기고 이것이 외부 자기장을 밀어내는 역할을 하면 물체가 공중에 떠 있게 하는 양자 고정이라는 현상이 생김 이 저항이 0인 물질이 개발되면 여러 산업 분야에서 다양하게 ..

파이썬 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..

NCL로 상층 등고선과 풍향풍속 그려보기

이번에는 850, 700, 500, 300hPa에서의 지위고도 선과 풍향 풍속을 그려보겠습니다 이번 코드에는 조건문이 들어갑니다 각 일기도마다 그려지는 자료들이 다르기 때문입니다 자주 쓴건 아니지만 어려운 부분은 아닙니다 주석으로 달아놓겠습니다 자료는 저번 포스팅에서 봤던 WRF 결과를 사용했습니다 코드입니다 begin f = addfile("./wrfout_d01_2016-10-06_03.nc", "r") times = wrf_user_list_times(f) ntimes = dimsizes(times) wks = gsn_open_wks("png", "wrf") pressure_levels = (/850., 700., 500., 300./) #압력 레벨 nlevels = dimsizes(pressure..

NCL 2023.07.20