-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'general_obj_lookup' into add_read_columns
- Loading branch information
Showing
16 changed files
with
388 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
|
||
#include "nwb/misc/AnnotationSeries.hpp" | ||
|
||
#include "Utils.hpp" | ||
|
||
using namespace AQNWB::NWB; | ||
|
||
// AnnotationSeries | ||
// Initialize the static registered_ member to trigger registration | ||
REGISTER_SUBCLASS_IMPL(AnnotationSeries) | ||
|
||
/** Constructor */ | ||
AnnotationSeries::AnnotationSeries(const std::string& path, | ||
std::shared_ptr<IO::BaseIO> io) | ||
: TimeSeries(path, io) | ||
{ | ||
} | ||
|
||
/** Destructor */ | ||
AnnotationSeries::~AnnotationSeries() {} | ||
|
||
/** Initialization function*/ | ||
void AnnotationSeries::initialize(const std::string& description, | ||
const std::string& comments, | ||
const SizeArray& dsetSize, | ||
const SizeArray& chunkSize) | ||
{ | ||
TimeSeries::initialize( | ||
IO::BaseDataType::V_STR, // fixed to string according to schema | ||
"n/a", // unit fixed to "n/a" | ||
description, | ||
comments, | ||
dsetSize, | ||
chunkSize, | ||
1.0f, // conversion fixed to 1.0, since unit is n/a | ||
-1.0f, // resolution fixed to -1.0 | ||
0.0f); // offset fixed to 0.0, since unit is n/a | ||
} | ||
|
||
Status AnnotationSeries::writeAnnotation(const SizeType& numSamples, | ||
std::vector<std::string> dataInput, | ||
const void* timestampsInput, | ||
const void* controlInput) | ||
{ | ||
std::vector<SizeType> dataShape = {numSamples}; | ||
std::vector<SizeType> positionOffset = {this->m_samplesRecorded}; | ||
|
||
// Write timestamps | ||
Status tsStatus = Status::Success; | ||
tsStatus = this->timestamps->writeDataBlock( | ||
dataShape, positionOffset, this->timestampsType, timestampsInput); | ||
|
||
// Write the data | ||
Status dataStatus = this->data->writeDataBlock( | ||
dataShape, positionOffset, this->m_dataType, dataInput); | ||
|
||
// Write the control data if it exists | ||
if (controlInput != nullptr) { | ||
tsStatus = this->control->writeDataBlock( | ||
dataShape, positionOffset, this->controlType, controlInput); | ||
} | ||
|
||
// track samples recorded | ||
m_samplesRecorded += numSamples; | ||
|
||
if ((dataStatus != Status::Success) || (tsStatus != Status::Success)) { | ||
return Status::Failure; | ||
} else { | ||
return Status::Success; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
|
||
#pragma once | ||
|
||
#include <string> | ||
|
||
#include "Utils.hpp" | ||
#include "io/BaseIO.hpp" | ||
#include "io/ReadIO.hpp" | ||
#include "nwb/base/TimeSeries.hpp" | ||
|
||
namespace AQNWB::NWB | ||
{ | ||
/** | ||
* @brief TimeSeries storing text-based records about the experiment. | ||
*/ | ||
class AnnotationSeries : public TimeSeries | ||
{ | ||
public: | ||
// Register the AnnotationSeries | ||
REGISTER_SUBCLASS(AnnotationSeries, "core") | ||
|
||
/** | ||
* @brief Constructor. | ||
* @param path The location of the AnnotationSeries in the file. | ||
* @param io A shared pointer to the IO object. | ||
*/ | ||
AnnotationSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io); | ||
|
||
/** | ||
* @brief Destructor | ||
*/ | ||
~AnnotationSeries(); | ||
|
||
/** | ||
* @brief Initializes the AnnotationSeries | ||
* @param description The description of the AnnotationSeries. | ||
* @param dsetSize Initial size of the main dataset. This must be a vector | ||
* with one element specifying the length in time. | ||
* @param chunkSize Chunk size to use. | ||
*/ | ||
void initialize(const std::string& description, | ||
const std::string& comments, | ||
const SizeArray& dsetSize, | ||
const SizeArray& chunkSize); | ||
|
||
/** | ||
* @brief Writes a channel to an AnnotationSeries dataset. | ||
* @param numSamples The number of samples to write (length in time). | ||
* @param dataInput A vector of strings. | ||
* @param timestampsInput A pointer to the timestamps block. | ||
* @param controlInput A pointer to the control block data (optional) | ||
* @return The status of the write operation. | ||
*/ | ||
Status writeAnnotation(const SizeType& numSamples, | ||
const std::vector<std::string> dataInput, | ||
const void* timestampsInput, | ||
const void* controlInput = nullptr); | ||
|
||
DEFINE_FIELD(readData, | ||
DatasetField, | ||
std::string, | ||
"data", | ||
Annotations made during an experiment.) | ||
|
||
private: | ||
/** | ||
* @brief The number of samples already written per channel. | ||
*/ | ||
SizeType m_samplesRecorded = 0; | ||
}; | ||
} // namespace AQNWB::NWB |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.