#python #geospatial #netcdf #python-xarray
#python #геопространственный #netcdf #python-xarray
Вопрос:
Как я могу увеличить разрешение данных netfdf для передачи в CNN на python? Есть ли какая-либо функция в xarray для выполнения того же самого?
Заранее спасибо.
Комментарии:
1. На их веб-сайте есть примеры интерполяции с помощью xarray: xarray.pydata.org/en/stable/interpolation.html . Это то, что вы ищете?
2. @drcrisp Я также хотел бы изменить данные. В настоящее время мои данные имеют широту (-90,90,0.25) и долготу (0,360,0.25). я хотел бы преобразовать его в широту (-90,90,0.125) и долготу (0,360,0.125). А затем интерполируйте то же самое. Конечная цель — улучшить пространственное разрешение.
Ответ №1:
Вы можете использовать интерполяцию xarray для достижения желаемого. Вы должны определить новую широту и долготу, которые вы хотите интерполировать, и передать их в функцию xarray interp. Смотрите пример ниже
import xarray as xr
import numpy as np
import matplotlib.pyplot as plt
# Create sample data
dx = 0.25
lon = np.arange(0, 360, dx)
lat = np.arange(-90, 90 dx, dx)
data = 10 * np.random.rand(len(lat), len(lon))
data_set = xr.Dataset({"temp": (["lat", "lon"], data)},
coords={"lon": lon,"lat": lat})
# Just checking the datasets are not empty
print(data_set)
# Create new lat and lon
dx_new = 0.125
newlon = np.arange(0, 360, dx_new)
newlat = np.arange(-90, 90 dx_new, dx_new)
# Interpolate
data_set_interp = data_set.interp(lat=newlat, lon=newlon)
# Check output
print(data_set_interp)