You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用地理坐标裁剪WRADLIB中的RADOLAN雷达数据?

问题描述

使用wradlib读取德国气象局(DWD)的RADOLAN雷达数据集,需要通过指定经纬度范围裁剪数据。现有代码读取数据后,DataArray仅包含x、y坐标,已尝试创建投影和获取网格,但不清楚如何完成投影转换与数据裁剪。

现有代码

import wradlib as wrl

rv_file = "DE1200_RV2201271935_000"
ds = wrl.io.open_radolan_dataset(rv_file)
data = ds.RV

print(data)

输出结果

<xarray.DataArray 'RV' (y: 1200, x: 1100)>
[1320000 values with dtype=float32]
Coordinates:
  * y        (y) float64 -4.809e+03 -4.808e+03 ... -3.611e+03 -3.61e+03
  * x        (x) float64 -543.5 -542.5 -541.5 -540.5 ... 552.5 553.5 554.5 555.5
Attributes:
    valid_min:      0
    valid_max:      4095
    standard_name:  rainfall_rate
    long_name:      RV
    unit:           mm h-1

已尝试的代码片段

proj_stereo = wrl.georef.create_osr("dwd-radolan")
proj_wgs = osr.SpatialReference()
proj_wgs.ImportFromEPSG(4326)

radolan_grid_xy = wrl.georef.get_radolan_grid(1200, 1100)

解决方案

按以下步骤完成投影转换和数据裁剪:

1. 导入完整依赖模块

确保导入GDAL的osr模块(wradlib依赖该模块处理投影):

import wradlib as wrl
from osgeo import osr

2. 转换RADOLAN网格为经纬度坐标

RADOLAN的x/y是以德国诺德韦克为原点的极射投影坐标(单位km),需转换为WGS84经纬度:

# 创建投影对象
proj_stereo = wrl.georef.create_osr("dwd-radolan")
proj_wgs = osr.SpatialReference()
proj_wgs.ImportFromEPSG(4326)

# 获取RADOLAN网格的扁平化x/y坐标
radolan_grid_xy = wrl.georef.get_radolan_grid(1200, 1100)
# 投影转换为经纬度(lon, lat)
lonlat = wrl.georef.reproject(radolan_grid_xy, projection_source=proj_stereo, projection_target=proj_wgs)
# 重塑为与数据匹配的二维网格
lon_grid = lonlat[:, 0].reshape(1200, 1100)
lat_grid = lonlat[:, 1].reshape(1200, 1100)

3. 为DataArray添加经纬度坐标

将生成的经纬度网格绑定到原DataArray,方便后续筛选:

data = data.assign_coords(lon=(["y", "x"], lon_grid), lat=(["y", "x"], lat_grid))

4. 按指定经纬度范围裁剪数据

自定义经纬度范围,通过布尔索引筛选目标区域:

# 示例裁剪范围:东经8-10度,北纬49-51度
lon_min, lon_max = 8.0, 10.0
lat_min, lat_max = 49.0, 51.0

# 生成掩码:标记需要保留的网格点
mask = (data.lon >= lon_min) & (data.lon <= lon_max) & (data.lat >= lat_min) & (data.lat <= lat_max)

# 应用掩码并移除空维度
cropped_data = data.where(mask, drop=True)

5. 验证裁剪结果

打印裁剪后的DataArray,确认坐标范围和数据有效性:

print(cropped_data)

内容的提问来源于stack exchange,提问作者jlhuhn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:48:18