当前位置: 首页 > 知识库问答 >
问题:

如何在 r 中使用双线性插值重新网格 netCDF 文件

卫泉
2023-03-14

我正在尝试使用指定的经度和纬度列表重新格式化Netcdf文件。我想使用双线性插值,尽管我已经看到数位长NCO很有帮助,但我想在r中实现它。我已经看到有一个akima包,其中包含一个bilinear.grid函数,但它只使用中断长度或坐标数,而不是特定的坐标数。

我的目标经纬度在下面

lon <- c(0.000, 1.875, 3.750, 5.625, 7.500, 9.375, 11.250, 13.125, 15.000, 16.875, 18.750, 20.625, 22.500   24.375, 26.250, 28.125, 30.000, 31.875, 33.750, 35.625, 37.500, 39.375, 41.250, 43.125, 45.000, 46.875 , 48.750, 50.625, 52.500, 54.375, 56.250, 58.125, 60.000, 61.875, 63.750, 65.625, 67.500, 69.375, 71.250  , 73.125, 75.000, 76.875, 78.750, 80.625, 82.500, 84.375, 86.250, 88.125, 90.000, 91.875, 93.750, 95.625  , 97.500, 99.375, 101.250, 103.125, 105.000, 106.875, 108.750, 110.625, 112.500, 114.375, 116.250, 118.125  , 120.000, 121.875, 123.750, 125.625, 127.500, 129.375, 131.250, 133.125, 135.000, 136.875, 138.750 , 140.625, 142.500, 144.375, 146.250, 148.125, 150.000, 151.875, 153.750, 155.625, 157.500, 159.375  , 161.250, 163.125, 165.000, 166.875, 168.750, 170.625, 172.500, 174.375, 176.250, 178.125, 180.000, -178.125, -176.250, -174.375, -172.500, -170.625, -168.750, -166.875, -165.000, -163.125, -161.250, -159.375, -157.500, -155.625, -153.750, -151.875, -150.000, -148.125, -146.250, -144.375, -142.500, -140.625, -138.750, -136.875, -135.000, -133.125, -131.250, -129.375, -127.500, -125.625, -123.750, -121.875, -120.000, -118.125, -116.250, -114.375, -112.500, -110.625, -108.750, -106.875, -105.000, -103.125, -101.250,  -99.375,  -97.500,  -95.625,  -93.750,  -91.875, -90.000,  -88.125,  -86.250,  -84.375,  -82.500,  -80.625,  -78.750,  -76.875,  -75.000,  -73.125,  -71.250,  -69.375, -67.500,  -65.625,  -63.750,  -61.875,  -60.000,  -58.125,  -56.250,  -54.375 , -52.500,  -50.625,  -48.750,  -46.875, -45.000,  -43.125,  -41.250,  -39.375,  -37.500,  -35.625,  -33.750,  -31.875,  -30.000,  -28.125,  -26.250,  -24.375, -22.500,  -20.625,  -18.750,  -16.875,  -15.000,  -13.125,  -11.250,   -9.375,   -7.500,   -5.625,   -3.750,   -1.875)

lat <- c(-89.25, -87.75, -86.25, -84.75, -83.25, -81.75, -80.25, -78.75, -77.25, -75.75, -74.25, -72.75, -71.25, -69.75, -68.25, -66.75, -65.25, -63.75, -62.25, -60.75, -59.25, -57.75, -56.25, -54.75, -53.25, -51.75, -50.25, -48.75, -47.25, -45.75, -44.25, -42.75, -41.25, -39.75, -38.25, -36.75, -35.25, -33.75, -32.25, -30.75, -29.25, -27.75, -26.25, -24.75, -23.25, -21.75, -20.25, -18.75, -17.25, -15.75, -14.25, -12.75, -11.25,  -9.75,  -8.25,  -6.75,  -5.25,  -3.75,  -2.25,  -0.75,   0.75,   2.25,   3.75,   5.25,
6.75,   8.25,   9.75,  11.25,  12.75,  14.25,  15.75,  17.25,  18.75,  20.25,  21.75,  23.25,  24.75,  26.25,  27.75,  29.25, 30.75,  32.25,  33.75,  35.25,  36.75,  38.25,  39.75,  41.25,  42.75,  44.25,  45.75,  47.25,  48.75,  50.25,  51.75,  53.25, 54.75,  56.25,  57.75,  59.25,  60.75,  62.25,  63.75,  65.25,  66.75,  68.25,  69.75,  71.25,  72.75,  74.25,  75.75,  77.25, 78.75,  80.25,  81.75,  83.25,  84.75,  86.25,  87.75,  89.25)

输入数据:

我试图重新划分的网格是在这里找到的netcdf文件的第一个时间步骤:https://esgf-node.llnl.gov/search/cmip6/名称:CMIP6.PMIP.CAS.FGOALS-f3-L.lig127k.r1p1f1.Amon.tas.gr

  • OPeNDAP访问
https://esgf3.dkrz.de/thredds/dodsC/cmip6/PMIP/CAS/FGOALS-f3-L/lig127k/r1i1p1f1/Amon/tas/gr/v20191025/tas_Amon_FGOALS-f3-L_lig127k_r1i1p1f1_gr_070001-119912.nc

>

  • html" target="_blank">下载(1.2GB)

    输入数据网格(一维坐标变量< code>lat和< code>lon):

    • lat从-89.5到89.5每1.0(180纬度)
    • lon从0.625到359.375每1.25(288经度)
    • (主数据数组也有无限的time维度)

    先谢谢了

  • 共有1个答案

    诸葛砚文
    2023-03-14

    我使用数位长重新格式化我的NetCDF文件,然后我在R中使用我的输出。你可能有理由只在R中使用。如果你仍然想使用数位长重新格式化。这是(比如说)高斯N32的双线性插值代码

    cdo remapbil,n32 infile.nc outfile.nc
    
     类似资料:
    • 问题内容: 我想使用python执行blinear插值。 我要插入高度的示例gps点是: 使用具有已知坐标和高度值的四个相邻点: 这是我的原始尝试: 其中z0和z1 我得到31.964,但从其他软件得到31.961。 我的脚本正确吗? 您可以提供另一种方法吗? 问题答案: 这是您可以使用的可重用功能。它包括doctest和数据验证: 您可以通过添加以下内容来运行测试代码: 在数据集上运行插值将产生

    • 我有一个netCDF文件(. nc),其中包含16年(1998-2014年)的日降水量(5844层)。3个维度是时间(大小5844)、纬度(大小19)和经度(大小20)R中是否有一种简单的方法来计算每个rastercell: < li >每月 到目前为止,我已经: 我的第一个挑战是计算每个光栅单元的月平均值。我不确定在牢记最终目标(累积比较)的同时,如何最好地进行。我怎样才能轻松地访问某个月的几天

    • 在不同的限制条件下,我试图挑选最好的梦幻足球队。我的目标是挑选能够最大化其预测积分总和的球员。 制约因素是: 1) 团队必须包括: -1个QB -2苏格兰皇家银行 -2个WRs -1 TE 2)玩家的风险不得超过6 3) 球员的费用总额不得超过300英镑。 如何做到这一点?R中优化这些约束的最佳包/函数是什么?在给定这些约束的情况下,最大化投影点的函数调用会是什么样子?仅供参考,我将搜索100-3

    • 我已经搜索了很长时间,但仍然无法弄清楚这一点。似乎光栅包是要提取的,但只能从二维数据中提取。 这个四维数据的例子,一个netCDF文件包含连续三天(72小时)的每小时压力水平(4级)气温。https://drive.google.com/file/d/1UIiX9-xHrtH2FT1torg53iPxyzLxSYQu/view?usp=sharing。 我只想提取一些点位置(xy)的温度,以及相应

    • 问题内容: 我正在尝试使用Oracle 11g(在开发中为11.1,在生产中为11.2)进行数值分析,特别是在具有三列感兴趣的表的表上进行线性插值:时间戳,设备ID和值。 值列保存来自设备的数据(标识为deviceid),该数据是在时间戳记中指定的时间获取的。例如,这是伪数据,但是它给出了这样的想法: 来自设备001的时间戳与设备002的时间戳不匹配,但是我需要将来自设备001和002的值放在一行

    • 我有一个 netCDF 文件,我希望使用 R 中的“ncdf”包从由纬度/经度边界定义的子集(即经纬度/经度定义的框)中提取子集。 下面是我的netCDF文件的摘要。它有两个维度(纬度和经度)和一个变量(10U_GDS4_SFC)。它本质上是一个包含风值的平面/长网格: 纬度变量从 90 到 -90,经度变量从 0 到 360。 我希望使用以下地理角边界提取整个网格的子集: 左下角:纬度:34.5