用python画圆锥_用Python重新投影和绘制GOES16完整磁盘

该博客演示了如何使用Unidata的THREDDS Catalog、netCDF4库从GOES-16卫星获取实时海表面温度数据,并通过matplotlib和Basemap进行地图投影和可视化。代码详细解释了数据获取、坐标转换和地图绘制的过程。
摘要由CSDN通过智能技术生成

可复制示例:

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()

8542fbace0cd82b5455d9722eabbdc28.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值