用np.where()根据经纬度截取nc文件中的数据
时间: 2024-02-27 08:55:27 浏览: 93
可以使用`numpy`中的`where()`方法根据经纬度截取`netCDF`文件中的数据。以下是一个示例代码:
```python
import netCDF4 as nc
import numpy as np
input_data = r'F:\科研\温盐反演\ARGO数据\2020\20200102_prof.nc'
data = nc.Dataset(input_data)
# 获取经度和纬度数据
lon_data = data.variables['LONGITUDE'][:]
lat_data = data.variables['LATITUDE'][:]
# 假设要截取的经纬度范围为[30, 40]°N,[145, 155]°E
lat_range = (30 <= lat_data) & (lat_data <= 40)
lon_range = (145 <= lon_data) & (lon_data <= 155)
# 使用where()方法根据经纬度截取数据
temp = data.variables['TEMP']
temp_subset = np.where(lon_range, np.where(lat_range, temp[:], np.nan), np.nan)
# 打印截取后的数据
print(temp_subset)
```
在这里,我们首先使用`netCDF4`库打开`netCDF`文件,然后获取经度和纬度数据。接着,我们使用`numpy`中的`where()`方法根据经纬度范围分别创建布尔型数组`lat_range`和`lon_range`。最后,我们使用两个嵌套的`where()`方法根据经纬度范围选择`temp`数据,将不在范围内的值设为`nan`。
阅读全文