FOSS4G korea 2017 발표자료
Himawari-8, VIIRS, MetopA/B, GOES, Sentinel, Aqua등의 기상위성(Weather satellite) 데이터를 처리하기 위한 Python 기반의 Pytroll pakages를 소개하고 활용법에 대해서 이야기 한다.
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
기상위성 자료처리를 위한 Python 기반의 Pytroll 활용하기
1. 기상위성 자료 처리를 위한
Python 기반의 Pytroll 활용하기
가이아쓰리디㈜ | 박진우 (swat018@gmail.com)
2017. 08. 31
2. Park, Jin woo
• Foss4g korea 2013, 스마트폰 기반의 TS 측량 지원시스템 개발
• Foss4g korea 2014, 무인항공기(UAV)를 이용한 모니터링을 위한 통신모듈 시스템 설계 및 개발
• Foss4g 2015 seoul, Development of Opensource-based Photogrammetric UAV System Using Smart Camera
• Foss4g korea 2016, Smart Camera UAV를 이용한 오픈소스 기반의 자동 촬영 및 UAV image 처리 시스템 개발
• Foss4g korea 2017, 기상위성 자료 처리를 위한 Python 기반의 Pytroll 활용하기
4. 기상 위성
▣ GEO (Geostationnary orbit : 35786km)
- COMS / MI
- Himawari-8 / AHI
- GK-2A / AMI
5. 기상 위성
▣ LEO (Sunsynchronous orbit : 약 833km)
- S-NPP / VIIRS
- MetopA,B / IASI
- Aqua / AIRS
6. 기상위성 자료처리
기상위성 자료 처리를 쉽게 할 수 없을까??
1. 많은 위성 이름과 센서
- COMS / MI
- Himawari-8 / AHI
- GK-2A / AMI
- S-NPP / VIIRS
- MetopA,B / IASI
- Aqua / AIRS
…
2. 정말 다양한 포맷들…
- RIT/LRIT
- HDF5 & NetCDF - NWCSAF
- HDF4 - MODIS L1B
- HDF5 - VIIRS (SDR, Compact, L1B)
- HDF5 - FY3
- AAPP
- NOAA GAC
- Metop PDF
- SAR
- NetCDF/CF
- GeoTIFF
- NinjoTIFF
- PNG, JPeG
…
3. 영상처리, 익숙치 않은 용어들
- RGB 합성
- GSICS
- 복사보정
- 기하보정
- VIS 채널
- IR 채널
- Calibration
- IOT …
4. 알고리즘을 만들어서 바로 볼 수 없을까?
- Fortran
- R
- IDL
- Python
7. 기상위성 자료처리
GEO DN
GEO Tb [K]
GEO rad. [WN] LEO rad. [WN]
LEO Tb [K]
LEO rad. [WL]
Current GSICS Correction
GEO rad. [WL]
IASI, AIRS, Cris
Meteosat?
[mW m-2 sr-1(cm-1)-1]
Himawari, GO
ES-R?,
MODIS, VIIRS
A)
C)
8. Pytroll
• Pytroll은 파이썬 기반의 기상위성데이터를 읽고, 처리하고, 쓰는 작업 등의 전반적인 프로세싱을 지원.
• mpop, satpy 라이브러리를 이용하여 VIIRS data을 읽을 수 있다.
• Pyresample : 위성자료의 resample, reprojection을 지원.
• Pyspectral : Planck radiation, spectral bands, solar irradiance and reflectance 등의 처리를 지원.
10. Mpop/Satpy
- High level processing for satellite data
- Indexing by name or wavelength
- Many built-in composites
- Easy to extend and customize
- Both GEO and LEO
17. Mpop/Satpy
Satpy example
# Automatically load composites and
their dependencies
>>> scn.load(["true_color"])
# Resample multi-band data to a uniform
grid
>>> rs_scn = scn.resample("euron1")
# Save RGB geotiff
>>> rs_scn.save_dataset(“true_color”)
18. Mpop/Satpy
Satellite data formats
HRIT/LRIT
HDF5 & NetCDF - NWCSAF
HDF4 - MODIS L1B
HDF5 - VIIRS (SDR, Compact, L1B)
HDF5 - FY3
AAPP
NOAA GAC
Metop PDF
SAR
…
Output data formats
NetCDF/CF
GeoTIFF
NinjoTIFF
PNG, Jpeg
21. Pyorbital
computing satellite orbital parameters and reading TLE’s
>>> from pyorbital.orbital import Orbital
>>> from datetime import datetime
>>> orb = Orbital("noaa 18")
>>> now = datetime.utcnow()
# Get normalized position of the satellite:
>>> orb.get_position(now)
([0.57529384846822862, 0.77384005228105424, 0.59301408257897559],
[0.031846489698768146, 0.021287993461926374, -0.05854106186659274])
# Get longitude, latitude and altitude of the satellite:
>>> orb.get_lonlatalt(now)
(-1.1625895579622014, 0.55402132517640568, 847.89381184656702)
28. Pyspectral
Use MPOP to load SEVIRI data
Use Pyorbital to get sun zenith angles at SEVIRI pixels
code
>>> r39 = refl39.reflectance_from_tbs(sunz, ch39.data, ch11.data,
lookuptable='/tmp/seviri_37_tb2rad_lut.npz')
MPOP, Pyorbital and Pyspectral
36. Pytroll
- 현재 지원하고 있는 기상 위성
•Meteosat series (tested with 7, 8, 9, 10)
•GOES series, in HRIT/LRIT format (tested with 11, 12, 13, 15)
•MTSAT series, in HRIT/LRIT format (tested with 1R, 2)
•Himawari 8, in HRIT/LRIT format
•Himawari 8, standard format (satpy only)
•Electro L, in HRIT/LRIT format (tested with N1)
•NOAA series, in AAPP, GAC and LAC format (tested with 15, 16, 17,
18, 19)
•Metop-A/B, in EPS 1a and 1b format
•Aqua and Terra, in hdf-eos format
•Suomi NPP, in SDR hdf5 format
•TerraSAR-X
•Radarsat-2 SAR
•COSMO-SkyMed SAR
•Sentinel-1 SAR
•Sentinel-2 MSI
•FY-3 viir