def buildHDF(inputFile, inputData, inputLabels, debug=False): """Creates a HDF file based on the data given, two possible datasets can be built, 25band set and 32 band set""" #Generate HDF5 file for input data stored as a list of datacube HDFile = dcb_HDF5.openTable(inputFile) data_gp = dcb_HDF5.build25BandGroup(HDFile, "data") #determine the number of bands in the data, as well as band wavelenghts bands = inputData.shape() data_gp.attrs["RPArrowPrism"] = str(bands[2]) + ' Bands' label_gp = dcb_HDF5.build25BandGroup(HDFile, 'label') for p, data in enumerate( inputData ): #with fix in create_bsq_dataset, now masks and data should be in same data struct if debug: if p == len(inputData) - 1: print(p, inputData[p].Name, "LAST ITEM") if (inputData[p].Name == data.Name): print(inputData[p].Name) labelSet = dcb_HDF5.addDataset(label_gp, inputData[p].Name, inputData[p].MaskData, debug) dataSet = dcb_HDF5.addDataset(data_gp, inputData[p].Name, inputData[p].HSdata, debug) dataSet.attrs["units"] = "AU" labelSet.attrs["Parent_DCB"] = inputData[p].Name dcb_HDF5.saveClose(HDFile) #add label to file under correct filename
def buildHDF(inputFile, inputData, inputLabels, debug=False): """Creates a HDF file based on the data given, two possible datasets can be built, 25band set and 32 band set""" # Generate HDF5 file for input data stored as a list of datacube HDFile = dcb_HDF5.openTable(inputFile) data_gp = dcb_HDF5.build25BandGroup(HDFile, "data") # determine the number of bands in the data, as well as band wavelenghts bands = inputData.shape() data_gp.attrs["RPArrowPrism"] = str(bands[2]) + " Bands" label_gp = dcb_HDF5.build25BandGroup(HDFile, "label") for p, data in enumerate( inputData ): # with fix in create_bsq_dataset, now masks and data should be in same data struct if debug: if p == len(inputData) - 1: print(p, inputData[p].Name, "LAST ITEM") if inputData[p].Name == data.Name: print(inputData[p].Name) labelSet = dcb_HDF5.addDataset(label_gp, inputData[p].Name, inputData[p].MaskData, debug) dataSet = dcb_HDF5.addDataset(data_gp, inputData[p].Name, inputData[p].HSdata, debug) dataSet.attrs["units"] = "AU" labelSet.attrs["Parent_DCB"] = inputData[p].Name dcb_HDF5.saveClose(HDFile) # add label to file under correct filename
def lookahead(iterable): it = iter(iterable) last = next(it) #it.next() in python 2 for val in it: yield last, False last = val yield last, True #all_dataCubes = [d for d in dataList] first = True hsList = [] HDFile = dcb_HDF5.createTable("HS_thesis_data_v3-1.h5") d_group = dcb_HDF5.build25bandGroup(HDFile, "Data") d_group.attrs["RPArrowPrism"] = '25 Bands' lSet = dcb_HDF5.addDataset(HDFile,"Prism25_Band_Lambdas",ll) lSet.attrs["units"] = "nanometers" m_group = dcb_HDF5.build25bandGroup(HDFile, "Masks") m_group.attrs["MaskFmt"]= "logical" for p, data in enumerate(dataList): print(maskList[p].Name, data.Name) #dcbGroup = dcb_HDF5.build25bandGroup(d_group,dataList[p].Name) if maskList[p].Name == data.Name: #print('MaskData size ', np.shape(maskList[p])) #print(data.Lambdas) dataList[p].MaskData = maskList[p].MaskData maskSet = dcb_HDF5.addDataset(m_group,maskList[p].Name,maskList[p].MaskData) maskSet.attrs["Parent_DCB"] = dataList[p].Name #data.setMaskData(maskList[p].MaskData) #hsList.append(data)