Я загрузил набор данных netCDF, который прочитал с помощью xarray, но он имеет относительно сложную структуру и я не могу понять, как преобразовать его в общий формат (время, широта, долгота), чтобы можно было нанести значения соответствующей переменной на карту.
Я опубликую более короткую версию и в нижнем разделе добавлю к переменным дополнительную информацию, которая более или менее печатает информацию обо всех переменных, которые, по моему мнению, имеют отношение к приведению данных в общую структуру (время, широта , длинный).
Краткая версия:
Я открываю файл netcdf с помощью xarray
Код: Выделить всё
netcdf = xr.open_dataset(
'path/tofile/IASISND02_20240702161759Z_20240702175655Z_epct_d9f95b34_F.nc'
)
Код: Выделить всё
print(netcdf.integrated_co2)

Координаты не являются координатами, а представляют собой индексы координат, которые хранятся в двух переменных в наборе данных с именами «lat» и «lon». Кроме того, есть еще две временные переменные.
На мой взгляд, актуальными являются следующие формы переменных:
Код: Выделить всё
# Relevant variables in the netcdf-file:
var_names = [
"lat",
"lon",
"record_start_time",
"record_stop_time",
"across_track",
"along_track",
"integrated_co2",
]
for var in var_names:
print(f"{var}: {netcdf[var].shape} ")

Переменные lat и lon содержат координаты в градусах, long_track содержит числа от 1 до 742,cross_track содержит числа от 1 до 120, а переменные time содержат числа в форма 7.732523e+08.
Думаю, все есть: координаты, временная метка, значения co2, но смущает то, что координаты в их истинном виде являются индексами фактических координат. По крайней мере, это то, что здесь кажется?
Как я могу внести эти переменные в общую структуру (время, широта, долгота), чтобы я мог построить график данные 'integrated_co2' на карте?
Если найдется кто-то, кто знает, как реструктурировать эти данные, я был бы очень рад. Я новичок и уже много читал о том, как использовать данные, но не нашел подобного примера.
Вот некоторая дополнительная информация о соответствующих переменных:
Код: Выделить всё
print(netcdf.along_track)

Код: Выделить всё
print(netcdf.across_track)

Код: Выделить всё
print(netcdf.lat)

Код: Выделить всё
print(netcdf.lon)

Код: Выделить всё
print(netcdf.record_start_time)

Код: Выделить всё
print(netcdf.record_stop_time)

Подробнее здесь: https://stackoverflow.com/questions/787 ... his-netcdf