Skip to content

Commit

Permalink
HDF5 support for view*data; fil2h5; Removal of warnings.
Browse files Browse the repository at this point in the history
  • Loading branch information
jayanthc committed Jan 27, 2017
1 parent 5f24b39 commit 9e0c2de
Show file tree
Hide file tree
Showing 15 changed files with 1,338 additions and 45 deletions.
48 changes: 31 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ else
CFLAGS_INC_PGPLOT =# define if needed (as -I[...])
endif
CFLAGS_INC_FFTW3 =# define if needed (as -I[...])
CFLAGS_INC_HDF5 =-I/usr/local/hdf5/include
ifeq ($(shell uname), Darwin)
CFLAGS_INC_CFITSIO =-I/opt/local/include# define if needed (as -I[...])
else
CFLAGS_INC_CFITSIO =# define if needed (as -I[...])
endif

CFLAGS = -std=gnu99 -pedantic -Wall $(CFLAGS_INC_PGPLOT) $(CFLAGS_INC_FFTW3) \
$(CFLAGS_INC_CFITSIO)
$(CFLAGS_INC_CFITSIO) $(CFLAGS_INC_HDF5)
CFLAGS_C_DEBUG = $(CFLAGS) -g -c
CFLAGS_C_RELEASE = $(CFLAGS) -O3 -c
ifeq ($(OPT_DEBUG), yes)
Expand Down Expand Up @@ -50,13 +51,15 @@ else
LFLAGS_PGPLOT_DIR =# define if not in $PATH (as -L[...])
endif
LFLAGS_FFTW3_DIR =# define if not in $PATH (as -L[...])
LFLAGS_HDF5_DIR =-L/usr/local/hdf5/lib
ifeq ($(shell uname), Darwin)
LFLAGS_CFITSIO_DIR =-L/opt/local/lib# define if not in $PATH (as -L[...])
else
LFLAGS_CFITSIO_DIR =# define if not in $PATH (as -L[...])
endif
LFLAGS_FFTW3 = $(LFLAGS_FFTW3_DIR) -lfftw3f
LFLAGS_CFITSIO = $(LFLAGS_CFITSIO_DIR) -lcfitsio
LFLAGS_HDF5 = $(LFLAGS_HDF5_DIR) -lhdf5
# in some cases, linking needs to be done with the X11 library, in which case
# append '-lX11' (and possibly the path to the library) to the line below.
# libgfortran may also be needed in some case, in which case append
Expand Down Expand Up @@ -106,6 +109,8 @@ all: yapp_makever \
yapp_dat2tim \
yapp_tim2dat.o \
yapp_tim2dat \
yapp_fil2h5.o \
yapp_fil2h5 \
yapp_subtract.o \
yapp_subtract \
yapp_siftpulses.o \
Expand Down Expand Up @@ -136,7 +141,7 @@ yapp_viewmetadata.o: $(SRCDIR)/yapp_viewmetadata.c $(SRCDIR)/yapp.h

yapp_viewmetadata: $(IDIR)/yapp_viewmetadata.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

colourmap.o: $(SRCDIR)/colourmap.c $(SRCDIR)/colourmap.h
$(CC) $(CFLAGS_C) $< -o $(IDIR)/$@
Expand All @@ -147,15 +152,15 @@ yapp_viewdata.o: $(SRCDIR)/yapp_viewdata.c $(SRCDIR)/yapp.h \

yapp_viewdata: $(IDIR)/yapp_viewdata.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_ft.o: $(SRCDIR)/yapp_ft.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_ft: $(IDIR)/yapp_ft.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_FFTW3) \
$(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_dedisperse.o: $(SRCDIR)/yapp_dedisperse.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DDEBUG) $(DFC) $(SRCDIR)/yapp_dedisperse.c \
Expand All @@ -164,15 +169,15 @@ yapp_dedisperse.o: $(SRCDIR)/yapp_dedisperse.c $(SRCDIR)/yapp.h
yapp_dedisperse: $(IDIR)/yapp_dedisperse.o
$(CC) $(IDIR)/yapp_dedisperse.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o \
$(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_smooth.o: $(SRCDIR)/yapp_smooth.c $(SRCDIR)/yapp.h \
$(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_smooth: $(IDIR)/yapp_smooth.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_filter.o: $(SRCDIR)/yapp_filter.c $(SRCDIR)/yapp.h \
$(SRCDIR)/yapp_sigproc.h
Expand All @@ -181,80 +186,88 @@ yapp_filter.o: $(SRCDIR)/yapp_filter.c $(SRCDIR)/yapp.h \
yapp_filter: $(IDIR)/yapp_filter.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_FFTW3) \
$(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_fold.o: $(SRCDIR)/yapp_fold.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_fold: $(IDIR)/yapp_fold.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_add.o: $(SRCDIR)/yapp_add.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_add: $(IDIR)/yapp_add.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_subtract.o: $(SRCDIR)/yapp_subtract.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_subtract: $(IDIR)/yapp_subtract.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_fits2fil.o: $(UTILDIR)/yapp_fits2fil.c $(UTILDIR)/yapp_fits2fil.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h $(SRCDIR)/yapp_psrfits.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@

yapp_fits2fil: $(UTILDIR)/yapp_fits2fil.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_dat2tim.o: $(UTILDIR)/yapp_dat2tim.c $(UTILDIR)/yapp_dat2tim.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@

yapp_dat2tim: $(UTILDIR)/yapp_dat2tim.o $(SRCDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_tim2dat.o: $(UTILDIR)/yapp_tim2dat.c $(UTILDIR)/yapp_tim2dat.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@

yapp_tim2dat: $(UTILDIR)/yapp_tim2dat.o $(SRCDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_fil2h5.o: $(UTILDIR)/yapp_fil2h5.c $(UTILDIR)/yapp_fil2h5.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@

yapp_fil2h5: $(UTILDIR)/yapp_fil2h5.o $(SRCDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_siftpulses.o: $(SRCDIR)/yapp_siftpulses.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_siftpulses: $(IDIR)/yapp_siftpulses.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_stacktim.o: $(SRCDIR)/yapp_stacktim.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_stacktim: $(IDIR)/yapp_stacktim.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_split.o: $(SRCDIR)/yapp_split.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@

yapp_split: $(IDIR)/yapp_split.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_ym2fil.o: $(UTILDIR)/yapp_ym2fil.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@

yapp_ym2fil: $(UTILDIR)/yapp_ym2fil.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) -o $(BINDIR)/$@
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

# install the man pages
install:
Expand Down Expand Up @@ -285,6 +298,7 @@ clean:
$(DELCMD) $(UTILDIR)/yapp_fits2fil.o
$(DELCMD) $(UTILDIR)/yapp_dat2tim.o
$(DELCMD) $(UTILDIR)/yapp_tim2dat.o
$(DELCMD) $(UTILDIR)/yapp_fil2h5.o
$(DELCMD) $(IDIR)/yapp_subtract.o
$(DELCMD) $(IDIR)/yapp_siftpulses.o
$(DELCMD) $(IDIR)/yapp_stacktim.o
Expand Down
1 change: 1 addition & 0 deletions bin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
2 changes: 2 additions & 0 deletions src/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
yapp_version.c
*.o
26 changes: 26 additions & 0 deletions src/yapp.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
#include <float.h>

#include <cpgplot.h>
#include <hdf5.h>


/**
* @defgroup YAPPRet Standard YAPP return values.
Expand Down Expand Up @@ -62,6 +64,7 @@
#define YAPP_FORMATSTR_DTS_DAT "dat"
#define YAPP_FORMATSTR_DTS_DAT_INF "inf"
#define YAPP_FORMATSTR_YM "ym"
#define YAPP_FORMATSTR_HDF5 "h5"
/* @} */

#define EXT_PSRFITS ".fits"
Expand All @@ -75,13 +78,15 @@
#define EXT_INF ".inf"
#define EXT_YM ".ym"
#define EXT_YAPP_PROFILE ".yp"
#define EXT_HDF5 ".h5"

enum tagFileFormats
{
/* dynamic spectrum formats */
YAPP_FORMAT_SPEC = 0, /* Desh's specfile format */
YAPP_FORMAT_PSRFITS, /* PSRFITS spectrometer data */
YAPP_FORMAT_FIL, /* SIGPROC filterbank file format */
YAPP_FORMAT_HDF5, /* HDF5 file containing dynamic spectrum */
/* dedispersed time series formats */
YAPP_FORMAT_DTS_DDS, /* Desh's dedispersed data format */
YAPP_FORMAT_DTS_TIM, /* SIGPROC time series format */
Expand Down Expand Up @@ -521,6 +526,15 @@ int YAPP_ReadSIGPROCHeaderFile(char *pcFileSpec, YUM_t *pstYUM);
*/
int YAPP_ReadPRESTOHeaderFile(char *pcFileData, YUM_t *pstYUM);

/**
* Read configuration information corresponding to an HDF5 ('.h5') file
*
* @param[in] pcFileSpec Data filename
* @param[in] iFormat Data file type
* @param[out] pstYUM YUM structure
*/
int YAPP_ReadHDF5Metadata(char *pcFileSpec, int iFormat, YUM_t *pstYUM);

/**
* Read one block of data from disk
*
Expand All @@ -533,6 +547,18 @@ int YAPP_ReadData(FILE *pFData,
float fSampSize,
int iTotSampsPerBlock);

/**
* Read one block of data from HDF5 file on disk
*/
int YAPP_ReadHDF5Data(hid_t hDataspace,
hid_t hDataset,
hsize_t *hOffset,
hsize_t *hCount,
hid_t hMemDataspace,
float *pfBuf,
float fSampSize,
int iTotSampsPerBlock);

int YAPP_WriteMetadata(char *pcFileData, int iFormat, YUM_t stYUM);

/**
Expand Down
Loading

0 comments on commit 9e0c2de

Please sign in to comment.