1

我正在尝试将 GOES16 Full Disk SST 产品重新投影到较小覆盖区域上的朗伯保形圆锥投影。下面的方法适用于 CONUS 产品,但迄今为止在不同的投影中缩小全盘的大小并不成功。我在这里使用 Basemap 和 PyProj,但我也愿意使用 cartopy。

可重现的例子:

import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from siphon.catalog import TDSCatalog
from netCDF4 import Dataset, num2date
import numpy as np
from pyproj import Proj     
from datetime import datetime, timedelta
# Go to the Unidata Thredds Server for the Current Day
nowdate = datetime.utcnow()
cat = TDSCatalog('http://thredds-jumbo.unidata.ucar.edu/thredds/catalog/satellite/goes16/GOES16/Products/SeaSurfaceTemperature/FullDisk/' + \
                  str(nowdate.year) + str("%02d"%nowdate.month) + str("%02d"%nowdate.day) + '/catalog.xml')
# grab sst data
dataset_name = sorted(cat.datasets.keys())[-1]
dataset = cat.datasets[dataset_name]
nc = dataset.remote_access()
sst = nc.variables['SST'][:]
# correct the offsets
sst= sst*nc.variables['SST'].scale_factor + nc.variables['SST'].add_offset

# grab time/data/projection info
add_seconds = nc.variables['t'][0]
DATE = datetime(2000, 1, 1, 12) + timedelta(seconds=int(add_seconds))
sat_h = nc.variables['goes_imager_projection'].perspective_point_height
sat_lon = nc.variables['goes_imager_projection'].longitude_of_projection_origin
sat_sweep = nc.variables['goes_imager_projection'].sweep_angle_axis
X = nc.variables['x'][:] * sat_h
Y = nc.variables['y'][:] * sat_h
XX, YY = np.meshgrid(X, Y)

# Plot on the HRRR domain to test
mH = Basemap(resolution='i', projection='lcc', \
            width=1800*3000, height=1060*3000, \
            lat_1=38.5, lat_2=38.5, \
            lat_0=38.5, lon_0=-97.5)

p = Proj(proj='geos', h=sat_h, lon_0=sat_lon, sweep=sat_sweep)
lons, lats = p(XX, YY, inverse=True)

lats[np.isnan(sst)] = np.nan
lons[np.isnan(sst)] = np.nan
xH, yH = mH(lons, lats)

plt.figure(figsize=[16, 12], dpi=100)
mH.pcolormesh(xH, yH,sst, latlon=True,
              cmap='jet')
mH.drawcoastlines()
mH.drawstates()
mH.drawcountries()

在此处输入图像描述

4

2 回答 2

0

我已经发布了一个Jupyter 笔记本,其中包含 GOES Full Disk 和 CONUS 图像的示例。该解决方案使用 GDAL 将图像从 Geosynch 投影变形为 Lambert Conformal Conic。

于 2020-08-22T17:51:15.473 回答
0

在这个jupyter notebook中,我展示了如何重新网格化 ABI 数据(通道 13 的 BT),在这种情况下,我重新网格化了一个子区域,但您可以使用 de idea 重新网格化整个磁盘。这个例子是我创建的GOES教程的一部分。我希望示例和 GOES 包对您有用。

于 2021-02-23T16:24:38.200 回答