bool rspfScalarRemapper::loadState(const rspfKeywordlist& kwl, const char* prefix) { rspfImageSourceFilter::loadState(kwl, prefix); if (kwl.getErrorStatus() == rspfErrorCodes::RSPF_ERROR) { if(traceDebug()) { rspfNotify(rspfNotifyLevel_WARN) << "rspfScalarRemapper::loadState\n" << " ERROR detected in keyword list! State not loaded." << std::endl; } return false; } int scalar = rspfScalarTypeLut::instance()->getEntryNumber(kwl, prefix); if (scalar != rspfLookUpTable::NOT_FOUND) { setOutputScalarType(static_cast<rspfScalarType>(scalar)); } return true; }
void rspfScalarRemapper::setOutputScalarType(rspfString scalarType) { int scalar = rspfScalarTypeLut::instance()->getEntryNumber(scalarType.c_str()); if (scalar != rspfLookUpTable::NOT_FOUND) { setOutputScalarType(static_cast<rspfScalarType>(scalar)); } else { if(traceDebug()) { rspfNotify(rspfNotifyLevel_WARN) << "rspfScalarRemapper ERROR:" << "\nUnknown scalar type: " << scalarType.c_str() << std::endl; } } }
bool ossimHdf5SubDataset::open() { static const char MODULE[] = "ossimHdf5SubDataset::open"; bool result = false; m_fid = H5Fopen(m_fileName.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); if (m_fid < 0) { H5Fclose(m_fid); return false; } // Third arg added for compile fix but not checked. (drb) m_dataset_id = H5Dopen(m_fid, m_dataset_name, 0); if (m_dataset_id < 0) { close(); return false; } m_dataType = H5Dget_type(m_dataset_id); m_native = H5Tget_native_type(m_dataType, H5T_DIR_ASCEND ); setOutputScalarType(); H5Tget_class(m_dataType); H5Tget_order(m_dataType); m_size = H5Tget_size(m_dataType); m_dataspace = H5Dget_space(m_dataset_id); /* dataspace handle */ m_rank = H5Sget_simple_extent_ndims(m_dataspace); if (m_rank == 4) { hsize_t dims_out[4]; herr_t status_n = H5Sget_simple_extent_dims(m_dataspace, dims_out, NULL); if (status_n >= 0) { m_numberOfBands = dims_out[2]; m_numberOfLines = dims_out[0]; m_numberOfSamples = dims_out[1]; } } else if (m_rank == 3) { hsize_t dims_out[3]; herr_t status_n = H5Sget_simple_extent_dims(m_dataspace, dims_out, NULL); if (status_n >= 0) { if (dims_out[2] < dims_out[0] && dims_out[2] < dims_out[1]) { m_numberOfBands = dims_out[2]; m_numberOfLines = dims_out[0]; m_numberOfSamples = dims_out[1]; } else { m_numberOfBands = dims_out[0]; m_numberOfLines = dims_out[1]; m_numberOfSamples = dims_out[2]; } } } else if (m_rank == 2) { hsize_t dims_out[2]; herr_t status_n = H5Sget_simple_extent_dims(m_dataspace, dims_out, NULL); if (status_n >= 0) { m_numberOfBands = 1; m_numberOfLines = dims_out[0]; m_numberOfSamples = dims_out[1]; } } else if (m_rank == 1) { hsize_t dims_out[1]; herr_t status_n = H5Sget_simple_extent_dims(m_dataspace, dims_out, NULL); if (status_n >= 0) { m_numberOfBands = 0; m_numberOfLines = dims_out[0]; m_numberOfSamples = 0; } } else { m_numberOfBands = 0; m_numberOfLines = 0; m_numberOfSamples = 0; } result = initMeta(); if (traceDebug()) { ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " exit status = " << (result?"true":"false\n") << std::endl; } return result; }