你好吗?
我已经为此工作了一段时间,但是我无法继续进行下去。 我获得了具有基于云的海拔高度的.nc文件(CBA是用于指示特定区域土块高度的测量值。)
目前,我什至无法提取单个坐标的数据。此数据包含此图片中从左上角到右下角的区域:
以下是我正在处理的数据的屏幕截图:
很抱歉,我不能提供更多的数据,但是我不想惹麻烦。
cba值是我要提取的信息。因此,假设我有一个感兴趣区域的一组坐标(经度/纬度),如何获得合适的CBA值?
我不需要特定的解决方案,而是一个方向,这样我就可以自己继续。
有关其他信息,这是.cba和.cba.values的外观:
我以前一直在处理像这样的数据,但不是嵌套的,所以我完全不知道该如何处理。 python中是否有一个模块/软件包可以让我轻松地处理此问题,所以当我输入某个区域的坐标时,它将直接为我提供相应的cba值?
我希望能继续提供足够的信息,您可以为我提供帮助,我将非常感谢。
致谢
答案 0 :(得分:2)
您正在使用的软件包(xarray
)已经非常适合此任务。
dObj
是一个xarray.Dataset
对象,每个包含的变量(例如dObj['cba']
)都是一个xarray.DataArray
对象。
您可以像这样在给定的一组坐标处访问数据:
lat = ...
lon = ...
dObj['cbd'].sel(y=lat, x=lon, method='nearest')
method='nearest'
是必需的,因为您的坐标数组不太可能精确地包含请求的浮点值。
如果您想选择一个纬度和经度范围,则可以执行以下操作:
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