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

尺寸坐标具有填充值,因此,值是重复的

缑桐
2023-03-14

我从一位同事那里收到了一些数据文件(NetCDF),我正在尝试将这些文件连接到一个文件中,以便能够使用以前的一些脚本运行它。问题是,我收到的NetCDF文件具有尺寸“高度”,填充值为1e20。当我尝试对文件执行几乎任何xarray操作时,这都会导致错误,因为维度坐标中存在重复值。

以下是其中一个文件的信息(您可以在“高度”坐标的最终值中看到重复值):

<xarray.Dataset> Dimensions:  (height: 1061) 
Coordinates:   * height   (height) float64 0.0 10.0 20.0 30.0 ... 1e+20 1e+20 1e+20 1e+20 
Data variables:
            pres     (height) float32 ...
            tdry     (height) float32 ...
            rh       (height) float32 ...
            u_wind   (height) float32 ...
            v_wind   (height) float32 ...
            mr       (height) float32 ...
            theta    (height) float32 ...
            theta_e  (height) float32 ...
            theta_v  (height) float32 ...
            lat      (height) float32 ...
            lon      (height) float32 ...
            alt      (height) float32 ...
            wdir     (height) float32 ...

我认为重新索引到没有填充值的新索引可能会有所帮助,但我也无法这样做,因为错误再次弹出:

ValueError: cannot reindex or align along dimension 'height' because the index has duplicate values

如果有人能在这里帮助我,那将是一个极大的帮助!我已经为此挣扎了一段时间,但也许解决办法很简单,而且我的初学者身份在这里并没有真正的帮助/

共有2个答案

宓博实
2023-03-14

按照本文的建议删除重复条目怎么样?

.isel方法应该可以工作,即使坐标有重复的条目。下面的脚本可能会起作用

_, index = np.unique(ds['time'], return_index=True)
ds.isel(time=index)
壤驷凯
2023-03-14

这不是python解决方案,但我想知道CDO或NCO是否不能帮助您更容易/更快地解决这个问题?

如果文件用于不同的时间,您可以尝试

cdo mergetime input_t*.nc output.nc 

(*名称的通配符)

更一般地说,您可以尝试使用以下文件来跟踪文件:

cdo cat input_t*.nc output.nc 

我不确定cdo将如何处理丢失的高度坐标

您还可以使用

ncks -A appended_file.nc target_file.nc 

我不确定这些解决方案中哪一个(如果有的话)会起作用,但我希望其中一个能有所帮助。

 类似资料:
  • 我喜欢用基于其他列的Formel填充列中的空值: 你能看出我的代码有什么问题吗?因为这段代码后面有一些nulll值。 我的数据框: Datadate|datacqtr 2002-02-28|2002Q1 Dataacqtr代表四分之一。有时我有datadate,但没有datacqtr(四分之一)。所以我喜欢填充基于colmn数据的colmn datacqtr。

  • 我在SQL Server 2012中有两个表 表1 表2 每个用户可以拥有1到8个权限。 我需要创建一个视图,该视图将为我提供具有8个权限条目的UserID,其中任何未使用的条目都包含null值,即条目的顺序无关紧要。 这让我很困惑,我甚至不知道从哪里开始?

  • 当我有一个最大宽度为80vw、最大高度为80vh的容器时,其中包含的图像与对象匹配:contain不一致。图像具有高度:100%和宽度:100%以及对象匹配:包含,但图像的最短尺寸会使容器充满较长尺寸溢出。 请查看此url: https://mutatedllama.pythonanywhere.com/share/7h25JNbi 有人能帮我理解我哪里做错了吗?

  • 问题内容: 我必须清理具有重复行的表: 一个可能具有多个值: 我想对整个表执行一个查询,并删除和重复的所有行。在上面的示例中,删除后,我只想剩下1、2、4和5。 问题答案: ;WITH x AS ( SELECT id, gid, url, rn = ROW_NUMBER() OVER (PARTITION BY gid, url ORDER BY id) FROM dbo.table ) SEL

  • 问题内容: 我看到有通过各种Java库的selenium,如让一个元素的屏幕位置和尺寸的方法,提供和使用。 有什么方法可以使用Selenium Python绑定来获取元素的位置或尺寸? 问题答案: 得到它了!线索在selenium.webdriver.remote.webelement上— Selenium 3.14文档。 WebElement具有属性和。两者都是类型。 输出: 它们还有一个称为的

  • 为什么要占用这么多内存?有没有更好的方法来使用更少的内存呢?这就是我在XML中创建按钮的方法。谢谢你