728x90

전체 글 148

Python으로 결측치 확인 후 보간(내삽)하기

오늘은 파이썬으로 결측치의 개수를 확인하고 내삽까지 해보도록 하겠습니다 기상 데이터를 받아서 사용하다보면 결측치가 존재하는 경우가 자주 있습니다 과거 데이터의 경우에는 3시간 간격으로 기입했기 때문이고 최근의 자료들에서는 관측이 제대로 안됐거나 잠시 기기 이상이 있었던 경우 결측치가 존재합니다 하지만 모델에 데이터를 사용하기 위해서는 데이터의 양이 충분히 많다면 결측치들을 0으로 처리해도 그 영향이 매우 미미하기 때문에 상관이 없지만 데이터가 충분하지 않을 경우는 영향을 주기 때문에 결측치를 0이 아닌 다른 방법으로 채워주어야합니다 pandas 라이브러리에서는 내장함수로 interpolate를 지원합니다 보간 방식은 많은 보간 방식을 지원하지만 자주 사용되는 것들은 아래 5개 정도인 것 같습니 'line..

파이썬 2024.01.24

Python을 이용해서 다수의 csv파일 한 번에 합치기

오늘은 Python을 사용해서 다수의 csv 파일을 한 번에 합쳐보겠습니다 저는 기상자료개방포털이라는 곳에서 기상자료를 가지고 옵니다 짧은 특정 기간 자료가 아니라 1년 동안의 1시간 단위 자료, 일 단위 자료 이렇게 자료를 크게 가져올 경우 데이터를 쪼개서 주는 경우가 있습니다 특히 제가 이번에 사용중인 1분 단위 자료는 자료의 양이 방대하기 때문에 한 달 단위로 쪼개서 제공합니다 대충 이런 모양이 됩니다 하지만 이 친구들을 전부 따로 사용할게 아니라 한 번에 사용하고 싶기 때문에 한 번에 묶는 방법을 생각해서 코드를 짜봤습니다 혹시 더 깔끔하고 간단하게 짜셨거나 조언이 있으신 분들은 언제든지 댓글 부탁드립니다! #Lbrary Import import numpy as np import tensorflo..

파이썬 2024.01.24

아이슬란드 화산 폭발

기말고사 끝나고 아주 긴 휴식을 좀 가졌었습니다 거의 한 달을 쉰거 같습니다 이제 대학원을 가야해서 생각과 마음도 다 잡고 새해 게획도 세우다 보니 좀 길어진 것 같습니다 이제 차차 코딩도 다시 하고 있고 과학 유튜브나 뉴스도 꾸준히 챙겨보고 있는 중에 새해부터 지구 반대편 나라에서 큰일이 일어났더군요 현지시간으로 14일에 아이슬란드 남서부 그린다비크의 어촌 마을에서 화산이 폭발했다고 합니다 레이캬네스 반도에서 한 달 사이에 두 번째 분화입니다 아이슬란드는 그린다비크 지역은 2021년, 2022년, 2023년이에 이어 2024년까지 4번째 분화입니다 화산 폭발이 잦은 이유는 아이슬란드의 위치를 봐야합니다 현재 전 세계의 판은 위 사진처럼 구성되어 있습니다 사진에서 파란색 동그라미 지역이 아이슬란드입니다 ..

지식 백과를 고쳐보았다

일상 파트에 정말 오랜만에 글을 써보는 것 같네요 ㅎㅎ 대학원 준비에.. 공부에.. 연구에.. 너무 바빴던거 같아요 ㅠㅠ 그런데 제게 다시 힘을 주는 메일 하나가 날아왔습니다!! 너무 옛날에 공부할 때 신고했던지라 이런걸 했었는지도 까먹었었지 뭐에요.. 내용은 이렇습니다 제가 2021년 4월 20일에 지식 백과에 내용이 잘못되었던 것을 신고했더군여 무려 2년이나 걸려서 답장이 왔습니다 제가 배우기론 현열/잠열로 배웠지만 지식 백과에서는 잠열/현열로 쓰여있었습니다 이걸 보고 제가 신고 했었나봐여 그래서 진짜로 바뀌었나 지식백과에 가서 직접 확인을 했습니다 정말로 바뀌어 있더군요!! 캬~~ 이걸 보니 다시 공부할 맛이 나더군요 한동안 대기 경계층에 찌들어서 지쳐있었는데 다시 힘내서 경계층을 공부해봐야겠어요!..

일상 2023.12.12

Mac : Too many open files 에러 해결

오늘은 Too may open files 에러를 해결해보겠습니다 Too many open files라는 에러는 살아생전 처음 봤습니다 sh-3.2# python3 gif.py Traceback (most recent call last): File "/Users/lsh/coding/python/gif.py", line 12, in File "/opt/homebrew/lib/python3.11/site-packages/PIL/Image.py", line 3243, in open OSError: [Errno 24] Too many open files: '002557.png' 제가 하려던 작업은 조만간 포스팅 할 geocat 라이브러리를 활용해서 파이썬으로 전구 기압 분포를 그리고 경도만 조절하여 gif화를 시..

Mac 2023.12.09

Mayavi 라이브러리를 이용해서 전구 기압 분포 3D 시각화

오늘은 전구 기압 분포를 3차원 구에 시각화해보겠습니다 이번 포스팅을 하게된 계기는 Spherical harmonics를 공부하던 중 전구 기압 분포를 3차원 구에 시각화한 뒤 애니메이션으로 회전시키면서 보면 좋을 것 같아서 진행해봤습니다 먼저 구를 만들기 위해서는 구면 좌표계를 사용해야합니다 이는 plt를 활용하여 그릴때도 똑같이 적용됩니다 구면 좌표계는 위키 백과의 정의로 "3차원 공간 상의 점들을 나타내는 좌표계의 하나로, 보통 (r, Φ, Θ) 로 나타낸다" 라고 설명되어 있습니다 각 성분들은 r은 원점으로부터의 거리, Φ 는 방위각, Θ는 고도각으로 3차원 공간인 구에서 위치를 표현할 수 있습니다 구면좌표계는 경우에 따라 좌표값이 한 점을 여러 좌표가 가리키는 경우가 있기 때문에 변수들의 범위는..

파이썬 2023.11.28

WRF : Ungrib시 Data not found 해결

오늘은 grib2 파일을 ungrib할 때 발생하는 Data not found가 발생할 때 해결 방법을 알아보겠습니다 먼저 에러 구문 입니다 길어서 중간 부분은 생략했습니다 중간 부분은 상층 하층을 확인하는 부분으로 o x 이렇게 표시 되는 부분입니다 *** Starting program ungrib.exe *** Start date = 2020-11-28_00:00:00 , End date = 2020-11-30_00:00:00 output format is WPS ######################################################################### Inventory for date = 2020-11-28_00:00:00 PRES TT UU VV RH HG..

리눅스 2023.11.20

Python으로 라이브러리 사용 없이 3가지 테일러 급수 구현해보기

오늘은 Python으로 라이브러리 사용 없이 테일러 급수를 구현해보겠습니다 오늘 제가 구현할 테일러 급수는 아래의 3가지 함수입니다 첫 번째와 두 번째 함수는 정의역을 크게 고려하지 않고 코드를 짜도 무리는 없지만 세 번째 함수는 반드시 정의역을 만족시켜서 해야합니다 ln(x)로도 함수를 만들 수 있습니다 x 자리에 x-1을 대입하여 식을 다시 만들면 가능합니다 정의역 역시 0 1: print("Range out Value") global re self.re = [] for i in range(1, n+1, 1): if i%2 == 0: self.a = -1 * ((self.v**i)/i) self.re.append(self.a) elif i%2 == 1: self.a = (self.v**i)/i sel..

Python으로 라이브러리 사용 없이 팩토리얼 구현해보기

요즘 수치해석학을 공부하고 있습니다 아무래도 수치모델을 전공하려 하다보니 필요해보이더군요 그래서 당분간 제가 공부하는 책에서 나오는 공식들을 라이브러리 사용 없이 파이썬으로 구현해보려고 합니다 그 첫번째로 정말 간단한 것부터 출발해보겠습니다 오늘은 팩토리얼 구현을 해보겠습니다 먼저 팩토리얼에 대해서 간단하게 알아보겠습니다 팩토리얼은 우리말로 계승이라는 뜻입니다 위키백과의 정의로는 "수학에서, 자연수의 계승 또는 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱이다" 라고 나와있습니다 수학적 기호로는 숫자 뒤에 느낌표를 붙여서 사용합니다 5의 계승 또는 5 팩토리얼은 5보다 작거나 같은 모든 양의 수 즉, 1, 2, 3, 4, 5 5가지 숫자의 곱을 의미합니다 여기서 하나 알 수 있는건 팩토리얼을 구..

Python 환경에서 지역 변수와 전역 변수 (global)

오랜만에 포스팅을 하는 것 같습니다 시험 기간도 있었고 대학원 준비도 하다 보니 많이 미뤄진 것 같습니다 그래서 다시 리로딩하는 마음으로 간단한 것부터 다시 시작해보겠습니다 globals라는 전역 변수 선언 기능을 최근들어 정말 많이 사용한 것 같습니다 특히 선언해야할 변수들이 개수가 엄청 많은데 이름들이 비슷한 경우, 굳이 이름을 특별하게 지어야할 필요가 없지만 개수를 많이 선언해야 할 경우 이런 경우에 globals를 많이 사용해왔습니다 다음 포스팅에서 여러개의 csv 파일들을 하나로 합치고 이름을 지정하는 것을 해볼건데 빌드업 느낌으로 오늘은 동적 변수를 선언하는 방법을 알아보겠습니다 먼저 전역 변수와 지역 변수에 대해 알아보겠습니다 def나 class처럼 자기 만의 틀을 가지고 있는 부분에서 변수..

파이썬 2023.11.06