我想选择一个地区的地中海ETOPO1数据。#深度测量法从netCDF4导入数据集数据=数据集(“ETOPO1_Bed_g_gdal.grd”、“r”)打印(data.variables.keys ()) # lon_range =数据获取数据。变量[' x_range '] [:] lat_range =数据。变量[' y_range '] [:] topo_range =数据。变量[' z_range '][:]间距=数据。变量=[“间距”][:]维度数据。变量(“维度”][:]z =数据。变量[' z '] [:] lon_num维度[0]= lat_num =维度[1]#准备数组lon_input = np.zeros (lon_num);lat_input = np.zeros (lat_num)我的范围(lon_num): lon_input[我]= lon_range [0] + i *间距[0]我的范围(lat_num): lat_input[我]= lat_range [0] + i *间距[1]#创建二维数组经度,纬度= np。meshgrid (lon_input lat_input) # 2 d数组从一维数组转换为z值威尼斯平底渔船= np。重塑(z (lat_num lon_num) #选择地区lon_idx_min = np.abs (lon_input - 12.6) .argmin () lon_idx_max = np.abs (lon_input - 13.4) .argmin () lat_idx_min = np.abs (lat_input - 43.8) .argmin () lat_idx_max = np.abs (lat_input - 44.2) .argmin() #威尼斯平底渔船获取数据(lon_idx_min: lon_idx_max lat_idx_min: lat_idx_max]。数据返回一个空数组:数组> >([],形状= (0,24),dtype = float64)的一个主要问题:* * 1 -我做错了什么?* *当我检查经度纬度值我切片(lat_input [lat_idx_max]等)他们是有意义的。然而,lon_idx_max lon_idx_min高于len(威尼斯平底渔船)(11556 vs 10801和11604年)。我想这是问题,但我不能找到它的原因。一个额外的问题:2 -为什么如果我翻转经度和纬度给我一些数据吗? Note that the data do not make sense (-4000ish meters) in the Adriatic Sea...
Baidu
map