Python netCDF5 使用经度和纬度并提取数据

Python netCDF5 working with Longitude and Latitude and extracting Data

你好吗?

我已经为此工作了很长一段时间,但我无法继续进行下去。 我得到了带有基于云的海拔高度的 .nc 文件(CBA 是指示特定区域土块高度的测量值)。

现在我什至无法提取单个坐标的数据。此数据包含此图片中显示的区域,从左上到右下:

这是我正在处理的数据的屏幕截图:

抱歉,我不能提供更多的数据,但我不想惹麻烦。

cba值就是我要提取的信息。假设我有一组我感兴趣的区域的坐标 (longitude/latitude),我怎样才能获得合适的 cba 值?

我不需要特定的解决方案,但需要一个方向,以便我可以自己继续。

有关更多信息,这是 .cba 和 .cba.values 的外观:

我以前一直在处理这样的数据,但不是这种嵌套数据,所以我完全不知道我该如何处理它。 python 中是否有一个 module/package 可以让我轻松处理这个问题,所以当我输入一个区域的坐标时,它会直接给我相应的 cba 值?

我希望这些信息足够继续,你可以帮助我,我将不胜感激。

此致

您正在使用的包 (xarray) 已经非常适合这项任务。

dObj是一个xarray.Dataset对象,每个包含的变量(如dObj['cba'])是一个xarray.DataArray对象。

您可以像这样在给定的一组坐标处访问数据:

lat = ...
lon = ...
dObj['cbd'].sel(y=lat, x=lon, method='nearest')

method='nearest' 是必需的,因为您的坐标数组不太可能包含请求的浮点值 exactly.

如果您想要 select 一系列纬度和经度,您可以按如下方式进行:

lat_min, lat_max = (...)
lon_min, lon_max = (...)
dObj['cbd'].sel(y=slice(lat_min, lat_max), x=slice(lon_min, lon_max))

有关处理 xarray 对象的更多信息,请查看非常全面的文档:http://xarray.pydata.org/en/stable/index.html