Eliminar datos de un archivo HDF5

Tengo un archivo HDF5 con un conjunto de datos unidimensional (N x 1) de elementos compuestos, en realidad es una serie de tiempo. Los datos se recopilan primero fuera de línea en el archivo HFD5 y luego se analizan. Durante el análisis, la mayoría de los datos resultan ser poco interesantes, y solo algunas partes son interesantes. Dado que los conjuntos de datos pueden ser bastante grandes, me gustaría deshacerme de los elementos poco interesantes, manteniendo los interesantes. Por ejemplo, mantenga los elementos 0-100 y 200-300 y 350-400 de un conjunto de datos de 500 elementos, voltee el resto. ¿Pero cómo?

¿Alguien tiene experiencia en cómo lograr esto con HDF5? Aparentemente se podría hacer de varias maneras, al menos:

(Solución obvia), cree un nuevo archivo nuevo y escriba los datos necesarios allí, elemento por elemento. A continuación, elimine el archivo antiguo.O, en el archivo anterior, cree un nuevo conjunto de datos nuevo, escriba los datos necesarios allí, desvincule el conjunto de datos anterior con H5Gunlink () y elimine el espacio libre no reclamado ejecutando el archivo a través de h5repack.O mueva los elementos interesantes dentro del conjunto de datos existente hacia el inicio (por ejemplo, mueva los elementos 200-300 a las posiciones 101-201 y los elementos 350-400 a las posiciones 202-252). Luego llame a H5Dset_extent () para reducir el tamaño del conjunto de datos. Entonces tal vez ejecute h5repack para liberar el espacio libre.

Dado que los archivos pueden ser bastante grandes, incluso cuando los elementos no interesantes se han eliminado, prefiero no volver a escribirlos (llevaría mucho tiempo), pero parece que se requiere liberar el espacio libre. ¿Alguna pista de los expertos HDF5?

Respuestas a la pregunta(2)

Su respuesta a la pregunta