我正在分析 GOES-16 卫星数据,需要计算每个网格坐标的基本纬度、经度作为进一步分析的一部分。我目前正在尝试使用 pyproj 来执行此操作,并且遇到图像预期范围之外的经度值,经度值在预期范围内。
下载图像:
import boto3
import xarray as xr
s3 = boto3.client('s3')
s3.download_file('noaa-goes17', 'ABI-L1b-RadC/2019/022/21/OR_ABI-L1b-RadC-M3C02_G17_s20190222102189_e20190222104562_c20190222104588.nc',
'test.nc')
ds = xr.open_dataset('test.nc')
转换投影:
from pyproj import Proj
p = Proj(proj='geos', h='35786023.0', lon_0='-137.0', sweep='x')
dat = ds.metpy.parse_cf('Rad')
cord_grid = np.meshgrid(dat['x'].values, dat['y'].values)
lons, lats = p(cord_grid[0], cord_grid[1], inverse=True)
这里的最小和最大 lon 值分别是 -179.99 和 179.9。我只希望这张图片包含 -89.6 和 175.6 之间的数据,如下所示。
当我检查此图像的预期地理范围时,我得到以下信息:
ds['geospatial_lat_lon_extent']
Out[61]:
<xarray.DataArray 'geospatial_lat_lon_extent' ()>
array(9.96921e+36, dtype=float32)
Coordinates:
t datetime64[ns] ...
y_image float32 ...
x_image float32 ...
Attributes:
long_name: geospatial latitude and longitude refere...
geospatial_westbound_longitude: 175.62358
geospatial_northbound_latitude: 53.50006
geospatial_eastbound_longitude: -89.62357
geospatial_southbound_latitude: 14.57134
geospatial_lat_center: 29.967
geospatial_lon_center: -137.0
geospatial_lat_nadir: 0.0
geospatial_lon_nadir: -137.0
geospatial_lat_units: degrees_north
geospatial_lon_units: degrees_east
我对地理空间数据操作还比较陌生。我在这里做错了什么?