He instalado con éxito el paquete hdf5 en una máquina Linux. Ahora deseo leer los datos de una gran cantidad de archivos hdf5 en un ciclo y crear una serie temporal. Cada archivo hdf5 corresponde a una hora diferente. Después de leer en muchos archivos (poco más de 1000), R dice que hay demasiados archivos abiertos. Me gustaría encontrar una forma de cerrarlos para que el ciclo pueda continuar. Aquí está el código:¿Cómo debo cerrar un archivo hdf5 después de cargar en R?
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
El paquete contiene el hdf5 hdf5cleanup función, que parece que va a limpiar las cosas, sino que requiere un identificador de archivo. El fid en mi código anterior devuelve NULL. Intenta insertar el nombre del archivo, es decir, hdf5cleanup (fname) lleva a R a abortar. Quizás se supone que hdf5load cierra el archivo y falla. Si ese es el caso, ¿hay alguna forma de cerrar la conexión emitiendo un comando de sistema() o de lo contrario?
Incidentemente, showConnections() no devuelve nada, bueno, literalmente solo los nombres de encabezado "texto de modo de clase de descripción que puede leer puede escribir".
Mi pregunta en resumen: ¿Cómo cierro la conexión a un archivo hdf5 en R después de cargarlo con hdf5load()?
I 'R' se cancela, debe ponerse en contacto con el responsable del paquete' hdf5' porque eso no debería suceder. El mantenedor también puede decirle la invocación correcta para cerrar los archivos. –