rioxarray读取栅格文件 画等高线图时纬度翻转

​import matplotlib as mpl
%matplotlib inline
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import numpy as np
import xarray as xr
import rioxarray as rxr

# 基础轮廓
fig, ax = plt.subplots(1, 1, subplot_kw={'projection': ccrs.PlateCarree()})
extent = (106, 127, 17, 41)
ax.set_extent(extent,crs=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND,facecolor='grey')
ax.add_feature(cfeature.OCEAN,facecolor='lightblue')
ax.add_feature(cfeature.COASTLINE,edgecolor='DarkSlateGray')

# 读取高程图
file_path="ETOPO_2022_v1_60s_N90W180_bed_coast.tif"
dem_ds=rxr.open_rasterio(file_path)
data0 = dem_ds[0]
data0=xr.where(data0<0,-data0,np.nan)
lons=dem_ds.x.values
lats=np.flip(dem_ds.y.values) # 倒转纬度
# lats=dem_ds.y.values[::-1, :] # 另一种方法

# 添加等高线
lon, lat = np.meshgrid(lons, lats)
data_values = [500]
cs = ax.contour(lon, lat, data0[::-1, :], levels=data_values)
ax.clabel(cs, inline=True, fontsize=18, fmt='%1.0f', inline_spacing=20)

plt.show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值