跳到主要内容

前言

绘制地形剖面图需要用到的地形高程数据

当然也可以用在其他方面,看你如何去使用

数据集下载

链接:https://pan.baidu.com/s/1sUe3CI4PiHX3IuOuuags0g?pwd=o8dd 
提取码:o8dd

生成你所需要格点距的数据集

采用的方法是这个点上的值是周围四个值的平均

"""
实现对数据集生成自己想要大小格点距的数据集
"""
def createZdataset(file_path, begin_lat, end_lat, jiangelat, begin_lon, end_lon, jiangelon):
import xarray as xr
import numpy as np

newlon = np.arange(begin_lon, end_lon + jiangelon, jiangelon)
newlat = np.arange(begin_lat, end_lat + jiangelat, jiangelat)
newzarray = np.zeros((len(newlat), len(newlon)))
ds = xr.open_dataset(file_path)
ds = ds['z']
lon = ds['x'].data
lat = ds['y'].data
newlon_i = 0
for i in newlon:
newlat_i = 0
lonleft = np.where(lon > i)[0][0]
lonright = np.where(lon < i)[0][-1]
for j in newlat:
latdown = np.where(lat > j)[0][-1]
latup = np.where(lat < j)[0][0]
ld = ds[latdown, lonleft].data
rd = ds[latdown, lonright].data
ru = ds[latup, lonright].data
lu = ds[latup, lonleft].data
newzarray[newlat_i, newlon_i] = (ld + rd + ru + lu) / 4
newlat_i += 1
newlon_i += 1
dataset = xr.Dataset({'z': (['lat', 'lon'], newzarray)},
coords={'lon': (['lon'], newlon),
'lat': (['lat'], newlat)})
return dataset

a = createZdataset('ETOPO1_Bed_c_gmt4.nc', 0, 60, 1, 60, 140, 1)

使用该数据集的技巧

当绘制地形剖面图时,纵坐标往往是压强,而数据集的单位是 m,所以需要去转换

介绍一个公式

P=P0(1H44300)5.256P=P_{0}*(\frac{1-H}{44300})^{5.256}

P0=1013.25hPaP_{0}=1013.25hPa