improved docu for HDF4/5.
This commit is contained in:
3
src/external/nexus/Usage.md
vendored
3
src/external/nexus/Usage.md
vendored
@@ -718,7 +718,8 @@ PNeXus(const std::string& filename, bool printDebug = false);
|
|||||||
| Method | Description |
|
| Method | Description |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
| `GetFileName()` | Get the NeXus filename |
|
| `GetFileName()` | Get the NeXus filename |
|
||||||
| `GetHdf5Version()` / `GetHdf4Version()` | Get HDF library version |
|
| `GetHdf5LibVersion()` / `GetHdf4LibVersion()` | Get HDF library version (runtime) |
|
||||||
|
| `GetHdf5Version()` / `GetHdf4Version()` | Get HDF version from the file |
|
||||||
| `GetNeXusVersion()` | Get NeXus format version |
|
| `GetNeXusVersion()` | Get NeXus format version |
|
||||||
| `GetIdfVersion()` | Get IDF version (1 or 2) |
|
| `GetIdfVersion()` | Get IDF version (1 or 2) |
|
||||||
|
|
||||||
|
|||||||
8
src/external/nexus/examples/hdf4/main.cpp
vendored
8
src/external/nexus/examples/hdf4/main.cpp
vendored
@@ -324,14 +324,14 @@ void h4nexus_writeTest(const nxH4::PNeXus *nxs, const std::string& outFileName,
|
|||||||
"units", std::string("picoseconds"));
|
"units", std::string("picoseconds"));
|
||||||
|
|
||||||
// spectrum_index
|
// spectrum_index
|
||||||
for (unsigned int i=0; i<66000; i++)
|
for (unsigned int i=0; i<16; i++)
|
||||||
ival.push_back(i+1);
|
ival.push_back(i+1);
|
||||||
nxs_out->AddDataset<int>("/raw_data_1/instrument/detector_1/spectrum_index", ival, {66000}, nxH4::H4DataType::INT32);
|
nxs_out->AddDataset<int>("/raw_data_1/instrument/detector_1/spectrum_index", ival, {16}, nxH4::H4DataType::INT32);
|
||||||
ival.clear();
|
ival.clear();
|
||||||
|
|
||||||
// dead_time
|
// dead_time
|
||||||
std::vector<float> deadTime(66000, 0.0);
|
std::vector<float> deadTime(16, 0.0);
|
||||||
nxs_out->AddDataset<float>("/raw_data_1/instrument/detector_1/dead_time", deadTime, {66000}, nxH4::H4DataType::FLOAT32);
|
nxs_out->AddDataset<float>("/raw_data_1/instrument/detector_1/dead_time", deadTime, {16}, nxH4::H4DataType::FLOAT32);
|
||||||
|
|
||||||
// attributes dead_time
|
// attributes dead_time
|
||||||
nxs_out->AddDatasetAttribute<float>("/raw_data_1/instrument/detector_1/dead_time", "available", 0);
|
nxs_out->AddDatasetAttribute<float>("/raw_data_1/instrument/detector_1/dead_time", "available", 0);
|
||||||
|
|||||||
14
src/external/nexus/examples/hdf5/docu/Usage.md
vendored
14
src/external/nexus/examples/hdf5/docu/Usage.md
vendored
@@ -33,6 +33,7 @@ h5nexus --fn <input_file> [options]
|
|||||||
| `--out <file>` | Output NeXus HDF5 file (enables write mode) |
|
| `--out <file>` | Output NeXus HDF5 file (enables write mode) |
|
||||||
| `-d, --debug` | Enable debug output |
|
| `-d, --debug` | Enable debug output |
|
||||||
| `-dt, --dead_time_estimate` | Calculate dead time corrections |
|
| `-dt, --dead_time_estimate` | Calculate dead time corrections |
|
||||||
|
| `--data idx <dout>` | Write single ASCII dataset with index `idx` to `<dout>` |
|
||||||
| `-h, --help` | Show help message |
|
| `-h, --help` | Show help message |
|
||||||
| `-v, --version` | Show version information |
|
| `-v, --version` | Show version information |
|
||||||
|
|
||||||
@@ -58,6 +59,11 @@ h5nexus --fn EMU00139040.nxs --out output.nxs
|
|||||||
h5nexus --fn EMU00139040.nxs --dead_time_estimate --out corrected.nxs
|
h5nexus --fn EMU00139040.nxs --dead_time_estimate --out corrected.nxs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Extract single detector data to ASCII file:**
|
||||||
|
```bash
|
||||||
|
h5nexus --fn EMU00139040.nxs --dead_time_estimate --data 0 detector0.txt
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Reading NeXus Files
|
## Reading NeXus Files
|
||||||
@@ -520,7 +526,7 @@ NeXus uses the `NX_class` attribute to identify group types:
|
|||||||
|------------|----------------|-------------|
|
|------------|----------------|-------------|
|
||||||
| `/raw_data_1` | `NXentry` | Top-level entry for a measurement |
|
| `/raw_data_1` | `NXentry` | Top-level entry for a measurement |
|
||||||
| `/raw_data_1/instrument` | `NXinstrument` | Instrument information |
|
| `/raw_data_1/instrument` | `NXinstrument` | Instrument information |
|
||||||
| `/raw_data_1/detector_1` | `NXdetector` | Detector group |
|
| `/raw_data_1/detector_1` | `NXdata` | Data group (IDF v2) |
|
||||||
| `/raw_data_1/sample` | `NXsample` | Sample information |
|
| `/raw_data_1/sample` | `NXsample` | Sample information |
|
||||||
| `/raw_data_1/user_1` | `NXuser` | User information |
|
| `/raw_data_1/user_1` | `NXuser` | User information |
|
||||||
|
|
||||||
@@ -535,7 +541,7 @@ int main() {
|
|||||||
// Add some example data
|
// Add some example data
|
||||||
std::vector<int> counts(96 * 2048, 0);
|
std::vector<int> counts(96 * 2048, 0);
|
||||||
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts,
|
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts,
|
||||||
{1, 96, 2048}, H5::PredType::NATIVE_INT32);
|
{1, 96, 2048}, H5::PredType::NATIVE_INT);
|
||||||
|
|
||||||
// Set up proper NeXus group structure with NX_class attributes
|
// Set up proper NeXus group structure with NX_class attributes
|
||||||
nexus.AddGroupAttribute("/raw_data_1", "NX_class", std::string("NXentry"));
|
nexus.AddGroupAttribute("/raw_data_1", "NX_class", std::string("NXentry"));
|
||||||
@@ -1667,7 +1673,7 @@ int main() {
|
|||||||
// Add some detector data
|
// Add some detector data
|
||||||
std::vector<int> counts(96 * 2048, 100);
|
std::vector<int> counts(96 * 2048, 100);
|
||||||
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts,
|
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts,
|
||||||
{1, 96, 2048}, H5::PredType::NATIVE_INT32);
|
{1, 96, 2048}, H5::PredType::NATIVE_INT);
|
||||||
|
|
||||||
// Add time information
|
// Add time information
|
||||||
std::vector<float> timeAxis(2049);
|
std::vector<float> timeAxis(2049);
|
||||||
@@ -1942,7 +1948,7 @@ nexus.WriteNexusFile("output.nxs");
|
|||||||
nxH5::PNeXus nexus;
|
nxH5::PNeXus nexus;
|
||||||
// Add data
|
// Add data
|
||||||
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts, dims,
|
nexus.AddDataset<int>("/raw_data_1/detector_1/counts", counts, dims,
|
||||||
H5::PredType::NATIVE_INT32);
|
H5::PredType::NATIVE_INT);
|
||||||
// Add NeXus group structure
|
// Add NeXus group structure
|
||||||
nexus.AddGroupAttribute("/raw_data_1", "NX_class", std::string("NXentry"));
|
nexus.AddGroupAttribute("/raw_data_1", "NX_class", std::string("NXentry"));
|
||||||
nexus.AddGroupAttribute("/raw_data_1/instrument", "NX_class", std::string("NXinstrument"));
|
nexus.AddGroupAttribute("/raw_data_1/instrument", "NX_class", std::string("NXinstrument"));
|
||||||
|
|||||||
8
src/external/nexus/examples/hdf5/main.cpp
vendored
8
src/external/nexus/examples/hdf5/main.cpp
vendored
@@ -415,14 +415,14 @@ void h5nexus_writeTest(const nxH5::PNeXus *nxs, const std::string& outFileName,
|
|||||||
"units", std::string("picoseconds"));
|
"units", std::string("picoseconds"));
|
||||||
|
|
||||||
// spectrum_index
|
// spectrum_index
|
||||||
for (unsigned int i=0; i<66000; i++)
|
for (unsigned int i=0; i<16; i++)
|
||||||
ival.push_back(i+1);
|
ival.push_back(i+1);
|
||||||
nxs_out->AddDataset<int>("/raw_data_1/instrument/detector_1/spectrum_index", ival, {66000}, H5::PredType::NATIVE_FLOAT);
|
nxs_out->AddDataset<int>("/raw_data_1/instrument/detector_1/spectrum_index", ival, {16}, H5::PredType::NATIVE_INT);
|
||||||
ival.clear();
|
ival.clear();
|
||||||
|
|
||||||
// dead_time
|
// dead_time
|
||||||
std::vector<float> deadTime(66000, 0.0);
|
std::vector<float> deadTime(16, 0.0);
|
||||||
nxs_out->AddDataset<float>("/raw_data_1/instrument/detector_1/dead_time", deadTime, {66000}, H5::PredType::NATIVE_FLOAT);
|
nxs_out->AddDataset<float>("/raw_data_1/instrument/detector_1/dead_time", deadTime, {16}, H5::PredType::NATIVE_FLOAT);
|
||||||
|
|
||||||
// attributes dead_time
|
// attributes dead_time
|
||||||
nxs_out->AddDatasetAttribute<float>("/raw_data_1/instrument/detector_1/dead_time", "available", 0);
|
nxs_out->AddDatasetAttribute<float>("/raw_data_1/instrument/detector_1/dead_time", "available", 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user