2022年10月16日 星期日

用matplotlib畫衛星雲圖

用另外一種方式畫衛星雲圖。這方法式結合了matplotlib、pyresample和cartopy

使用viridis這個色階畫出來長這樣。

2022年10月9日 星期日

色調強化衛星雲圖

色調強化雲圖簡單的來說,就是將紅外線雲圖依照溫度填上不同的顏色。

首先,必須有一張對照表,定義個溫度區間所要使用的顏色,然後再查表,找出資料灰度值所代表的溫度,我使用的高知大學提供的向日葵8號衛星資料,附一個對照表,依照需求整理成下表。

依照表格,可以利用for迴圈把每一個格點的顏色填入。
from PIL import Image
import numpy as np
import pyresample as pr
from pycoast import ContourWriterAGG
import aggdraw
Source_def = pr.load_area('Table/Projection.proj','KoChi_1800') # 原始FDK資料的投影
Image_def = pr.load_area('Table/Projection.proj','LCC_1000')  # 輸出圖檔的投影
PGMIR1='HMW822090416IR1.pgm'
cntS = np.fromfile(PGMIR1,dtype='uint8')
dsize=1800
arraysize=dsize*dsize
cntS = cntS[-arraysize:]
cntS = cntS.reshape((dsize,dsize))
RoI = 5000 # 取樣之影響半徑
Cnt = pr.kd_tree.resample_nearest(Source_def, cntS, Image_def, radius_of_influence=RoI)

xs = Cnt.shape[0]
ys = Cnt.shape[1]
cntRGB = np.zeros((xs,ys,3),dtype=np.uint8)
for x in range(xs) :
 for y in range(ys) :
  if Cnt[y,x] > 249 : # -90. :
     cntRGB[y,x,:] = [255,255,255]
  elif Cnt[y,x] >243 : #-80. :
     cntRGB[y,x,:] = [255,70,255]
  elif Cnt[y,x] >237 : # -70. :
     cntRGB[y,x,:] = [255,0,255]
  elif Cnt[y,x] > 230 : # -60. :
     cntRGB[y,x,:] = [0,200,200]
  elif Cnt[y,x] > 211 : #< -40. :
     cntRGB[y,x,:] = [0,0,0]
  elif Cnt[y,x] > 184 : # -20. :
     cntRGB[y,x,:] = [200,155,0]
  elif Cnt[y,x] > 149 : # 0. :
     cntRGB[y,x,:] = [0,145,0]
  elif Cnt[y,x] > 105: # 20. :
     cntRGB[y,x,:] = [0,40,255]
  else :
     cntRGB[y,x,:] = [0,40,200]

Img_new = Image.fromarray(cntRGB,'RGB')
ShapePath = 'Table/gshhg-shp-2.3.7'
cw = ContourWriterAGG(ShapePath)
cw.add_coastlines(Img_new,Image_def,resolution='l',outline=(255,0,0),width=2)
ttfFile = 'Table/LiberationMono-Regular.ttf'
font = aggdraw.Font('white',ttfFile)
cw.add_grid(Img_new,Image_def,(20,20),(10,10),font,outline=(0,0,255),width=3)
Img_new.show()
Img_new.save('LCC_Enhance.png')

2022年10月2日 星期日

再為雲圖上加上海岸線和經緯度線

延續前一篇文章,使用pyresample轉換了衛星雲圖的投影。接下來要在圖上加上海岸線和經緯線。

from PIL import Image
import numpy as np
import pyresample as pr
from pycoast import ContourWriterAGG
import aggdraw
Source_def = pr.load_area('Table/Projection.proj','KoChi_1800') # 原始FDK資料的投影
Image_def = pr.load_area('Table/Projection.proj','LCC_1000')  # 輸出圖檔的投影
PGMIR1='HMW822090416IR1.pgm'
cntS = np.fromfile(PGMIR1,dtype='uint8')
dsize=1800
arraysize=dsize*dsize
cntS = cntS[-arraysize:]
cntS = cntS.reshape((dsize,dsize))
RoI = 5000 # 取樣之影響半徑
Cnt = pr.kd_tree.resample_nearest(Source_def, cntS, Image_def, radius_of_influence=RoI)
Img = Image.fromarray(Cnt,'L')
Img_new=Img.convert('RGB') #把灰階的Img轉換成RGB的Img_new

前面這些程式碼先把要輸出的圖準備好,注意,要把圖轉換成RBG的格式,否則海岸線和經緯線也會是黑白的。

2022年9月25日 星期日

衛星雲圖的投影,用pyresample

這個程式的目的是要做投影的轉換,原本高知大學提供的衛星雲圖是等經緯度的投影

等經緯度的投影轉換成其他投影,例如藍伯特投影(LCC),就需用到pyresample這套件。

2022年9月18日 星期日

使用2種衛星頻道,製作RGB合成雲圖

使用2種衛星頻道,製作RGB合成雲圖。

下載資料

從日本日本高知大學衛星資料庫下載2筆資料。 選取檔案格式為Geo-coordinate mapped data for GAME research area. N70 - S20, E70 - E160. 1/20 degree resolution. 1800 x 1800 pixels. PGM (Portable Gray Map) format with Gzip compression.的資料。

選紅外線頻道IR1及IR2的資料,就選軒蘭諾颱風。

2022年9月11日 星期日

讀取PGM檔並繪製衛星雲圖

將一筆衛星資料,畫出一筆灰階的衛星雲圖。

下載資料

從日本日本高知大學衛星資料庫下載一筆資料。 選取檔案格式為Geo-coordinate mapped data for GAME research area. N70 - S20, E70 - E160. 1/20 degree resolution. 1800 x 1800 pixels. PGM (Portable Gray Map) format with Gzip compression.的資料。

選一個紅外線頻道IR1的資料,就選上週的軒蘭諾颱風。有兩種讀寫方式,第一種是直接用PIL讀取,讀進來的格式直接就是圖形的物件。

2022年9月4日 星期日

讀一張衛星雲圖再寫出去

寫一個python程式,讀一張衛星雲圖,經過一些處理之後,產生一個新的圖檔。
這個方法適用於各種圖檔,不一定是衛星雲圖。
首先,先到中央氣象局官網下載一張衛星雲圖,正好今天有個宣嵐諾颱風,於是我選了這張黑白的紅外線衛星雲圖。

2019年2月5日 星期二

衛星的衛星叫什麼?

從小時候總是被教導,太陽就衡星,繞著太陽轉的叫行星,例如:地球及金星、木星、水星、火星、土星......。繞著行星旋轉的叫衛星,地球有一個天然的衛星叫月亮,還有一大堆的人造衛星。如果一個顆星繞著衛星旋轉,到底該怎麼稱呼它呢?這個問題一直出現在我腦海裡,不過總覺得這問題太蠢可能沒有答案,就像以前高中的時候就國小一年級的小朋友問:「星星都會取名字嗎?彗星也有名字嗎?流星呢?把恐龍打死的那顆星星叫什麼?(他的意思是說造成恐龍滅亡的那顆流星叫什麼名字)」

2018年10月30日 星期二

萬聖節要到了,我們來討論一下殭屍衛星吧!

人死後要進棺材,手機壞掉就丟垃圾桶,若是人造衛星超過使用年限不堪用了該怎麼處理呢?也把它送進墳墓安息吧!去年的10月31日在NOAA NESDIS的部落格有一篇文章討論衛星往生後的處理方式。

2017年12月1日 星期五

JPSS1正名為NOAA20

NOAA的繞極衛星系列目前還活著的有NOAA18和NOAA19,上個月18號升空的JPSS-1要正名為NOAA20,接下來的JPSS-2,JPSS-3和JPSS-4也就會成為NOAA21,22和23。真是讓人期待呢!
消息來源是JPSS的官網
https://www.nesdis.noaa.gov/JPSS-1

2017年11月12日 星期日

評論電影氣象戰中的誤會

衛星最近是一個熱門的話題,以乎也增加了大家對於人造衛星的想像及期待。福衛五號和福衛七號將取代先前的福衛二號和四號,五號已經升空了,七號計畫有變但是還是會發射。另外一個話題是來自電影氣象戰。

2017年10月4日 星期三

衛星食和陽光飛躍干擾 PART II


剛才發現氣象局官網上的說明更新了。不過我覺得似乎沒有說明到衛星雲圖發生白色區塊的原因。

2016年7月16日 星期六

105年測計學概要第四題參考解答


有人說今年的普考考了向日葵衛星的題目,真是太神奇了!以下是題目:
說明日本向日葵 8 號(Himawari-8)地球同步衛星之特色,以及其和先前的 MTSAT (Multi-functional Transport Satellite)地球同步衛星的異同之處。
雖然我沒有考普考,不過我還是想試試把答案寫出來:

2016年7月11日 星期一

全球降水觀測計畫看尼伯特

尼伯特颱風侵襲台灣之前,NASA在發表了一個影片,並且寫下一段說明文字:

The GPM core observatory satellite flew above Nepartak on July 4 at 2151 UTC (5:51 p.m. EDT). GPM identified very tall thunderstorm towers near the center of the intensifying tropical storm. These tall thunderstorms called "hot towers" were found to reach heights of 17.0 km (about 10.5 miles). Those storms were dropping rain at a rate of over 193 mm (7.6 inches) per hour. Credit: NASA/JAXA/SSAI, Hal Pierce
GPM的全名是Global Precipitation Measurement Mission,中文直譯為全球降水觀測計畫,這計畫是一個國際合作的觀測計畫,由一個核心星( GPM Core Satellite)以及其他數顆衛星共同觀測。在GPM核心衛星上有2個主要儀器,一個是由美國NASA負責的GPM微波輻射計(GPM Microwave Imager, 簡稱GMI ),另一個是由日本JAXA所負責的雙頻降雨雷達(Dual-Frequency Precipitation Radar,簡稱DPR)。前面的動畫即是是來自GPM衛星的DPR的觀測所做成的立體影像。

2016年3月28日 星期一

新世代地球同步衛星——卷雲頻道(續)

這是MODIS Airbone Simulation(MAS)的圖,中間的這張是1.88 μm(它的特性跟1.37μm十分相似,因此使用MODIS 1.88 μm的資料來說明),很明顯看到兩條捲雲帶,在可見光(左圖)和紅外線(右圖)都不明顯

  與一般近紅外頻道不同,捲雲頻道的特性是在地表面為雪、草和沙塵,反照率大約都相同。通常,近紅外頻道的反照率35%和50%之間,當捲雲覆蓋在雪地或乾燥的大氣環境時會很難分辨。但是捲雲頻道沒有這樣的困難,因為它會受到水汽吸的影響。

2016年3月14日 星期一

新世代地球同步衛星——卷雲頻道

比較VIIRS 0.672μm(左圖,波長為紅光頻道)及1.378μm(右圖,捲雲頻道)的差別。沙塵(dust)在1.378μm較明顯。

  波長1.37μm為“捲雲”頻道,屬於近紅外波段,能夠在白天檢測非常薄的卷雲(由於捲雲透光,不容易被可見光頻道觀測到,而地表的長波輻射也能夠穿透捲雲,衛星觀測到的亮度溫度亦會較高而誤判其高度)而得到這稱號。

2016年2月29日 星期一

新世代地球同步衛星——植被頻道(續)

NPP的VIIRS M7頻道(0.865μm)的觀測資料。分別是加州林林大火發生前後的影像(左圖August 13, 2013,右圖August 30, 2013)。
從上一篇文章可以知道0.86 μm能夠清楚的分別地面和海面,但還有另一個延伸出來的功能,可能定義火災和洪水的潛勢(determining fir and flood potential)。 文件上的文字如此說:
For example, following significant fire damage, water is more likely to run off, and less likely to be absorbed into the soil surface, hence decreasing the amount of rain needed to produce flooding, dangerous landslides and debris flows.
若是照字面上直譯:
例如,顯著火災損壞之後,水更容易容易產生涇流,並且更不容易被吸收到土壤表面,因此減少了產生洪水、危險的山體滑坡和泥石流災害需要的雨量。
以上的內容來自GOES-R的文件GOES-R ABI Fact Sheet Band 3 (The “vegetation" near-infrared band) The “need to know” Advanced Baseline Imager reference guide for the NWS forecaster

2016年2月22日 星期一

新世代地球同步衛星——植被頻道

AHI 0.86μm在2015年01月25日的影像,不但可以看到雲,還有地形。圖中很明顯的可以分辦出日本的九州和四國兩個大島。

  0.86 μm波長比紅光(0.6μm)的波長稍長,屬於近紅外線頻道(Near-infrared band),但是特性跟可見光頻道一樣,只能夠在白天提供反照率的資料,晚上沒有作用。功能與可見光頻道相同,看雲、看霧、看空氣中的氣溶膠。另外它可以用來計算植被指數(NDVI)可以辦識綠地,植物茂密的地方會顯得特別明亮。因此它的別名是蔬菜植被頻道(veggie band)(註)。

  以上的內容來自GOES-R的文件GOES-R ABI Fact Sheet Band 3 (The “vegetation" near-infrared band) The “need to know” Advanced Baseline Imager reference guide for the NWS forecaster



註:上個世紀的英漢字典(新世紀英漢詞典,遠東出版,1998年6月出版)並沒有veggie這個單字,而網路上的說明是這字與vegetarian同義,名詞:蔬菜、素食主義、素食主義者,但是將veggie band稱為素食頻道蔬菜頻道當然是玩笑,"植被"頻道才是正經的說法。

2016年2月15日 星期一

即時提供向日葵衛星影像的網站

中央氣象局網頁上之向日葵衛星雲圖
目前在網路上可以看到AHI影像的地方大約有以下幾個:

用matplotlib畫衛星雲圖

用另外一種方式畫衛星雲圖。這方法式結合了matplotlib、pyresample和cartopy 使用viridis這個色階畫出來長這樣。