SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
파이썬을 이용한 기상자료 처리
파이콘 한국 2017 ( Science / Data ]
2017. 08. 13. (일) 15:15 ­ 15:40 / 코엑스, 그랜드볼룸 104
권 태 헌
발표 순서
• Part 1 : 파이썬 사용 사례
• Part 2 : 기상 관측 자료 처리
1. 기상 관측 자료
2. 관측 자료 처리시스템 구축 : class, re, os, glob, shutil …
3. 품질검사와 Flux 자료 처리 : Pandas, Scipy
4. Mapping : Folium
5. 코딩
6. 참고
• Part 3 : 결론
Part 1 : 파이썬 사용 사례
PyROOT - CERN
“Why Python? CMS already uses it for its configuration files. It is a powerful language that many
consider both much easier to read and easier to write than C++.”
Part 1 1. 파이썬 사용 사례
- 85개국, 580개 대학, 8000여명 과학자
- 연간 250 PT
- www (팀 버너스리)
- 힉스 입자
QuTiP
Part 1 1. 파이썬 사용 사례
Python code : 2.011 Mcell/s
Python+Fortran : 198.178 Mcell/s
* Paul Nation, Korea University
미국기상학회(AMS) – Python Symposium
13 topics
6 sessions, 1 lecture, 1 poster session
43 presentations
23 - 24 January 2017
Part 1 1. 파이썬 사용 사례
Part 1 1. 파이썬 사용 사례
Part 2 : 기상 관측 자료 처리
기상 관측 자료
Part 2 1. 기상 관측 자료
<자동기상관측장비>
<고층> <위성>
<레이더>
<해양>
지점,일시,기온(°C),강수량(0.5)(mm),풍향(deg),풍속(m/s)
400,2014-01-01 0:00,4.8,0,268.8,2.7
400,2014-01-01 0:01,4.8,0,267.2,2.1
400,2014-01-01 0:02,4.8,0,308.8,1.2
400,2014-01-01 0:03,4.7,0,298.1,2.7
400,2014-01-01 0:04,4.8,0,270.3,2.3
400,2014-01-01 0:05,4.8,0,261.4,1.8
400,2014-01-01 0:06,4.7,0,274.9,1.9
400,2014-01-01 0:07,4.7,0,288.3,1.6
400,2014-01-01 0:08,4.7,0,293.2,1.8
400,2014-01-01 0:09,4.7,0,304.1,1.9
400,2014-01-01 0:10,4.7,0,306.8,2.8
400,2014-01-01 0:11,4.7,0,282.2,2
400,2014-01-01 0:12,4.6,0,308.4,1.1
400,2014-01-01 0:13,4.7,0,271.2,2.7
400,2014-01-01 0:14,4.7,0,233.5,2.3
400,2014-01-01 0:15,4.7,0,268.6,2.6
400,2014-01-01 0:16,4.7,0,284.2,1.7
….
2014년 서울 지역 (400) AWS 기온 관측 자료 시계열 그래프
Part 2 1. 기상 관측 자료
기상 관측 자료를 정해진 시간내에 수집/저장/처리/평가/표출 하는 일
기상 관측 자료 처리
파이썬으로 처리한 기상 관측 자료 - 바람 / 공간분포
<바람장미 (Matplotlib)> <기온 Contour (Scipy, Folium)>
Part 2 1. 기상 관측 자료
2012년 서울지역 AWS 바람 관측 자료 / 2017년 수도권 지역 기온 관측 자료
System Outline
Observation
Data Acquisition
System (DAS)
Data Storage
System(DSS)
Job Process
System
(JPS)
Web Service
System (WSS)
Internal
Management
System
Raw data
Query
Raw data Data
QC
Result
Monitoring
Location
Transmission
Evaluation
Part 2 2. 관측 자료 처리시스템
개 발 과 정
항목 분석 설계 개발 현재단계
Level 0
O 관측계획안 

- 관측자료 형식/크기/주기
O 자료 흐름도 O 자료처리 계획안 O
Level 1
O 관측장비별 1차분석 

- 관측자료 흐름도
O 자료처리 알고리즘

O 파일처리 규칙 - 대분류
O 자료처리 알고리즘 O
Level 2
O 관측장비별 2차분석

- 관측자료별 흐름도

- 자료 파일 이름/형식/크기
O 자료처리 세부 알고리즘

O 파일 처리 규칙 - 상세분류
O 자료처리 세부 알고리즘 (파일 처리) O
Level 3
O 관측 장비별 3차분석

- 관측 자료 상세 흐름도

- 생산 원리

- 관측자료 샘플링
O모니터링 / 표출 / QC O QC, 표출/모니터링 -
Part 2 2. 관측 자료 처리시스템
Part 2 2. 관측 자료 처리시스템
Data Flow Chart
Sensor
Data Logger
Modem
Serial
Leased Line
Laptop
Portable Disk
CDMA
M2M
Data Acquisition
Servers
M2M
Servers
Processing
System
Storage
Users
Sensing
Operating
Computer
Laptop / Portable Disk
Part 2 2. 관측 자료 처리시스템
자료 수집 시스템
프로그램 수행 절차
시작
Crontab
정상 작동
(매시간)
/home/specore/LOG/
ammp_Crontab.log
PID
/home/specore/LOG/
ammp_sh_YYYYMM
DD.log
종료
자료 처리
프로그램 실행
/home/AMMP
로 데이터 이동
/home/nimrftp/
DATA 와 동기화
(60일 보전)
Yes
No
No
Yes
/home/specore/LOG/
ammp_python_YYYY
MMDD.log
DISK1 동기화,
DISK2 백업
Part 2 2. 관측 자료 처리시스템
자료 처리 프로그램 시작/종료
Part 2 2. 관측 자료 처리시스템
프로그램 시작
날짜, 폴더
정보
프로그램 종료
실행순서 항목 주요 사용 기능
1 날짜/폴더 정보 datetime.datetime
2 폴더 유무 os.path.isdir
3 폴더 사용 여부 OS.popen, lsof (Shell)
4 자료파일 유무 glob
5 종료 signal os.path.isfile
6 파일처리 여부 tailer.tail
7 프로그램 종료 sys.exit
날짜별
폴더 유무
폴더
사용
여부
파일
유무
파일
처리
여부
종료
signal 유무
Yes
Yes
Yes
No
No
No
No
자료 처리 시
작
Yes
Yes
No
설정 파일 작성
Part 2 2. 관측 자료 처리시스템
CKFBDS;CKFBDS??-$YYYY$MM$DD-$hh$mm-DataLog_User.dat;/home/AMMP/AQGH/YYYYMM/DD/;
CKFBDS##-YYYYMMDD-hhmm-DataLog_User.dat
2. 관측 자료 파일 구조 파악
시리얼 번호
고정 부분
년도 월 일 시간 분
변경 부분 변경 부분 고정 부분
3. 설정 파일 형식
key
구분 기호 구분 기호 구분 기호
File Name
시리얼번호의 숫
자가 바뀔 경우에
대비하여 ??를 사
용
연도, 월, 일, 시, 분 앞에 $를 놓아 고정 이
름이 아닌 변경 이름임을 표시
Directory Name
프로그램이 찾은 파일 이름으로 부터
추출되는 날짜여서 $를 생략하고 “년
월 / 일” 표시
1.설정 파일의 역활
•하나의 알고리즘으로 가능한 모든 자료 처리
•정확도 향상
•확장/이식 용이성 : 알고리즘에 맞지 않는 자료 발생시 설정파일만 수정해도 문제 해결
•프로그램 통제
파일 처리
실행순서 항목 주요 사용 기능
1 설정 파일 내용 읽기 try except, with open, class
2 ?' 위치 찾기
re.compile, re.finditer, re.group,
re.span
3 YYYY, MM, DD 위치 찾기 re.compile, re.sub
4 파일 결정 re.compile
5 대상 폴더 경로 결정 Dict, replace
번호 항목 주요 사용 기능
1 폴더 생성 os.makedirs
2 이동 shutil.move
3 삭제 os.remove
< 파일 정보 분석>
< 파일 처리>
Part 2 2. 관측 자료 처리시스템
자료처리시
관측자료 파일
리스트 추출
설정 파일
정보 분석
복사/이동 폴
더 결정
설정에
맞는 파일
TBD
자료처리끝파일 이동
Yes No
YYYY, MM, DD,
HH, MI, “[?]+” 위치와
값이 필요. 어렵지 않지
만, 주의 필요
JPS - 품질검사
Part 2 3. 품질 검사
RQMOD (Real-Time Quality control system for Meteorological Observation Data)
Pandas를 이용한 품질검사
def MissingDataFilling(timestamps, values):
time_format='%Y-%m-%d %H:%M:%S'
time_str_0 = timestamps[0]
time_str_1 = timestamps[-1]
begin = dt.datetime.strptime(time_str_0, time_format)
end = dt.datetime.strptime(time_str_1, time_format)
dict_tms_temp={}
for i,items in enumerate(timestamps):
dict_tms_temp[items]=values[i]
if values[i] == '':
dict_tms_temp[items]='-99999.0'
DR = DataResampling()
while begin <= end:
tms_str=begin.strftime(time_format)
try :
values_resample = dict_tms_temp[tms_str]
except ValueError :
values_resample = '-99999.0'
except Exception as e :
pass
#print str(e)
DR.Add_Value(tms_str, values_resample)
values_resample = '-99999.0'
begin += td(0,60)
return (DR)
data=pd.read_csv(INPUT, index_col=0,
skiprows=[0,2,3],parse_dates=0)
data1=data.astype(float)
das=data1.resample('100L’)
❖ Parse _dates : 날짜가 있는 칼럼 알려 주기
❖ .astype(float) : data 의 자료형을 float으로 해
주어야 오류 없이 처리 됨
❖ 100L = 100 millisecond
<Pandas를 이용하지 않은 경우> < Pandas를 이용 >
Part 2 3. 품질 검사
Part 2
Flux
3. Flux 자료 처리
Flux 자료 표출
Part 2 3. Flux 자료 처리
1개 화면 - 6개 그래프; 1개 그래프 - 1개 자료, 3개 계산
결과
총 160704000 값, 이런 그래프 240여개를
원래 컴퓨터는 반복 작업을 잘 한다.
파이썬으로 그 일을 쉽게 할 수 있다.
관측 자료 파일 1개 —> —> 한번에 그리기!
Mapping : 관측지점
Part 2 4. Mapping
import folium
import pandas as pd
file_csv = 'aws_201701011200.txt'
data = pd.read_csv(file_csv, na_values=['NAN'])
maps = folium.Map(location = [37.5602, 126.982], zoom_start=11, tiles='Stamen
Toner')
for inum, st_id in enumerate(data.STATION_ID):
st_latitude = data.STATION_LATITUDE[inum]
st_longitude = data.STATION_LONGITUDE[inum]
folium.Marker([st_latitude,st_longitude],popup=str(st_id)).add_to(maps)
maps.save('skt_site_20161116.html'
기온 Contour
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import griddata
file_csv = 'aws_201701011200.txt'
data = pd.read_csv(file_csv, na_values=['NAN'])
y = data.STATION_LATITUDE
x = data.STATION_LONGITUDE
z = data.TEMPERATURE_TC
(xmax, xmin) = (x.max(), x.min())
(ymax, ymin) = (y.max(), y.min())
print ymax, ymin, xmax, xmin
points = (x.values,y.values)
values = z.values
grid_x, grid_y = np.mgrid[xmin:xmax:300j, ymin:ymax:300j]
grid_z0 = griddata(points, values, (grid_x, grid_y),
method='nearest')
plt.imshow(grid_z0.T, extent=(xmin,xmax,ymin,ymax),
origin='lower')
plt.colorbar()
plt.savefig('v5_nearest.png’)
Part 2 4. Mapping
Mapping : 기온 Contour
import folium
from folium import plugins
from scipy.ndimage import imread
min_lat = 36.9195388889
max_lat = 38.1860733333
min_lon = 125.717869722
max_lon = 127.794811111
maps = folium.Map(location = [37.5602,
126.982], zoom_start=11, tiles='Stamen
Toner')
datas = imread('v5_nearest.png')
maps.add_child(plugins.ImageOverlay(data
s,opacity=0.6, bounds = [[min_lat,
min_lon], [max_lat, max_lon]]))
maps.save('skt_linear_interpol_colorbar.ht
ml')
Part 2 4. Mapping
코딩 방법의 예
• 메인 프로그램과 서브 프로그램으로 나눠서 작성
예> Ammp_main.py, Ammp_cf.py
• 변수명은 길어도 상관없으니 이름만으로도 의미를 알 수 있게 (소
문자)
예> get_rules_from_seutup_file
• 함수/클래스 명은 파스칼 기법
예> WorkMeteorologyDataPosting
• 함수/클래스 인스턴스 이름은 대문자로
예> WMDP = WorkMeteorologyDataPosting()
• 메인 프로그램은 알고리즘의 큰 제목만, 상세기능은 서브프로그램
에서
1. Index number와 인자가 모두 필요한 for 문에서는
enumerate 를 사용하자
2. 리스트 크기가 큰 경우 index() 를 사용하여 index
number를 찾기 보다는 For 문이 더 빠름
예> 리스트 크기가 10만개의 경우 index() 사용시
47.258초, 사전형 자료로 만들고 for 문 두번 썼을 때,
0.043 초 (47초는 1분 단위로 자료처리하거나 Model
에 자료 입력시 허용 불가한 시간 임)
3. 2 GB가 넘는 자료의 pandas.DataFrame.resample 보
다는 pytables를 사용
Part 2 5. 코딩
참고 문서
Part 2 6. 참고
Part 3 : 결론
❖ 파이썬으로 기상 자료 처리시스템 개발한 사례를 보여주고 있다.
❖ Part1 과 Part2 에서 보여 줬듯이, IT 분야 뿐만 아니라 과학 분야에
서도 파이썬의 사용이 다양하고 많아져서 결과적으로 중요해졌다.
❖ 작업의 효율성을 높이기 위해 파이썬에 주목할 필요성이 있다.
고맙습니다
질문 & 의견
참고 자료
설정 파일 (2) : 자료의 흐름 분석 - 

CRDS (cavity ringdown spectroscopy) 예시
내부 PC
외장하드
/data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat
파일 형식 분석
CKFBDS??-$YYYY$MM$DD-$hh$mm-DataLog_User.dat
파일 전송 : SFTP (노트북)
/data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat
ABOS
/home/specore/data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat
C:PicarroG2000LogArchive [year][month][day][hour]
(15분 간격 자료 생산, 90일 보관)
최
초
자
료
처
리
시
스
템
에
서
설
계
한
내
용

Contenu connexe

Tendances

AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)I Goo Lee.
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
 
Best Practices in Handling Performance Issues
Best Practices in Handling Performance IssuesBest Practices in Handling Performance Issues
Best Practices in Handling Performance IssuesOdoo
 
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...Amazon Web Services Korea
 
What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15Celine George
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018Amazon Web Services Korea
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所Ryo Sasaki
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기DaeSeon Jeong
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門Mikiya Okuno
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...AWSKRUG - AWS한국사용자모임
 
S3 Event Notifications やってみた
S3 Event Notifications やってみたS3 Event Notifications やってみた
S3 Event Notifications やってみたKenichi Nakamichi
 
MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제Seongyun Byeon
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기[2018 데이터야놀자] 웹크롤링 좀 더 잘하기
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기wangwon Lee
 
ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기Yungon Park
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해beom kyun choi
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?태환 김
 
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018Amazon Web Services Korea
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 

Tendances (20)

AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)
 
Amazon DynamoDB 키 디자인 패턴
Amazon DynamoDB 키 디자인 패턴Amazon DynamoDB 키 디자인 패턴
Amazon DynamoDB 키 디자인 패턴
 
Best Practices in Handling Performance Issues
Best Practices in Handling Performance IssuesBest Practices in Handling Performance Issues
Best Practices in Handling Performance Issues
 
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...
Amazon SageMaker를 통한 대용량 모델 훈련 방법 살펴보기 - 김대근 AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 최영준...
 
What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
 
S3 Event Notifications やってみた
S3 Event Notifications やってみたS3 Event Notifications やってみた
S3 Event Notifications やってみた
 
MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기[2018 데이터야놀자] 웹크롤링 좀 더 잘하기
[2018 데이터야놀자] 웹크롤링 좀 더 잘하기
 
ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?
 
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
AWS KMS를 활용하여 안전한 AWS 환경을 구축하기 위한 전략::임기성::AWS Summit Seoul 2018
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 

En vedette

Driving Computer Vision Research Innovation In Artificial Intelligence
Driving Computer Vision Research Innovation In Artificial IntelligenceDriving Computer Vision Research Innovation In Artificial Intelligence
Driving Computer Vision Research Innovation In Artificial IntelligenceNVIDIA
 
Python 2 와 3 공존하기
Python 2 와 3 공존하기Python 2 와 3 공존하기
Python 2 와 3 공존하기태환 김
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)Tae Young Lee
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템NAVER D2
 
[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸NAVER D2
 
Spm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisSpm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisTae Young Lee
 
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용Jihyung Song
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호NAVER D2
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개NAVER D2
 
Speaker Diarization
Speaker DiarizationSpeaker Diarization
Speaker DiarizationHONGJOO LEE
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준sungjun han
 
아마존 에코를 활용한 음성 인식 에어컨 제어 A to z
아마존 에코를 활용한 음성 인식 에어컨 제어 A to z아마존 에코를 활용한 음성 인식 에어컨 제어 A to z
아마존 에코를 활용한 음성 인식 에어컨 제어 A to zJueun Seo
 
Pycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last SamuraiPycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last SamuraiSungYong Lee
 
One-Shot Learning
One-Shot LearningOne-Shot Learning
One-Shot LearningJisung Kim
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)홍배 김
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향홍배 김
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)Lee Seungeun
 
Developing Korean Chatbot 101
Developing Korean Chatbot 101Developing Korean Chatbot 101
Developing Korean Chatbot 101Jaemin Cho
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 

En vedette (20)

Driving Computer Vision Research Innovation In Artificial Intelligence
Driving Computer Vision Research Innovation In Artificial IntelligenceDriving Computer Vision Research Innovation In Artificial Intelligence
Driving Computer Vision Research Innovation In Artificial Intelligence
 
Python 2 와 3 공존하기
Python 2 와 3 공존하기Python 2 와 3 공존하기
Python 2 와 3 공존하기
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템
 
[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸
 
Spm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysisSpm12를 이용한 fmri analysis
Spm12를 이용한 fmri analysis
 
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
[ Pycon Korea 2017 ] Infrastructure as Code를위한 Ansible 활용
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개
 
Speaker Diarization
Speaker DiarizationSpeaker Diarization
Speaker Diarization
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준
 
아마존 에코를 활용한 음성 인식 에어컨 제어 A to z
아마존 에코를 활용한 음성 인식 에어컨 제어 A to z아마존 에코를 활용한 음성 인식 에어컨 제어 A to z
아마존 에코를 활용한 음성 인식 에어컨 제어 A to z
 
Pycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last SamuraiPycon2017 이성용 Dances with the Last Samurai
Pycon2017 이성용 Dances with the Last Samurai
 
One-Shot Learning
One-Shot LearningOne-Shot Learning
One-Shot Learning
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
 
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
CNN 초보자가 만드는 초보자 가이드 (VGG 약간 포함)
 
Developing Korean Chatbot 101
Developing Korean Chatbot 101Developing Korean Chatbot 101
Developing Korean Chatbot 101
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 

Similaire à weather-data-processing-using-python

(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk   plaso 슈퍼 타임라인 분석 도구 활용 방안(141031) #fitalk   plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안INSIGHT FORENSIC
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석용 최
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community
 
파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트itproman35
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼yonseilibrary
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apifermat39
 
Surrogate Modeling in pSeven
Surrogate Modeling in pSevenSurrogate Modeling in pSeven
Surrogate Modeling in pSevenShinwoo Jang
 
공간정보 대량맞춤화 정보지원체계 연구 소개
공간정보 대량맞춤화 정보지원체계 연구 소개공간정보 대량맞춤화 정보지원체계 연구 소개
공간정보 대량맞춤화 정보지원체계 연구 소개SANGHEE SHIN
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기ksdc2019
 
데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdfYunjeong Susan Hong
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2KoChungWook
 
UiPath와 Python ML(Machine Learning) 모델 연동
UiPath와 Python ML(Machine Learning) 모델 연동UiPath와 Python ML(Machine Learning) 모델 연동
UiPath와 Python ML(Machine Learning) 모델 연동TIMEGATE
 
20171212 [ai times] 'ai' 인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...
20171212 [ai times] 'ai'   인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...20171212 [ai times] 'ai'   인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...
20171212 [ai times] 'ai' 인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...jason min
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4PartPrime
 
분산 파일 시스템을 위한 맵 리듀스 기반 추천
분산 파일 시스템을 위한 맵 리듀스 기반 추천분산 파일 시스템을 위한 맵 리듀스 기반 추천
분산 파일 시스템을 위한 맵 리듀스 기반 추천영원 서
 

Similaire à weather-data-processing-using-python (20)

(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk   plaso 슈퍼 타임라인 분석 도구 활용 방안(141031) #fitalk   plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
 
기술6기 3조
기술6기 3조기술6기 3조
기술6기 3조
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_api
 
Surrogate Modeling in pSeven
Surrogate Modeling in pSevenSurrogate Modeling in pSeven
Surrogate Modeling in pSeven
 
공간정보 대량맞춤화 정보지원체계 연구 소개
공간정보 대량맞춤화 정보지원체계 연구 소개공간정보 대량맞춤화 정보지원체계 연구 소개
공간정보 대량맞춤화 정보지원체계 연구 소개
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2
 
UiPath와 Python ML(Machine Learning) 모델 연동
UiPath와 Python ML(Machine Learning) 모델 연동UiPath와 Python ML(Machine Learning) 모델 연동
UiPath와 Python ML(Machine Learning) 모델 연동
 
20171212 [ai times] 'ai' 인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...
20171212 [ai times] 'ai'   인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...20171212 [ai times] 'ai'   인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...
20171212 [ai times] 'ai' 인공지능-ai security 개발을 위한 시도 - 1 (nlp 모델 테스트 2.2.11)...
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4
 
분산 파일 시스템을 위한 맵 리듀스 기반 추천
분산 파일 시스템을 위한 맵 리듀스 기반 추천분산 파일 시스템을 위한 맵 리듀스 기반 추천
분산 파일 시스템을 위한 맵 리듀스 기반 추천
 

weather-data-processing-using-python

  • 1. 파이썬을 이용한 기상자료 처리 파이콘 한국 2017 ( Science / Data ] 2017. 08. 13. (일) 15:15 ­ 15:40 / 코엑스, 그랜드볼룸 104 권 태 헌
  • 2. 발표 순서 • Part 1 : 파이썬 사용 사례 • Part 2 : 기상 관측 자료 처리 1. 기상 관측 자료 2. 관측 자료 처리시스템 구축 : class, re, os, glob, shutil … 3. 품질검사와 Flux 자료 처리 : Pandas, Scipy 4. Mapping : Folium 5. 코딩 6. 참고 • Part 3 : 결론
  • 3. Part 1 : 파이썬 사용 사례
  • 4. PyROOT - CERN “Why Python? CMS already uses it for its configuration files. It is a powerful language that many consider both much easier to read and easier to write than C++.” Part 1 1. 파이썬 사용 사례 - 85개국, 580개 대학, 8000여명 과학자 - 연간 250 PT - www (팀 버너스리) - 힉스 입자
  • 5. QuTiP Part 1 1. 파이썬 사용 사례 Python code : 2.011 Mcell/s Python+Fortran : 198.178 Mcell/s * Paul Nation, Korea University
  • 6. 미국기상학회(AMS) – Python Symposium 13 topics 6 sessions, 1 lecture, 1 poster session 43 presentations 23 - 24 January 2017 Part 1 1. 파이썬 사용 사례
  • 7. Part 1 1. 파이썬 사용 사례
  • 8. Part 2 : 기상 관측 자료 처리
  • 9. 기상 관측 자료 Part 2 1. 기상 관측 자료 <자동기상관측장비> <고층> <위성> <레이더> <해양>
  • 10. 지점,일시,기온(°C),강수량(0.5)(mm),풍향(deg),풍속(m/s) 400,2014-01-01 0:00,4.8,0,268.8,2.7 400,2014-01-01 0:01,4.8,0,267.2,2.1 400,2014-01-01 0:02,4.8,0,308.8,1.2 400,2014-01-01 0:03,4.7,0,298.1,2.7 400,2014-01-01 0:04,4.8,0,270.3,2.3 400,2014-01-01 0:05,4.8,0,261.4,1.8 400,2014-01-01 0:06,4.7,0,274.9,1.9 400,2014-01-01 0:07,4.7,0,288.3,1.6 400,2014-01-01 0:08,4.7,0,293.2,1.8 400,2014-01-01 0:09,4.7,0,304.1,1.9 400,2014-01-01 0:10,4.7,0,306.8,2.8 400,2014-01-01 0:11,4.7,0,282.2,2 400,2014-01-01 0:12,4.6,0,308.4,1.1 400,2014-01-01 0:13,4.7,0,271.2,2.7 400,2014-01-01 0:14,4.7,0,233.5,2.3 400,2014-01-01 0:15,4.7,0,268.6,2.6 400,2014-01-01 0:16,4.7,0,284.2,1.7 …. 2014년 서울 지역 (400) AWS 기온 관측 자료 시계열 그래프 Part 2 1. 기상 관측 자료 기상 관측 자료를 정해진 시간내에 수집/저장/처리/평가/표출 하는 일 기상 관측 자료 처리
  • 11. 파이썬으로 처리한 기상 관측 자료 - 바람 / 공간분포 <바람장미 (Matplotlib)> <기온 Contour (Scipy, Folium)> Part 2 1. 기상 관측 자료 2012년 서울지역 AWS 바람 관측 자료 / 2017년 수도권 지역 기온 관측 자료
  • 12. System Outline Observation Data Acquisition System (DAS) Data Storage System(DSS) Job Process System (JPS) Web Service System (WSS) Internal Management System Raw data Query Raw data Data QC Result Monitoring Location Transmission Evaluation Part 2 2. 관측 자료 처리시스템
  • 13. 개 발 과 정 항목 분석 설계 개발 현재단계 Level 0 O 관측계획안 
 - 관측자료 형식/크기/주기 O 자료 흐름도 O 자료처리 계획안 O Level 1 O 관측장비별 1차분석 
 - 관측자료 흐름도 O 자료처리 알고리즘
 O 파일처리 규칙 - 대분류 O 자료처리 알고리즘 O Level 2 O 관측장비별 2차분석
 - 관측자료별 흐름도
 - 자료 파일 이름/형식/크기 O 자료처리 세부 알고리즘
 O 파일 처리 규칙 - 상세분류 O 자료처리 세부 알고리즘 (파일 처리) O Level 3 O 관측 장비별 3차분석
 - 관측 자료 상세 흐름도
 - 생산 원리
 - 관측자료 샘플링 O모니터링 / 표출 / QC O QC, 표출/모니터링 - Part 2 2. 관측 자료 처리시스템
  • 14. Part 2 2. 관측 자료 처리시스템 Data Flow Chart Sensor Data Logger Modem Serial Leased Line Laptop Portable Disk CDMA M2M Data Acquisition Servers M2M Servers Processing System Storage Users Sensing Operating Computer Laptop / Portable Disk
  • 15. Part 2 2. 관측 자료 처리시스템 자료 수집 시스템
  • 16. 프로그램 수행 절차 시작 Crontab 정상 작동 (매시간) /home/specore/LOG/ ammp_Crontab.log PID /home/specore/LOG/ ammp_sh_YYYYMM DD.log 종료 자료 처리 프로그램 실행 /home/AMMP 로 데이터 이동 /home/nimrftp/ DATA 와 동기화 (60일 보전) Yes No No Yes /home/specore/LOG/ ammp_python_YYYY MMDD.log DISK1 동기화, DISK2 백업 Part 2 2. 관측 자료 처리시스템
  • 17. 자료 처리 프로그램 시작/종료 Part 2 2. 관측 자료 처리시스템 프로그램 시작 날짜, 폴더 정보 프로그램 종료 실행순서 항목 주요 사용 기능 1 날짜/폴더 정보 datetime.datetime 2 폴더 유무 os.path.isdir 3 폴더 사용 여부 OS.popen, lsof (Shell) 4 자료파일 유무 glob 5 종료 signal os.path.isfile 6 파일처리 여부 tailer.tail 7 프로그램 종료 sys.exit 날짜별 폴더 유무 폴더 사용 여부 파일 유무 파일 처리 여부 종료 signal 유무 Yes Yes Yes No No No No 자료 처리 시 작 Yes Yes No
  • 18. 설정 파일 작성 Part 2 2. 관측 자료 처리시스템 CKFBDS;CKFBDS??-$YYYY$MM$DD-$hh$mm-DataLog_User.dat;/home/AMMP/AQGH/YYYYMM/DD/; CKFBDS##-YYYYMMDD-hhmm-DataLog_User.dat 2. 관측 자료 파일 구조 파악 시리얼 번호 고정 부분 년도 월 일 시간 분 변경 부분 변경 부분 고정 부분 3. 설정 파일 형식 key 구분 기호 구분 기호 구분 기호 File Name 시리얼번호의 숫 자가 바뀔 경우에 대비하여 ??를 사 용 연도, 월, 일, 시, 분 앞에 $를 놓아 고정 이 름이 아닌 변경 이름임을 표시 Directory Name 프로그램이 찾은 파일 이름으로 부터 추출되는 날짜여서 $를 생략하고 “년 월 / 일” 표시 1.설정 파일의 역활 •하나의 알고리즘으로 가능한 모든 자료 처리 •정확도 향상 •확장/이식 용이성 : 알고리즘에 맞지 않는 자료 발생시 설정파일만 수정해도 문제 해결 •프로그램 통제
  • 19. 파일 처리 실행순서 항목 주요 사용 기능 1 설정 파일 내용 읽기 try except, with open, class 2 ?' 위치 찾기 re.compile, re.finditer, re.group, re.span 3 YYYY, MM, DD 위치 찾기 re.compile, re.sub 4 파일 결정 re.compile 5 대상 폴더 경로 결정 Dict, replace 번호 항목 주요 사용 기능 1 폴더 생성 os.makedirs 2 이동 shutil.move 3 삭제 os.remove < 파일 정보 분석> < 파일 처리> Part 2 2. 관측 자료 처리시스템 자료처리시 관측자료 파일 리스트 추출 설정 파일 정보 분석 복사/이동 폴 더 결정 설정에 맞는 파일 TBD 자료처리끝파일 이동 Yes No YYYY, MM, DD, HH, MI, “[?]+” 위치와 값이 필요. 어렵지 않지 만, 주의 필요
  • 20. JPS - 품질검사 Part 2 3. 품질 검사 RQMOD (Real-Time Quality control system for Meteorological Observation Data)
  • 21. Pandas를 이용한 품질검사 def MissingDataFilling(timestamps, values): time_format='%Y-%m-%d %H:%M:%S' time_str_0 = timestamps[0] time_str_1 = timestamps[-1] begin = dt.datetime.strptime(time_str_0, time_format) end = dt.datetime.strptime(time_str_1, time_format) dict_tms_temp={} for i,items in enumerate(timestamps): dict_tms_temp[items]=values[i] if values[i] == '': dict_tms_temp[items]='-99999.0' DR = DataResampling() while begin <= end: tms_str=begin.strftime(time_format) try : values_resample = dict_tms_temp[tms_str] except ValueError : values_resample = '-99999.0' except Exception as e : pass #print str(e) DR.Add_Value(tms_str, values_resample) values_resample = '-99999.0' begin += td(0,60) return (DR) data=pd.read_csv(INPUT, index_col=0, skiprows=[0,2,3],parse_dates=0) data1=data.astype(float) das=data1.resample('100L’) ❖ Parse _dates : 날짜가 있는 칼럼 알려 주기 ❖ .astype(float) : data 의 자료형을 float으로 해 주어야 오류 없이 처리 됨 ❖ 100L = 100 millisecond <Pandas를 이용하지 않은 경우> < Pandas를 이용 > Part 2 3. 품질 검사
  • 22. Part 2 Flux 3. Flux 자료 처리
  • 23. Flux 자료 표출 Part 2 3. Flux 자료 처리 1개 화면 - 6개 그래프; 1개 그래프 - 1개 자료, 3개 계산 결과 총 160704000 값, 이런 그래프 240여개를 원래 컴퓨터는 반복 작업을 잘 한다. 파이썬으로 그 일을 쉽게 할 수 있다. 관측 자료 파일 1개 —> —> 한번에 그리기!
  • 24. Mapping : 관측지점 Part 2 4. Mapping import folium import pandas as pd file_csv = 'aws_201701011200.txt' data = pd.read_csv(file_csv, na_values=['NAN']) maps = folium.Map(location = [37.5602, 126.982], zoom_start=11, tiles='Stamen Toner') for inum, st_id in enumerate(data.STATION_ID): st_latitude = data.STATION_LATITUDE[inum] st_longitude = data.STATION_LONGITUDE[inum] folium.Marker([st_latitude,st_longitude],popup=str(st_id)).add_to(maps) maps.save('skt_site_20161116.html'
  • 25. 기온 Contour import pandas as pd import matplotlib.pyplot as plt import numpy as np from scipy.interpolate import griddata file_csv = 'aws_201701011200.txt' data = pd.read_csv(file_csv, na_values=['NAN']) y = data.STATION_LATITUDE x = data.STATION_LONGITUDE z = data.TEMPERATURE_TC (xmax, xmin) = (x.max(), x.min()) (ymax, ymin) = (y.max(), y.min()) print ymax, ymin, xmax, xmin points = (x.values,y.values) values = z.values grid_x, grid_y = np.mgrid[xmin:xmax:300j, ymin:ymax:300j] grid_z0 = griddata(points, values, (grid_x, grid_y), method='nearest') plt.imshow(grid_z0.T, extent=(xmin,xmax,ymin,ymax), origin='lower') plt.colorbar() plt.savefig('v5_nearest.png’) Part 2 4. Mapping
  • 26. Mapping : 기온 Contour import folium from folium import plugins from scipy.ndimage import imread min_lat = 36.9195388889 max_lat = 38.1860733333 min_lon = 125.717869722 max_lon = 127.794811111 maps = folium.Map(location = [37.5602, 126.982], zoom_start=11, tiles='Stamen Toner') datas = imread('v5_nearest.png') maps.add_child(plugins.ImageOverlay(data s,opacity=0.6, bounds = [[min_lat, min_lon], [max_lat, max_lon]])) maps.save('skt_linear_interpol_colorbar.ht ml') Part 2 4. Mapping
  • 27. 코딩 방법의 예 • 메인 프로그램과 서브 프로그램으로 나눠서 작성 예> Ammp_main.py, Ammp_cf.py • 변수명은 길어도 상관없으니 이름만으로도 의미를 알 수 있게 (소 문자) 예> get_rules_from_seutup_file • 함수/클래스 명은 파스칼 기법 예> WorkMeteorologyDataPosting • 함수/클래스 인스턴스 이름은 대문자로 예> WMDP = WorkMeteorologyDataPosting() • 메인 프로그램은 알고리즘의 큰 제목만, 상세기능은 서브프로그램 에서 1. Index number와 인자가 모두 필요한 for 문에서는 enumerate 를 사용하자 2. 리스트 크기가 큰 경우 index() 를 사용하여 index number를 찾기 보다는 For 문이 더 빠름 예> 리스트 크기가 10만개의 경우 index() 사용시 47.258초, 사전형 자료로 만들고 for 문 두번 썼을 때, 0.043 초 (47초는 1분 단위로 자료처리하거나 Model 에 자료 입력시 허용 불가한 시간 임) 3. 2 GB가 넘는 자료의 pandas.DataFrame.resample 보 다는 pytables를 사용 Part 2 5. 코딩
  • 28. 참고 문서 Part 2 6. 참고
  • 29. Part 3 : 결론 ❖ 파이썬으로 기상 자료 처리시스템 개발한 사례를 보여주고 있다. ❖ Part1 과 Part2 에서 보여 줬듯이, IT 분야 뿐만 아니라 과학 분야에 서도 파이썬의 사용이 다양하고 많아져서 결과적으로 중요해졌다. ❖ 작업의 효율성을 높이기 위해 파이썬에 주목할 필요성이 있다.
  • 32. 설정 파일 (2) : 자료의 흐름 분석 - 
 CRDS (cavity ringdown spectroscopy) 예시 내부 PC 외장하드 /data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat 파일 형식 분석 CKFBDS??-$YYYY$MM$DD-$hh$mm-DataLog_User.dat 파일 전송 : SFTP (노트북) /data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat ABOS /home/specore/data/20170724/CKFBDS01-20170724-1340-DataLog_User.dat C:PicarroG2000LogArchive [year][month][day][hour] (15분 간격 자료 생산, 90일 보관) 최 초 자 료 처 리 시 스 템 에 서 설 계 한 내 용