如何用NCL處理風雲4A/MODIS衛星數據?

2021-02-24 氣象學家

 歡迎訂閱微信公眾號:『氣象學家』

閱讀建議

讀取和處理了兩種FY-4A和MODIS衛星數據,進行相關產品的繪圖,插值為不同解析度經緯度格點數據並保存為nc格式文件。拋磚引玉,不做更深入的分析,有任何錯誤歡迎大家批評指正。後文附數據腳本獲取方式。

內容目錄

00.前言介紹

01.中國區域FY4_AGRI_L2 OLR原始數據Lambert投影繪圖和腳本

02.中國區域FY4_AGRI_L2 OLR原始數據經緯度網格投影繪圖和腳本

03.中國區域FY4_AGRI_L2 OLR插值數據經緯度網格投影繪圖和腳本

04.東亞區域MOD06_L2 Cloud_Top_Temperature原始數據繪圖和腳本

05.東亞區域MOD06_L2 Cloud_Top_Temperature插值數據繪圖和腳本

06.數據和腳本獲取

07.參考

00.前言介紹

工具:NCL、相關地圖底圖包
配料:風雲4A數據FY4_AGRI_L2 OLR產品、MOD06_L2產品
方法:ESMF_regrid等
成品:中國/東亞區域圖、經緯度格點數據(e.g. ,  0.1°*0.1°)

01.中國區域FY4_AGRI_L2 OLR原始數據Lambert投影繪圖和腳本

FY4A_read_plot_latlon2d_Lambert.ncl


02.中國區域FY4_AGRI_L2 OLR原始數據經緯度網格投影繪圖和腳本

; =============================================================================; Author: Gavin | Affiliation: NJU
; Email : Zhpfu.atm@gmail.com
; Last modified:    2018-06-18 01:15
; Filename:        FY4A_read_plot_latlon2d_to_rectilinear_grid.ncl
; Description: Read FY4A full disc data; 
;              Take OLR for example; 
;              Mapping to specific area;
;              Plotting China area with China
;              Choosing different Map Projections; 
; To Be Determined(TBD):  
;              問題:需要局部微調,經緯度刻度最好四周都有;投影方式暫時只有圓柱等距投影
;                   Cylindrical Equidistant Projection;
; =============================================================================

; =============================================================================
; Given a start time and a title, this procedure calls get_cpu_time()
; to get the end_time, then prints "elapsed time" information.
; =============================================================================
procedure print_elapsed_time(start_time,title)
local end_time
begin

  end_time = get_cpu_time()
  print("======================================================================")
  print(title + " elapsed time = " + (end_time-start_time) + " CPU seconds.")
  print("======================================================================")
end

; =============================================================================
; ===================================MAIN======================================
; =============================================================================
  start_time = get_cpu_time()

  fpath = "/Users/zhpfu/Downloads/DATA_MAC/00_FY_satellite/"
  fname = "FY4A-_AGRI--_N_DISK_1047E_L2-_OLR-_MULT_NOM_20180104000000_20180104001459_4000M_V0001.NC"
  f1    = addfile(fpath+fname,"r")
  geohdf= "FY4A_OBI_4000M_NOM_LATLON.HDF"
  f2    = addfile(fpath+geohdf,"r")

  lon2d = f2->Lon(:,:)
  lat2d = f2->Lat(:,:)

; Set default value  
; 65534 is the area out of Earth   
  lon2d@_FillValue = 65534
  lat2d@_FillValue = 65534

  if (any(ismissing(ndtooned(lon2d)))) then
    print("Missing longitude coordinates detected")
  end if 

  if (any(ismissing(ndtooned(lat2d)))) then
    print("Missing latitude coordinates detected")
  end if

; Set the specific area to plot
  minlat   =   15.
  maxlat   =   55.
  minlon   =   72.
  maxlon   =   136.

  olr      =short2flt(f1->OLR)
  olr@_FillValue = 32766

; Add the attributes
  lat2d@units  = "degrees_north"
  lon2d@units  = "degrees_east"
  olr@lat2d    = lat2d
  olr@lon2d    = lon2d
  olr@units    = "W/M2"
  olr@coordinates = "lat2d lon2d"

; =============================================================================
; ================================plot=========================================
; =============================================================================

  wks_type          = "png"
  wks_type@wkWidth  =  1200
  wks_type@wkHeight =  1200

  wks = gsn_open_wks(wks_type,"FY4A_OLR_plot_China")              ; send graphics to PNG file
  gsn_define_colormap(wks, "NCV_jet")  ;MPL_jet

  ; colors = (/ (/1,1,1/),\
  ;             (/0,0,0/),\
  ;             (/1,1,1/),\
  ;             (/0.647,0.953,0.553/),\
  ;             (/0.239,0.725,0.247/), \
  ;             (/0.388,0.722,0.976/), \
  ;             (/0,0,0.996/),\
  ;             (/0.953,0.020,0.933/),\
  ;             (/0.506,0,0.251/)/)

  ; gsn_define_colormap(wks,colors)     


  res                      = True               ; plot mods desired
  res@gsnMaximize          = True               ; maximize plot in frame
  res@gsnDraw              = False
  res@gsnFrame             = False
  res@gsnSpreadColors      = True              ; Use full color map 

  res@sfXArray             = lon2d
  res@sfYArray             = lat2d


  res@cnFillOn             = True               ; color fill 
  res@cnFillMode           = "RasterFill"       ; Raster mode is much faster
  res@cnRasterSmoothingOn  = True
  ; res@cnFillPalette        = "gui_default"
  res@cnLinesOn            = False              ; and uses less memory.
  res@cnLineLabelsOn       = False
  res@trGridType           = "TriangularMesh"   ; Caution!!! can not ignore!

; =============================================================================
; set for map
  res@mpLimitMode                = "LatLon"
  res@mpMinLatF                  = minlat
  res@mpMaxLatF                  = maxlat
  res@mpMinLonF                  = minlon
  res@mpMaxLonF                  = maxlon

  res@mpFillOn                   = True
  res@mpDataSetName              = "/Users/zhpfu/Downloads/DATA_MAC/FY_satellite/FY4A/NCL-Chinamap/database/Earth..4"
  res@mpDataBaseVersion          = "MediumRes" ; or "Ncarg4_1"
  res@mpAreaMaskingOn            = True
  res@mpMaskAreaSpecifiers       = (/"China"/)
  res@mpOutlineSpecifiers        = (/"China","China:Provinces"/)


  res@mpLandFillColor            = "white"
  res@mpInlandWaterFillColor     = "white"
  res@mpOceanFillColor           = "white"
  res@mpFillBoundarySets         = "NoBoundaries"
  res@mpOutlineBoundarySets      = "NoBoundaries"
  res@mpNationalLineColor        = "black"
  res@mpProvincialLineColor      = "black"
  res@mpGeophysicalLineColor     = "black"
  res@mpNationalLineThicknessF   = 2
  res@mpProvincialLineThicknessF = 1

; =============================================================================
; set for the plot

  res@cnFillDrawOrder      = "PreDraw"
  res@cnLevelSelectionMode = "ManualLevels"     ; set manual contour levels
  res@cnMinLevelValF       = 100;min(olr)           ; set min contour level
  res@cnMaxLevelValF       = 300;max(olr)           ; set max contour level
  res@cnLevelSpacingF      = 5.0               ; set contour spacing

  res@gsnAddCyclic         = False 

  ; res@tmXTOn               = True
  ; res@tmYROn               = True

  res@lbOrientation        = "Horizontal"         ; vertical labelbar
  res@pmTickMarkDisplayMode= "Always"
  ; res@pmLabelBarOrthogonalPosF  = 0.00          ; Move labelbar up
  ; res@pmLabelBarParallelPosF    = 0.00          ; Move labelbar Right
  res@pmLabelBarWidthF     = 0.65
  res@pmLabelBarHeightF    = 0.08
  res@lbLabelFontHeightF   = 0.018
  res@lbPerimOn            = False

  res@lbLabelAutoStride    = True               ; Clean up labelbar labels.
  res@lbBoxLinesOn         = False              ; No labelbar box lines. 
  res@lbLabelFontHeightF   = 0.01               ; make labels smaller ( default=0.02 )
  res@lbBoxEndCapStyle     = "TriangleBothEnds" ; set the two-end triangle 
  res@tiXAxisString        = ""
  res@tiYAxisString        = "" 
  res@gsnStringFontHeightF = 0.012
  res@gsnLeftString        = "OLR"
  res@gsnRightString       = "W/m~S~2~E~";"W/m2"

  plot = gsn_csm_contour_map(wks,olr,res) ; create plot

; =============================================================================
; add South China Sea  
  nhres                          = res
  nhres@gsnMaximize              = False
  nhres@vpHeightF                = 0.18    
  nhres@vpWidthF                 = 0.18

  nhres@mpMinLatF                =   2    
  nhres@mpMaxLatF                =  23
  nhres@mpMinLonF                = 105
  nhres@mpMaxLonF                = 123
  nhres@lbLabelBarOn             = False
  nhres@tmXBOn                   = False 
  nhres@tmXTOn                   = False
  nhres@tmYLOn                   = False
  nhres@tmYROn                   = False
  nhres@gsnLeftString            = ""
  nhres@gsnRightString           = ""
  map_nanhai = gsn_csm_contour_map(wks,olr,nhres)
  adres                          = True
  adres@amParallelPosF           = 0.499 ; -0.5 is the left edge of the plot.
  adres@amOrthogonalPosF         = 0.50  ; -0.5 is the top edge of the plot.
  adres@amJust                   = "BottomRight"
  plotnh = gsn_add_annotation(plot,map_nanhai,adres)
; add Changjiang and Huanghe river  
  river                          = True
  river@gsLineThicknessF         = 3.0       
  river@gsLineColor              = "blue"
  plotrv = gsn_add_shapefile_polylines(wks,plot,"/Users/zhpfu/Downloads/DATA_MAC/00_FY_satellite/FY4A/NCL-Chinamap/cnmap_NetCDF/river.nc",river)
  draw(plot)
  frame(wks)

  print_elapsed_time(start_time,"Plotting Over >>>>>>>")

03.中國區域FY4_AGRI_L2 OLR插值數據經緯度網格投影繪圖和腳本

FY4A_read_plot_latlon2d_to_rectilinear_grid.ncl

04.東亞區域MOD06_L2 Cloud_Top_Temperature原始數據繪圖和腳本

MODIS_Full_Area_read_plot_latlon2d_to_rectilinear_grid.ncl

05.東亞區域MOD06_L2 Cloud_Top_Temperature插值數據繪圖和腳本

; =============================================================================
; Author: Gavin | Affiliation: NJU
; Email : Zhpfu.atm@gmail.com
; Last modified:    2019-07-19 01:15
; Filename:        MODIS_Full_Area_regrid_latlon2d_to_rectilinear_grid.ncl
; Description: Transform xy kilometer to lat lon grid;
;              Output data with NetCDF; 
; To Be Determined(TBD):  
;               
; =============================================================================
procedure print_elapsed_time(start_time,title)
local end_time
begin

  end_time = get_cpu_time()
  print("======================================================================")
  print(title + " elapsed time = " + (end_time-start_time) + " CPU seconds.")
  print("======================================================================")
end

; =============================================================================
; ===================================MAIN======================================
; =============================================================================
load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl"

  start_time = get_cpu_time()

  fpath = "/Users/zhpfu/Downloads/DATA_MAC/MODIS/Full_Area/"
  fname = "MOD06_L2.A2016095.0340.061.2017326010830.hdf"

  f1    = addfile(fpath+fname,"r")

  lon2d = f1->Longitude(:,:)
  lat2d = f1->Latitude(:,:)

; Set default value  
; 65534 is the area out of Earth   
  lon2d@_FillValue = -999.9
  lat2d@_FillValue = -999.9

  if (any(ismissing(ndtooned(lon2d)))) then
    print("Missing longitude coordinates detected")
  end if 

  if (any(ismissing(ndtooned(lat2d)))) then
    print("Missing latitude coordinates detected")
  end if

; Set the specific area to plot
  minlat   =   15
  maxlat   =   75
  minlon   =   72
  maxlon   =   145

; Read  cloud temperature.
  wv1s = f1->Cloud_Top_Temperature


; Apply scale and offset and convert to double.
  CTT0 =  wv1s@scale_factor*1.d * (wv1s - wv1s@add_offset)
  CTT0@_FillValue = -32768

; Add the attributes
  lat2d@units  = "degrees_north"
  lon2d@units  = "degrees_east"
  CTT0@lat2d    = lat2d
  CTT0@lon2d    = lon2d
  CTT0@units    = "K"
  CTT0@coordinates = "lat2d lon2d"

  print("++++++++++++++++AAAAA++++++++++++++++++")

; Options to set for regridding
  interp_method = "bilinear"  ; Interpolation method: "bilinear" (default), "patch", or "conserve"

  Opt = True
  Opt@WgtFileName      = "XY_to_rect.nc"

  Opt@SrcGridLat       = lat2d
  Opt@SrcGridLon       = lon2d

  Opt@SrcRegional      = True    ; the default
  Opt@SrcInputFileName = fpath+fname  
  Opt@DstRegional      = True
  Opt@SrcMask2D        = where(.not.ismissing(CTT0),1,0) ; Necessary if has
                                                          ; missing values.
  Opt@InterpMethod     = interp_method

  Opt@DstGridType      = "0.05deg"        ; destination grid
  Opt@DstTitle         = "China Grid 0.05 degree resolution"
  Opt@DstLLCorner      = (/minlat, minlon/)      ;;--Change (maybe)
  Opt@DstURCorner      = (/maxlat, maxlon/)      ;;--Change (maybe)

  print("++++++++++++++++BBBBB++++++++++++++++++")

  Opt@ForceOverwrite   = True
  Opt@CopyVarCoords    = True
  Opt@Debug            = True


  CTT = ESMF_regrid(CTT0,Opt)
  printVarSummary(CTT)
  print("++++++++++++++++CCCCC++++++++++++++++++")



; ;---Interpolate to a 0.05x0.05 grid
;    Opt                = True
;    Opt@ForceOverwrite = True
;    Opt@Debug          = True

;    Opt@DstGridType = "0.05deg"
;    Opt@WgtFileName = wgt_filename
;    Opt@SrcMask2D   = where(.not.ismissing(CTT),1,0)
;    CTT      = ESMF_regrid (CTT, opt)
;    end if

;    l3m_regrid@long_name  =  CTT@long_name + " (0.05x0.05)"



  print("++++++++++++++++DDDDD++++++++++++++++++")
; =============================================================================
; Use the rcm2rgrid_Wrap to regridding
   lat        = new(1201 , "float",lat2d@_FillValue)
   lon        = new(1461, "float",lon2d@_FillValue)

   lat        = ispan(minlat*100,maxlat*100,5)*0.01
   lon        = ispan(minlon*100,maxlon*100,5)*0.01
   lat@_FillValue = -999.9
   lon@_FillValue = -999.9
; =============================================================================

  lat@units  = "degrees_north"     ;don't forget to assign the LatLon attributes
  lon@units  = "degrees_east"
  lat!0      = "lat"
  lat&lat    = lat
  lon!0      = "lon"
  lon&lon    = lon 

  CTT!0      = "lat"
  CTT&lat    = lat
  CTT!1      = "lon"
  CTT&lon    = lon
  CTT@units  = "K"
  CTT@coordinates = "latlon"

  printVarSummary(CTT)

  print("Get subregional data!")
;===================================================================  
; Assume variables T, PS and ORO exist and that they have 
; associated meta data: (a) coordinate variables time, lev, lat, lon       
; and (b) attributes
;===================================================================                                            
  nlat  = dimsizes(lat)  
  nlon  = dimsizes(lon)      

  filo  = "CTT_China.nc"             ; Output file
  system("/bin/rm -f " + fpath + filo)    ; remove if exists
  fout  = addfile (fpath + filo, "c")  ; open output file

;===================================================================
; explicitly declare file definition mode. Improve efficiency.
;===================================================================
  setfileoption(fout,"DefineMode",True)

;===================================================================
; create global attributes of the file
;===================================================================
  fAtt               = True            ; assign file attributes
  fAtt@title         = "NCL Efficient Approach to netCDF Creation"  
  fAtt@source_file   = ""
  fAtt@Conventions   = "None"   
  fAtt@creation_date = systemfunc ("date")        
  fileattdef( fout, fAtt )            ; copy file attributes    

;===================================================================
; predefine the coordinate variables and their dimensionality
; Note: to get an UNLIMITED record dimension, we set the dimensionality
; to -1 (or the actual size) and set the dimension name to True.
;===================================================================
  dimNames = (/"lat", "lon"/)  
  dimSizes = (/nlat,  nlon/) 
  dimUnlim = (/False, False/)   
  filedimdef(fout,dimNames,dimSizes,dimUnlim)

;===================================================================
; predefine the the dimensionality of the variables to be written out
;===================================================================
; Here we are using NCL functions to facilitate defining 
; each variable's dimension name(s) and type. 
; The following could be replaced with explicit, user defined dimension 
; names different from those associated with the variable in memory. 
; Say, PS(time,lat,lon) in the NCL script. They could be redefined for the file via: 
; filevardef(fout, "PS"   ,typeof(PS) ,(/"TIME","latitude","longitude"/)) 
;===================================================================                          
  filevardef(fout, "lat"    ,typeof(lat)  ,getvardims(lat))                          
  filevardef(fout, "lon"    ,typeof(lon)  ,getvardims(lon))                          
  filevardef(fout, "CTT"    ,typeof(CTT)  ,getvardims(CTT)) 

;===================================================================
; Copy attributes associated with each variable to the file
; All attributes associated with each variable will be copied.
;====================================================================
  filevarattdef(fout,"lat"  ,lat)                     ; copy lat attributes
  filevarattdef(fout,"lon"  ,lon)                     ; copy lon attributes
  filevarattdef(fout,"CTT"  ,CTT)                     ; copy CTT attributes
;===================================================================
; explicitly exit file definition mode. **NOT REQUIRED**
;===================================================================
  setfileoption(fout,"DefineMode",False)

;===================================================================
; output only the data values since the dimensionality and such have
; been predefined. The "(/", "/)" syntax tells NCL to only output the
; data values to the predefined locations on the file.
;====================================================================
  fout->lat    = (/lat/)
  fout->lon    = (/lon/) 
  fout->CTT    = (/CTT/)




; =============================================================================
; ================================plot=========================================
; =============================================================================

  wks_type          = "png"
  wks_type@wkWidth  =  2400
  wks_type@wkHeight =  2400

  wks = gsn_open_wks(wks_type,"MODIS_CTT_regrid_plot_China")              ; send graphics to PNG file
  gsn_define_colormap(wks, "NCV_jet")  ;MPL_jet

  ; colors = (/ (/1,1,1/),\
  ;             (/0,0,0/),\
  ;             (/1,1,1/),\
  ;             (/0.647,0.953,0.553/),\
  ;             (/0.239,0.725,0.247/), \
  ;             (/0.388,0.722,0.976/), \
  ;             (/0,0,0.996/),\
  ;             (/0.953,0.020,0.933/),\
  ;             (/0.506,0,0.251/)/)

  ; gsn_define_colormap(wks,colors)     


  res                      = True               ; plot mods desired
  res@gsnMaximize          = True               ; maximize plot in frame
  res@gsnDraw              = False
  res@gsnFrame             = False
  res@gsnSpreadColors      = True              ; Use full color map 

  ; res@sfXArray             = lon2d
  ; res@sfYArray             = lat2d


  res@cnFillOn             = True               ; color fill 
  res@cnFillMode           = "RasterFill"       ; Raster mode is much faster
  ; res@cnRasterSmoothingOn  = True
  ; res@cnFillPalette        = "gui_default"
  res@cnLinesOn            = False              ; and uses less memory.
  res@cnLineLabelsOn       = False
  ; res@trGridType           = "TriangularMesh"   ; Caution!!! can not ignore!

; =============================================================================
; set for map
  res@mpLimitMode                = "LatLon"
  res@mpMinLatF                  = minlat
  res@mpMaxLatF                  = maxlat
  res@mpMinLonF                  = minlon
  res@mpMaxLonF                  = maxlon

  res@mpFillOn                   = True
  res@mpDataSetName              = "/Users/zhpfu/Downloads/DATA_MAC/FY_satellite/FY4A/NCL-Chinamap/database/Earth..4"
  res@mpDataBaseVersion          = "MediumRes" ; or "Ncarg4_1"
  res@mpAreaMaskingOn            = True
  res@mpMaskAreaSpecifiers       = (/"China","Japan", "North Korea","South Korea", "Russia"/)
  res@mpOutlineSpecifiers        = (/"China","China:Provinces"/)


  res@mpLandFillColor            = "white"
  res@mpInlandWaterFillColor     = "white"
  res@mpOceanFillColor           = "white"
  res@mpFillBoundarySets         = "NoBoundaries"
  res@mpOutlineBoundarySets      = "NoBoundaries"
  res@mpNationalLineColor        = "black"
  res@mpProvincialLineColor      = "black"
  res@mpGeophysicalLineColor     = "black"
  res@mpNationalLineThicknessF   = 2
  res@mpProvincialLineThicknessF = 1

; =============================================================================
; set for the plot

  res@cnFillDrawOrder      = "PreDraw"
  res@cnLevelSelectionMode = "ManualLevels"     ; set manual contour levels
  res@cnMinLevelValF       = 180;min(CTT)           ; set min contour level
  res@cnMaxLevelValF       = 280;max(CTT)           ; set max contour level
  res@cnLevelSpacingF      = 10.0               ; set contour spacing

  res@gsnAddCyclic         = False 

  ; res@tmXTOn               = True
  ; res@tmYROn               = True

  res@lbOrientation        = "Horizontal"         ; vertical labelbar
  res@pmTickMarkDisplayMode= "Always"
  ; res@pmLabelBarOrthogonalPosF  = 0.00          ; Move labelbar up
  ; res@pmLabelBarParallelPosF    = 0.00          ; Move labelbar Right
  res@pmLabelBarWidthF     = 0.65
  res@pmLabelBarHeightF    = 0.08
  res@lbLabelFontHeightF   = 0.018
  res@lbPerimOn            = False

  res@lbLabelAutoStride    = True               ; Clean up labelbar labels.
  res@lbBoxLinesOn         = False              ; No labelbar box lines. 
  res@lbLabelFontHeightF   = 0.01               ; make labels smaller ( default=0.02 )
  res@lbBoxEndCapStyle     = "TriangleBothEnds" ; set the two-end triangle 
  res@tiXAxisString        = ""
  res@tiYAxisString        = "" 
  res@gsnStringFontHeightF = 0.012
  res@gsnLeftString        = "Cloud_Top_Temperature"
  res@gsnRightString       = "K";"W/m2"

  plot = gsn_csm_contour_map(wks,CTT,res) ; create plot

; =============================================================================
; add South China Sea  
  nhres                          = res
  nhres@gsnMaximize              = False
  nhres@vpHeightF                = 0.18    
  nhres@vpWidthF                 = 0.18

  nhres@mpMinLatF                =   2    
  nhres@mpMaxLatF                =  23
  nhres@mpMinLonF                = 105
  nhres@mpMaxLonF                = 123
  nhres@lbLabelBarOn             = False
  nhres@tmXBOn                   = False 
  nhres@tmXTOn                   = False
  nhres@tmYLOn                   = False
  nhres@tmYROn                   = False
  nhres@gsnLeftString            = ""
  nhres@gsnRightString           = ""
  map_nanhai = gsn_csm_contour_map(wks,CTT,nhres)
  adres                          = True
  adres@amParallelPosF           = 0.499 ; -0.5 is the left edge of the plot.
  adres@amOrthogonalPosF         = 0.50  ; -0.5 is the top edge of the plot.
  adres@amJust                   = "BottomRight"
  plotnh = gsn_add_annotation(plot,map_nanhai,adres)
; add Changjiang and Huanghe river  
  river                          = True
  river@gsLineThicknessF         = 3.0       
  river@gsLineColor              = "blue"
  plotrv = gsn_add_shapefile_polylines(wks,plot,"/Users/zhpfu/Downloads/DATA_MAC/FY_satellite/FY4A/NCL-Chinamap/cnmap_NetCDF/river.nc",river)
  draw(plot)
  frame(wks)

  print_elapsed_time(start_time,"Game Over >>>>>>>")

插值為0.05°x0.05°格點

06.數據和腳本獲取

由於篇幅限制,所有的腳本、測試數據、樣圖,大小約160MB+,公眾號後臺回復關鍵詞獲取:「fy4a」

07.參考

1.https://www.ncl.ucar.edu/
2.https://coding.net/u/huangynj/p/NCL-Chinamap/git

3.http://climate2weather.cc

另,中國區域地圖部分,為了表示對貢獻者勞動成果的尊重,若使用該地圖數據繪圖發表論文等,可考慮添加致謝!

中文致謝:感謝中國科學院大氣物理研究所黃永傑博士提供的包含正確中國國界和行政區劃的地圖數據

英文致謝:Thank Dr. Yongjie Huang (IAP/CAS) for providing map database (https:

Yong-Jie Huang (IAP/CAS) huangynj@gmail.com

歷史文章推薦(點擊閱讀)

Julia語言在氣候系統模式中的應用

Julia程式語言助力天氣/氣候模式

GRIB格式數據處理

使用Python處理NetCDF格式文件

Nature(2019)-地球系統科學領域的深度學習及其理解

都卜勒雷達反演風場工具-PyDDA| SciPy 2019

並行下載最新ERA-5數據的Python腳本

利用PyCINRAD處理、顯示天氣雷達基數據

Python中如何使用NCL的全部色表Colormaps?

GMT5(The General Mapping Tools)初探の安裝、配置、運行

任何問題都歡迎交流探討,共同學習進步!

點個試試! ↓❤↓۞↓➹↓♨↓۞↓

相關焦點

  • 聽風雲衛星數據再定標的報告
    1 當前FY-3 MERSI和FY-4 AGRI的反射率波段的輻射定標精度如何,再定標預期精度達到多少?2 FY-4 AGRI 藍光波段的條帶處理問題。回答見最後。在軌定標系統:國際上:反射率波段2%,紅外波段0.2K,穩定性小於1%風雲數據:反射率波段7%-10%,紅外波段1-1.5K,穩定性未知(穩定性很差)。
  • 風雲四號衛星如何獲取高光譜大氣探測數據
    來源:國家衛星氣象中心  幹涉式大氣垂直探測儀是國際上第一臺在靜止軌道上以紅外高光譜幹涉分光方式探測大氣垂直結構的精密遙感儀器。通過該探測儀,我們成功獲取了全球首幅靜止軌道地球大氣高光譜圖。作為第一次露出真容的大氣高光譜圖,應該如何解讀圖像和展開數據應用呢?這非常值得探析。
  • 揭秘風雲四號衛星如何獲取高光譜大氣探測數據
    來源:國家衛星氣象中心  幹涉式大氣垂直探測儀是國際上第一臺在靜止軌道上以紅外高光譜幹涉分光方式探測大氣垂直結構的精密遙感儀器。通過該探測儀,我們成功獲取了全球首幅靜止軌道地球大氣高光譜圖。作為第一次露出真容的大氣高光譜圖,應該如何解讀圖像和展開數據應用呢?這非常值得探析。  探什麼?
  • 風雲四號氣象衛星與海洋衛星實現產品數據融合
    央視新聞6月30日消息,據自然資源部國家衛星海洋應用中心消息,近日,由該中心承擔的「中國氣象局風雲四號衛星用戶利用站建站」任務在廣州順利完成,並進行了衛星數據現場接收測試。
  • 歐洲天氣預報使用我國「風雲」衛星數據
    記者從中國氣象局了解到,今年9月以來,歐洲中期天氣預報中心開始在其業務預報模式中使用我國「風雲三號」B星微波溼度計資料,這標誌著我國氣象衛星的輻射測量精度和觀測穩定性獲得國際用戶的認可。未來,「風雲」系列衛星將有可能和歐洲、美國的氣象衛星一起,在氣象衛星數據提供方面發揮主導作用。
  • 海洋衛星與風雲四號氣象衛星實現產品數據融合
    本報訊 據自然資源部國家衛星海洋應用中心消息,近日,由該中心承擔的「中國氣象局風雲四號衛星用戶利用站建站」任務在廣州順利完成,並進行了衛星數據現場接收測試。   據悉,該站建成後,將每天提供風雲四號氣象衛星的多種數據產品,實時傳輸至國家衛星海洋應用中心的數據中心進行存儲和全國分發,可用於與海洋衛星產品的數據融合,為氣象衛星的海洋應用增加了重要的數據獲取手段。
  • 為風雲衛星點讚 他們這樣說
    A星探測儀代表了太空測量地球大氣的重大進步,自歐洲中期天氣預報中心首次接收到該儀器觀測數據以來,中國氣象局對風雲四號A星探測儀數據處理軟體進行多次升級,使數據的光譜和輻射特性更加精確,時間穩定度更高,大大提高了觀測數據與基於ECMWF模式場模擬結果的一致性。
  • 星鏈衛星網絡將如何處理數據?
    星鏈衛星網絡將如何處理數據?太空探索技術公司繼續以驚人的速度增加衛星,它將如何處理數據?在網絡術語中,數據被量化為數據包,這是計算機可以理解的1和0的集合。在星鏈網絡中,這些數據包將在地面站和一系列停在九個獨立低地軌道上的衛星之間傳輸。每條軌道將包含若干顆衛星,每顆衛星所覆蓋的地域將與它北邊和南邊的衛星重疊。當星鏈網絡建成後,地球上的每一個地方都將被至少兩顆星聯衛星所覆蓋。
  • ...全部國家級氣象業務平臺完成「風雲二號」到「風雲四號」衛星...
    中國氣象報記者盧健 黃彬報導 從5月8日零時起,中國以及亞太地區用戶可正式接收「風雲四號」A星數據。同時,全部國家級氣象業務平臺完成「風雲二號」到「風雲四號」衛星業務切換。據「風雲四號」地面應用系統總設計師張志清介紹,此次「風雲四號」向亞太地區用戶發布的數據有三個特點:一是新,即利用新資料、新方法研發的新產品;二是快,針對觀測數據的反演時間縮短;三是全,衛星搭載的四臺觀測儀器的產品都向國內外用戶開放共享。「這些高頻次產品的發布,對我國及周邊地區,特別是『一帶一路』沿線國家和地區的天氣預報和災害預警具有重要意義。」
  • 【國際在線】風雲四號衛星成功發射
    12月11日0時11分 ,中國在西昌衛星發射中心,用長徵三號乙運載火箭成功發射風雲四號衛星。該星是中國高軌(靜止軌道)氣象衛星從第一代向第二代跨越的首發星,同時裝載了四種先進儀器設備,整體性能達到國際先進水平,投入使用後,可大幅提高中國的天氣預報和氣候預測能力。
  • 「風雲」氣象知多少|人造地球衛星|氣象衛星|地球靜止軌道|人造...
    L波段探空雷達如何提前對天氣變化進行預判,讓偏遠海區的颱風「無處藏身」,如何對海表水溫、植被覆蓋情況「瞭然於胸」,如何及時將森林草原火災「扼殺在搖籃中」……這一切就需要氣象衛星來顯「神威」了!氣象衛星帶有各種氣象遙感器,包括多通道高解析度掃描輻射計、高解析度紅外分光計、微波輻射計等,能夠接受和測量地球和大氣層的可見光、紅外、微波的輻射和反射,並將它們轉換成電信號發送回地面,地面站對衛星送回的原始數據進行計算和處理後,得出各種氣象信息資料。時至今日,氣象衛星已成為現代氣候觀測不可或缺的一項重要手段。
  • 中國驕傲——「風雲」氣象衛星
    在規劃如何使用有限的150萬美元援助資金時,來自美國的項目責任人利斯提出的方案是:中國基本不具備軟體開發能力,只能由國外公司承包系統建設,大部分資金須用在軟體購買上,餘下一部分資金只夠買惠普小型機。然而,這種小型機無法承擔海量衛星資料處理任務。於是,中國氣象局國家衛星氣象中心提出一個十分大膽的方案:軟體不買了,全部由「我們自己幹」,所有150萬美元用來購買硬體系統。
  • 中國風雲衛星比肩國際衛星 每天6次巡查江河湖泊
    我國有7顆風雲氣象衛星24小時不間斷監測天氣情況,目前我國最先進的氣象衛星風雲四號A星每十五分鐘對包括我國區域的天氣監測一次,必要時可以每五分鐘局地監測,風雲三號極軌衛星組合每天6次巡查我國各大江河流域和湖泊。衛星監測如何助力天氣預報預警和防汛抗洪救災?
  • "風雲三號"遙感能力4大突破 衛星水平有質的跨越
    "風雲三號"遙感能力4大突破 衛星水平有質的跨越 2008年05月27日 12:13 來源:中國新聞網 中新社記者:孫自法攝   中新社太原五月二十七日電 (記者 孫自法)中國首顆新一代極軌氣象衛星「風雲三號」二十七日在太原衛星發射中心成功發射升空,相關專家表示,「風雲三號」在遙感能力上實現四大突破,與第一代「風雲一號」系列極軌氣象衛星相比,「風雲三號」探測能力、手段等方面水平有質的跨越和提高
  • 風雲四號發布首批雲圖 36000公裡高空如何練就防抖神技
    在36000公裡遙遠太空中的風雲四號衛星對地球拍照,它懸浮在空中,沒有「三腳架」,還要在運轉中拍出地球的高清美照風雲四號是如何做到的呢?  懸浮在太空中的風雲四號衛星在拍照時,不是一次『啪』拍出來的,而是載荷掃描機構帶著反射鏡把一個拍照的小視場像一個小刷子一樣移動,用15分鐘把整個地球一點點「刷」完,最後形成圖片。
  • 風雲四號衛星發射成功 天氣預報準確度將大幅提高
    新華社發  昨日,記者從國防科工局、國家航天局獲悉,當天凌晨,我國在西昌衛星發射中心用長徵三號乙運載火箭成功發射風雲四號衛星。風雲四號衛星將對我國及周邊地區的大氣、雲層和空間環境進行高時間解析度、高空間解析度、高光譜解析度的觀測,大幅提高天氣預報和氣候預測能力。    風雲四號衛星到底有多「牛」?
  • 中國風雲衛星比肩國際衛星水平 每天6次巡查江河湖泊
    國家衛星氣象中心供圖我國有7顆風雲氣象衛星24小時不間斷監測天氣情況,目前我國最先進的氣象衛星風雲四號A星每十五分鐘對包括我國區域的天氣監測一次,必要時可以每五分鐘局地監測,風雲三號極軌衛星組合每天6次巡查我國各大江河流域和湖泊。衛星監測如何助力天氣預報預警和防汛抗洪救災?
  • 新中國氣象事業70周年: 中國風雲衛星俯瞰風雲,造福人類
    1988年到2005年,我國花了17年擺脫氣象衛星數據依賴國外的歷史從1988年發射成功中國的第一顆極軌氣象衛星,到1997年中國第一顆靜止氣象衛星成功發射,我國用了十年時間。得益於改革開放所創造的開放與合作的環境,中國風雲衛星起點比20年前的美國要高得多。
  • 觀天象知冷暖 「風雲」衛星添「新丁」——解碼風雲四號衛星
    新華社記者 陳建力 攝    新華社北京12月11日電(記者 白國龍)2016年12月11日凌晨,風雲四號衛星從西昌衛星發射中心升空,風雲衛星家族又添「新丁」。這是我國最先進的靜止軌道氣象衛星,承擔著靜止軌道氣象衛星升級換代的使命,將進一步提升我國氣象衛星的觀測水平。
  • 氣象核心技術自主創新之「風雲四號」衛星
    這是屬於「風雲」系列氣象衛星的全新時代——2005年1月1日,我國靜止氣象衛星「風雲二號」C星正式向國內外用戶發送衛星數據圖像,依賴國外衛星數據製作雲圖成為歷史。13年後,從2018年5月8日零時起,中國新一代靜止氣象衛星「風雲四號」A星(以下簡稱「風雲四號」),將23種先進的國產氣象衛星數據和產品正式向全球用戶發布。