Я отчаянно пытаюсь спроецировать некоторые геостационарные данные из файла netCDF GOES-16 в другую проекцию.Я могу заставить фоновую карту перепроектировать, но не могу получить данные для подражания.
Я пока не очень разбираюсь в этом, но вот что у меня есть:
Чтение данных через NetCDF4:
from netCDF4 import Dataset
nc = Dataset('OR_ABI-L1b-RadF-
M3C13_G16_s20182831030383_e20182831041161_c20182831041217.nc')
data = nc.variables['Rad'][:]
Здесь япытаюсь получить геостационарную информацию:
sat_h = nc.variables['goes_imager_projection'].perspective_point_height
X = nc.variables['x'][:] * sat_h
Y = nc.variables['y'][:] * sat_h
# Satellite longitude
sat_lon =
nc.variables['goes_imager_projection'].longitude_of_projection_origin
# Satellite sweep
sat_sweep = nc.variables['goes_imager_projection'].sweep_angle_axis
Здесь я беру проекционные данные из файла .nc:
proj_var = nc.variables['goes_imager_projection']
sat_height = proj_var.perspective_point_height
central_lon = proj_var.longitude_of_projection_origin
semi_major = proj_var.semi_major_axis
semi_minor = proj_var.semi_minor_axis
print proj_var
<type 'netCDF4._netCDF4.Variable'>
int32 goes_imager_projection()
long_name: GOES-R ABI fixed grid projection
grid_mapping_name: geostationary
perspective_point_height: 35786023.0
semi_major_axis: 6378137.0
semi_minor_axis: 6356752.31414
inverse_flattening: 298.2572221
latitude_of_projection_origin: 0.0
longitude_of_projection_origin: -75.0
sweep_angle_axis: x
unlimited dimensions:
current shape = ()
filling on, default _FillValue of -2147483647 used
А вот небольшой фрагмент моего кода, который имеет отношение:
fig = plt.figure(figsize=(30,20))
globe = ccrs.Globe(semimajor_axis=semi_major, semiminor_axis=semi_minor)
proj = ccrs.Geostationary(central_longitude=central_lon,
satellite_height=sat_height, globe=globe)
ax = fig.add_subplot(1, 1, 1, projection=proj)
IR_img = ax.imshow(data[:,:],origin='upper',extent=(X.min(), X.max(), Y.min(), Y.max()),
cmap=IR_cmap,interpolation='nearest',vmin=162.,vmax=330.)
И образ каждого, кто играет хорошо: Работа с данными и картой
Когда я пытаюсь получить, скажем, проекцию Плато Карри, я пытаюсь:
proj = ccrs.PlateCarree(central_longitude=central_lon,globe=globe)
И изображение моей ошибки: Данные и карта не работают
Я попытался возиться с экстентом в методе imshow, я попытался добавить
transform=proj
в imshow и не повезло, просто зависает и мне нужно перезапустить ядро.
Очевидно, это отсутствие понимания с моей стороны.Если кто-то может быстро и легко помочь / объяснить, как я хочу изменить свою проекцию с геостационарной, я был бы очень признателен за это.
Я использую архаичный python2.
Спасибо за поиск.
РЕДАКТИРОВАТЬ: Кажется, что проблема решена благодаря пониманию DopplerShift и ajdawson, я думаю, я был немного нетерпеливым / неосведомленным о том, сколько времени займет полное преобразование диска,