xarray使用与另一个文件相同的纬度/经度网格创建新的数据集

时间:2018-11-06 15:34:31

标签: python geospatial netcdf python-xarray

我正在使用一个陆面模型,该模型要使用一些虚拟数据进行测试。读取的数据集没有错误。这是下面的土壤数据:

<xarray.Dataset>
Dimensions:    (time: 1, x: 200, y: 200)
Coordinates:
  * time       (time) float64 1.051e+04
Dimensions without coordinates: x, y
Data variables:
    t_clay     (time, y, x) float32 ...
    t_sand     (time, y, x) float32 ...
    t_silt     (time, y, x) float32 ...
    t_sum      (time, y, x) float32 ...
    s_clay     (time, y, x) float32 ...
    s_sand     (time, y, x) float32 ...
    s_silt     (time, y, x) float32 ...
    s_sum      (time, y, x) float32 ...
    latitude   (y, x) float64 40.0 40.0 40.0 40.0 40.0 ... 50.0 50.0 50.0 50.0
    longitude  (y, x) float64 0.0 0.0656 0.1312 0.1968 ... 15.4 15.48 15.56
Attributes:
    Conventions:     CF-1.0
    content:         HARMONIZED WORLD SOIL DATABASE; first it was aggregated ...
    scaling_factor:  20

我想在其他变量中使用与此latitude相同的longitude / xr.Dataset网格。

例如辐射数据(随机生成的值)如下:

<xarray.Dataset>
Dimensions:    (latitude: 600, longitude: 600)
Coordinates:
    time       datetime64[ns] 2000-02-14
  * longitude  (longitude) float32 26.024994 26.074997 ... 55.924988 55.97499
  * latitude   (latitude) float32 17.974998 17.924995 ... -11.925003 -11.974998
Data variables:
    Rg         (latitude, longitude) float32 1.09 1.0 0.28 ... 0.51 0.13 0.07

1。我需要创建一个新的xr.Dataset,其形状与上面的土壤数据相同。

2。我还需要将longitudelatitude Coordinates存储为Data variables

当Fortran以Coordinate而不是Variable的形式存储时,无法读取“经度”

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,我设法通过使用以下代码从另一个var copyBtn = document.querySelector('#button1'); copyBtn.addEventListener('click', function () { var textarea = document.querySelector('#textarea'); textarea.select(); var text = document.execCommand('copy'); // or 'cut' console.log(text)对象中的数据制作样本:

1。导入软件包

xr.Dataset

2。从土壤数据初始化“骨架”

import numpy as np
import xarray as xr
from shutil import copyfile
import os

np.random.seed(123)

3。循环遍历每个变量,从感兴趣的变量(s = xr.open_dataset(s_dir) # drop all but ONE variable! s = s.drop(["t_clay","t_silt","t_sum", "t_sand", "s_clay", "s_sand", "s_silt"]) # can extend this list to include a number of variables variables = ["Rg"] 中随机抽取值,然后插入旧的Rg提供的框架中。

xr.Dataset

我认为,此例程对于需要为水文和气候模型生成随机强迫数据的其他人真的有用。