在python中使用不同的CRS叠加两个栅格

问题描述 投票:0回答:0

我有两个栅格,第一个是 WGS84 中的 Landsat8,第二个是经度和纬度旋转的 Euro-Cordex。

Landsat8,有边界 (18.59485688668886、49.1151186646496、18.87809569577174、49.30106992846235)

ls='C:/...../Landsat8.nc'
LS= xr.open_dataset(ls, decode_coords="all")
LS=LS['band_data']
LS.plot()

Euro-Cordex 有边界 (0.2800000061591466、-1.7600000500679016、0.7200000236431757、-1.0999999642372131)

ec='C:/....../ECZA.tif'
#EC= xr.open_dataset(ec, decode_coords="all")
EC= xr.open_dataset(ec)
EC=EC["band_data"]
EC=EC[7]
EC.plot()

当我在 Qgis 中绘制它们时,它们位于同一位置。

我想在Python中覆盖它们,并通过Landsat8进行剪辑。

我尝试将 Euro-Cordex 更改为 WGS 84,但没有成功。

请问您对如何将 Cordex 坐标更改为 WGS84 或任何其他方法有什么想法吗?谢谢。

在这里您可以找到 ECZA 和 LandSat 数据

我尝试了这个,但收到错误:ValueError:IndexVariable对象必须是一维的

EC84=EC.rio.reproject('epsg:4326', inplace = True)
EC84

ValueError: IndexVariable objects must be 1-dimensional

所以我尝试将协调的名称从 rlon,rlat 更改为 x,y

EC84=EC84.rename({'rlon':'x', 'rlat':'y'})

但我仍然遇到相同的 ValueError。

但是,我想通了:

EC84=EC2.rio.reproject_match(LS)
python matplotlib plot raster coordinate-systems
© www.soinside.com 2019 - 2024. All rights reserved.