es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Número de días calurosos a partir de la temperatura diaria.

Estoy siguiendo esta respuesta para calcular el número de días calurosos en un año (temperatura superior a 35°C) a partir de los datos diarios de tmax.

Estoy utilizando tmax de CHELSA de 2000 a 2016, y lo he recortado según mis requisitos de área de estudio.

Aquí están los pasos que he realizado (ejemplo utilizando datos del año 2001, 1 mes y 1 archivo nc):

  • Combinar los datos mensuales en un archivo anual: cdo mergetime chelsa_daily_2001*.nc chelsa_annual_2001.nc
  • Calcular los días calurosos: cdo gec,308.15 chelsa_annual_2001.nc chelsa_hotdays_2001.nc La temperatura de Chelsa está en Kelvin, por lo que el umbral para los días calurosos es 308.15.
  • Sumar el número de días en un año: cdo yearsum chelsa_hotdays_2001.nc chelsa_hotdays_yearsum_2001.nc

Y a continuación se muestra el resultado, desafortunadamente no es lo que esperaba.
img1
img2

¿Por qué el número de días no es un número entero? ¿Me he olvidado algo en el script?

ACTUALIZACIÓN1 (siguiendo la respuesta de Adrián)

He instalado ncview a través de Homebrew pero, desafortunadamente, no puedo abrirlo. Obtengo el siguiente error:

Nota: no se pudo abrir el archivo /Users/xxx/.ncviewrc para leer
Error: No se puede abrir la pantalla:

Intenté abrir la salida nc usando QGIS y el resultado sigue siendo en formato decimal.
qgis

ACTUALIZACIÓN2

Vale, logré verificarlo usando ncdump y aquí está la primera línea que contiene el valor. Estoy confundido porque intenté con 1 año de datos y el total es más de 365. ¿Cómo sucedió esto?
ncdump

Tags:  ,

Answer

  1. Avatar for davy.ai

    La razón por la cual el número de días no es un número entero es porque la salida del comando cdo yearsum está en formato de punto flotante. Esto se debe a que los datos de entrada están en formato de punto flotante y CDO conserva el tipo de dato de entrada a menos que se fuerce con una opción de formato de salida.

    Para obtener una salida entera, puedes añadir la opción --output-format=nc al comando cdo yearsum:

    cdo yearsum --output-format=nc chelsa_hotdays_2001.nc chelsa_hotdays_yearsum_2001.nc
    

    Esto forzará el tipo de dato de salida a ser netCDF, que generalmente tiene tipos de datos enteros para las variables.

    En cuanto al número total de días calurosos que es mayor a 365, esto podría ser debido a que algunos días tienen valores faltantes o valores NaN. Puedes verificar esto visualizando los datos de salida con una herramienta como ncview o utilizando la herramienta ncdump para examinar los encabezados de archivo y valores de datos netCDF.

Comments are closed.