Saltar al contenido

Python: Reemplazo de valores en el archivo netcdf usando netCDF4

Te sugerimos que revises esta respuesta en un ambiente controlado antes de pasarlo a producción, saludos.

Solución:

Si desea mantener los datos en el objeto variable netCDF, esto debería funcionar:

import netCDF4

dset = netCDF4.Dataset('test.nc', 'r+')

dset['var'][:][dset['var'][:] < 0] = -1

dset.close() # if you want to write the variable back to disk

Si no desea volver a escribir en el disco, continúe y obtenga el numpy array y cortar/asignarle:

data = dset['sea_ice_cover'][:]  # data is a numpy array
data[data < 0] = -1

A mi no me funciona la respuesta anterior, lo resolvi con:

dset = netCDF4.Dataset('test.nc','r+')
dset.variables['var'][:]
... your changes ...
dset.close() 

Solución 1: Matriz de Python

Esta solución usa xarray para leer y escribir el archivo netcdf y la función del paquete donde para restablecer condicionalmente los valores.

import xarray as xr
ds=xr.open_dataset('test.nc')
ds['var']=xr.where((ds['var']<0),-1,ds['var'])
ds.to_netcdf('modified_test.nc') # rewrite to netcdf

Soln 2: NCO desde la línea de comandos

Sé que el OP quiere una solución de python, pero en caso de que alguien quiera realizar esta tarea solo rápidamente desde la línea de comandos, también hay una forma de hacerlo con nco:

ncap2 -s 'where(x<0.) x=-1;' input.nc -O output.nc

según esta publicación: establecer valores por debajo de un umbral para el umbral en un archivo netcdf

Si conservas alguna perplejidad o forma de regenerar nuestro crónica te inspiramos realizar una crónica y con mucho gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *