Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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)