Python 删除所有特定变量的坐标 - netcdf

标签 python netcdf

我有几个 netcdf 文件,想要删除具有某些特征的数据并保存到新的 netcdf 文件。

该文件具有纬度、经度和时间坐标,以及可变的温度和风。这个想法是,如果风变量小于 6 m/s,则风变量和温度变量的所有信息(该纬度、经度和时间)都将被删除。我怎样才能在Python中做到这一点?

目前我已经拿到了

编辑:文件.nc

from netCDF4 import Dataset
from datetime import * 
import os

#-----------------------------------------------------------------------------------------------------------------------------------
path = '/home/Downloads/Arquivos_GOES_2018_OSISAF_NC/'

data_ini = datetime(2018,1,1,1,0,0) 
data_end = datetime(2018,7,1,1,0,0) 

IDval = 6 # minimo quality_level aceito

#-----------------------------------------------------------------------------------------------------------------------------------
DateTimeNow = data_ini 

while DateTimeNow<=data_end:


   namefile_net = DateTimeNow.strftime('%Y%m%d%H%M')+'00-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_'+DateTimeNow.strftime('%Y%m%d_%H%M')+'00-v02.0-fv01.0.nc'


   if os.path.isfile(path+namefile_net) == True:


      data_net = Dataset(path+namefile_net)
      tsm = data_net.variables['sea_surface_temperature'][0,:]-273.15 
      lat = data_net.variables['lat'][:]
      lon = data_net.variables['lon'][:]
      wind = data_net.variables['wind_speed'][0,:]

      wind = np.where(qlv.mask==True,-1.0, qlv) 

      lon, lat = np.meshgrid(lon, lat) # criar uma matriz com lat e lon


      tsm_area = tsm[yid,xid] 
      lon_area = lon[yid,xid] 
      lat_area = lat[yid,xid] 
      wind_area = wind[yid,xid] 

      if np.sum(wind>=IDval) > 0:

         lon_area = np.where(qlv_area<IDval,-999.9,lon_area)
         lat_area = np.where(qlv_area<IDval,-999.9,lat_area)

         yid2, xid2 = seach_point(lon_area, lat_area, lon_point, lat_point)
         ```


最佳答案

看来你的数据已经在 numpy 中了。这是一个想法(没有你的 cdf,所以让我们假设第 3 列是风):

>>> y = np.zeros((4,4))
>>> data = np.zeros((4,4))
>>> data[:,3] = [1,12, 4, 9]
>>> data
array([[  0.,   0.,   0.,   1.],
       [  0.,   0.,   0.,  12.],
       [  0.,   0.,   0.,   4.],
       [  0.,   0.,   0.,   9.]])
>>> data[ data[:,3] > 6]
array([[  0.,   0.,   0.,  12.],
       [  0.,   0.,   0.,   9.]])

关于Python 删除所有特定变量的坐标 - netcdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58122777/

相关文章:

python - 对刽子手游戏的 for 循环感到困惑?

python - 如何使用 rpy2 访问 R 包的内部函数?

Python 的 filter() 的 Java 模拟?

edit - 删除 NetCDF 文件中的维度

python - 将 xarray 数据变量重新分配给 xarray 坐标

python - 使 Django forms.py 变干的好习惯

python - 在 Ubuntu 14.04 上使用 python 读取音频时出错

r - 使用R打开grib文件

linux - 错误 : undefined reference to NetCDF functions

Fortran - 编译错误 - 必须具有显式类型