netfdf数据的插值和空间分辨率的提高

问题描述

如何提高在python中馈给CNN的netfdf数据的分辨率? xarray中是否有任何功能可以做到这一点?

谢谢。

解决方法

您可以使用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,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)