DiffractionExperiment: Clean-up Compression and UnitCell
This commit is contained in:
@@ -218,8 +218,21 @@ DiffractionExperiment &DiffractionExperiment::MaskModuleEdges(bool input) {
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::Compression(JFJochProtoBuf::Compression input) {
|
||||
dataset.set_compression(input);
|
||||
DiffractionExperiment &DiffractionExperiment::Compression(CompressionAlgorithm input) {
|
||||
switch (input) {
|
||||
case CompressionAlgorithm::NO_COMPRESSION:
|
||||
dataset.set_compression(JFJochProtoBuf::NO_COMPRESSION);
|
||||
break;
|
||||
case CompressionAlgorithm::BSHUF_LZ4:
|
||||
dataset.set_compression(JFJochProtoBuf::BSHUF_LZ4);
|
||||
break;
|
||||
case CompressionAlgorithm::BSHUF_ZSTD:
|
||||
dataset.set_compression(JFJochProtoBuf::BSHUF_ZSTD);
|
||||
break;
|
||||
case CompressionAlgorithm::BSHUF_ZSTD_RLE:
|
||||
dataset.set_compression(JFJochProtoBuf::BSHUF_ZSTD_RLE);
|
||||
break;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -262,11 +275,6 @@ DiffractionExperiment& DiffractionExperiment::QSpacingForRadialInt_recipA(float
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::SetUnitCell(const JFJochProtoBuf::UnitCell &cell) {
|
||||
*dataset.mutable_unit_cell() = cell;
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::SetUnitCell(const UnitCell &cell) {
|
||||
JFJochProtoBuf::UnitCell tmp;
|
||||
tmp.set_a(cell.a);
|
||||
@@ -275,7 +283,8 @@ DiffractionExperiment &DiffractionExperiment::SetUnitCell(const UnitCell &cell)
|
||||
tmp.set_alpha(cell.alpha);
|
||||
tmp.set_beta(cell.beta);
|
||||
tmp.set_gamma(cell.gamma);
|
||||
return SetUnitCell(tmp);
|
||||
*dataset.mutable_unit_cell() = tmp;
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::SetUnitCell() {
|
||||
@@ -496,18 +505,12 @@ int64_t DiffractionExperiment::GetDataFileCount() const {
|
||||
return dataset.data_file_count();
|
||||
}
|
||||
|
||||
JFJochProtoBuf::Compression DiffractionExperiment::GetCompressionAlgorithm() const {
|
||||
switch (GetDetectorMode()) {
|
||||
case DetectorMode::Conversion:
|
||||
return dataset.compression();
|
||||
default:
|
||||
// Compression not supported for raw data and pedestal
|
||||
return JFJochProtoBuf::NO_COMPRESSION;
|
||||
}
|
||||
}
|
||||
CompressionAlgorithm DiffractionExperiment::GetCompressionAlgorithm() const {
|
||||
if (GetDetectorMode() != DetectorMode::Conversion)
|
||||
// Compression not supported for raw data and pedestal
|
||||
return CompressionAlgorithm::NO_COMPRESSION;
|
||||
|
||||
CompressionAlgorithm DiffractionExperiment::GetCompressionAlgorithmEnum() const {
|
||||
switch (GetCompressionAlgorithm()) {
|
||||
switch (dataset.compression()) {
|
||||
case JFJochProtoBuf::BSHUF_LZ4:
|
||||
return CompressionAlgorithm::BSHUF_LZ4;
|
||||
case JFJochProtoBuf::BSHUF_ZSTD:
|
||||
@@ -578,7 +581,7 @@ int64_t DiffractionExperiment::GetFirstModuleOfDataStream(uint16_t data_stream)
|
||||
}
|
||||
|
||||
int64_t DiffractionExperiment::GetMaxCompressedSize() const {
|
||||
return MaxCompressedSize(GetCompressionAlgorithmEnum(),GetPixelsNum(), GetPixelDepth());
|
||||
return MaxCompressedSize(GetCompressionAlgorithm(), GetPixelsNum(), GetPixelDepth());
|
||||
}
|
||||
|
||||
int64_t DiffractionExperiment::GetPixelsNum() const {
|
||||
@@ -829,12 +832,31 @@ void DiffractionExperiment::LoadDatasetSettings(const JFJochProtoBuf::DatasetSet
|
||||
FilePrefix(settings.file_prefix());
|
||||
DataFileCount(settings.data_file_count());
|
||||
if (settings.has_unit_cell())
|
||||
SetUnitCell(settings.unit_cell());
|
||||
SetUnitCell(UnitCell(settings.unit_cell().a(),
|
||||
settings.unit_cell().b(),
|
||||
settings.unit_cell().c(),
|
||||
settings.unit_cell().alpha(),
|
||||
settings.unit_cell().beta(),
|
||||
settings.unit_cell().gamma()));
|
||||
else
|
||||
SetUnitCell();
|
||||
SpaceGroupNumber(settings.space_group_number());
|
||||
SampleName(settings.sample_name());
|
||||
Compression(settings.compression());
|
||||
switch (settings.compression()) {
|
||||
case JFJochProtoBuf::BSHUF_LZ4:
|
||||
Compression(CompressionAlgorithm::BSHUF_LZ4);
|
||||
break;
|
||||
case JFJochProtoBuf::BSHUF_ZSTD:
|
||||
Compression(CompressionAlgorithm::BSHUF_ZSTD);
|
||||
break;
|
||||
case JFJochProtoBuf::BSHUF_ZSTD_RLE:
|
||||
Compression(CompressionAlgorithm::BSHUF_ZSTD_RLE);
|
||||
break;
|
||||
default:
|
||||
case JFJochProtoBuf::NO_COMPRESSION:
|
||||
Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
break;
|
||||
}
|
||||
SaveCalibration(settings.save_calibration());
|
||||
if (settings.summation() == 0)
|
||||
Summation(1);
|
||||
@@ -943,7 +965,7 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const {
|
||||
message.pixel_size_y = GetPixelSize_mm() * 1e-3f;
|
||||
message.sensor_material = SENSOR_MATERIAL;
|
||||
message.sensor_thickness = SENSOR_THICKNESS_IN_UM * 1e-6f;
|
||||
message.compression_algorithm = GetCompressionAlgorithmEnum();
|
||||
message.compression_algorithm = GetCompressionAlgorithm();
|
||||
message.compression_block_size = JFJochBitShuffleCompressor::DefaultBlockSize;
|
||||
message.pixel_bit_depth = GetPixelDepth() * 8;
|
||||
message.storage_cell_number = GetStorageCellNumber();
|
||||
|
||||
Reference in New Issue
Block a user