Интерполяция и увеличение пространственного разрешения данных netfdf

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