KJT's Blog

Storage for Knowledge

Hot

Post Top Ad

Study is the best friend!

2021-05-27

마이크로소프트 오피스 엑셀 근접값(숫자) 찾는 함수

5월 27, 2021 0



  • 최근 평균 풍향/풍속 계산을 위해 기상청에서 받은 기상자료에서 풍향을 계산하다 보니, 16방위(각 22.5도)로 나누어진 풍향 자료를 받았다.
  • 평균값을 구하다 보니 16방위 값들과 딱 떨어지게 나타나지 않아서, 편차가 제일 작은 가장 근접한 값으로 변형하고자 하였다.
  • 그렇게 구글링을 하다보니 INDEX/MATCH 함수를 사용하는 식이 있었다.

Read More

2021-05-06

여러개의 csv 확장자 파일 원클릭으로 합치는 방법

5월 06, 2021 0


내용 출처 : https://youtu.be/OLGitp23crs
 

  • 최근에 연구를 위해 특정 시들의 2010년부터 2020년 기상자료를 csv 확장자로 다운받았으나, 한번에 다운이 안되어 각 연도별로 나눠서 받았다.
  • 10년동안의 기상자료로 R studio를 활용해서 바람장미를 그려보려고 했으나, 10개의 파일을 하나하나 복사 + 붙여넣기로 합치자니 여간 귀찮은게 아니었다.
  • 그래서 구글링을 하니 역시 실무자의 고충을 잘 아시는 유투버 "오빠두엑셀"님께서 관련 영상을 만들어두셨다. (갓빠두~)
Read More

2021-03-22

마이크로소프트 오피스 엑셀 유동범위 만들기

3월 22, 2021 0

내용 출처

OFFSET : https://youtu.be/NSJ67i3YtRQ

INDEX : https://youtu.be/tZZLR5XaODE



  • 유동범위(동적범위)는 최근에 엑셀 파일로 작업할 일이 생기면서 관심을 가지게 되었는데, 앞으로도 굉장히 유용하게 쓰일 것 같아서 기록한다.
  • 엑셀의 [이름관리자] 메뉴에 유동범위를 설정해 놓으면, 추가 또는 제거되는 데이터 관리가 굉장히 용이하고, 그래프도 데이터 추가/제거 시 자동으로 변하게 만들수 있다.
  • YouTube "오빠두엑셀"님 강의 보고 정리한 내용이며, 여기는 내가 나중에 헷갈릴 때 볼려고 글을 쓰는거라, 처음 접하는 사람은 위에 링크 따라가서 고퀄리티 강의를 보는걸 추천한다.

1) OFFSET 함수를 사용하는 방법

① OFFSET 함수 사용법

=OFFSET(시작지점, 행 아래 이동 크기, 행 오른쪽 이동 크기, 상하넓이, 좌우넓이)

  • 시작지점 : 말 그대로 시작지점
  • 행 아래 이동 크기 : 시작지점부터 아래로 이동할 셀 갯수
  • 행 오른쪽 이동 크기 : 시작지점부터 오른쪽으로 이동할 셀 갯수
  • 상하넓이 : 시작지점부터 넓이 숫자만큼 영역 다
  • 좌우넓이 : 시작지점부터 넓이 숫자만큼 영역 다
    • 이동 크기 : 이동한 곳에 있는 셀 값 
    • 넓이 크기 : 전체 영역에 있는 셀의 모든 값
② OFFSET 함수 유동범위 
=OFFSET(시작지점,,,COUNTA(열 범위),COUNTA(행 범위))
  • 시작지점 : 시작지점
  • 콤마 3개( ,,, ) : 범위 지정이니깐 이동 내용 없이 넓이 자리까지 가기 위한 콤마들
  • COUNTA(열 범위) : A1 ~ 지정 범위 또는 A:A -> 열 전체
  • COUNTA(행 범위) : A1 ~ 지정 범위 또는 1:1 -> 행 전체
  • 지정할 때 머릿글 또는 빈행 또는 빈열 또는 빼고 싶은 행 또는 열 갯수만큼 빼주기
  • 기본적으로 아래 또는 오른쪽으로 이동, 반대로 가려면 앞에 "-" 넣기
  • 전체 범위 지정 시, COUNTA(A:A), COUNTA(1:1)
  • SUM 등 다른 함수에 적용 가능 -> 범위 안에 모든 숫자 계산


2) INDEX 함수를 사용하는 방법
① INDEX 함수 사용법
=INDEX(참조범위, 행 번호(위아래), 열 번호(좌우) , 범위번호)
  • 행과 열이 만나는 지점 반환
  • "0" 입력 시 전체 행 또는 전체 열 참조
  • 번호는 이동 셀 갯수가 아니라 전체 범위에서 행 또는 열의 번호를 뜻함
② INDEX 함수 유동범위
=시작지점:INDEX(참조범위, COUNTA(상하 범위), COUNTA(좌우 범위))
  • 시트 전체 참조할 때에는 참조범위 = $1:$1048576
  • 전체 참조 시 왼쪽 상단 전체범위 눌러도 됨
  • OFFSET 보다 처리속도가 더 빠르다고 함(대용량 데이터)

Read More

2021-03-18

한글(2020) 가로 쪽번호 만들기

3월 18, 2021 0


내용 출처 : https://m.blog.naver.com/ming0211/220758822441



  • 한글 문서를 만들다보면 표나 그림이 가로로 길어져서 페이지를 가로로 변경한 후 넣어야할 때가 있다.
  • 이럴때 쪽번호를 넣게 되면 가로로 변형된 상태에서 아래쪽에 번호가 생성되어, 실제 프린트나 제본을 했을 때 오른쪽에 쪽번호가 있는 지저분한 상황이 연출된다.
  • 한글 시스템 상에서는 관련 메뉴 같은게 없으니 살짝 귀찮은 방식으로 만들어서 써야한다.
  • 사실 많은 사람들이 이 문제에 대해서 문의했을 것 같은데(검색은 안해봤지만)...한글이 나오고 많은 시간이 흐를동안 한컴에서 왜 이 내용을 패치하지 않는지는 의문이다. 아마 어렵겠지...
  • 여튼 자세한 내용은 출처를 따라가서 보면 되고, 여기서는 간단하게 글로만 설명한다.



1. 구역 나누기
  • 가로로 변경할 쪽의 전 쪽에서 Alt + Shift + Enter 

2. 쪽번호 양식 확인
  • 키보드 [F6] 눌러서 현재 쪽번호 양식 확인
  • 글자 모양이랑 이런거 똑같이 해야함


3. 가로 변경
  • 세로 쪽에서 키보드 [F7] 눌러서 모든 여백 확인
  • 특히, 아래쪽 여백 : 쪽번호 넣을 때 사용
  • 쪽 가로로 변경
  • 모든 여백을 시계방향으로 한칸씩 옮겨서 지정 : 프린트 후 다른 페이지와 같은 여백 형태 유지
    • 위쪽이랑 아래쪽은 두 개씩 있으니깐 합해서 옮김

4. 쪽번호 넣을 상자 만들기
  • 세로 글상자 하나 만들어서 [입력]-[입력도우미]-[상용구]-"현재 쪽번호" 넣기
  • 글상자 크기는 옆에 여백 선 보이는거 보고 정확하게 맞춰야 쪽번호가 가운데 이쁘게 옴
  • 글상자 "개체속성" 들어가서 설정할 것들
       ① 위치 : 가로 [종이]-[왼쪽]-"3.에서 확인한 세로 페이지 아래쪽 여백 값" 넣기
                   세로 [쪽]-[위]-"0" 넣기
       ② 여백/캡션 : 모두 "0"
       ③ 선 없음, 채우기 없음
       ④ 글상자 : 안쪽 여백 모두 "0", [세로정렬]-"아래", [글자방향]-"영문 눕힘" : 숫자는 영문
       ⑤ 번호종류 없음 : 요거 안하면 차례 만들 때 그림으로 잡힘



  • 다 만들었으면 [복사]-[붙여넣기]로 한페이지씩 넣을 수 있음
  • 그게 귀찮으면 바탕쪽에 넣어서 써도 됨 : 가로쪽이 연달아서 엄청 많이 있는 문서 아니면 그냥 붙여넣기가 편할 듯

Read More

리눅스(Linux) 명령어(경로, cd, mv, cp, ln, man, cat, head, tail, grep, less, tar, sudo)

3월 18, 2021 0

 







1. 경로
  •  / : 절대 위치 기준
  •  ./ : 현재 위치 기준
  •  ../ : 현재 위치 상위 기준
  •  ~/ : Home 위치 기준


2. cd

  • 디렉토리 사이 이동
  • 위의 경로 기준으로 이동

3. mv
  • 파일/디렉토리 이동
  • 이름 변경 가능
    • mv 파일/디렉토리 파일이름/디렉토리이름
    • mv 파일/디렉토리 경로

4. cp
  • 파일 복사
    • cp 파일명1 파일명2
    • cp 파일명1 경로/파일명2
  • 디렉토리 복사
    • cp -r 디렉토리1 디렉토리2

5. ln
  • 하드링크 만들기 : 같은 inode 번호 사용, 하나를 수정하면 모두 같이 수정, 하나를 삭제하면 그것만 삭제
    • ln 소스 타겟
  • 소프트링크 만들기 : 바로가기 개념, 참조 변경만으로 쉽게 업그레이드 등 가능
    • ln -s 소스 타겟

6. man
  • 명령어 매뉴얼
    • man 명령어

7. cat
  • 파일 내용 출력
  • 내용 복사
    • cat 파일1 > 파일2 : 파일2와 같은 이름 있으면 덮어씌움
    • cat 파일1 >> 파일2 : 파일2 끝에 파일1 내용 복사

8. head
  • 파일 내용 처음부터 몇 줄 정도 출력
    • head 파일이름
  • 옵션으로 더 많이 나오게 할 수 있음

9. tail
  • 파일 내용 뒤에서부터 몇 줄 정도 출력 : 많이 사용하는 명령어
    • tail -f 파일명 : 실시간으로 추가된 내용 나옴, 터미널 2개로 실험 가능

10. grep
  • 특정 문자열이 있는 파일 검색 후, 문자열만 출력
    • grep 문자열
    • grep -H : 파일 이름도 함께 출력
    • grep -Hw : 정확한 문자열만 출력

11. less
  • 텍스트 뷰어 : 수정 안됨, 용량이 큰 log 파일 등을 열 때
    • less 파일이름

12. tar
  • 파일/디렉토리 압축
  • cvfz(압축)/xvfz(압출풀기) 명령어 항상 같이 사용
    • tar cvfz sample.tar.gz 파일명1 파일명2 .... 디렉토리명1 디렉토리명2 .... : 스페이스로 구분, 경로 내 모든 내용 압축 시 "*" 사용
    • tar xvfz sample.tar.gz

13. sudo
  • root 권한 부여

Read More

2021-03-16

리눅스(Linux) 명령어(pwd, ls, chmod, mkdir, touch, rm)

3월 16, 2021 0




출처 : https://youtu.be/9_KIdQ8abH4


1. pwd 

  • 현재 디렉토리 경로 표시

2. ls
  • 현재 디렉토리 안에 있는 파일이나 폴더 등 표시
    • -al : 숨겨진 파일 등까지 표시
    • -l : 파일 등의 자세한 내용(파일 권한 내용 등)

3. ls -l  : 파일 유형 정보로 알 수 있는 것들
  • -rwxrwxrwx
  • drw-rw-rw-
  • lr--r--r--
    • "-" : 파일(file)
    • "d" : 폴더(directory)
    • "l" : 링크(link)
    • 왼쪽부터 user, group, other 권한
    • r : read(2^0), w : write(2^1), x : excute(2^2)

4. chmod 
  • 파일, 폴더, 링크 권한 변경
    • chmod 764 파일이름.확장자
    • chmod (u or g or o) +/- (r or w or x)

5. mkdir
  • 디렉토리 만들기

6. touch
  • 파일 만들기

7. rm
  • -f : 파일 지우기
  • -r : 디렉토리 지우기
       


Read More

2019-08-26

US EPA PMF 모델 기본 사용법 (데이터 요약 정보 확인)

8월 26, 2019 0

  • PMF 프로그램에 오염물질 농도 및 불확도 파일을 삽입하면, PMF 프로그램에서는 그 데이터를 바탕으로 다양한 요약 정보를 기본적으로 표시해준다. 
  • 요약 내용은 "Concentration/Uncertainty", "Concentration Scatter Plot", "Concentration Time Series", "Data Exceptions" 탭에서 확인이 가능하다.
그림 1
  • "Concentration/Uncertainty" 탭에서는 삽입된 오염물질 농도 및 불확도 데이터를 바탕으로 "S/N", "최소값(Min)", "25 백분위 값(25th)", "중앙값(50th)", "75 백분위 값(75th)", "최대값(Max)" 등과 같은 간단한 통계 정보를 보여준다. 
  • 그리고 오른쪽에는 농도와 불확도 데이터를 바탕으로 "Scatter Plot" 형태의 그래프를 보여준다.
  • 전형적인 농도와 불확도의 관계는 "Scatter Plot"에서 하키 스틱 형태를 가진다.
그림 2
  • "S/N"은 농도(Signal), 불확도(Noise)로 계산된 값이다.
    • 불확도를 초과하는 농도 값만 Signal로 계산에 이용한다.
    • 불확도 2배의 값을 가지는 오염물질의 S/N 비는 "1" 이며, 주로 이 값을 넘어가면 "good" signal로 판단한다.
    • 각 오염물질의 "카테고리(Cat)" 설정 시 중요한 매개변수가 된다. 
    • 오염물질 농도(x), 불확도(s) 사이의 계산 방법은 그림 3과 같다. 
그림 3
  • 오염물질별 카테고리 지정은 이 후에 실행될 PMF 모델링 내에서 각 오염물질들의 기여도를 계산할 때 중요한 역할을 하는 부분이다. 
  • 주로 S/N 비, 결측 샘플 수, 검출 한계 미만의 샘플 수, 샘플링 및 분석 시 에러, 예상 배출원,  물질의 반응성 등에 대한 자세한 지식을 바탕으로 카테고리를 결정하는 것이 가장 이상적이다.
  • 만약에 이러한 정보들이 부족하다면 S/N비를 사용하여 결정할 수 있다. 
  • PMF 메뉴얼에서는 S/N비가 0.5보다 작으면 "Bad", 0.5~1 이면 "Weak"으로 결정한다고 되어 있다. 하지만 이는 연구자의 역량으로 변경이 가능할 것이다. 
    • Strong : 샘플 및 불확도 변경 없이 모든 데이터 사용
    • Weak : 모든 샘플 사용하지만, 불확도를 기존 값의 3배로 변경
    • Bad : 모든 샘플 및 불확도 정보를 PMF 모델링에서 제외
  • 화면 하단에 있는 "Total Variable (Defaults to Weak)" 버튼은 오염물질들이 이루는 전체 성분을 표시해준다. 여기에서는 모든 오염물질이 PM2.5의 구성요소이므로 PM2.5를 "Total Varible"로 지정해준다. 
  • 이 후 PM2.5 부분은 굵은 글씨로 바뀌게 되고, 카테고리가 "Weak"으로 자동으로 바뀌게 된다. 
그림 4
  • "Concentration Scatter Plot" 탭에서는 오염물질 사이의 상관 관계 확인 및 배출원 및 배출원 범주에 대한 예상을 할 수 있다. 
  • 각 오염물질 간 one-to-one 그래프 및 선형 회귀 그래프를 확인할 수 있다.
  • 마우스를 데이터 점으로 가져가면 아래쪽에 날씨/시간, X/Y축 오염물질의 농도가 나타나고, 그 옆으로 회귀 그래프의 회귀식이 나타난다. 
그림 5
  • "Concentration Time Series"탭에서는 시간 패턴에 따른 농도 변화 및 비정상적 이벤트 여부를 확인할 수 있다.
  • 최대 10개의 오염물질을 동시에 선택해서 비교해볼 수 있으며, 패턴 분석을 통해 배출원 공유 여부의 예상이 가능하고, 모델링 진행 시 제외해야할 데이터를 확인하고 바로 제외할 수 있다. 
  • 특정 데이터를 제외하고자 할 때에는 데이터를 클릭한 후, "Exclude Samples" 버튼을 클릭하면 실행된다. 이는 데이터의 삭제가 아니라 모델링 진행에서 제외되는 개념이다.
  • 제외된 데이터를 다시 추가하고 싶으면, 제외된 데이터를 선택한 후, "Restore Samples" 버튼을 클릭하면 된다.
  • 마우스 클릭으로 데이터 선택이 어려울때에는 근처에 있는 다른 데이터를 클릭한 후, 키보드의 좌/우 키로 데이터 선택이 가능하다.
그림 6
  • "Data Exceptions" 탭에서는 이전의 모든 탭에서 실행된 "카테고리 설정", "제외된 데이터" 등과 같은 내용이 표시된다. 
  • 연구자는 이러한 정보를 검토하여 PMF 모델링 실시 전 데이터의 최적화를 확인해야한다. 
  • 이 보고서는 화면에서 마우스 오른쪽 클릭을 통해 저장할 수 있다. 
그림 7



참고문헌

  1. EPA Positive Matrix Factorizatoin (PMF) 5.0 Fundamentals and User Guide, https://www.epa.gov/sites/production/files/2015-02/documents/pmf_5.0_user_guide.pdf

Read More

2019-08-25

US EPA PMF 모델 기본 사용법 (데이터 삽입)

8월 25, 2019 0
웁스!




  • 앞선 글에서는 PMF 모델의 간단한 이론과 불확도 계산 방법에 대하여 알아보았다.
  • 이번 글에서는 PMF 모델 프로그램에 오염물질 농도 데이터 및 불확도 데이터를 삽입하는 방법에 대해서 알아보고자 한다.
  • 앞선 글에 있는 링크를 사용하여 PMF 프로그램을 설치하였다는 가정 하에 진행한다.

  1. PMF 모델 프로그램을 설치한 후, 실행하면 그림 1와 같은 화면이 나타난다.
  • 먼저 오염물질의 농도 데이터 파일과 미리 계산된 불확도 파일을 삽입해야 한다.
  • "Concentration Data File" 부분의 오른쪽에 있는 "Browse" 버튼을 클릭하여 농도 파일을 삽입한다. 
  • 농도 파일을 삽입하면 바로 아래에 "Uncertainty Data File"부분이 활성화 되며, 농도 파일과 같은 방식으로 불확도 파일을 삽입하면 된다.
  • "txt, csv, xls 또는 xlsx" 확장자를 가지는 파일만 사용할 수 있다. 
    • 필자는 "CSV" 파일 사용을 추천한다. 
    • "xls 및 xlsx" 형태로 수차례 실험해 본 결과, 원인을 알 수 없는(도대체 왜 안되는겨?) 오류가 계속해서 나타났다.
    • "CSV"는 워크시트를 하나만 포함할 수 있기 때문에, 먼저 엑셀로 작업한 후 raw 데이터는 따로 보관하고, 데이터 및 불확도 워크시트를 따로 "CSV"로 저장하여 사용하면 된다. 
  • 이 글에서는 프로그램 사용법 소개 수준이므로 PMF 프로그램 설치 시 함께 제공되고, PMF 메뉴얼에서 설명을 위해 사용되는 "Dataset-Baltimore_*.txt" 파일을 사용한다.
웁스!
그림 1


  1. 오염물질 농도 파일과 불확도 파일을 차례대로 삽입한 후, 날짜/시간, 결측값 설정, 모델 결과 파일 및 프로그램 설정 파일 저장에 대한 정보를 결정한다.

  • 날짜/시간 내용은 필수는 아니기 때문에 데이터 파일에 넣지 않아도 되지만, 가능하다면 날짜/시간을 활용하는 것이 좋다.
  • 농도 데이터 내에서 다른 샘플과 비교하여 크게 차이가 나는 데이터 값에 대한 배경 조사에 날짜/시간이 활용될 수 있고, 특정 오염물질들의 날짜/시간별 변화도를 바탕으로 오염물질들 사이의 간단한 배출 상관 관계 파악도 가능하기 때문이다.
  • "Date/Time Column"에서 날짜/시간 정보가 있는 열의 이름을 선택해준다. 
  • 각 샘플별로 ID 또는 장소에 대한 정보가 있다면 이 또한 "ID/Site column" 부분에서 선택해준다.

    • 결측값(Missing Value)에 대한 처리 방법은 "Exclude Entire Sample" 및 "Replace Missing Values with Species Median"의 두 가지가 있다.
    • "Missing Value Indicator" 부분에서는 결측값을 나타내는 데이터 값을 넣어준다. 즉, 아래 그림에서 표시한 것과 같이 결측값을 "-999"로 표시하면 PMF 프로그램에서 자동으로 결측값으로 인식하게 된다. 
    • 연구자는 데이터 정리 과정에서 "Missing Value Indicator"를 결정하여 결측값에 표시하여야 한다. 
    • 결측값 처리 과정은 글에 표현된 그대로 "모두 제외" 또는 "중앙값으로 대체"되며, 모든 과정은 PMF 모델에서 자동으로 진행된다.

    • 다음은 모델 결과 파일 및 모델 설정 파일 저장이다. 
    • 먼저 모델 결과 파일의 경우, "Output Files" 부분의 "Output Folder" 부분 오른쪽 "Browse" 버튼을 클릭하여 폴더를 지정해준다. 
    • 그리고 "Output File Prefix"부분에서 파일 이름에 들어갈 단어를 써준다. 결과는 "그림 3"을 참고하기 바란다.
    • "Output File Type"에서 결과 파일 형태를 지정할 수 있다.
    • 모델 설정 파일은 "Save File Locations and Settings in a Configuration File or Load a Previous Configuration File" 부분에서 설정이 가능하다. 
    • 모델 설정 파일 안에는 연구자가 현재까지 PMF 프로그램 내에서 진행된 설정, 데이터 파일, 모델링 결과 등에 대한 내용이 모두 저장된다. 
    • 즉, 오늘 실시한 데이터 및 불확도 파일 삽입(특정 폴더), 날짜/시간, 결측값 설정, 결과값 파일 저장 경로 및 이름 설정을 끝낸 후, 모델 설정 파일을 저장하면 앞선 모든 과정이 저장되고 다음에 다시 프로그램을 사용할 때에는 모델 설정 파일만 불러오면 모든 과정이 자동을 다시 완성된다. 
    • 저장하는 방법은 오른쪽 부분의 "Save as..." 또는 "Browse"를 클릭한 후, 저장 폴더를 선택하고 파일 이름을 타이핑 한 후 저장하면 된다.
    • 나중에 다시 파일을 불러오고 싶으면 "Load Last Saved" 파일로 바로 직전에 저장된 모델 설정 파일을 불러오거나, "Browse" 버튼을 클릭한 후 설정 파일이 저장된 폴더로 이동한 후 설정 파일을 열어주면 된다. 
    웁스!
    그림 2

    웁스!
    그림 3

    참고문헌

    1. EPA Positive Matrix Factorizatoin (PMF) 5.0 Fundamentals and User Guide, https://www.epa.gov/sites/production/files/2015-02/documents/pmf_5.0_user_guide.pdf
    Read More

    2019-08-15

    특정 지역에 대한 대기 역궤적 (Backward Trajectory) 분석 방법

    8월 15, 2019 0



    • 대기 환경과 관련된 연구를 진행하다보면, 오염물질의 장거리 및 단거리 이동에 의한 특정 지역에서의 영향을 확인하고자 할 때가 있다. 
    • 우리나라의 경우, 국내 배출원이 아닌 다른 곳에서 발생하여 이동해 오는 황사의 영향이 대표적이라고 할 수 있다.
    • 이 때, 연구자들은 특정 날짜, 특정 지역, 특정 고도 등에 대한 대기의 이동 경로를 역추적하여 오염물질의 이동을 확인하고 배출원을 특정할 수 있다. 
    • 대기 역궤적 분석 시, 우리는 미국 상무부(US Department of Commerce)의 해양대기청(National Oceanic and Atmospheric Administration)에서 제공하는 HYSPLIT 모델 기반의 대기 이동 모델링을 활용 할 수 있다.
    • 이번 글에서는 대기 역궤적 분석의 기본적인 사용법을 알아보고자 한다.

    1. 먼저 HYSPLT 모델 실행을 위한 사이트에 접속한다. 
    • 위의 링크를 타고가면 아래와 같은 화면이 나타나는데, 여기서 "Run HYSPLIT Trajectory Model"을 클릭한다. 

    1. 그리고 "Compute archive trajectories"를 클릭한다.

    1. 다음 화면은 역궤적을 확인할 장소의 수 및 궤적 타입을 설정하는 부분인데, 연구 목적에 따라 적절히 지정하면된다. 자세한 설명은 "Note" 및 "Detail" 부분을 잘 읽어보자.
    • 이 글에서는 "1" 및 "Normal"로 설정했다.

    1. 다음에는 "기상 데이터" 및 "역추적 장소"를 특정하는 창이 나타난다. 
    • "Meteorology"의 드롭박스를 클릭하면 다양한 기상 데이터 포맷이 나오는데, 연구 목적에 맞게 적절히 설정해주면 된다. 
    • 여기에서는 Global Data Assimilation System (GDAS, 1 degree)  데이터베이스를 설정했다. 
    • 기상 데이터를 설정한 후, 아래 쪽에서 "역추적 장소"의 위도/경도 또는 그 지역을 특정 할 수 있는 정보를 입력해주면 된다. 
    • 위도/경도는 여러 지도 사이트(구글 지도, 네이버 지도 등)에서 확인이 가능하며, 여기에서는 "울산시청"을 선정하였다. 




    1. 다음 화면에서는 역궤적 분석을 위한 자세한 설정을 변경 할 수 있는 창이 나타난다. 
    • 먼저 "Trajectory direction" 부분에서 "Backward"를 선택해 준다.
    • 그리고 "Start time"을 지정해준다. 여기서는 "8월 12일 00시"에 시작하는 것으로 설정했다.
    • "Total run time (hours)"에서 총 역궤적 시간을 설정해 준다. 여기서는 "24"시간으로 설정했다.
    • 제일 아래쪽에서는 "고도"를 설정 할 수 있으며, 지상고도(Above Ground Level, AGL) 및 해발고도(Metres Above Sea Level, MASL) 설정도 가능하다. 여기에서는 500, 250, 100m의 지상고도를 설정하였다.
    • 총 설정 내용은 "8월 12일 00시"부터 "24시간"동안 "울산 시청"으로 500m, 250m, 100m 지상고도에서 이동한 대기의 흐름을 "역궤적분석(Backward)"하는 것이다.

    • 아래로 스크롤 해보면, "Display Options"가 나온다.
    • "Googld Earth" 포맷으로도 output이 가능하다. 
    • 제일 아래쪽에서는 기상데이터의 포함 여부 또한 설정이 가능하다.
    • 연구 목적에 맞게 적절히 설정하자.

    1. 궤적분석 요청 버튼을 "한번만" 클릭하면 처음에는 바로 아래와 같은 화면이 나타나는데, 잠시만 기다리면 그 다음 화면으로 자동으로 새로고침된다. 
    • 기본적으로 "GIF Plots"및 "PDF Plots"가 나타나지만, 여기에서는 "Google Earth" 포맷을 설정하였기 때문에 이 또한 함께 나타났다. 
    • 표 아래 ".gif", ".pdf", ".kmz" 등을 클릭하면 해당되는 포맷으로 결과를 다운로드 할 수 있다. 



    1. 결과를 다운로드 한 결과이다. (GIF 및 Google Earth)
    • "Google Earth"의 경우에는 대기의 이동 경로를 영상으로도 확인이 가능하다.
    • 해보진 않았지만 파워포인트 등과 같은 발표 자료 만들 때 좀 더 이쁘게 꾸밀 수 있을 것 같다. 




    • 이상으로 대기 역궤적(Backward Trajectory) 분석 방법을 간단하게 알아보았다.
    • HYSPLIT 모델은 이 글과 같이 간단한 분석과 함께 "화산재 확산" 등과 같이, 대규모 오염물질의 대기 이동에 의한 영향을 파악하는데 유용하기 때문에, 필요하다면 더욱 공부하여 활용 범위를 높이는 것도 좋을 것 같다. 

    참고문헌
    Read More

    2019-08-09

    구글 블로그에 "highlight.js" 코드 줄 번호 넣는 방법

    8월 09, 2019 0



    • 앞선 글에서는 구글 블로그에 "highlight.js"를 이용해서 코드를 이쁘게 넣는 방법에 대해서 알아봤다. @"구글블로그에 "highlight.js"로 코드 이쁘게 넣는 방법" 
    • "highlight.js"에서는 코드별 줄 번호를 표현해주지 않지만, 구글링을 통해 알아낸 줄 번호를 표현하는 방법을 공유하고자 한다.

    1. https://github.com/wcoder/highlightjs-line-numbers.js/ <-- 링크를 타고 들어가면 아래와 같은 화면이 나온다.

    1. 아래로 스크롤을 하면 아래와 같은 부분이 나타난다.
    • 빨간색으로 표시된 부분은 "구글블로그에 "highlight.js"로 코드 이쁘게 넣는 방법" 에서 했던 방법 그대로 </head> 코드를 검색한 후에 그 위에 복사 후 붙여넣기를 한다. 
    • 파란색 부분은 CSS 코드인데 넣는 방법을 알면 CSS 부분에 추가하면 된다. 모른다면 3번으로...


    1. 위의 파란색 부분은 CSS 코드 부분에 넣어야하는데 매우 간단한 방법이 있다. 
    • 먼저 블로그에 "테마" 메뉴로 간 후, "맞춤설정" 버튼을 클릭한다.

      • 그리고 왼쪽 아래에 있는 "고급" 탭으로 이동한 후, 위의 파란색 CSS 코드들을 복사 후 왼쪽 "맞춤 CSS 추가"에 붙여 넣어주면 된다. 
      • 붙여 넣은 후, 바로 나가면 안되고 가장 우측 상단에 보면 "블로그에 적용" 버튼을 반드시! 눌러야 한다. 


      1. 위의 내용을 진행하였다면 기존의 "highlights.js" 사용법에 따라 사용하면 코드에 줄 번호가 생성된다.
      • 하지만 디자인이 마음에 들지 않을 수 있는데, 이 때에는 아래에 있는 "CSS selectors"를 참고해서 CSS 부분을 수정하면 된다.

      • 이 블로그를 위해 수정한 내용을 "highlights.js"으로 첨부한다.
      .hljs-ln-numbers {
      
          -webkit-touch-callout: none;
          -webkit-user-select: none; 
          -khtml-user-select: none;
          -moz-user-select: none;
          -ms-user-select: none;
           user-select: none;
      
           text-align: center;
           color: #fff;
           border-right: 1px solid #CCC;
           vertical-align: middle;
           padding-left: 15px;
           padding-right: 5px;
           font-size: 15px;
           font-weight: bold;
         }
      
      .hljs-ln-code {
      
           padding-left: 10px;
         }
      
      Read More

      구글 블로그에 "highlight.js"로 코드 이쁘게 넣는 방법

      8월 09, 2019 1



      • R과 Python을 공부하면서 구글 블로그에 글을 쓰려고 계획하는 중, 포스트 안에 코드를 알아보기 쉬우면서 이쁘게 넣는 방법에 대해서 열심히 구글링을 했다.
      • 대부분 티스토리에 대한 내용들이 보였고, 여러 가지 방법 중 R 코드에 적용이 가능한 "highlight.js"를 통한 방법을 연구하기 시작했다. 
      • 자바스크립드, html, css를 수박 겉핥기 수준으로 배운 나로써는 참 힘든 여정이었지만, 결과적으로는 어떻게든 적용하게 되었다.

      1. 먼저 "highlight.js" 홈페이지를 방문한다.
      • 그리고 오른쪽에 "Get version" 버튼을 클릭한다.

        1. 아래와 같은 화면에서 위쪽 코드를 복사해준다.

        1. 자신의 블로그로 돌아와서 "테마" 메뉴 내 "html 편집"으로 들어간다.

        1. html 편집기에서 Ctrl+F 누른 후, </head> 태그를 검색한다.
        • 그 태그 바로 위에 아래 그림과 같이 앞서 복사한 코드를 붙여 넣어준다. 
        • 그리고 파란색 줄로 강조된 코드를 적어준다.
        • 스타일 변경은 "dracula.min.css" 코드에 "dracula"를 다른 스타일의 이름으로 변경해 주면 적용이 된다. 
        • 이것 저것 변경해 보면서 자신의 블로그 테마에 어울리는 스타일로 결정하면 된다. 

        1. 포스트에 적용할 때에는 아래와 같은 방식으로 넣어주면 된다.
        • "사용할 언어" 부분에는 따옴표를 쓰고 그 안에 html, python, r 등과 같은 언어 이름을 쓰면 된다. 
        • pre 및 code 태그 다음부터 바로 인식을 하기 때문에 만약 엔터를 친 후 코드를 작성하면 실제 화면에서는 첫 줄을 빈 줄로 표시한다. 그럼 이쁘지 않다.
          <pre><code="사용할 언어">
          코드들
          </code></pre>
          

          Read More

          2019-08-01

          무료 통계학 책(eBook)

          8월 01, 2019 0

          • 통계학 입문, 응용, 머신러닝, 데이터마이닝, R 등 통계 분야 책들을 무료로 다운받을 수 있는 링크를 소개한다.
          • 2013년도에 어떤 분이 정리한 내용이며, 그 분의 블로그에 가면 각 책들에 대한 간단한 설명도 확인할 수 있다.

            1. Illowsky, B., and Dean, S. Collaborative Statistics
            2. Diez, D., Barr, C., and Çetinkaya-Rundel, M. OpenIntro Statistics (2nd Edition)
            3. Downey, A. B. Think Stats: Probability and Statistics for Programmers
            4. Yakir, B. Introduction to Statistical Thinking
            5. Shafer, D., and Zhang, Z. Introductory Statistics
            6. Lavine, M. (2013). Introduction to Statistical Thought
            7. Faraway, J. J. Practical Regression and Anova using R
            8. Hyndman, R. J. and Athanasopoulos, G. Forecasting: Principles and Practice
            9. Grinstead, C., and Snell, J. L. Introduction to Probability. American Mathematical Society
            10. Downey, A. B. Think Bayes: Bayesian Statistics Made Simple. Needham, MA: Green Tea Press
            11. Coghlan, A. A Little Book of R For Time Series
            12. Hastie, T., Tibshirani, R., and Friedman, J. Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd Edition) New York: Springer
            13. Barber, D. Bayesian Reasoning and Machine Learning. Cambridge: Cambridge University Press
            14. Zoran Obradovic, PhD, Big Data
            15. CRAN (R), https://cran.r-project.org
            16. Burns, P. The R Inferno
            17. 전희원 R 기반의 데이터 시각화

            참고문헌

            1. https://wsyang.com/2013/08/free-ebooks-for-statistics/
            Read More

            2019-07-30

            US EPA PMF 모델 기본 사용법 (PMF 모델 소개)

            7월 30, 2019 0


            • PMF(Positive Matrix Factorization) 모델은 수용 모델(Receptor model)의 한 종류로써 US EPA (Environmental Protection Agency)에서 권장하는 대기 모델링 중 하나이다. 
            • 수용모델은 수용체 또는 수용지역에서의 대기 오염물질 종류 및 농도 등의 데이터를 바탕으로 한 통계적 분석을 통하여 대기오염물질 배출원(Source)의 기여도를 정량화하기 위한 수학적 접근법이다.
            • 수용 모델의 목표는 측정된 물질들의 농도와 배출원 정보 사이의 Chemical Mass Balance (CMB)를 요인의 수 p, 각 배출원의 오염물질 정보 f, 개별 샘플에 개별 요인이 기여하는 질량의 양 g (특정 배출원에 대한 배출량, 즉 측정기간에 대한 오염원의 강도 (strength))를 사용하여 계산하는 것이다.
            • i : 샘플의 수, j : 오염물질 종류, x : i 개의 시료에서 측정된 j 개의 오염물질로 나타낸 데이터 행렬, e : 잔차(나머지) 행렬 (residual matrix)
              • 모델의 최적화를 위한 Objective Function Q는 PMF의 중요한 매개변수로써 모델 내 반복 알고리즘을 통해 최소화된다.
              • u : 불확도 (uncertainty), 계산식의 분자는 잔차(나머지) e
                • Q는 2가지 버전(true, robust)으로 모델 내에서 표시된다.
                  • Q (true) : 모든 포인트를 포함하여 계산된 값
                  • Q (robust) : 불확도로 수정된 잔차(나머지)가 4 이상인 샘플들을 제외한 후 계산된 값
                • 불확도가 매우 커지면, 두 파라미터는 비슷한 값을 가지게 된다.
                  • 모든 샘플은 개별 불확도를 가져야 하며 이의 계산 방법은 여러 가지가 있으며, 연구자는 연구 방향에 맞는 최적의 계산 방법을 결정하여야한다.

                    • MDL (Method Detection Limit) : 방법검출한계
                  미세먼지 데이터의 PMF 모델링 분석을 위한 불확도 계산 방법 리스트
                  • 위의 계산 방법들은 농도값이 MDL 보다 클 때 사용한다.
                    • 이상으로 US PMF 모델에 대한 간단한 소개와 함께 불확도 계산 방법에 대하여 알아보았다.


                    참고 문헌
                    1. US EPA 메뉴얼 
                    2. https://m.blog.naver.com/PostView.nhn?blogId=chylook&logNo=70074232400&proxyReferer=https%3A%2F%2Fwww.google.com%2F, 
                    3. Adam R., Shelly I. E., and Prakash V. B., Receptor Modeling of Ambient Particulate Matter Data Using Positive Matrix Factorization: Review of Existing Methods, J. Air & Waste Manage. Assoc., 2007, 57:146-154
                    Read More

                    2019-07-26

                    R을 이용한 OpenAir 패키지 기본 사용법 ("windRose" 기능)

                    7월 26, 2019 0
                     



                    • 이번 글에서는 OpenAir 패키지를 이용한 "WindRose" 기능에 대해서 알아보고자 한다.

                    1. OpenAir 패키지는 데이터 내 풍향/풍속 값을 이용하여 바람장미를 그리는 기능을 제공하고 있다. 
                    • 아래와 같은 아주 간단한 코드를 이용하면 데이터 내 모든 풍향/풍속 자료를 사용하여 바람장미를 생성해준다.
                      windRose(mydata)



                      1. 또한 "windRose" 코드 안에 "type" 옵션 코드를 사용하면 여러 가지 형식으로 바람장미를 그릴 수 있다. 
                      • 여기서는 한 예로 "year" 옵션을 사용해 보았다.
                      • 여러 가지 옵션을 조합해서 사용이 가능하며 자세한 내용은 메뉴얼을 참고하기 바란다. 
                      windRose(mydata, type="year")




                      1. 또 하나 유용한 기능은 "type" 옵션 코드에서 옵션을 오염물질로 지정하면 일정 농도 범위별 바람장미가 그려지는 것이다.
                      • 여기서는 "pm10"을 한 예로 실행해 보았다.
                      • "type" 옵션을 오염물질로 지정하면, 기본적으로 4개의 데이터 범위에 따른 풍향/풍속 정보를 바람장미로 나타난다. 
                      • 'pm10" 결과에서는 농도가 "1 to 22", "22 to 31", "31 to 44", "44 to 801"로 구분되었고, 각 농도 범위별로 바람장미가 그려졌다.
                      • 이러한 결과를 바탕으로 연구자는 저농도일 때 나타나는 주 풍향/풍속과 고농도일 때 나타나는 주 풍향/풍속을 비교해 볼 수 있을 것이다.
                      windRose(mydata, type = "pm10")



                      1. 기타 다른 적용 가능한 옵션들은 다음과 같다.



                      참고 문헌 : OpenAir 메뉴얼  http://www.openair-project.org/PDF/OpenAir_Manual.pdf

                      Read More

                      Post Top Ad

                      Play with Study!